What are some upcoming technologies that will eliminate front-end engineers? - <AUTHOR> A designer I know was complaining recently that in his startup, his designs need to be implemented by a team of frontend engineers, who are slow, implement things with lower fidelity, and have a tense working relationship. He was saying that in five years, technology will advance to the point where frontend engineers (whether mobile or web) will no longer be needed, and that the designer will be able to take charge of the entire user experience directly, rather than indirectly through engineers.
I told him there's a lot happening that he doesn't understand, but upon reflection, the majority of work a frontend engineer does is routine and mundane rather than creative: wiring UI elements together, creating them, initialising them, add event listeners, fetching data from a server, saving it back, and so on. I have worked on a half-dozen frontend platforms (iOS, Android, J2ME, Symbian, Windows Mobile, web, Flash) and still, when I do a project, I end up doing tons of plumbing that I didn't anticipate until I got into the details. This plumbing doesn't add business value.
What are some technologies that are being developed today that are not ready for production use, but will be in five years, that aim to eliminate frontend engineers? Or, make do with fewer frontend engineers? What are some higher levels of abstraction being built?
Here's an analogy: in college, I had to write a paper using LaTeX. I found it a frustrating exercise, with unnatural syntax and terminology I had to learn, and I'd always get compile errors. I thought there's no reason a WYSIWYG word processor like Word or Google Docs or something else, in principle, shouldn't be able to produce the same quality output, while being much easier to use, and usable by 100x as many people as LaTeX is.
What is the equivalent of that for frontend engineering? <comment><USER2> This is what people thought when Visual Basic was released 20 years ago. Why it hasn't happened is our programming languages are stone age tools when it comes to representing and dealing with ambiguities.

All that plumbing you do is basically disambiguation. It involves (multiple) clarifying conversations, tradeoffs that you justify, taste, vision etc. Basically anything that falls under the 'there is no right answer' chapter of whatever front end text book you read.

Once we have breakthroughs in natural language understanding that's when not just designers but anyone will be able do away with programmers.

Despite all the AI hoopla it's not going to happen any time soon. All you have to track is how systems are dealing with ambiguity.

<comment><AUTHOR> Agreed about stone-age tools.

I'm not counting on AI, but on declarative programming. Imagine dragging and dropping components onto the canvas, not graphical ones like buttons and sliders but model layer ones, like classes.

Each would have connections, input, output or bidirectional. And a connection could have a simple mapping function. It could be as simple as "if price > 1000, discountOffered = true".

One can have preconditions that also define a remedial action to take. Going back to the e-commerce example, if the user tries to check out, a precondition might be that they're signed in, and the action would redirect them to a sign in page.

As for disambiguation, the computer can just pick one alternative and do it. You'll be able to override it, but computers shouldn't require everything specified in excruciating detail.

These won't eliminate all code written in conventional programming languages; just reduce it, so that engineers are more productive, and non-engineers will be able to do more than they can now.

</comment></comment><comment><USER3> Technology is always 5 years out, but it never comes.

<comment><AUTHOR> This kind of knee-jerk reaction isn't helpful. Applied to tablets before the iPad, for example, it would be wrong.</comment></comment>


Steve Jobs vs Dennis Ritchie - <AUTHOR> http://imgur.com/gallery/bbQvuIH <comment><USER2> Is there a concept which describes that the first discoverer or creator would not necessarily have been the only one?

Just because Steve Jobs lead the company that developed the iPhone, does that mean that nobody else would have ever created it? Or that they wouldn't have created something better?

Same for Dennis Ritchie, this says we would have no Unix, no Windows, no C, but wouldn't somebody else likely have come up with other similar methods for accomplishing the same tasks?

Not to take away from Mr Ritchie's accomplishments, clearly, that one individual had their hands in all 3 shows that he must have been a genius.

</comment><comment><USER3> This is what is called a false dichotomy. I could for example point out that Dennis Richie gets more attention than say… Norman Borlaug.

Life and dying is not a competition.

</comment><comment><USER4> Steve was an amazing business man. Dennis Ritchie was an computer scientist / innovator. A computer scientist will innovate things and build things. A business man will glorify things and sell them to the people and hence people are more in contact with the business man then the scientist which will lead people to praise business man more.

</comment><comment><USER5> Neither one could have done what the other did, and trying to downplay what one did to pump up the other is really not fair to either of them.</comment>


Matthew Butterick on Net Neutrality - <AUTHOR> https://tinyletter.com/mbutterick/letters/net-neutrality-neutrality <comment><USER2> _> The popular idea is that it has something to do with, you know, freedom and democracy and all that._

In practice, it has more to do with anti-trust. But it's clearly related to Internet freedom as well.

 _> Big Telco must share the costs of carrying all this new traffic._

No, it's about double dipping. ISPs are already charging their own users for using the network. What they want to do, is to also charge services for reaching the user (or at least not to have problems with interconnection). It's a pure troll tax of the type "because we own the bridge". There is no justification for that.

 _> Today, picking a side in this debate seems like throwing in with one set of corporate assholes over another. _

_> But if we entrust Big Tech and Big Telco to preserve those virtues, then we definitely deserve whatever internet we get._

The author contradicts himself. If he doesn't pick the position about Net neutrality, monopolists will do it for him.

</comment><comment><USER3> _Part of what net neutrality ensures is that Big Tech can push as much data across the internet as it wants; Big Telco has to deliver it._

Ugh. Net neutrality supporters have not done a good job of explaining why this is not the case. Netflix already pays for all its traffic, and ISPs are perfectly free to charge subscribers more for higher bandwidth or total transfers.</comment>


Counting Down to the New Ampere (2016) - <AUTHOR> https://www.nist.gov/news-events/news/2016/08/counting-down-new-ampere <comment><USER3> Does anyone know why these apparatuses are usually "inverted", i.e. hang from the ceiling. I've seen the same thing for quantum computers. Is it related to the way they are cooled? Or is it easier to work with somehow?

<comment><USER4> I'm sharing this prior to reading it:

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

<comment><USER5> Thank you for sharing.

I've started searching for "dilution refrigerator" and found this video, explaining a little bit how ³He–⁴He mixture cooling works and what the applications are. I think the video also helps putting the Wikipedia article in a perspective and vice versa.

Quantum Cooling to (Near) Absolute Zero (2013): [https://www.youtube.com/watch?v=7jT5rbE69ho](https://www.youtube.com/watch?v=7jT5rbE69ho)

</comment></comment></comment><comment><USER6> More exciting is that the mol and Avogadro's constant will be pushed off to the side on their own. Hopefully an even more future update will remove them entirely. They're really quite redundant and pretty much only exist to facilitate the needless presence of the non-SI mass unit, the unified atomic mass unit, which thankfully will now be defined in terms of the kg instead of having two independent mass units like we have now.

<comment><USER7> The mole and amu's (similar concepts) will never go away. It's a fundamental concept in chemistry. Reactions happen between individual particles but counting out individual atoms or molecules to supply for a reactions is impossible or ridiculously impractical at best. So chemicals have to be measured by mass (which we can measure) and then converted into number of particles. Until a molecular counting device exists, the mole will remain.

<comment><USER6> It won't go away for the same reason pounds and miles won't go away - <USER2> who know it can't be bothered learning something new, and people who are learning it aren't influential enough to cause change. Avogadro's constant is not in any way fundamental. It exists to reconcile the two different mass units that chemists use - gram and amu.

With the 2018 SI change, Avogadro's constant will be defined as an arbitrary number without any physical basis, and the amu will be a constant multiple of the kg. No more 1/12 the mass of carbon 12.

Of course we'll still need a way to represent large numbers, but there's no fundamental reason it has to be such a complicated number. It could be exactly 10^24, for instance. Again, I agree this isn't going to happen because of legacy inertia.

</comment></comment></comment><comment><USER8> Why is an ampere a fundamental unit but,not a coulomb?

<comment><USER9> If you go back in history to when the SI units were defined, there would have been no way to measure a Coulomb of electrons, since in nature you'd somehow have to distinguish the electrons you are counting from all the other electrons sitting around. With the invention of single electron counting, we could do it now, but we aren't going to change the SI system a century in. And, the idea was that the seven primary units are both independent (you can not derive one from any of the others) and sufficient to derive all of the other units of measure. Once you have the Ampere, you can define a Coulomb as a relative quantity.

</comment></comment><comment><USER10> A mostly unrelated question, in case any metrology geeks are around: why is the Kelvin an SI unit?

Naively, there seem to be multiple approaches to derive temperature from other, more fundamental units. Like using the thermodynamic definition, 1/T = dS/dE, or using Boltzmann's law to approach temperature from the mean kinetic energy of gas particles. Are none of them suitable for precise measurement?

<comment><USER11> It's not really possible to derive temperature from other more fundamental units. For example, you can't define entropy as an absolute number; it needs to be assigned a unit, and the standard way of doing this is to multiply it by the Boltzmann constant, which depends on a unit of temperature. The mean kinetic energy of gas particles (3/2 kT) also depends on the Boltzmann constant.

<comment><USER12> > For example, you can't define entropy as an absolute number; it needs to be > assigned a unit,

You can define entropy directly without reference to other units, although it's a bit awkward. Entropy is the log of the number of microstates that correspond to a system's macrostate. Concretely, if you put n mols of ideal gas molecules in a box of volume V at a pressure P and temperature T, there is some large number of microstates corresponding to all those parameters. Entropy is the log of this number.

In classical mechanics, there's a normalization problem if you try to get an actual number out of this type of problem -- the microstates and all the macroscopic parameters are continuous. In quantum mechanics, though, this issue is solvable, although it's still awkward.

I can imaging a different type of system in which entropy really can be calculated, though. Imagine a particle that can be in exactly one of two states that are macroscopically identical. Now try to _cool_ the system so that the particle is in one of those states of your choice. To do so, you will need to dump exactly 1 bit of entropy.

1 bit of entropy is tiny, but adiabatic demagnetization refrigerators work kind of like this, albeit in reverse, and I could imagine an experiment that would use a device like an adiabatic demagnetization fridge to remove a calibrated number of bits of entropy from some object. From this, you could, in principle, define entropy directly.

<comment><USER9> While you are right that this is the statistical definition of entropy, there are two issues: first, entropy is a unitless quantity, so defining it exactly doesn't actually move the ball forward in terms of defining units of measure. Second, outside of its theoretical underpinnings, physicists and chemists hardly ever talk about absolute values of entropy, they almost always use differences in entropy -- which factors out the need to define the exact number of microstates present before and after.

<comment><USER12> > first, entropy is a unitless quantity

The parent post asked about defining temperature in terms of more fundamental units. Entropy is typically written in J/K. If you treat it as dimensionless, then you get a definition of temperature in terms of energy for free. My point is that you can, in principle, actually do an experiment to make this useful.

</comment></comment></comment></comment></comment><comment><USER13> Why is the kilogram the base unit instead of gram?

<comment><USER14> The kilogram has a suitable scale for physical events that matter in common engineering situations.

Acceleration due to gravity is a nice number between 0 and 10 if measured in "kilogram-meters per second squared".

</comment></comment><comment><USER15> So does this mean that quantum computing will become more viable? Since in quantum computing, calculations are accomplished by measuring the spin of an electron, I would imagine this would increase the throughput to a measurement instrument since this is allowing one electron to pass at a faster pace. While electron measurement instruments still need to be advanced significantly, I would imagine an innovation like this would further advance the reality of true quantum computing. Is this an accurate assessment?

<comment><USER16> I think you'd also need to redefine the meter and second to speed up light. Unfortunately, the footnote specifies that we can expect only "major changes in the kilogram, ampere, kelvin, and mole" in the new SI 2018, so it seems we'll have to wait for the release after that.

On the bright side, the changes to the kilogram might begin to address the obesity crisis.

<comment><USER17> Meter is already specified by fixing the speed of light. Seconds are defined in terms of Cesium atom vibrations.

<comment><USER18> _> Seconds are defined in terms of Cesium atom vibrations._

Not vibrations of the atoms themselves. The second is defined in terms of the period of the radiation corresponding to a particular hyperfine transition of the Cesium atom.

<comment><USER19> What does "hyperfine" actually mean, in this context?

<comment><USER18> It's a reference to a particular kind of splitting of the energy levels of electrons in atoms, due to interactions between the electrons and the nucleus.

Basically, as more and more precise measurements of the energy levels of electrons in atoms were made in the 1920s, 30s, and 40s, physicists kept finding that energy levels that were thought to be degenerate (i.e., multiple states with the same energy) were actually split into multiple, closely spaced levels. The original quantum model was the non-relativistic Schrodinger equation as applied to the atom. Then it was found that electron energy levels that were degenerate in that model were actually split into multiple levels because of the effects of electron spin and certain relativistic corrections; this splitting was called "fine structure". Then it was found that there was even further splitting, of energy levels that were degenerate in the fine structure model, due to interactions between the electron and the nucleus; this further splitting was called "hyperfine structure".

More here:

[https://en.wikipedia.org/wiki/Hyperfine_structure](https://en.wikipedia.org/wiki/Hyperfine_structure)</comment></comment></comment></comment></comment></comment>


Introducing SmartStack: Service Discovery in the Cloud - <AUTHOR> http://nerds.airbnb.com/smartstack-service-discovery-cloud/

<comment><USER2> I'm glad to see more cluster management software getting open sourced, and this is sort of on the right track.

However, looking at the design, this still has a long way to go. There are a lot of failure modes you guys haven't encountered yet, which will result in a few design tweaks. For example, what happens if your health checkers decide to start reporting garbage data (e.g. maybe they are too overloaded to properly perform health checks)? Or when you have a query of death being issued? Also, things like traffic sloshing can very quickly build resonant failures in a system like this.

(Source: many years working on Google infrastructure, including causing outages related to load balancing code)

<comment><USER3> What is traffic sloshing?

Good point on garbage data reporting; we do basic validation in synapse, here: [https://github.com/airbnb/synapse/blob/master/lib/synapse/se...](https://github.com/airbnb/synapse/blob/master/lib/synapse/service_watcher/zookeeper.rb#L97)

We could probably do more there to ensure valid names, IPs and ports (matching against a regex should do it). Also, because of the built-in health checking in haproxy, just the presence of some invalid name in the list of machines doesn't mean that we're going to try to start sending traffic there.

<comment><USER2> Traffic sloshing (basic overview): Say you have a pool of machines for a service (traditionally this problem is multi-regional, though it technically can happen at any scale). For some reason (machine restart, query of death, reloading, etc) a subset of your backends become unhealthy. This gets automatically detected by your framework, and the traffic gets routed to different machines. Now, you may have under-provisioned your backends (or you have a query of death), so this concentration of traffic on a smaller number of machines causes them to choke. You get a seesaw effect of traffic going around to the different backends, taking them out like a concentrated firehose. These failures all get detected by your framework, which routes traffic away from the backends. What you really wanted was a steady stream to all backends. A lot of load balancing systems have this failure mode. The good ones can detect it and converge back to a good steady state. The naive ones just keep the firehose spinning. It is harder to fall into this trap with simple binary health checking. It becomes a lot easier when you do traffic allocation by latency, or have more complicated health criteria that is easier to fail.

On the health checking/garbage data front: It's usually more of a problem when something misreports a bad backend, rather than misreporting a good backend. The latter is easy to catch (as you mention, haproxy does it). The former is hard because one misbehaved health-checker can suddenly unload all of your services.

<comment><USER4> That happened at work a few weeks ago---basically, one of our components did a health check of of DNS when the health check DNS record was mistakenly deleted. Because of the way the health check code was written, that component thought the DNS servers were down and shut down. That in turn, shut down other components that were health checking that component. Boom! Instant virtual dominoes.

</comment></comment></comment></comment><comment><USER3> Hi guys! I'm one of the primary authors of SmartStack. Happy to answer any questions that aren't covered in the blog post.

We're also doing a Tech Talk on SmartStack today at Airbnb HQ; stop by if you're in SF: [https://www.airbnb.com/meetups/33925h2sx-tech-talk- smartstac...](https://www.airbnb.com/meetups/33925h2sx-tech-talk-smartstack- scaling-airbnb)

<comment><USER5> As a thought experiment, what do you think of trying to make this completely de-centralized? Each service has its own synapse, and the services form a nerve for that service. They communicate status directly to the app servers, which form their own nerve.

Boot-strapping would of course be a problem, so you would still need a centralized nervous system for that, but you could survive its failure.

<comment><USER3> i think that another project that aims to address this was announced same day as smartstack: [http://www.serfdom.io/](http://www.serfdom.io/)

i haven't read much beyond the splash page, but hashicorp generally does great work.

</comment></comment></comment><comment><USER6> Great post. This is interesting due to similar discussions we're having at work about moving from a monolithic Rails app architecture to an SOA.

I'm curious though, what does the local developer environment look like when you run an SOA of this complexity? Does everyone needs to run a series of Vagrant VMs/Docker containers to have a fully functional local version of the application running?

<comment><USER7> One approach is stubbing out the services you don't need. This article by a Heroku engineer describes how to do this at the Rack level:

[https://brandur.org/service-stubs](https://brandur.org/service-stubs)

Another approach is creating a set of shared services that developers can use rather than deploying their own instances. This article by a LinkedIn engineer describes their internal Quick Deploy system:

[http://engineering.linkedin.com/developer- productivity/quick...](http://engineering.linkedin.com/developer- productivity/quick-deploy-distributed-systems-approach-developer-productivity)

Personally, though, I'd go the route of creating a self-contained Vagrant setup if possible. This helps folks become familiar with the entire system and fix bugs anywhere in it, rather than drawing strict lines of ownership around specific services.

<comment><USER6> yeah we've used stubs in the past and it's often awkward and creates silos within the team. I'm not a huge fan of this approach.

</comment></comment></comment><comment><USER8> > On AWS, you might be tempted to use ELB, but ELBs are terrible at internal > load balancing because they only have public IPs.

Yet another reason to run in a VPC, which includes internal-only ELBs as a very useful feature.

</comment><comment><USER9> Cool stuff I think though that much of this can be handled with other ways of doing things (although obviously there is never one right way of doing these kinds of things). This application kit is one way of orchestrating service/server discovery. Another way, which I have implemented personally is to use a combination of mcollective and puppet (with puppet facts enabled). This allows you to defined roles for specific systems and run tasks against servers of that specific role type, keep track of which servers are that role type, connect them to a 'central' load-balancer and many other things.

This serves to solve most of the issues that this toolkit provides for, but likely would not be the good option for everyone. Just some info on at least one other way to deal with this stuff!

<comment><USER10> Having a central load balancer is going to turn into a nightmare once you start managing a reasonable number of servers. Hardware goes bad (especially in the cloud), and having a single point of failure leaves you at it's mercy.

<comment><USER9> A load balancer should never be a single point of failure. You should always have multiples.

Also, if the response to this is then 'but it's still a central point of failure', they haven't really removed that in this solution. If the zookeeper cluster dies you lose everything.

Generally if a clustered load-balancer dies and another takes over there's a half second or a couple seconds of transition, but you're back up and running with a very simple architecture. If all of your load-balancers die, something much bigger to worry about is going on.

Really all this does is place the failure mode into a higher-level service with a much greater potential for failure. Zookeeper even makes you specify the size of your cluster and in my experience it's difficult to live update this. I've read they're working on that, but still.

Clustered load-balancers (using Pacemaker/Corosync, keepalived or similar) are very well understood these days. Pacemaker/Corosync can even run within EC2 now, since a couple years ago they added unicast support thus obviating the multicast issues present within EC2.

Additionally, if we want to talk about load then a well configured haproxy/Nginx load-balancer can handle hundreds of thousands of connections a second. If your installation needs more than this then I'm certain you could get a layer to distribute the load-balancing between a set. Obviously another problem to introduce, but still not one you'll reach until you probably have even more traffic than airbnb gets.

<comment><USER11> by the way keepalived >= 1.2.8 also supports vrrp over unicast

<comment><USER9> Indeed it does! I use it for less complicated fail-over situations myself, but if you start to need more complicated topologies (or something which has good interaction with IPVS/LVS) then Corosync!

</comment></comment></comment></comment></comment><comment><USER12> ELB will actually do internal load balancing in a VPC using your own custom security groups. Doesn't help if you're not in a VPC, but nowadays the default is for everything to go in a VPC.

<comment><USER3> Unfortunately, Airbnb is a pretty legacy AWS client; when we started using it, VPC was a much less prominent feature. Migrating to a VPC is a very non- trivial process, especially if you have RDS instances outside the VPC

<comment><USER12> I'm in the same boat with most of my AWS workload, was created before IGW was available and keep having the same discussion about migrating :-)

</comment></comment></comment><comment><USER13> I don't know... sounds like they just shifted the 'single point of failure' to the Zookeeper cluster. Is it somehow sexier to have your SPOF be things running Zookeeper instead of things running loadbalancer or DNS software?:

"The achilles heel of SmartStack is Zookeeper. Currently, the failure of our Zookeeper cluster will take out our entire infrastructure. Also, because of edge cases in the zk library we use, we may not even be handling the failure of a single ZK node properly at the moment."

<comment><USER14> If your load balancer/DNS goes down then every service won't be able to find other services.

With this approach everything will still work.

<comment><USER13> According to the quote I provided from the article, failure of the Zookeeper cluster will bring down their entire architecture.

</comment></comment></comment><comment><USER15> I've been hearing good stuff about this for a while - it's awesome to see it open sourced! Setting up a local haproxy to handle service failover / discovery is a really clever solution, and is an awesome approach to encapsulating a bunch of really messy logic.

</comment><comment><USER16> So.. SOA.

Everyone is doing it, but I never see details about how the services are wired together.

Do people use ESBs, or directly wire up services to each other?

<comment><USER14> Services are generally using HTTP/REST these days.

<comment><USER16> Yes. Most (all?) ESBs support (and indeed encourage) REST.

I'm pretty sure there has never been an ESB that doesn't support HTTP.

My question is if people are actually using them to wire system together (outside corporate environments, where considerations are different).

</comment></comment></comment><comment><USER17> Can someone explain to me what this really is? I don't follow and yes I read the intro.

<comment><USER12> With a service-oriented architecture (SOA) you basically break your application into distinct services that run across different machines. But you also need a way to find and connect to those services (service discovery). This provides a way of doing that using ZooKeeper and local HAProxy processes.

<comment><USER18> So I register a new service (or process) to run on metal using Chef. Then Chef installs the service and updates the nerve config running on that metal device. Nerve then keeps a central Zookeeper updated with the status of its local services? Synapse checks for available services in zookeeper that your app may need to use, and then configures a local load balancer for any requests you make?

<comment><USER3> That's the idea! If you're using Chef, check out the cookbook for SmartStack; you keep a small hash of configuration information per service, and we take care of the rest. [https://github.com/airbnb/smartstack- cookbook](https://github.com/airbnb/smartstack-cookbook)</comment></comment></comment></comment>


The brightbox cloud comes out of beta - <AUTHOR> http://brightbox.com/

<comment><AUTHOR> I've been a beta tester since day one (and submitted a few of the updates).

Happy to answer any questions from a beta tester perspective?</comment>


Soylent Update 3/13 - <AUTHOR> http://blog.soylent.me/

<comment><USER2> Disappointing that they are delayed again, but they are really good at communicating their reasons for delay and sticking by their product's quality. I'm patiently awaiting my two week supply that I expected in December.</comment>


Capacity Planning on a Cocktail Napkin - <AUTHOR> http://www.softwarequalityconnection.com/2012/02/capacity-planning-on-a-cocktail-napkin/

<comment><USER2> It is a nice read. The funny thing is, when it comes to host a web application people still think the hardware is just an utility and price has necessarily to be the lowest possible.

They do not think about the volumes the application will have to serve and which compromise on computing power and redundancy they will have to make to ensure their application will run.

Most of the time it all boils down just to the price. Weird.</comment>


What's new in Facebook open source - <AUTHOR> https://code.facebook.com/posts/290023971344425/what-s-new-in-facebook-open-source/ <comment><USER3> FWIW, the Changelog just published an excellent interview with James Pearce, the head of open source at Facebook. Contains a lot of interesting insight about how and why they choose to go open source, and some of the logistical details, such as how they manage React so that the version used internally is the same as the one published to Github while dealing with community pull requests.

[https://changelog.com/211/](https://changelog.com/211/)

</comment><comment><USER4> Man, FB is more prolithic in open source than Google. And a lot of their code is better, and more useful. Who would have thought?

<comment><USER5> Curious what kind of developer you are. Android? iOS? Machine Learning? Web? Databases? Other infra?

<comment><USER4> Eh. I'm a hobbyist, so I dabble in a lot of stuff. Thus far, I've primarily done some moderate/heavy scripting, a few command-line apps, a TK app, and a bit of web stuff. If google's putting out a ton of stuff in Machine Learning, I may not be getting it.

Sorry if that disapoints you.

<comment><USER6> It is interesting. Wonder how you are making the call that FB code is of higher quality.

<comment><USER4> I didn't mean higher quality. I mean more useful. TensorFlow is useful to some, but projects like React, React Native, Immutablejs, and MVC - wait, no, sorry - Flux, hhvm, flow, jest, and others, are overall more used by more people than any google project. FB's Javascript projects in particular - <USER2> many of the above are - and react specifically, have changed client-side development for the better. While Google is an idea factory, very litte of the code they put out is useful to most of us not doing AI work.

<comment><USER7> Angular?: [https://angularjs.org](https://angularjs.org)

Polymer?: [https://www.polymer-project.org](https://www.polymer-project.org)

Yeoman?: [http://yeoman.io](http://yeoman.io)

<comment><USER4> Angular sucks. I'm just going to say it. It's a bad model, a bad system. It has only contributed to the the discussion of how applications should work, except as an example of how not to do it.

Polymer is a dog, and it's massive. It was built around a technology that looks increasingly like it won't arrive any time soon in a satisfactory form.

Yeoman is nothing new.

But ultimately I'm just using No True Scottsman at this point, so the correct thing to do is admit that I'm wrong, and google's open source releases are more substantial than I thought. Which is what I'm doing.</comment></comment></comment></comment></comment></comment></comment>


Java is a DSL for taking large XML files and converting them to stack traces - <AUTHOR> http://twitter.com/avalanche123/status/7062890318143488# <comment><USER2> At least it's not XSLT (technically Turing complete).</comment>


Interest: Senior engineer confirms Apple working on MacRuby for iOS - <AUTHOR> https://twitter.com/applespotlight/status/24302410536 <comment><USER2> I just have a gut feeling that Ruby will be a significant language for iOS/OS X development going forward. I really hope so anyway, even in its present state MacRuby is _insanely_ fast against any other Ruby implementation. With the the resources of Apple behind it, the Ruby VM ecosystem will benefit greatly from thing like AOT MacRuby is bringing into the game.

I've looked on with envy at how Node.js is getting such a boost by leveraging a component of a heavily developed consumer product. Node.js gets such incredible performance for free because of the JS VM arms race. If Ruby has the weight of a giant behind it, hopefully it will experience a similar wave. IMO Ruby is a lot better suited to async programming than JS, as it has fibers for example, making it easy to untangle the nested, continuation passing style of async code.

Ruby is such a beautiful, productive language, it really deserves a giant like Apple throwing their weight behind it.

<comment><USER3> "If Ruby has the weight of a giant behind it, hopefully it will experience a similar wave."

I take it you didn't consider Sun a giant?

<comment><USER2> Sun was all about Java and I think it's disingenuous to say that Sun ever threw any significant effort into JRuby further than seeing JRuby as a way to assimilate Ruby into the Java Borg.

<comment><USER3> I have no idea what Sun's motivations were (and I doubt you do, either), but all the time I've been using JRuby I never got the sense there was anything going on that was designed to hook people into Java other than using the JVM.

There was no more assimilation going on than what I would expect to see from Apple and MacRuby. Less, perhaps, since JRuby apps run on multiple platforms, something MacRuby apps won't do.

And since JRuby itself was nothing more than a jar, developers could slip it into their usual Java environment without having to explain how or why they were installing Ruby.

I've sat in JUG meetings watching JRuby explained to Java fans, and each time they crowd goes from notable skepticism to smiles and head-nodding when they see what they can do.

Sun's support of Charlie, Tom, et al really helped get JRuby up to speed making it not only the fastest complete Ruby implementation but also acceptable to "the enterprise".

Sun may have been all about Java, but to the extent they helped JRuby they've enabled many Java devs to be all about Ruby.

</comment></comment></comment></comment><comment><USER4> I would love nothing more than writing Mac or iOS apps in Ruby, but Apple's commitment to MacRuby isn't all that great.

A quick look at commit stats for MacRuby shows that there's really just one full-time Apple person working on MacRuby, 3 others that contribute occasionally and a few non-apple people.

I call that "barely committed" or "hedging your bets". For some perspective, Sun sponsored more people to work on JRuby at some point, more people worked on Rubinius at some point etc.

Sorry for tempering the enthusiasm with hard, cold facts.

      kjkmacpro:macruby kkowalczyk$ git log | awk '/Author:/ {print $2}' | sort | uniq -c | sort -n
         1 email@example.com
         6 firstname.lastname@example.com
         8 firstname.lastname@example.com
        16 email@example.com
        21 email@example.com
        23 firstname.lastname@example.com
        96 firstname.lastname@example.com
       138 firstname.lastname@example.com
       162 firstname.lastname@example.com
       185 email@example.com
       211 email@example.com
       227 email@example.com
       542 email@example.com
      2377 firstname.lastname@example.com

<comment><USER2> Assuming that Apple is doing all of their MacRuby development around this 3rd party hosted, public git server, and that Apple doesn't have version control facilities on their own private network.

There is only one branch on that server, do you seriously suggest that is representative of all the development work ongoing internally at Apple and that one can infer "commitment" from what Apple has made public at this point?

I'm not saying that Apple is or isn't heavily committed to Ruby, I do say that it is unsafe to conclude that they are not from the limited information provided.

<comment><USER4> Actually, the source is hosted at git://git.macruby.org/macruby which is owned by Apple.

So yes, unless you provide the evidence to support your claims, I'll assume that all MacRuby work is being done in public on macruby.org, similar to how other Apple open-source project work (llvm, WebKit, clang) and that the amount of that work is representative of Apple's commitment to the project.

In comparison, if you do similar stats on other Apple projects (like llvm, WebKit) you'll see that they have order of magnitude more people working on them, producing order of magnitude more code.

<comment><USER2> There is one branch one the repo: master. There are no feature branches whatsoever. What kind of workflow for mainline development is that?

There are also no commits referencing iOS at all, despite Laurent saying that Apple have been working on an iOS port. Assuming Apple is working iOS compatibility, one might assume that they are targeting a future major iOS release, e.g. iOS 5.0. That is something that Apple categorically would not do in public for obvious reasons.

Laurent's commits are too few and far between lately for someone purported to be on MacRuby full time, to me they just look like cherry pick commits that fix serious bugs.

Like I've said before I am not saying what Apple is or isn't doing. You may be right, but what you have said is hardly compelling evidence. Apple is hardly going to carry out development in public on something that inadvertently reveals features or implementation details of of their golden geese products, i.e. iOS devices.

<comment><USER5> Laurent doesn't use Git. The main repo for MacRuby is the SVN @ MacOS Forge (hosted by Apple), and has branches: <http://www.macruby.org/trac/browser/MacRuby/branches>

Also, if there is no commit referring to iOS, it's mainly because iOS is a very secretive project. You don't know what he actually worked on. You don't know if maybe he has local / internal (aka @ apple) changes concerning iOS.

Plus if Laurent's commits are too "few and far lately" as you said, it's probably because he either have other Apple related stuff to do, or simply because he doesn't want to add new features (yet) that might break before he releases 0.7: [http://lists.macosforge.org/pipermail/macruby- devel/2010-Aug...](http://lists.macosforge.org/pipermail/macruby- devel/2010-August/005944.html)

</comment></comment></comment></comment></comment><comment><USER6>
      > Do the recent changes mean we can use MacRuby to write iPhone apps?

      Well, iOS is not supported by MacRuby, yet. Be patient, we work on it :)
      Laurent

via: [http://lists.macosforge.org/pipermail/macruby- devel/2010-Sep...](http://lists.macosforge.org/pipermail/macruby- devel/2010-September/005991.html)

</comment><comment><USER7> Shouldn't the headline read something more like "Senior engineer confirms _he_ is woking on MacRuby for iOS" -- didn't seem to me that he is implying that it is an official Apple project. reply

<comment><USER5> From <http://www.macruby.org> :

> "MacRuby is a free software project by Apple Inc. Sources are available > under the Ruby license."

<comment><USER8> But it's really more a sponsored project, not a project in the same sense as WebKit. It's more of a "sure, work on it and see where it goes" thing.

<comment><USER5> I'm not sure I agree. It was started by an Apple employee, endorsed by Apple, 90% of all commits is done by Apple employees, and is hosted on Mac OS Forge (<http://www.macosforge.org/>), where Apple releases its open-source projects (Webkit, launchd, libdispatch, etc.)

</comment></comment></comment></comment><comment><AUTHOR> bits and pieces from the tubes: <http://iflipbits.com/post/1101983568/macruby- soon-on-ios>

MacRuby seems more and more a first class citizen of the iWorld.

</comment><comment><USER9> I rather use Javascript and the Nitro engine (like google's V8) and explode the iOS ecosystem ten-fold of what objective-C has done already.

Palm is already betting on JS, google too, so it is just a matter of time when the mobile world uses a flavor of JS for apps.

<comment><USER4> Technically (i.e. ignoring Apple's recently lifted ban on non-objective-c languages) that has been possible for a long time.

See <http://inexdo.com/JSCocoa> and [http://stackoverflow.com/questions/327200/jscocoa-and-the- ip...](http://stackoverflow.com/questions/327200/jscocoa-and-the-iphone)

I'm a Mac developer and I have to tell you that writing Cocoa apps in JavaScript is not great because JavaScript is not a great language. I would much prefer Ruby, Python or C# syntax than JavaScript syntax.

It's also a reason why JSCoca hasn't taken off despite being available for almost 2 years now and why MacRuby is such a promising, although not yet production quality, project.

Nitpicking: Palm didn't bet on JS but on HTML stack (of which JS is a part, but not the whole).

<comment><USER10> Unfortunately, your opinion isn't very popular around here. People here don't seem to want to accept the fact that javascript was never designed to be a scalable general purpose language for writing large applications. It has slowly evolved over time, but is still not there.

I hope something like Google'ss NaCL becomes popular, and instead of javascript slowly creeping to the server/desktop/phone because we have no choice in browser-land, the browser opens itself up to all computer languages so javascript can start feeling some competition. I even think this would be good for javascript, as it would spur the language to evolve faster.

</comment></comment></comment><comment><USER11> More than just MacRUby is to come I think.

After Apple recently retracted their limitations on languages and runtimes, I'm actually drooling over the possibility of a slew of dev env apps for various languages including Squeak, SuperCollider and visual languages like Scratch. Making interactive stuff on the iPad with the power of a full programming language behind will be super fun.

</comment><comment><USER12> The original tweet: <http://mobile.twitter.com/lrz/status/24137640579>

Copy and pasted on an iPad.

</comment><comment><USER13> This would be seriously awesome! I love the cocoa frameworks, but I can't stand objective c. being able to use ruby would be a dream come true.</comment>


Ask HN: I want to transition from marketing to product. Where do I go from here? - <AUTHOR>

I've been a Product Marketing Manager for 3 years out of college (w/ an undergrad business degree) at an enterprise networking company in Silicon Valley, but I find the company, its products, and my role a bore. But I love consumer tech– wearables, mobile hardware, mobile apps, social, latest web technologies– you name it.
I've taken a couple courses (One Month Rails, Learn Python the Hard Way, and Coursera) to get a basic understanding of coding. I've learned I'm not a very fast learner in terms of coding and while passionate about it, and don't think I would do well as a software engineer (took me 6 months to get through half of the Learning Python the Hard way to give you an idea).
I've decided I want to get into product, but not sure how or what way. I love tech, and I want to contribute to building a product but have no technical (official) experience.
I have 2 questions:
1. What role/title should I be looking at to transition from PMM to product? Product Manager (but those require experience)? Operations? What's my best option here?
2. Is this too difficult a transition? Should I go to an MBA or back to an undergrad program?
I don't mean to come off as lazy– if it does sound that way, I apologise. I really want to pour my passion into products I love, but I just can't get that with routers and data centre software. I also feel that "marketing" in tech is somewhat redundant, since the product's features by definition are its marketing. <comment><USER2> Product Manager or Program Manager, depending on the org, probably makes the most sense. There is a lot of overlap with marketing. I see people go into that role from the development side from time to time--people who don't really enjoy coding or have grown tired of doing it as a job. More often, though, they come from disparate backgrounds.

If you emphasize your strengths on the customer side, and develop your capabilities on the product side, I think you'll be in good shape. It might take a while, and concerted effort, but most good things in life do. It sounds like the PM role puts you right where you want to be.

Study the lean startup materials (Eric Ries and Steve Blank). Learn about different agile methodologies, like Kanban (but don't become a zealot). Learn about continuous integration, configuration management, and get your feet wet using issue trackers and source code management environments (Github, Bitbucket). You don't have to get into the details, but at least understand how they work and what the state of the art is.

With your background, I'm sure you can find a role that would allow you to transition. It might not be right away. Just be clear about what you can bring to a position now, and where you would like to go in the future. If you're working with a good company, or good management, they will try to make it happen to the degree possible.

<comment><AUTHOR> Thanks for your advice. I do work the PM who uses Agile, but I'll have to learn more about it under the radar. I'm not sure my company would be too enthusiastic about it :)

</comment></comment><comment><USER3> Just as an anecdote regarding your statements of feeling inadequacy as a developer: When I was 16 it took me a year to complete the relatively simple w3schools tutorials, it was only once I started building things that my knowledge really started to grow. 5 years later and I work as a developer for a BAFTA award winning company building applications I really believe in. We learn differently under different conditions, try applying your knowledge on a project instead of just doing the tutorial.

</comment><comment><USER4> I think that if you can master the art of Lean Customer Development/Understanding you'll be OK regardless of degree or coding ability. Might be an easier transition than to a coder/engineer, especially given background in marketing.

As an engineer pairing with business types is an easy find.

Those two need the third leg of customer zealot who talks to customers every day and yells at Biz and Tech about what the customers want. Many Lean books talk about this role. Many say that the Tech and Biz need to "get out of the office" and I agree. But after some time the company needs this Customer Expert to be the internal voice.

How you can prove that you are this person I don't know. I've heard the claim before but never seen the evidence. Evidence I think is things like recorded customer interviews, complete customer stories, built persona and things like this. A moderately successful team with you in that role may serve as a good demonstration too.

HTH

<comment><AUTHOR> Sounds like Steve Blank's advice. Thanks for the heads up.

</comment></comment><comment><USER5> I'm surprised no-one has said this already, but whilst a technical background helps, being able to code is never part of a Product Manager's job.

You need to own the product & it's vision. This means understanding the market, competitors, and most importantly, what users actually want/need so that marketing can target them. In ANY job, you can ALWAYS be talking to users in your spare time.

And the specific answers to your questions: 1\. I would try & find a PM role in a smaller startup, as your Marketing skills will also be seen as valuable (i.e. you will essentially do a bit of both roles, but this will give you the PM experience). 2\. Definitely do not go back to study. Waste of time/money for something that a degree can't teach you anyway.

<comment><AUTHOR> Thanks. I think that's exactly what my short-term vision looks like, and I can't imagine going back to school anyway. But the main challenge for finding a PM role in a startup: "Requires minimum 3+ years managing a product"

</comment></comment><comment><USER6> Project manager would probably work for you just fine - have a look at the PMBOK for greater details on what that might entail.

Also it is worth considering that marketing is valuable to tech. Your post reminded me of this link, which is probably worth having a read: [http://steveblank.com/2009/10/08/get-out-of-my- building/](http://steveblank.com/2009/10/08/get-out-of-my-building/)

If you want to persist in building tech, then the key is going to be for you to find a project of your own that you're really excited about so that you will be willing to stick with it through development of all the hard and annoying bits.

<comment><AUTHOR> Thanks. What is the difference between a Product and Project Manager, from what you know?

</comment></comment><comment><USER7> 1\. Don't do operations. That's going to be a total waste of time.

2\. Don't do an MBA. Very little that you learn in an MBA will apply to product management. It can help with branding if you didn't go to a great university for undergrad though.

I made this exact transition a few years ago. The most important thing is to actually get practice designing and launching products (this is why an MBA will not be very helpful). This will give you a lot of confidence. It will also give others confidence that you can get the job done and show them that you are not just another person that is bored with their job in XYZ.

If you can work with product managers and engineers at your company on a short project that would be a start. If that's not possible, do it on your own. Either use the coding skills you have now to build and design a product, or work with other technical people. Hackathons are a great way to do this. Come up with an idea before the event, including mocks and detailed interactions. Programmers at hackathons are always looking for ideas. Many show up with no idea of what they want to build. If you do this part of the job for them, you will have a good experience.

Another approach is to force the issue at your current company. Here's a way to do this. Read the list of customer issues. Actually design solutions for those problems and show them to the product managers and engineers on the team. If you have good solutions they will start to listen to you. If you don't, ask them why and you will start to learn how they think about product decisions. This may not allow you to transition but you'll get experience that you don't have now.

At the same time, I'd recommend reading 'Cracking the PM Interview' to prepare for the interview process. If you're ultimately not able to transition in your current company you should leave and interview for PM positions elsewhere.

Feel free to email me (see my HN profile). Happy to jump on a Skype/Hangout call to chat more.</comment>


Russia threatens to block Telegram - <AUTHOR> http://www.reuters.com/article/us-russia-telegram-regulator-idUSKBN19E0H4 <comment><USER4> For the amount of haters telegram had when they launched for their purported security failures, it's funny that people are looking to block it instead of silently explore its flaws

<comment><USER5> _> purported security failures_

 _> people are looking to block it instead of silently explore its flaws_

This is not a good heuristic for determining if security failures are "purported."

In point of fact, Telegram is widely lampooned by every self-respecting professional cryptographer who has written about it. There's nothing "purported" about Telegram's security failures - they are empirically demonstrable, and have been exposed through multiple cryptanalytic reviews.[1][2]

Frankly, I don't think I've ever seen anyone defend Telegram here on HN who actually has professional crypto experience (whether academia or industry), or any other similar proxy for credibility in the field. The popular contention is that (poor, harmless) Telegram is plagued by a persistent astroturfing campaign perpetrated by the likes of Moxie Marlinspike and Thomas Ptacek in order to elevate Signal's status. That's:

1) not true, in my opinion (though to be fair at least one of those people is obviously biased); and

2) irrelevant, because we have the benefit of empirical rigor to instruct our opinions of secure messaging systems. We don't need to rely on infosec ideologues on HN or Twitter.

Telegram is very much like climate change. There is a widespread consensus among the informed (read: academic and professional cryptographers) that Telegram's security failures exist, and that these failures are empirically demonstrable. At the same time, there is a controversy led almost entirely by the uninformed (read: non-cryptographers) that denies Telegram's security failures and undermines attempts at demonstrating them through accusations of shilling or misdirection.

To put it very succinctly: there are _no_ valid arguments that Telegram has an optimal security model from the perspective of cryptanalysis and cryptographic design best practices.

____________________________________________________________

1\. [https://www.alexrad.me/discourse/a-264-attack-on-telegram- an...](https://www.alexrad.me/discourse/a-264-attack-on-telegram-and-why-a- super-villain-doesnt-need-it-to-read-your-telegram-chats.html)

2\. [https://cs.au.dk/~jakjak/master- thesis.pdf](https://cs.au.dk/~jakjak/master-thesis.pdf)

<comment><USER6> Ok, valid argument: telegram servers DO receive and store plaintext version of every conversation done (except private chats), while, as a reference, whatsapp don't do this, applying end-to-end encryption by default. So, basically, hack telegram servers -> you have all the convos. Bribe some employers, locate and grab their servers -> see above. Also, how would you know they're not connected with some 3-letter agency already?

<comment><USER7> FWIW - I have no way of verifying this - Telegram says they try to work around this by (IIRC) :

\- Using some kind of crypto with multiple keys

\- These keys are located in multiple independent datacenters in independent jurisdictions

According to what I read this was supposed prevent leaking of user data just by bribing/coercing/etc or suing any Telegram employee or datacenter provider.

As I've mentioned before I don't use Telegram for security, I use it because

1\. Facebook failed its Whatsapp acquisition so badly

2\. It is way more user friendly

Also keep in mind that when I left WhatsApp for Telegram WhatsApp still didn't have e2e.

</comment></comment></comment></comment><comment><USER8> "if the app is banned in Russia then the government officials will entrust their communications to other countries' messengers"

Nice counter :)

<comment><USER9> They could just use Matrix / Riot, since they are both fully open source and auditable on client and server.

Hell, I'd _like_ the Russian gov't to start using Riot. Would definitely give them that security audit they need for trustability on their olm. Maybe you shouldn't trust a Russian state audit, but it just takes large users to motivate third parties to start auditing it.

<comment><USER10> You don't get it. They do not need secure messengers. They want mass surveillance. For secure communications within the government networks there exist other means.

</comment></comment></comment><comment><USER11> >Fri Jun 23, 2017 | 5:00pm EDT

Here is a newer article (there were a couple of developments on weekend):

[https://en.crimerussia.com/gromkie-dela/durov-criticizes- ros...](https://en.crimerussia.com/gromkie-dela/durov-criticizes-roskomnadzor- for-incompetence/)

<comment><USER12> Ironically this website does not open from Russia (had to use a VPN to access it). Same agency's shills in Russian Duma (parliament) are planning another law banning VPN and Anonymizer services. Censorship is coming down hard, it seems...

<comment><USER13> Also: [https://www.rt.com/politics/389683-russian-public- supports-m...](https://www.rt.com/politics/389683-russian-public-supports- measures-to/)

 _Over 40 percent of Russians support the verification of internet users on social networks or other internet platforms, as proposed in a bill drafted by a well-known pro-Orthodox lawmaker._

I wonder if it's real or just propaganda? FWIW,

 _In May, Russian President Vladimir Putin signed the strategy for the development of the Russian information community between 2017 and 2030. This document states that in order to successfully develop the internet and the communications infrastructure as a whole, the country needs working mechanisms that would introduce a system of trust between users, and eliminate anonymity and the lack of responsibility that it causes._

<comment><USER12> Of course Russia Today is going to toe the Party line... Most people here call this "Crazy Printer", as in a machine that produces copious amounts of insane legislation.

Usually people co-sponsoring this kind of legislation have ties to various corporations or government entities. Most of those things are fast-tracked without any kind of input from the populace.

</comment></comment></comment></comment><comment><USER14> Unfortunately looks like P2P messengers are not available/not existent nowadays. Especially on mobile. All we have phone tied centralized apps.

<comment><USER15> Is something wrong with tox? It is a p2p messenger that works on smartphones.

<comment><USER16> Homebrew crypto written by 4chan. No offline messages. Drains a gigabyte of data and battery overnight thanks to P2P.

<comment><USER17> > Homebrew crypto written by 4chan.

Where did you get that from? Tox uses libsodium. [0]

[0] [https://github.com/irungentoo/toxcore/blob/master/docs/updat...](https://github.com/irungentoo/toxcore/blob/master/docs/updates/Crypto.md)

<comment><USER16> There is more to building a secure end-to-end messaging protocol than dropping in libsodium and calling it a day. See issues like [https://github.com/TokTok/c-toxcore/issues/426](https://github.com/TokTok/c-toxcore/issues/426).

<comment><USER17> There is a lot more. But Tox is hardly "homebrew crypto" from "4chan" hackers.

Though, even the issue you've linked show the thought that the tox team have been putting into their protocol. (A stolen private key is game over, as in most situations. KCI is hard, let's rework.)

</comment></comment></comment></comment></comment></comment><comment><USER18> "When you have to shoot, shoot. Don't talk."

<comment><USER19> Exactly. This is framing, with a side of negotiation.

</comment></comment><comment><USER20> Can I ask how can a service be blocked in a country?

Is it because it has centralized servers? What if it was open source and could be hosted on any website?

Then they would have to detect signatures of the protocol and block that, right? At what level, the national level? But the server would be local.

So what does it mean when they say they block Tor for instance?

How can you block something that is run on many domains and servers inside your country?

<comment><USER21> 1\. Telegram IS centralized.

2\. They collect all IPs and domains and ban them on provider level. There is a law which forces internet providers to sync the list of banned resources and prohibit access to them.

Basically they ban hundreds of thousands resources already.

Adding few thousands of nodes may take some time, but:

1\. It is possible to do for sure within months

2\. When you ban 20-30% of decentralized system it looses 20-30% of users which makes it not that attractive compared to allowed alternatives which are controlled by the government (like vk.com)

<comment><USER20> What about if the decentralized system uses a DHT and contebt addressable protocol like IPFS? Banning 20% won't do much to it.

</comment></comment></comment><comment><USER22> So, I'm guessing Telegram is going to circumvent it in the next release. It's too popular in Russia to simply leave it at that. Signal showed how to do it.

<comment><USER23> They'd need to move their servers to google cloud platform. And then they'd still be blockable if Russia decides to block Google entirely.

<comment><USER22> Google is officially whitelisted in Russia since the incident with accidental ban.

<comment><USER23> In that case it is definitely possible for them to circumvent the ban.

If that happens, Russia would have no way of blocking the app other than DNS blocking which can be simply mitigated against as well.

</comment></comment></comment></comment><comment><USER24> There is no such agency "Russian Federal Service". You have "Russian Federal Service for Supervision in the Sphere of Telecom, Information Technologies and Mass Communications" which is too verbose to refer in the article.

I think a generic name such as "Russian Communications Watchdog" is better fit.

<comment><USER25> Roskomnadzor

Ros - <USER2>

kom - <USER3>

nadzor - supervision/surveillance</comment></comment>


Gravitation under human control? - <AUTHOR> http://www.sciencedaily.com/releases/2016/01/160108083918.htm <comment><USER2> I'm taking this with a grain of salt. It's popular for fringe scientists to assert that gravity can be controlled via electromagnetism. I've seen a couple UFO schematics online over the years that use electromagnetism to play with gravity and produce thrust.

Also, my understanding of gravity is that it really isn't a force at all, but rather a warping of spacetime by an object with mass, which makes the concepts of a field a bit strange to me...

</comment><comment><USER3> As exciting as this possibility is, I'm more interested in what I'll learn from the refutal which I'm hoping someone who understands this stuff will write here soon.</comment>


R for Programmers - <AUTHOR> http://heather.cs.ucdavis.edu/~matloff/r.html

<comment><USER2> There are a few minor errors:

* the explanation of 8.6 is wrong - it's cbind that's coercing all columns to a common type, not data.frame

* 8.7 is a bad example of good R code - use column names not indices!

* in 9 (and elsewhere) it's not necessary to continually strips names off vectors or use return in functions

* 11.2.1 to count TRUEs in logical vector, sum it.

...

<comment><USER3> Please could you forward these comments to the author? Considering he is offering the pdf for free, he may take errata as well. Thanks!

<comment><USER2> Good suggestion. Done.

</comment></comment></comment><comment><USER4> I write PHP and some perl, and recently learned R. This guide would have been useful to me at the beginning. What it does well is that it jumps right into concepts that programmers will naturally wonder about and already conceptually grok. It wastes no time on explaining basic programming concepts, nor does it dig deep into esoteric R-isms. It helps you translate your PHP/Perl/Java/whatever mindset into the R language. An extremely useful introductory document.

</comment><comment><USER5> My mother has a PhD in Cognitive Linguistics and is working at UCSC. She is using R, she hasn't programmed before, so I wonder how well she is doing with R. Well, I will meet her again around Christmas, maybe I could help her out a bit with R, I'm sure there's saomething she has missed, since she's a non- programmer.

<comment><USER6> What kind of functionalities is she using? I'm working on some articles and an app to help people learn R, especially people who are scared of programming or don't like it. I'm interested in learning what problems R beginners in different fields face. Feel free to drop me a line (see email in profile).

<comment><USER5> I'm talking with her on Skype atm, she's telling me that she hasn't starting using it yet, but that she went to a course at UCSB held by Stefan Th. Gires about R.

She is going to start using it in January when she gets some new corpus material.

She also said that they are going to use Tinn-R.

<comment><USER6> Sounds good. Tinn-R is a popular editor for R, although I prefer emacs+ess. Good luck to your mum!

</comment></comment></comment></comment><comment><USER7> Google's R Style Guide may be helpful:

[http://google-styleguide.googlecode.com/svn/trunk/google- r-s...](http://google-styleguide.googlecode.com/svn/trunk/google-r-style.html)

</comment><comment><AUTHOR> ... a super handy dandy resource for programmers new to R.

</comment><comment><USER8> most of my issues with r can be traced back to the nonintuitive (for me) data structures. i found <http://www.amazon.com/Data-Manipulation-R- Use/dp/0387747303> to be the most concise guide for how to manipulate common data structures.

</comment><comment><USER9> This PDF has been the most helpful reference for me while learning R this last year.

</comment><comment><USER10> "...who want to do statistics", right? Are there any good use cases for R for other stuff? (Or some interesting ways you used statistics as a "working programmer" recently?)

<comment><USER11> It's an introduction for those already familiar with some of the concepts that have to be extensivly explained in introductions for, say, social scientists.

I have to add, though, that I (as a non-programmer and aspiring social scientist) liked this tutorial much better than many other R tutorials out there. In know a little bit about programming but that was enough to pretty much understand the whole tutorial. (I have the sneaking suspicion that I'm an outlier so don't expect many other social scientists to know about basic CS concepts.)

(And boy am I happy that I now can feel confident ditching SPSS in favor of R. That gruesome SPSS!)

</comment></comment><comment><USER12> How long does it take to learn R compared to (for example) Perl?

<comment><USER6> I don't know about Perl, but if you want to get up and running with R for some basic data analysis, I'd say:

1 week to get used to the syntax and do basic data manipulation such as contructing, editing data frames, reading and writing files etc. You can also get going with the simple graphing functions quite quickly.

1 week to learn the statistical stuff - scatter plotting, correlations, linear regression modelling. Of course, I'm talking about just learning the basic syntax. Doing regression properly could take a long time to learn.

The R Book by Crawley is quite a good introduction, especially if you want to brush up on some basic statistics. It's not very in-depth though, so you might have to move on to more advanced texts after a month or so.

</comment></comment><comment><USER13> This is a good resource to start. Then it might be better resources (there are some other tutorials around) but as a beginner in R I found it very good.

</comment><comment><USER14> -1 for not mentioning mapply, tapply, or sapply.

</comment><comment><USER15> Is there something like this for MATLAB?</comment>


Square One Television - <AUTHOR> http://en.wikipedia.org/wiki/Square_One_Television#Connections_to_other_media <comment><USER2> This is one of the most treasured shows from my childhood. I wish it were still around for my younger brother (and indeed for my future children). I wonder if DVDs are available.

</comment><comment><USER3> To the OP, or anyone else who may have insight on this:

Was there something significant about the linked section of this article?</comment>


Cisco's Attempt to Dodge Responsibility for Facilitating Human Rights Abuses - <AUTHOR> https://www.eff.org/deeplinks/2016/04/ciscos-latest-attempt-dodge-responsibility-facilitating-human-rights-abuses-export <comment><USER2> Wow, I knew Cisco helped with the GFW, but didn't know they made a module specifically designed to find and capture Falun Gong participants[0].

Thats ... pretty messed up.

[0][https://www.eff.org/files/2016/01/12/113_second_amended_comp...](https://www.eff.org/files/2016/01/12/113_second_amended_complaint_does_v._cisco_9.18.13.pdf)

<comment><USER3> I think the term is "criminal".

<comment><USER4> It's not criminal. It could and should be outlawed, but hasn't been.

<comment><USER5> > _It could and should be outlawed, but hasn 't been._

I respect your opinion greatly. Why do you disagree with the EFF's assertion that Cisco's actions violate the Alien Tort Statue (the "ATS") [1]?

If Cisco knew, or should have reasonably known, that the technologies they were developing for the Chinese government would be used in contravention of the United Nations Convention Against Torture [2], which the U.S. ratified and would thus be covered under the ATS, then it would seem like this would fall under "aiding and abetting.

[1] [https://www.law.cornell.edu/uscode/text/28/1350](https://www.law.cornell.edu/uscode/text/28/1350) _28 U.S.C. § 1350_

[2] [https://en.wikipedia.org/wiki/United_Nations_Convention_agai...](https://en.wikipedia.org/wiki/United_Nations_Convention_against_Torture)

<comment><USER4> I agree with the EFF. The Alien Tort Statute recognizes _civil_ claims. They should lose the civil trial.

Separately, we should pass a federal law outlawing the knowing sale of technology for the purpose of persecuting groups of people based on their race/ethnicity/religion. Once that law exists, it _will_ be a crime to do what Cisco did, and I'll be happy about that.

Until then, discussing what Cisco did as "criminal" is dangerous. It should be harder to stretch our existing laws to make criminal cases, not easier.

<comment><USER6> > _we should pass a federal law outlawing the knowing sale of technology for > the purpose of persecuting groups of people based on their race > /ethnicity/religion._

If it had any teeth, such a law would do serious damage to the US arms exports industry.

</comment></comment></comment></comment></comment></comment><comment><USER7> Don't forget that China has a "50-cent army": [http://www.rfa.org/english/news/china/propaganda-03122014184...](http://www.rfa.org/english/news/china/propaganda-03122014184948.html) And the "Citizen Score": [https://www.aclu.org/blog/free-future/chinas- nightmarish-cit...](https://www.aclu.org/blog/free-future/chinas-nightmarish- citizen-scores-are-warning-americans)

Which is aking of FB/GOOG collecting metadata of your activities and having "paid likes", but being used in a more specific and direct way.

</comment><comment><USER8> If they're doing this for China, what do you figure they've been doing for the US government?

<comment><USER4> You mean apart from the fact that the US Government doesn't operate a "Great Firewall of the United States"?

<comment><USER9> Doesn't it? It is just transparent and the traffic shaping is self enforced.

<comment><USER4> No, it doesn't.

<comment><USER10> I sincerely thank you for pushing back on all the crap in this particular thread. HN seems to have devolved in to "well the world _SHOULD_ work the way I want it to" recently, and you're doing sterling work here being the voice of reason.

</comment></comment></comment></comment></comment><comment><USER11> Those people who helped increase the quarterly earnings at the time by selling this tech to the Chinese government must've felt pretty proud of themselves.

</comment><comment><USER12> Has anyone heard of similar abuses by Juniper Networks?

<comment><USER7> I'd focus more towards the merchant silicon of Marvell/Broadcom/Fulcrum

<comment><USER13> if somebody wants to sue a layer 2 ethernet fabric chip maker they're insane. any asshole can use a switch to do any sort of terrible thing with their nation's internet infrastructure.

it's like suing intel because they made the 1GbE NIC in a server seized for kiddie porn.

<comment><USER14> Not if they backdoored it for money to aid nation-states in I.P. theft or murder of innocents. I'm not saying I recall above companies doing that. Just that it's one legit reason among many to sue or bring charges against a telecoms, semiconductor company. And we know more than one vendor that previously did exactly that.

<comment><USER13> Show me any documentation whatsoever that proves a pure layer 2 Ethernet switch has been put on a test network and observed (via packet capture on its upstream) sending data home.

<comment><USER14> It's not the switch itself. It's the I.P. in the switches. And you've narrowed the situation enough to ensure nobody could meet your criteria unless representing the most wreckless spies on Earth.

Note: One fun fact of layer 2 Ethernet is it's insecure enough by itself that many just tap straight into the lines somewhere. Led to development of MACsec standard.

<comment><USER13> Not at all. "Put a suspicious device on an internet connection, let it run, and capture all packets to see where it phones home" is a fairly basic process.

<comment><USER14> The connectors in TAO catalog use RF to make that impossible without unusual spectrum analyzers. I did that, too. Another trick is covert channels to make it invisible in network traffic. Covert channel analysis is mandated in high assurance specs but almost nobody does it.

Anyway, you're not going to see a switch subverted by pro's in action. They won't blow that cover. They'll use it to facilitate a normal attack and plant evidence it came through a normal vector. That's how subversion works at pro level.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> It's disturbing that I didn't even know Cisco was involved until now.

<comment><USER16> What's your intended meaning?

<comment><USER15> A combination of feeling guilty that I haven't been paying more attention to unethical things that US companies do abroad and being disappointed that this wasn't bigger news.

</comment></comment></comment><comment> rm_-rf_slash So it's wrong to abuse, humiliate, and torture someone in the United States but if you do it elsewhere it's ok?

Oh wait...

<comment><USER17> this case is about selling an internet filter.

It would not be wrong, as in illegal or subject to any civil penalty, if Cisco sold that internet filter to the United States' agencies.

so that highlights the delicious irony in your retort

<comment><USER18> First, they built special hardware to target a specific group that is internationally known to be a frequent target of oppression. So that's going beyond what they normally provide.

Second, if you're selling something to a known person, and you have a good reason to know what they're going to do with it. And let's be clear, Cisco totally knew what they were going to be used for in this case. Then you're an accessory.

<comment><USER19> | First, they built special hardware to target a specific group

Is that stated as a fact in the case? I didn't find anything that makes that suggestion.

<comment><USER18> The article explicitly says, "Cisco built a special Falun Gong module into the Golden Shield".

Reading the abstract of brief, it looks like "built" is being used to me "specifically sold and configured hardware." So it's not necessarily some special asic, but rather machines configured specifically to target and identify Falun Gong members. Anyway, in the 21st century, the line between hardware and software that runs on dedicated hardware is pretty ill defined.

<comment><USER19> I'd encourage you to do more than read an article written by a party with a vested interest, and critically read the linked legal submission.

When reading such a court document, remember it is written by a lawyer (or team of laywers) with the intent (explicit or otherwise) of conflating many ideas.

Creative naming of artefacts, systems, roles, organisations, etc. are all employed to paint a picture - the most vivid, influential, negative picture possible - whilst still being technically factually.

Critical reading of the submission, filtering for technical details suggests that yes, there was indeed integration into existing networks (obviously), and existing databases/systems of record, maybe related to Falun Gong, but frankly the majority of the technical data looks like a description of any intercept network - whether for troubleshooting, traffic analysis, or lawful intercept.

</comment></comment></comment></comment></comment></comment><comment><USER7> Well boo hoo, Google is trafficking in human information, Facebook is trafficking in human information, FourSquare remnants are trafficking in human information, all realizing Orwell's sweaty nightmares. But a company that is affecting someone overseas, and not it's own citizens, is in the wrong?

<comment><USER20> Find me a specific incident perpetrated by GOOG/FB that has directly facilitated human rights abuses. This is not an accusation of a vague misuse of information. This is a direct action by the company that they _knew_ would facilitate torture, etc.

<comment><USER7> That's their business model - people are their product. That's how they make money. That's the only way they make money. They sell people to advertisers. What's not wrong with that?

<comment><USER21> "Sell[ing] people to advertisers" != "sell[ing] people to an oppressive regime."

<comment><USER7> That's one way to look at it. But Chinese view US regime as oppressive, and any opinion to the contrary would result in the downvote fairies of the 50-cent army slashing your karma to oblivion, in a similar way I lost about 25 points on this post.

<comment><USER22> Wat? Nothing you've said above or below would incite the ire of 50¢A. If anything they would upvote you.

</comment></comment></comment></comment></comment></comment><comment><USER17> > Cisco's attempt to try to leverage the Wassenaar discussions into legal > immunity for itself is unfounded and should fail.

More like attempts to get a civil penalty in the United States for business in another country should fail

<comment><USER23> Indeed. This is just a business selling a product someone wanted. Cisco is a multinational company; it makes no more sense to hold them to US law for products sold in China then to hold a Chinese company to US law for products sold in China.

<comment><USER4> You can say the exact same thing about bribing overseas officials, and yet we have the FCPA.

<comment><USER17> and yet, I feel the same way about the FCPA

bring it up when I run for office

<comment><USER24> I don't understand the objection. It's not like you suddenly lose all benefits and protections of US citizenship when you step over the border. If you don't want to follow these laws, move your company and renounce your citizenship. If you're not willing to do that then you need to follow the rules.

<comment><USER17> If you would like to talk about the FCPA, I never mentioned my objection.

The objection is that it undermines competitiveness in corrupt business environments. Business environments that are inherently corrupt whether the US entity participates or not. Kickbacks are a way of doing business in many jurisdictions, and then the US government levies a charge against you that is solved with: YOU GUESSED IT, ANOTHER KICKBACK. But its okay because the SEC and DOJ call it a settlement.

A totally unnecessary law that is enforced at the discretion of the administration.

<comment><USER24> I understand your point about lawsuit settlements being useless and hypocritical, but your main point about competitiveness is obviously not really relevant. There are tons of laws that undermine US business competitiveness in global markets. There are tons of laws that undermine domestic competitiveness too, that's just how our society is set up. Profit is not our first priority.

Anyway, when I referred to your "objection", it seemed like you were saying any laws affecting business outside the country are pointless and wrong. I don't think I know enough about the FCPA to discuss it specifically.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Cisco provides Internet Protocol services, not what is being done with them. If Electricity from France is exported through Russia to China, can they be held responsible too? And what about the oxygen produced by the US flowers? Are US farmers responsible for providing oxygen supplying the evil Communist regime with oxygen? That electricity was as crucial to conducting the dreadful things just like IP, and just like oxygen. This logic has no bounds.

<comment><USER25> Did you even read the article? Cisco (allegedly) built custom software to persecute a religion.

<comment><USER7> Yes, the article, yes, but I've also been a part of too many projects like this, when a technological marvel is being developed for a number of years, creating new capabilities, technology innovations, and driving efficiencies. Thousands of American man-hours were spent in creating this marvel, only for someone to summarily judge on a whim of what was that effort was about. It wasn't about what EFF said. That just simply wasn't in the RFP/RFC/RFWhatever.

<comment><USER18> Throwing up your hands and saying, "I just built it! It's not my job to think about how it's used!" is a cop out. It's also against the ACM Code of Ethics and Professional Conduct[0].

[0] [https://www.acm.org/about-acm/acm-code-of-ethics-and- profess...](https://www.acm.org/about-acm/acm-code-of-ethics-and-professional- conduct)

<comment><USER26> How about "it's just a tool"? You could say the same thing about knives, cars, Tor, Bitcoin or the Internet itself if you wanted.

You can't blame a creator for how a finished product is used. Their vision might greatly differ or it might not exist at all.

<comment><USER27> In this case though, the tool only had one purpose, and the creator knew exactly what the buyer would be doing with it.

<comment><USER26> They knew they'd use it to torture? I highly doubt that.

Monitor, perhaps. But that's very different. It's also not exactly specified what they built - was it generic and something they might be able to sell to corporations or other governments who want traffic monitoring or something designed only for this purpose?

<comment><USER18> > They knew they'd use it to torture? I highly doubt that.

Well them they've been living under a rock. It's been officially banned for 17 years, and there's literally a wikipedia article about it. [https://en.wikipedia.org/wiki/Persecution_of_Falun_Gong](https://en.wikipedia.org/wiki/Persecution_of_Falun_Gong)

<comment><USER26> It's entirely possible they assumed otherwise. Are you trying to say you must assume the worst possible intentions from your customers and that anything less should be illegal?

Surely Tor developers could have guessed it would be used for child pornography - should that have stopped them?

<comment><USER18> You're dealing with a known actor with a known track record against a known target. It's completely different. At this point it's being willfully ignorant[0] and you're being intentionally obtuse.

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

<comment><USER26> > You're dealing with a known actor with a known track record against a known > target.

People with anonymity aren't "known actors"?

You could just as easily argue willful blindness with Tor or end to end cryptography devs. And that's how I'm worried that a case like this will be used if it's successful.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER26> Yeah guys, sue the firewall vendor for your unencrypted internet traffic getting you fucked.

Are we supposed to forbid companies from complying with customer requests, even if they're unaware or just don't really care how those will be ultimately used? I know I'd implement similar things if it were requested of me.

I doubt this will be a popular opinion on HN, but I don't think Cisco was in the wrong here. Once traffic crosses your network boundary, it's fair game.

<comment><USER28> What is it with all the "yes of course you should help torture people if it's good for your business" in this thread? Hacker News is usually pretty laissez- faire, but this isn't the normal tone here.

<comment><USER22> _Hacker News is usually pretty laissez-faire, but this isn 't the normal tone here._

I think one can distinguish between _laissez-faire_ that amounts to "leave human beings to live as they will" and another concept that is "everything is permitted to the powerful". Actually IMHO it is a corruption to consider the latter to even be related to _laissez-faire_. However, many people conflate the two propositions, and would like the rest of us to conflate them as well.</comment></comment></comment>