Systemd-free Devuan announces its first stable release candidate 'Jessie' 1.0.0 - <AUTHOR> https://linux.slashdot.org/story/17/04/22/1822216/systemd-free-devuan-announces-its-first-stable-release-candidate-jessie-100 <comment><USER2> Actual announcement: [https://devuan.org/os/debian-fork/stable-candidate- announce-...](https://devuan.org/os/debian-fork/stable-candidate- announce-042017)

Reminds me of dragonfly bsd. Anyone still use that?

I stayed on 4.x until 6.x came out and later Scott Long actually admitted that 5.x was a bad release.

So Devuan now wants to continue Debian with tons of shell scripts to maintain while most other major distros move to systemd. That means package maintainers are moving to systemd. So Devuan will have to maintain separate init scripts for their distro mostly on their own.

I mean who in their right mind would write a 27 line init script when they could write a 7 line systemd unit?

<comment><USER3> _" I mean who in their right mind would write a 27 line init script when they could write a 7 line systemd unit?"_

27 lines is horribly optimistic. Complex services like Apache, MySQL, etc. could have initscripts hundreds of lines long, plus the library of support scripts that most distros ship to make the initscripts shorter and more manageable. Most initscripts are like 50%, or more, boilerplate that's the same across all services, but, it's still a pain in the ass to maintain them.

I will not miss initscripts, even if I might have some occasional complaints about systemd.

<comment><USER4> As I pointed out at [https://news.ycombinator.com/item?id=14169188](https://news.ycombinator.com/item?id=14169188) , there's a discussion of MySQL on the systemd-devel mailing list right now. Clearly some people in that discussion are not familiar with MySQL. Clearly some of the people in _this_ discussion are not familiar with MySQL either.

To help combat this ignorance, here are some actual systemd units:

* [https://github.com/MariaDB/server/blob/10.1/support-files/ma...](https://github.com/MariaDB/server/blob/10.1/support-files/mariadb%40.service.in) \-- MariaDB's official systemd service unit, 173 lines long

* [https://github.com/mysql/mysql-server/blob/5.7/scripts/syste...](https://github.com/mysql/mysql-server/blob/5.7/scripts/systemd/mysqld.service.in) \-- MySQL's official systemd service unit, 60 lines long

* [https://github.com/percona/percona-server/blob/5.7/scripts/s...](https://github.com/percona/percona-server/blob/5.7/scripts/systemd/mysqld.service.in) \-- Percona's official systemd service unit, 61 lines long

* [https://sources.debian.net/src/apache2/2.4.25-3/debian/apach...](https://sources.debian.net/src/apache2/2.4.25-3/debian/apache2.service/) \-- Debian's third party systemd service unit for Apache2, 15 lines long

So these figures that people are pulling out of thin air are erroneous by anywhere from half the actual length to an order of magnitude too small. And, ironically, the Apache systemd service unit _is using a System 5 rc shell script_ under the covers to do all of the work. The apachectl program is in fact a System 5 rc script from 1997, complete with start/stop/restart/status verbs.

<comment><USER5> Counting empty lines and comments is hardly the way to make your point. The mariadb unit file you linked to is only 34 actual lines, the mysql unit file only 22, percona 23.

And if you're writing your own unit files rather than ones for public consumption, you probably won't include lines like "Documentation=" and some other minor args.

<comment><USER4> Actually, counting lines, whether empty, comment, or otherwise, very much _is_ the way to make the point. The reality of actual service units that people write is not anything like the picture that was being painted. You erroneously think that the point is that short is good and long is bad, rather than what it actually is, which is _learn the subject and don 't make facile arguments based upon rubbish numbers plucked from thin air_. Actually looking at reality and counting, rather than pulling the number 7 from a hat, is part of that point.

I recommend reading the design of the Mewburn rc system, [http://jdebp.eu./FGA/run-scripts-and-service-units-side- by-s...](http://jdebp.eu./FGA/run-scripts-and-service-units-side-by-side.html) , and some of the entries in the systemd House of Horror. This whole "It's just writing 7 lines and it's easy!" argument falls apart when one looks at the reality of short service units that are either grossly wrong or turn out to be underpinned by the very things that their lengths are being compared to (which also means that it is still those rc scripts that are being used and maintained by software authors -- from 1997 in the example of apachectl), real world service units that are not short, other systems of long standing that are equally concise, and -- yes -- the reality that people _include commentary_ for maintainability.

One of the amusing things about this argument that is of particular relevance to the Devuan release is that back when Devuan was announced someone put up a "fork Fedora" WWW page criticizing the Devuan people, with a systemd service unit side by side with a van Smoorenburg rc script. It is sad to note that few people observed that the systemd unit described just one service, whereas the van Smoorenburg rc script ran _two_. Since you are on the subject of commentary, I invite you to observe which of the twain included comments and which did not, as well, and determine what point the "fork Fedora" people were in fact demonstrating. (-:

<comment><USER6> Thank you for putting this argument across so succinctly and with such good research behind it. Everytime I hear the arguments in favor of systemd, I wonder when these people actually come down from their ivory towers to do some real life work, where the rubber meets the road.

The argument of "lines of code" in a startup script is such a stupid strawman, it defies belief. I design and build large scale production system, and have exactly zero interest in the size (or complexity) of a startup script. I am interested in being secure in the knowledge that a control script handles all possible cases, including edge cases, that might present themselves during the forseeable lifecycle of the service/application in a predictable and understandable manner. If it takes a bit more time and work to understand these scripts, so be it - what are a few extra hours (which, incidentally, force you into a better understanding of the thing your working on - always a good thing) when seen across the timeline fo the service lifecycle?

systemd does a few cool things, and many blindingly retarded things. It is probably _really nice_ to have on your laptop, what with the fast boot times and all, but many of the things touted as "advantages" really do not hold up for server work. What do I care if my boot time is a few seconds less on a server? rebooting a prod server is usually a scheduled event, with (depending on the context) can call for anywhere between a 30 to 120 minute maintenance window.

The systemd people should be made to work building and maintaining a real-life backend environment for a while.

</comment></comment></comment></comment></comment></comment><comment><USER7> Systemd has cool things, but it is a monster. I'm glad this alternative exists.

<comment><USER8> Are you going to use it? Just curious.

<comment><USER9> I've been using Void Linux for a couple of weeks now on my new machine at work and I've been enjoying it a lot. It brings a BSD'ish elegance to Linux.

No issues hardware-wise either so far:

\- Intel Core i7-7700K

\- MSI Z270 Gaming Pro Carbon

\- Gigabyte GeForce GTX 1060 WINDFORCE OC 6G

\- Samsung 960 EVO 1TB (M.2, NVME)

<comment><USER10> I've been a Void user for a year and some months now. It's a great system. Xbps (the package manager) is so ridiculously fast, it puts zypper, apt and dnf to shame.

The base system is extremely light and nimble. Getting FDE up and running was a breeze, even with the fairly barebones installer, and it being a rolling release makes it very nice as well. It's maybe a bit too bleeding edge to run on servers, but as a workstation distribution, I can't fault it.

Disclaimer: I'm donating monthly to the project, and am currently trying to contribute a few servers to the build farm, so I'm probably very biased.

<comment><USER6> this looks interesting. I have been looking to replace ubuntu as my weapon of choice for servers for some time now. I am hesitant of the rolling release idea though. I _like_ the idea that my servers remain in a specific state, but remain up to date with security patches, and don't like the idea of spending time fixing update issues. How is that handled in Void?

</comment></comment></comment></comment></comment><comment><USER11> Previous thread on link to actual announcement:

[https://news.ycombinator.com/item?id=14173666](https://news.ycombinator.com/item?id=14173666)

</comment><comment><USER12> I'm glad the project exists and I hope it's stable enough to be adopted by companies in the future - my fear is that debian/rhel are entrenched now though.

Sidenote- So far this is not necessary, debian still has pluggable init systems as long as you don't add something which hard depends on systemd (like gnome)

I have done this one 5 of my own servers used for various things (including virtualhost/docker host) and it hasn't been an issue for over a year now.

[http://without- systemd.org/wiki/index.php/How_to_remove_syst...](http://without- systemd.org/wiki/index.php/How_to_remove_systemd_from_a_Debian_jessie/sid_installation)

<comment><USER13> > I'm glad the project exists and I hope it's stable enough to be adopted by > companies in the future - my fear is that debian/rhel are entrenched now > though.

It's not just debian/ubuntu/rhel, almost _everyone_ has moved to systemd, even Arch Linux and Gentoo. As much as I agree with the ideas behind Devuan, knowing and understanding all the intricacies of systemd is now required knowledge for anyone doing Linux-based software development or devops. After putting it off for a while, I've moved on and have learned systemd. It's not the way I would have liked for the Linux ecosystem to have moved (I thought upstart was a decent base to build on), but I'm clearly in the minority here.

What's bothering most at this point are the binary log formats. But that changes from week to week. But it's here to stay, so I'm getting used to it.

<comment><USER12> I have a standing policy regarding systemd.

It's fine for my desktop and laptop, it's not fine for my server.

My servers (generally speaking) do one thing and that thing absolutely can't be mucked with, systemd does a lot of what I would consider _mucking_.. binary complexity and weird integration I seriously dislike.

But it's actually beneficial on a desktop system.

My friends who have learned systemd are basically the same as you- "Eh, it's alright when it works.. and it's where everyone has gone so I guess I'll live with it"

I take exception to that statement entirely, this is open source, the land where you can replace your kernel with a BSD one and continue trucking with GNU ultilities as if nothing happened basically- why do we have to go backwards in usability for someones ego.

(and it's hard for me not to see it as one mans ego given his repeated hostility and arrogance regarding how other people use computers professionally)

<comment><USER13> > I take exception to that statement entirely, this is open source, the land > where you can replace your kernel with a BSD one and continue trucking with > GNU ultilities

Fair enough. And to be fair to me, I've been thinking seriously about moving my workstation over to a BSD. But even if I do that, I'd still have to deal with Linux for work at times.

</comment></comment></comment></comment><comment><USER14> As someone out of the loop with any of this (I've always just been content with using Debian as-is, and I haven't done much work with systemd), can someone explain why systemd is as bad as it seems to be? As in, why is it so bad that an entire major Linux distro was forked and created with the seemingly sole purpose of removing this program?

<comment><USER15> > why do people hate it?

Poorly-designed, poorly-implemented, half-baked ideas, legendary feature creep that presents a corollary to Zawinsky's Law, awful developers, clear political agendas in the devteam, Embrace-Extend-Extinguish tactics, against the basic UNIX concept of "many small apps that do one thing and do it well", an informal adoption of Windows service/logging techniques, political lobbying by the developers, and a literal RPC-based backdoor into the enforceability of the GPL.

<comment><USER6> _a literal RPC-based backdoor into the enforceability of the GPL_

Oh, I didn't hear that one before - any more info?

<comment><USER16> Some of the 4chan people trolling about systemd try to make people believe that communicating over tcp sockets, pipes or dbus with other processes is a "backdoor" around the GPL. Because a non-free program could talk to a GPL progam. Shocking!

</comment></comment></comment></comment><comment><USER17> Oh? Took em that long?

<comment><USER18> And why did they have to call it "Jessie"? That's the code name Debian used for their 8.0 release in 2015.

Come on... if you're going to fork a distribution, use different release names.

<comment><USER19> > [https://git.devuan.org/devuan/devuan-project/wikis/devuan- > co...](https://git.devuan.org/devuan/devuan-project/wikis/devuan-codenames)

They call Jessie a "Matching release", I guess the intention is to stress the fact that you can safely migrate from Debian without a reinstall.

<comment><USER8> They missed an opportunity there. Should have been "jessie-j".

... but I actually agree with duskwuff. It's hugely confusing and possibly even disingenuous to call it "jessie".

<comment> dane-pgp Devuan "jessie" is designed to match Debian "jessie" as much as possible, and is a one-off copying of the release name in order to mark the branching point in the histories of the two distros as they diverge slightly over time.

As the release announcement says:

"Devuan is the Debian that was and could have been. Our goal is to provide a viable and sustainable alternative. It is a new path, nurtured with your help and support."

so Devuan could be considered the true inheritor of the "jessie" name, and of the name "Debian", for that matter, although keeping that would obviously be too confusing.

<comment><USER8> Well, yes, I think we all got that point. It's just that Google's search bot may not. I'd be absolutely fine with something mechanically derived from "Jessie" (etc).</comment></comment></comment></comment></comment></comment>


Top 5 Surprises When Starting Out as a Software Developer - <AUTHOR> https://henrikwarne.com/2012/08/22/top-5-surprises-when-starting-out-as-a-software-developer/ <comment><USER2> The comedy numbering ironically enhances the article :-), but I found this simple statement to be very true "The complexity of the system comes from the aggregation of many simple parts, not from any complex parts." In fact, in one of my side projects outside work (and one which will be open source and subject to the court of public opinion in due course), this has been something I have considered very important. I'm always impressed how simple language can convey such vital concepts about such complex matters.</comment>


What are the math heavy CS areas with high demand? - <AUTHOR> I'm an undergraduate student who's thinking about a double major in computer science and applied math. I'd like to choose a math heavy, high demand computer science area to specialize in. I like the utility and elegance of math, and I'm trying to find a CS area that uses many different branches of math.
I'd also prefer if the area changes relatively slowly compared to other computer science areas (so maybe not security).
I'm currently thinking that graphics or machine learning would be high demand areas that use a lot of math, but I'm looking for more suggestions and advice. Thanks. <comment><USER2> I think you're setting yourself up for disappointment with unrealistic expectations.

People that are in demand are programmers and good programmers code 90% of time. Some people, including yourself, suggested graphics but read the history of DOOM and read its source code: despite being a cutting edge technology at the time, 90% of the code is the non-math drudgery: reading and writing files, networking code, performant array and string classes, making the code cross- platform and cross-compiler, debugging code etc. Carmack certainly knows his math but he knows his C even more.

Math might be helpful/necessary in some fields but if you're thinking about being a programmer (as opposed to academic/researcher), don't expect math to be more than 10% of your time. The rest is the same drudgery that the rest of us has to deal with on a daily basis.

<comment><USER3> This is an excellent point, although I disagree with 90%. Lots of a developer's time goes into QA/testing, design, and conversations about requirements and goals. I think developers spend much less than 90% of their time with an IDE open.

<comment><USER4> Some do and some don't. It obviously depends on what you're doing.

</comment></comment></comment><comment><USER5> How about computational finance? Finance is what drives pretty much all modern economic activity around the world, and the fundamental concepts in finance haven't changed for hundreds of years, which takes care of both the stable/slow-changing and in demand criteria. It is also heavily mathematical if you choose to focus on the quant side, with probability, statistics, stochastic calculus, PDE's, and even measure theory being used in some form. Also, software is becoming an increasingly important part of modern finance, with things like electronic exchanges, high frequency trading, complex derivative/option pricing, prop trading, and actuarial science.

And the skills you'll learn in finance will be transferable to a range of other fields - advertising and cloud distribution, which pretty much drive most tech startups' revenue, heavily rely on concepts and techniques that you'll learn in finance.

Here's an interesting course you can take a look at: [http://www.algorithm.cs.sunysb.edu/computationalfinance/](http://www.algorithm.cs.sunysb.edu/computationalfinance/) Note that this is by steven skiena, the author of the well-known Alogrithmm Design Manual. Khan Academy also has a pretty extensive series on modern finance.

<comment><AUTHOR> Thanks for the great response. I'll also look into computational finance.

</comment></comment><comment><USER6> I think your thinking is right, machine learning is probably a good area as far as jobs go. Depending on your CS interests you'll find what areas of math they use most. AI / machine learning, learn lots of probability and statistics. High-performance, scientific computing, graphics, maybe more of a focus on linear algebra. Algorithms or theory or programming languages, lots of discrete math, logics, algebraic structures, etc. Of course it's good to get a good grasp of the basics of all these, since they're definitely not exclusive, and which you'll get from your degree, and beyond that, well explore, and enjoy!! Good luck!

<comment><AUTHOR> Thanks for the comment. High performance and scientific computing jobs seem a lot rarer than AI / machine learning jobs, which is why I think the latter is a better choice for me (I have no preferences between those areas right now).

I'm also fairly interested to see how AI / machine learning develops in the future, and I think it will involve more math, so it definitely seems to be a good choice.

</comment></comment><comment><USER7> Go for computer vision/pattern recognition. There seems to be a shortage of enough 'good' people for them - even in HN I read very low quality vision related blog news as if they are very good ones... (I remember an image rotation article a few months back...). There are very good CS guys here but vision/learning seems to be a bit underrepresented...

I'm getting pretty good contracts for doing research work from pretty big US companies/startups and I'm not even located in US...

I did electronics engineering in undergrad, signal processing in masters and computer vision in phd - also took some courses in physics. I sort of wish I did some formal math courses (optimization/graph theory/variational calculus) as well. Applied math will help you a lot in CV/ML domain so that's a pretty good idea for you to get it. ML is very hot and there are lots of people going after that but don't forget to check out the geometric part of the cv - finding camera calibrations, stereo, multiview stereo or the realtime stuff as cv is being used more and more in mobile apps... Computational photography is my new focus these days - I'm getting more queries about that... PM me if you like more detailed info...

</comment><comment><USER8> For a glimpse into machine learning, check out Professor Yaser Abu-Mostafa's "Learning From Data" course from Caltech. The videos are online for free ([http://work.caltech.edu/telecourse.html](http://work.caltech.edu/telecourse.html), [https://www.edx.org/course/caltechx/cs1156x/learning- data/11...](https://www.edx.org/course/caltechx/cs1156x/learning-data/1120)), and its corresponding book is on Amazon ([http://www.amazon.com/Learning-From- Data-Yaser-Abu-Mostafa/d...](http://www.amazon.com/Learning-From-Data-Yaser- Abu-Mostafa/dp/1600490069/)).

Also Professor Ng's course from Stanford ([http://cs.stanford.edu/people/ang/?page_id=22](http://cs.stanford.edu/people/ang/?page_id=22)).

</comment><comment><USER9> Actually computer security doesn't change very fast compared to other industries, and is probably a very good fit if you have a math background. But machine learning would be fun too. Stay far, far away from graphics if you are worried about rapid change.

But really, find what you're interested in and do that. It may involve trying them all out, or reading up some reference works on each. Making an important life decision based on "what's in demand" is a very poor choice.

<comment><AUTHOR> Thanks for the advice. I actually didn't know that graphics changed very fast. I'm only partly making this decision based on what's in demand. As long as the area is math heavy and broadly applicable, I'll probably enjoy it.

Also, I was thinking of "in demand" with a more long term view. I would think that security and artificial intelligence would continue to stay in high demand well into the future.

I mostly just want to choose an area where I can use many different branches of math, so I keep my math skills in practice. I also like writing code, as long as it involves math and is not boilerplate or repetitive.

<comment><USER10> Graphics programming isn't _that_ fluid. A lot of hay was made about moving away from fixed-function to the shader model, but since then it's been iterative API changes and growth to better target certain goals. OpenGL is throwing overboard most of the dumb stuff from its earlier versions and is turning into a pretty nice API overall.

Now there's a lot of innovation in terms of specific techniques to achieve certain visuals, but that's the same as any other field - read the paper, implement it. The core techniques should be fairly static for at least the next 4-5 years (because it'll probably take that long for GLES 3 to be widespread) and evolve incrementally after that.

Change is not something you should be worried about there.

<comment><USER11> Very inaccurate and misleading. You're confusing learning an API (easy) with doing actual graphics programming. Graphics programming involves deep understanding of the target hardware. The level of sophistication of the hardware determines which graphics techniques to pursue for the best results. Often it's a balance of your ability to optimize along with achieving the highest fidelity of output.

For example, availability of floating point render targets -- how do you use them, and for what? How does the hardware handle them? It's different across devices even in the same generation! How does the hardware optimize rendering of opaque vs transparent objects? It's different across devices. Let's get really specific -- how many cycles does a medium precision square root take? Do you use pow or not? How much does a texture lookup cost? Hopefully you can guess the answer by now -- it's different on every device.

It gets exciting when a blend of API and hardware (which includes additional supported and unsupported extensions, which yes, also change with every OS/hardware combination) requires the invention of a novel technique to fully utilize the resources at hand. It's a continual balancing act of visual fidelity and performance with the end goal of squeezing out every last bit of memory and computational bandwidth.

Enough about hardware which is really just an important detail of the field. Being a great graphics programmer requires keeping up to date with the community of blogs and published papers, all of which are a constantly updating source of experimentation and novel techniques. This doesn't even touch on the artistry involved. Being at the top of the field takes extreme dedication and is absolutely not a "learn once and refresh now and then" activity.

Summary: real-time graphics programming is one of -the- most difficult fields to stay at the forefront.

</comment></comment></comment></comment><comment><USER12> Quick question- are you aiming for a computer science/software job with lots of math, or a math job that involves computing?

It's an important distinction. The people who are doing math with the help of computers (rather than doing software that uses math) are _much_ more involved in mathematics.

<comment><AUTHOR> I was primarily thinking of software jobs that involved lots of math, but that's partly because I'm not really aware of what math jobs are out there (and most math jobs seem to require a graduate degree, which I'm not interested in pursuing right now).

</comment></comment><comment><USER13> Let me offer a different advice: go for computer science and a major with practical application, e.g. biology, chemistry, medicine, economy, or even linguistics.

In our age we are increasingly seeing technology changing other fields. But there are relatively few CS majors who are proficient in another domain and there are relatively few non-CS majors who can engineer/program well. There is a lot of demand for people who can program and have domain-specific knowledge, e.g. in computer vision, market prediction, natural language processing, etc.

The other advantage is that, even if the demand for computer science majors collapses, there may be opportunities in the other field (well, perhaps not in linguistics ;)).

</comment><comment><USER14> I did a dual degree in Computer Science and Math. My recommendation is to take the classes in both areas that you find the most interesting, with no concern for your career. Your career will span decades and unlikely to involve a steady focus on a single area, as either the environment or you will change. Personally, I've been working for 11 years in a variety of roles (PM at Microsoft, Product Analyst at a SF startup, Quantitative Developer in finance).

You never know where the most valuable lessons will come from and how they will pay off. For example, my second Real Analysis class leveled up my ability to communicate clearly and precisely in a way that no writing class could have. Graph theory, automata theory, numerical methods, abstract algebra, and statistics have each made their way into my work, sometimes in ways that I never would have expected.

If you want to ignore this, Machine Learning.

</comment><comment><USER15> I graduated two years ago with this exact degree from University of Waterloo. My favourite subjects were Quantum Mechanics, General Relativity, and Computer Graphics. Throughout my undergrad I was somewhat hoping to go into game dev to work on graphics or physics engines. I ended up getting a ton of internship experience doing web dev, and now I work at Google. The math degree ended up being more of a hobby, and I'm ok with that. I am pretty lazy and so I found it hard to stick to my guns about utilizing both degrees on the job. You have to be prepared to move a lot, and to pass on very good opportunities. I prefer using my math knowledge for side projects and keeping it from becoming a job, though maybe thats just sour grapes.

</comment><comment><USER3> There's a machine learning path that fits this: study math/stats/algorithms, get a graduate degree, work on research in industry or academia.

Your question is somewhat vague, though. Do you want to spend the majority of your time working on math? Even machine learning researchers only spend a majority of their time on annoying data cleanup issues, model coding, or data infrastructure. Further, as you become more successful you worry about grant- writing, lab management, or stressing about tenure (or, if industry, department cuts). What's your motivation for entering a "slow" field? Regression is going nowhere but ML's research frontiers are expanding rapidly right now.

Note also that you won't land this work with just an undergrad degree, so you should add another 2-5 years of schooling if considering ML.

</comment><comment><USER16> I do Computer Vision/Machine Learning for a living, but would caution a little against super-focusing on a narrow area. AI in general is known for its AI winters, where jobs dry up and opportunities are far fewer and you could have a lot of people with undergraduate in ML (or whatever that era's AI is called). Now that said, who knows may be you might find it interesting enough that you may decide to go for graduate school. If I was giving advice to my younger self, it would be to learn Algorithms, Linear Algebra, and Probability really well. Get exposure to Machine Learning, and a little bit of Linear Programming. But if you really want to be able to apply machine learning or math heavy subjects to work, it might be a reasonable idea to do a Masters.

</comment><comment><USER17> Operations research, optimization, disccrete math, machine learning, computer vision.

</comment><comment><USER18> Graph theory - it has an immense amount of overlap with computer science.

<comment><USER19> Sure, but is there work in graph theory outside of academia? Obviously there are people who use it to solve real problems but I'm unsure if you can really get a job as a graph guy.

<comment><USER18> It depends, when I worked at a big company that produced a CAS (computer algebra system) they had an entire team for building graph theory ideas into the software. When I worked at a startup working on urban traffic congestion, there was just one guy who had done some surface-level reading one weekend on max-flow-min-cut and some basic algorithms. Knowing graph theory definitely helped me get that startup job (and take over as "the graph theory guy")

</comment></comment></comment><comment><USER20> You should definitely check "Operational Research".

Although it is not as fun as machine learning and computer graphics, there is a strong industrial demand for strong mathematicians. [http://en.wikipedia.org/wiki/Operations_research](http://en.wikipedia.org/wiki/Operations_research)

Many of the work do not involve much coding but require advanced mathematical skills to transform the original problem into something that can be send to a "solver".

</comment><comment><USER21> I agree with adrock: take classes you think are interesting without a career in mind. Things will change way too much and way too quickly for you to plan a career around courses in college. The main thing you need to learn as an undergrad are thinking and communicating skills.

Also, here's a good video that might give you some ideas:

[http://www.youtube.com/watch?v=0tuEEnL61HM](http://www.youtube.com/watch?v=0tuEEnL61HM)

</comment><comment><USER22> For a good overview from one of the big math guys: [http://blog.stephenwolfram.com/2013/03/talking-about-the- com...](http://blog.stephenwolfram.com/2013/03/talking-about-the- computational-future-at-sxsw-2013)

Otherwise, I'd suggest taking a bit of time to think about the sector like a entrepreneuring hacker. Look beyond the well worn paths and take advantage of your current naivite.

</comment><comment><USER23> This article, "The Shape of Math to Come",talks about applying topology to large data sets. [https://www.simonsfoundation.org/quanta/20131004-the- mathema...](https://www.simonsfoundation.org/quanta/20131004-the-mathematical- shape-of-things-to-come/) Might stimulate your thinking.

</comment><comment><USER24> Machine learning.

If you also happen to be interested in finance, or think it might interest you at some point later, you could transition to quant finance (where machine learning will also be very usefull).

See if this piques your interest for instance: [http://janestreet.com/technology/](http://janestreet.com/technology/)

</comment><comment><USER25> In my view, I vote for machine learning. In order to study better in machine learning area, you need to have better understanding in statistics, probability, matrix, optimization and numerical computation. machine learning just like a model, the important thing is that know how to build, it exactly mathematics can help us.

</comment><comment><USER26> DSP related jobs are pretty math heavy, albeit in a very particular focused area of math. These jobs are in demand and highly specialized, so you aren't going to see a thousand job postings, but when you find one, if you are good, they will want you.

</comment><comment><USER27> Formal verification of software and hardware systems relies heavily on mathematics, as well as an obvious core of computer science. (Not 'number' math, per se, but logic math.) Static analysis of programs, proofs of correctness, et cetera.

</comment><comment><USER28> Machine Learning and its subfields or Actuarial are the top picks I've seen.

<comment><AUTHOR> Thanks for the reply. Based on the answers so far, machine learning does seem to be a good choice.

</comment></comment><comment><USER29> Concurrent processing and database design.

But for second major I would recommend some 'soft' science, such as finance, economics or accountancy. Most people on those fields do not know high math.

</comment><comment><USER30> Quant / algorithmic trading

Computational biology

Scientific/industrial simulation

</comment><comment><USER31> Machine learning is very heavy on statistics and mentally engaging enough, the field is called data science and there is a very high demand for them.

</comment><comment><USER32> Bioinformatics.

</comment><comment><USER33> econometrics + algorithmic trading

</comment><comment><USER34> Stay away from math.

I would caution you that you haven't seen `real math` as an undergraduate who still has time to decide on your major - you will find that real math is not elegant. Math is baroque, infinitely deep and you success will entirely depend on the community and the perspective you get from your mentors. For example, conversations I had with math professors were able to frame problems so that I could look past the equations and understand the big picture. Then I had to describe it in the precise language of mathematics. I quickly realized that math wasn't that precise of a language - just esoteric hand waving. I then realized that Mathematics is a language that is unintelligible without context.

When I did my CS algorithm classes, I skipped all the lectures and spent 8 hours doing homework from a textbook - my school is rated 3rd in the US.

If you only take Math classes you will not find a job or find yourself in a situation where you have not learned the creative skill necessary to extend upon existing solutions.

<comment><USER35> The courses he's taken so far should give him a good understanding of what applied maths is (which is the type that the OP is thinking of majoring in). The scarier, more baffling variety of maths is pure maths. In the US system, half-majoring in applied maths, you shouldn't have to do hardly any pure maths if you wanted to avoid it.

Although pure maths can be extremely hard and initially seem quite arcane, I think you paint a picture of it which is subjective and in some cases factually wrong.

I agree that maths is infinitely deep and complex, but that is exactly why maths has developed to be as elegant as possible. Good mathematics is about developing structures and analogies that allow people to drastically simplify and improve their thinking about complex situations.

You are objectively wrong when you say that maths "isn't that precise of a language". Modern maths is extremely precise and the level of rigour is leagues ahead of CS. In the early 20th century, mathematicians were worried about how precise mathematics and its proofs were. To combat this crisis, mathematicians boiled down the inherent assumptions in maths to a handful of axioms, from which the entirety of maths is logically proven. Maths is not esoteric hand waving.

I studied maths at university and in my experience, there are lots of opportunities to apply my degree to the real world. Even in a more standard software engineer role I've been able to use my maths knowledge to quickly develop solutions to problems my CS peers are struggling with (and visa versa). If anyone's interested in maths, do consider taking courses in it. It's a valuable, rich subject which has plenty of real world uses and plenty of jobs waiting for you at the end

</comment></comment><comment><USER36> Go and be a quant at a hedge fund. All the maths (statistics, probability) and programming you could ask for (and people in the back office to do the boring bits for you).</comment>


Ask HN: Why developers hate scraping? - <AUTHOR> Over time we've built products like : adplexity.com (5million USD annnul revenue, 100K annual expense)<p>But why aren't there more developers interested in scraping products? <comment><USER2> The legality is complicated, the tech challenges are hard, and, to be honest, it just feels a bit _off_ to profit from other people's work without giving back to them.

Question for you - why do you care what people think if you're making $4.9m profit a year?

<comment><AUTHOR> In absense of competition, life is pretty boring.

A scraping company can only pickup limited number of ads from limited profiles.

If more companies start scraping, scam and advertisers will be caught faster and prosecuted once vigilantes use these tools to report fraudlent ads.

</comment></comment><comment><USER3> 5mil/yr on 100k/costs sounds pretty interested to me ... what exactly are you complaining of? Not enough API users? When I click your API tab, it just has a "contact for pricing" pop up. You'd probably get more interest if you had open documentation/some examples of use cases/upfront pricing.

</comment><comment><USER4> The fun part is knowing you are being scraped and adding tagged data values that you can scan for elsewhere on the web to see where your scraped data is going

</comment><comment><USER5> Says who? I particularly enjoy it and find it extremely entertaining and a great opportunity to brush up my skills, while making some money in the process.

</comment><comment><USER6> 1)Legality 2)Morality

<comment><AUTHOR> 2\. About morallity, ad tech companies are hyper targeting people with ads which some evil advertisers take advantage of and bypass moderation.

Ads are targetted in such way that expert users and regulators do not see them but the naive ones get tricked.

If we scrap ads using different visitor profiles and list all ads, along with offensive/malware ads... wouldn't it help regulators moderate ads?

So is it still morally wrong to go against ad tech companies by scraping their scam/tricky ads?

<comment><USER6> I was referring to scraping content, not ads. Not sure what benefit ad scraping provides and to what end ?

<comment><AUTHOR> 1\. Sell data to ad regulators

2\. Sell data to competitors of the advertisers, turning online advertisement less effective in long term and easier in short term.

3\. Sell ads data to activists etc...who will sue the company running misleanding ads and defrauding consumers.

<comment><USER6> I did not know there was a market for this.

</comment></comment></comment></comment></comment><comment><AUTHOR> Also what's the latest tech stack for easy scraping?

Most new developers are not able to scrap using regex, css selectors etc... So is there any new advancement in scraping field?</comment>


A blog to help none-technical folks understand the porous nature of security - <AUTHOR> https://beatyconsultancy.co.uk/blog/how-secure-is-secure-enough/ <comment><USER2> If only more business owners could read this one! Useful and quick intro to security without needing a compsci degree :)</comment>


"Shit I cannot believe we had to fucking write"–filling Wikipedia's gender gap - <AUTHOR> https://en.wikipedia.org/wiki/Wikipedia:Wikipedia_Signpost/2016-02-17/Op-ed <comment><USER2> Great article, lots of pearl-clutching going on in the comments.</comment>


1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond (2001) - <AUTHOR> https://www.gamasutra.com/view/feature/131503/1500_archers_on_a_288_network_.php?print=1 <comment><USER3> From another Ensemble Studios interview with Gamasutra (emphasis mine):

"6\. We did not plan for a patch. The version 1.0a patch, even though it was a success, was problematic in that as a company we had not planned for it. THE GENERAL ARGUMENT IS THAT IF YOU KNOW YOU ARE GOING TO NEED TO RELEASE A PATCH, THEN YOU SHOULDN'T BE SHIPPING THE GAME IN THE FIRST PLACE."

Those were the days!

<comment><USER4> Which is a ridiculous statement - I remember the number of 90's games that were utterly unplayable in that they'd crash constantly or do other ridiculous things (The remake of Temple Of Elemental Evil would actually delete your C: drive upon uninstall). I feel like things haven't gotten worse as far as the need for day 1 patches, they've just gotten more pragmatic on their deployment.

<comment><USER5> As a dev on modern AAA titles - the main driving reason behind Day 1 patches is that you do the first submission to Sony/MS/Nintendo 2-3 months before the game is about to be released. We just did a 1st sub on a title coming out in November. That means you still have potentially hundreds of people on the project for few months until the game actually comes out - so they might as well keep working on the game and their work is released as day 1 patch. Obviously we don't purposefully leave bugs and features until day 1 patch - but in the extra time we might as well add a few things and fix some bugs.

<comment><USER4> I'd never assume you left them on purpose. Have you worked with Steam? What sort of turn around time do they require?

<comment><USER5> Steam is super quick, especially with a company of our size, we basically have the necessary permissions to publish when we want to, it requires very little from Valve.

</comment></comment></comment></comment></comment><comment><USER6> And in 2018 with Internet connections a bit better than a 28.8k modem and hardware slightly more powerful than Pentium 90, the HD remake of AoE2 fails to deliver a reliable multiplayer gameplay, having lag of multiple seconds and at least as many out-of-sync bugs as the original game did 20 years ago. It should be closer to 150 than 1500 archers with the HD edition.

<comment><USER7> This is one of the many reasons why I refuse to buy AoE2. The "new" version does not offer multi-platform support, it does not offer a stable multiplayer, it requires half a gigabyte of RAM instead of the previous 32MB, and it still costs as much as I pay these days for some of the smaller but brand new games (not one they made profit on for almost twenty years already without any maintenance).

<comment><USER8> if you play it on voobly versus steam, there is almost no lag and plays super smooth

</comment></comment></comment><comment><USER9> As a low latency coder, I found it fascinating.

It turns out the game is synchronized by each player having the commands for each 200ms "turn" a couple of turns in advance, and then playing the actions so that the same happens on all player's machines. That includes sending random seeds around. And then there's a load of provisions for lost packets, slow machines and thus forth.

Is this how most games do it? I would think something like WoW couldn't do this, and indeed sometimes I'd see glitches where a character would blink (like the spell) to somewhere new.

<comment><USER10> Welcome to the world of game network programming :) it's an exciting place!

Yes, you have to be more-or-less real time, so you must compensate for latency, unreliable/slow connections, jitter, etc. If you're used to the web and the request/response model, you have to throw all of this out the window. The 200ms delay "hack" is pretty much standard practice, the window will differ from game to game (smaller in FPS's), but it's usually there.

Most games use UDP, since transmission of any single package doesn't have to be reliable, and in case some packets are lost, it's cheaper to re-calculate the state diff and resend one slightly larger package instead of two (or more) standard-size packages. Sometimes this can result in a "blink".

With sending around seeds and other "secret" data, you have to make a trade- off, since sending too much allows for cheating (map hacks, wall hacks, etc), but sending too little will create unpleasant surprises (enemy "teleporting" from around the corner).

Also often it's cheaper to run most of the calculations on the client (even including the critical stuff like hit tests, damage calculation, etc), and only occasionally verify the results on the server - especially in MMO's. Clients that are found suspicious get verified more often, and eventually get penalized / kicked.

Source: never actually wrote a networked game, but love reading about this stuff.

<comment> pure-awesome > Source: never actually wrote a networked game, but love reading about this > stuff.

Got any favourite sources where I can learn more? It sounds pretty interesting!

<comment><USER10> Sorry for a late reply! Some good starting pointers:

[https://www.gamedev.net/](https://www.gamedev.net/) [https://www.reddit.com/r/gamedev/](https://www.reddit.com/r/gamedev/) [https://www.reddit.com/r/truegamedev/](https://www.reddit.com/r/truegamedev/)

Some interesting case studies are anything by Id Software (Quake etc), and Lineage (that's mostly tales of a friend who is a hardcore player and a developer; he'd have the relevant source code open in a separate window while playing).

<comment> pure-awesome Cool, thanks.

</comment></comment></comment></comment></comment><comment><USER11> > Part of the difficulty was conceptual -- programmers were not used to having > to write code that used the same number of calls to random within the > simulation

Can anyone grok this? I can't see why this (each player's simulation making the same number of calls to random) would ever not be the case if all players are running the same patch of the game and are executing the same commands.

<comment><USER12> (Original author here) - here was a really hard-to-find bug - in some instances more than one quantity of fish could be placed in the same location - that meant the game would work fine until someone fished that same fish the second time and the fishing boats would diverge in the different simulations. The world sync check only counted the tile contents so we didn't see it. - There were actually two RNG's in the game, one was synchronized with the same start seed on all machines (basically the same random pool) for combat and whatnot - the other was unsynchronized and used for animation variance, etc -things that weren't gameplay related. Not knowing when to use one of these specifically (e.g. animals facing seems like animation but definitely affected gameplay if they could be hunted) could alter the code path and cause an out- of-sync condition.

<comment><USER13> Why even keep the unsynchronized RNG? I'm guessing it was more performant when used appropriately?

<comment><USER14> If you don't have an unsynchronized RNG, then any unsynchronized content can't use an RNG, and unsynchronized content is important for improving a game's experience by using local resources for things that don't really need to be shared or sent over a network.

For example, maybe in a FPS, part of the non-gameplay-critical graphics use particle generators for a cool effect that not all players see (because it's behind a building for some of them and thus doesn't even need to be rendered); if these generators used a synchronized RNG, then all players would have to do computations for every particle effect happening anywhere, just so that the combat and more game-important RNG values would be in synch when they really need to be.

</comment></comment></comment></comment><comment><USER8> For anyone complaining about aoe2 lag, it is mainly just the version on steam.

if you apply the compatibility patch, you can load your steam copy onto voobly for free and play with next to no lag. The difference is night and day plus better features with Voobly.

<comment><USER15> Thanks. Is there any reason why don't they just fix the steam version?

</comment></comment><comment><USER16> >For RTS games, 250 milliseconds of command latency was not even noticed -- between 250 and 500 msec was very playable, and beyond 500 it started to be noticeable.

I wonder if the rise of competitive RTS has changed this guideline. In SC2 people will start to complain if their ping to the server is more than about 130ms, and anything above 150ms starts to become painfully noticeable.

In Brood War being able to play on "LAN Latency" was a always a huge deal---to the point that unauthorized third party ladder systems enabled players to play at "LAN Latency" even when battle.net official didn't support it.

<comment><USER12> Human cognitive reaction times are a lot mroe latent than connections are now. The quality of play percieved by the players in the studies I did back in the day was much more about consistency of responsiveness and not that direct number of milliseconds. Best possible Human reaction time for cognitive tasks is still around 250msec for most players - it would be great to see updated information for tournament players (who are a different class of player) on what their actual perception-to-action time is in their favorite games. AOK and beyond code used an adaptive scaling system to go faster when the network would reliably move packets more quickly - so it would auto-adjust to 'lan speed' (actually a combination of the best render speed of the slowest PC plus an estimate of the round-trip latency). Also - the command confirmation is not waiting for RT latency - you are getting confirmation when the command goes into the local buffer - 'command accepted' \- once that happens it is going to execute so you get the confirm bark sound from the unit or building queue - <USER2> the movement arrow triggers. The games actually do their command simultaneously when all machines are executing the turn.

<comment><USER17> >Human cognitive reaction times are a lot mroe latent than connections are now. [...] Best possible Human reaction time for cognitive tasks is still around 250msec for most players

This is an important realization. Our brain can perceive reasonably fast actions, but our reaction is much slower. Under good conditions we can easily tell a 60fps animation from a 30fps animation from a 10fps slideshow, but the fastest reaction time we can manage is around 100ms (the time one frame is visible at 10fps).

We are reasonable tollerant to latency because our brain has quite high latency, and all our actions have to account for that (for example the point in time where you decide to release a ball you are throwing is very different from the point it is actually released). On top of that, many real-world interactions behave similar to latency (e.g. springs). What throws us off is inconsitent latency, because then we are suddenly not able to predict when to perform an action in order to have the effect at the desired point in time.

<comment><USER18> Yeah, there are a few nuances to latency numbers.

The 250ms pure read-react time deals with arbitrary events, but when we can chunk reactions into a practiced technique our precision goes way up, to nearly the individual millisecond: thus musicians can play rapid passages with unusual rhythms in time if they have time to plan and prepare, but they lose this ability if dealing with unusually high latency(extreme reverb, amp across the stage, digital audio with huge buffer sizes). The technique, after all, is based on fast confirming feedback that your execution is correct.

And like you say, "bouncy" latency is even more disruptive. We can adjust to a small and consistent lag, but inconsistency will degrade any level of skill.

<comment><USER19> Agreed on all counts.

> And like you say, "bouncy" latency is even more disruptive

The technical term for this is "jitter". Networking and telecoms people pay a lot of attention to this metric, both for the reasons you cite and because jitter is much more noticeable than high-but-constant latency in voice or video communications.

</comment></comment></comment></comment></comment><comment><USER20> A classic. I've been working on doing a minimal Python implementation of some of the concept here: [https://github.com/eamonnmr/openlockstep](https://github.com/eamonnmr/openlockstep)

<comment><USER21> Nice! Is this in a working state?

</comment></comment><comment><USER22> For the interested, the unannounced game referenced in the article, "RTS3", is in fact Age of Mythology, released in 2002.

</comment><comment><USER23> Would it be possible to apply Delta CRDT's to something like game netcode?

<comment><USER24> I've been wondering the same. Thanks for asking.

</comment></comment><comment><USER25> I've forgotten all the auto-taunts except "Sure, blame it on your ISP!"

<comment><USER26> 14: start the game already!

<comment><USER12> My personal favorite. !14 !14 !14

<comment><USER27> My friends always used to do:

A) Build a navy! B) Stop building a navy! A) Build a navy! B) Stop building a navy!

</comment></comment></comment></comment><comment><USER28> The competitive community is very small, but it's growing (which is amazing for a game released almost 2 decades ago).

</comment><comment><USER29> Don't try this at home kids. Floating point determinism is a huge problem, especially with different chips/architectures/compilers out there.

<comment><USER21> I'd love to hear more about this, any links I can look at?

<comment><USER29> [https://gafferongames.com/post/floating_point_determinism/](https://gafferongames.com/post/floating_point_determinism/)

Here's a decent primer on it. In general chips implement floating point math differently and you could google terms like "floating point register" and "floating point stack" to get you started. Most importantly, floating point math is not generally commutative due to precision/rounding.

<comment><USER21> Thanks!

</comment></comment></comment></comment><comment><USER30> If only it scaled to 300 archers over broadband.

This game is amazing and has aged so well. The only downside is the network pauses and out-of-sync errors that inevitably happen 40 minutes into a two- player game.

I can't remember the last time I didn't set the population limit to 75 in an effort to alleviate network issues.

<comment><USER31> play on voobly instead, its so much more stable

<comment><USER32> Why? What has Steam done that makes it so bad?

<comment><USER30> No I found the Steam version to be a faithful reproduction of the original. I had these out-of-sync issues back in the days of passing age2 around as a folder at LANs.

</comment></comment></comment></comment><comment><USER33> My first 'network' game was Fire Power on the Amiga - must have felt exploring a new world writing those early network games.</comment>


Constructor Theory Solves the Riddle of Life - <AUTHOR> http://aeon.co/magazine/science/constructor-theory-solves-the-riddle-of-life/ <comment><USER2> This article begs the question on "Biological replication and self‑reproduction are in fact such stupendously well‑orchestrated physical transformations that one must explain how they are possible under the simple, no‑design laws of physics such as ours. This additional explanation, which was not included in the theory of evolution, is essential for that theory to properly explain how living things arise without intentional design – to close the explanatory gap."

From my point of view, chemistry more or less explains how cells work, and we don't need a quasi-platonic explanation of how the universe is designed to allow for a grass-eating goat machine to explain this at all.

<comment><USER3> I couldn't agree more, this article is pseudoscience garbage.

The author appears to be one of the primary proponents of so called 'constructor theory'. I dug a bit into their research and it's setting off all of my skeptic alarms. Their primary research papers appear to be typeset in Word for christ sake.

To nitpick some particular aspects of the theory and article:

From the wikipedia article on constructor theory:

"Current theories of physics based on quantum mechanics do not adequately explain why some transformations between states of being are possible and some are not. For example a drop of dye can dissolve in water but thermodynamics shows that the reverse transformation, of the dye clumping back together, is not possible. We do not know at a quantum level why this should be so" [1]

An egregiously incorrect statement. This is basic statistical mechanics. The dye dropped into a solution diffuses and doesn't return back into the original drop is very simple: there are very few configurations of the dye/solution system where the dye is in a concentrated drop and a mind bogglingly large number of configurations where the dye is diffused throughout the solution. Nothing in physical law forbids the formation of a concentrated drop from a diffused solution - it's just ridiculously implausibly unlikely.

In fact, due to time reversal symmetry we know that the formation of the concentrated drop is explicitly allowed. Here's a little gedanken experiment: put a drop of dye in the solution and let it diffuse. After some time t, reverse all of the momenta of all of the atoms in the solution (you are God). At time 2t the dye will reform in the original concentrated droplet. But here's the zinger: keep watching and that droplet will again diffuse across the solution! Keep letting the clock run backwards and you'll probably never see the drop reform again.

One more note on that quote: the last sentence says that this is somehow forbidden by quantum mechanics. Again, this is bogus. Ensembles of large number of particles is the domain of statistical mechanics! Long discussion in of itself but the (semi)classical view is a very useful and valid perspective for many problems!

Now a comment about the article:

"Here's where the puzzle arises. Biological replication and self‑reproduction are in fact such stupendously well‑orchestrated physical transformations that one must explain how they are possible under the simple, no‑design laws of physics such as ours. This additional explanation, which was not included in the theory of evolution, is essential for that theory to properly explain how living things arise without intentional design – to close the explanatory gap"

1\. Absolute bullshit that one needs to 'justify' how certain physical states that _seem_ improbable are realized. Total garbage. Another core tenet of statistical mechanics is ergodocity [2] which states that ALL states of a system are will eventually be visited (if you have infinite time).

2\. My major gripe: (non-equilibrium) statistical mechanics accounts can explain the formation of complexity (such as life)!! It is not mysterious or outside of the scope of our current framework!! By analogy consider a pot of water being heated by a hotplate from underneath: if the hot plate is on low the heat will diffuse up through the water in a disorganized manner; but, at some critical temperature convection rolls will form spontaneously in the water. They form because the increase in energy dissipation wins out over the reduction in entropy induced by their formation.

This is exactly the mechanism driving the formation of life! The existence of life is not mysterious, it's inevitable!

This article is complete and utter bullshit.

[1] [https://en.wikipedia.org/wiki/Constructor_theory#Motivations](https://en.wikipedia.org/wiki/Constructor_theory#Motivations)

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

<comment><USER4> I agree with you except for the sentiment expressed by "Their primary research papers appear to be typeset in Word for christ sake."

I don't remember the name, but there was a computer architecture journal which had papers printed with dot-matrix printers (this was in the 80s). I would not discount the value of work due to this.

<comment><USER3> It's a salient prior.

</comment></comment></comment></comment><comment><USER5> Some reading that disagrees with Constructor Theory: [http://motls.blogspot.com/2014/05/constructor-theory- deutsch...](http://motls.blogspot.com/2014/05/constructor-theory-deutsch-and- marletto.html)

Looking forward to reading comments that disagree with this disagreement.

<comment><USER6> Lubos is normally a little too ornery for me, but I thoroughly enjoyed that post. Constructor theory (or at least that article about it), seems like superficial nonsense. Kind of in the same way that programming languages become bloated with concepts like "Object Factory Factories" and "Singletons" and delegates, etc.

</comment></comment><comment><USER7> Well... it may solve the riddle of life, but that article sure doesn't explain how at all. This is a criticism of the article, not the theory, as my point is that the article is not describing this well enough to be critical of a theory that I still don't have any idea about.

<comment><USER8> I wasn't left that much the wiser after reading this either. In short, I think "constructor", "recipe", "knowledge" are some pretty heady concepts which could use a lot more explanation.

I _think_ what it's trying to say is that constructors are resilient (i.e. long lived, through virtue of replication) 'structures' expressed in matter capable of stably holding and repeatably acting on digital information. And once you have a basic constructor, assemblages of these can provide successively higher levels of organizational power. Their digitally error- corrected resilience differentiates them from flash-in-the-pan analog chemistry, and once you have that longevity of structure you can start to have life. I think.

I don't know. I mean, yes, intuitively, life as an emergent property of recursive layers of self-organizing structures makes more sense than life as the continuation of a random walk through chemistry, but whatever constructor theory is, it's not deeply explained here. What are its implications? How does it actually compare to alternative theories?

</comment></comment><comment><USER9> Previous conception: We accept that the laws of physics must be compatible with the observation X (in the article's case, life), but they do not explain why X exists.

Constructor Theory: All things not explicitly forbidden by the laws of physics can exist. The answer to "Why does life exist?" is: "because the laws of physics do not explicitly prevent it."

Seems like an interesting take. I'm not convinced that it's at all useful, but it's not obviously flawed or vacuous.

Sidenote: I've never felt that the existence of life was as mystifying a physical problem as the existence of black holes, or expanding space time, or stars. Why people are mystified by life but blithely accept the existence of distant fusion reactors the size of our solar system is beyond me.

<comment> white-flame "The laws of physics do not explicitly prevent space unicorns living on the far side of the moon."

Yeah, I don't see this as all that useful, either. It also still doesn't in any way advance discovering what process brought things into being, it only accepts that it happened, which everybody already accepted.

<comment><USER9> We kind of already understand the physical processes that brought things into being, though. A mix of random chance and physical laws happened to create the right environment for hydrogen and oxygen and carbon and nitrogen to exist in the same place at stable temperatures for a couple billion years, and we got life. The question is "can we accept the fact that this process took place without being designed."

Constructor theory says, in short: "Yep. We can also accept the existence of space unicorns, for a physically possible definition thereof. Probably not on the far side of the moon though, since we've been there and would've seen them."

<comment><USER10> >" A mix of random chance and physical laws happened to create the right environment for hydrogen and oxygen and carbon and nitrogen to exist in the same place at stable temperatures for a couple billion years, and we got life."

That sentence just skipped over the most important part of the whole question! :)

<comment><USER9> I don't think either constructor theory or any alternative theory addresses anything I skipped.

Either you accept that the initial state that lead to life was constructed, or you accept that it was not constructed and are faced with the problem that constructor theory intends to address. These theories attempt to explain why the initial state for the universe was conducive to life/stars/black holes/whatever - everything I described is long after the fact.

<comment><USER10> Oh, I don't think "constructor theory" answers any interesting questions. I just think that there is a very interesting question about how we get from primordial soup to self-replicating cells that we don't have a good answer for yet.

</comment></comment></comment></comment></comment></comment><comment><USER11> I can't follow the article.

I'll assume it means this:

        //Old theory
        u = new Universe();
        //TODO: populate...

...

        //New theory
        r1 = Replicator.getInstance();
        r2 = Replicator.getInstance();
        r3 = Replicator.getInstance();
        u = new Universe(r1,r2,r3);

:)

</comment><comment><USER12> I'm not too impressed with this 'constructor theory' so far. For instance they claim:

>In constructor theory, physical laws are formulated only in terms of which tasks are possible (with arbitrarily high accuracy, reliability, and repeatability), and which are impossible, and why – as opposed to what happens, and what does not happen, given dynamical laws and initial conditions. A task is impossible if there is a law of physics that forbids it. Otherwise, it is possible – which means that a constructor for that task – an object that causes the task to occur and retains the ability to cause it again – can be approximated arbitrarily well in reality.

This seems to be false, as there is no physical law preventing entropy from decreasing but there _is_ a physical law which prevents the existence of a 'constructor' capable of decreasing entropy.

>Moreover, it is a fundamental idea of constructor theory that any transformation that is not forbidden by the laws of physics can be achieved given the requisite knowledge. There is no third possibility: either the laws of physics forbid it, or it is achievable.

Either they are saying something is achievable if and only if there is a constructor for it, which is false (see previous point), or they are claiming something is achievable if and only if the laws of physics don't forbid it, which makes this 'fundamental idea' vacuous.

<comment><USER13> If you can build a constructor for it, it's possible. OK, I'm fine with that. If you know it's impossible, then you can't build a constructor for it. Also fine.

But where it sounds like this is going is: If you don't know it's impossible, then it must be possible to build a constructor for it. That assumes that _everything_ that we don't currently know is impossible must be possible. That's... quite an assumption.

Worse, that assumption is swept under the rug rather than explicitly stated.

Or I could be misjudging their position...

<comment><USER12> I think there's also a (again silent) assumption that a constructor can be constructed, which is again non-trivial, and actually seems to be false. And if it is false then that seems like a major flaw, at least I don't really see how a non-constructable constructor is more convenient than the physical laws it is supposed to represent.

I also suspect you'll encounter something like the halting problem when trying to figure out _which_ constructors aren't constructable. At worst you'll encounter constructors where this question is unanswerable (e.g. can you construct a constructor, which constructs all constructable constructors that can't construct themselves?).

</comment></comment></comment><comment><USER14> This...seems like nonsensical pseudoscience.

<comment><USER15> After reading the article I was left with the distinct impression that "constructor" is a name for something they suppose must exist to solve their problems and that the mere act of giving it a technical sounding name allows them to say they've solved the problem of the origin of life, since now they may say "constructor theory solves that problem".

<comment><USER16> And its not even an original mistake. Our ancestors also used words (like "god") to answer (i.e. stop asking) questions about the origin of life.

But I for one look forward to worshiping the Great Constructor.

<comment><USER17> Nice theory. Fly in the ointment: Our ancestors didn't stop asking, quite obviously, given that we ended up here.

<comment><USER16> Actually a lot of ancestors did stop asking. I think that is established fact, not theory, as even today it is easy to find people who disbelieve even basic science when it contradicts a religious view.

But fortunately, as you point out, not everyone stops asking questions.

</comment></comment></comment></comment></comment><comment><USER18> Unfortunately this seems like a rather weak tool for addressing the issue, we have had conceptually similar tools (though not attempt has really been made to formalize them) for a long time, and many border on the anthropic principle. The reason for the weakness is that there is no guidance for how one is to go about testing whether some constructor actively violates a physical law. In addition this doesn't at all help us delimit the space of all possible constructors.

Fundamentally the issue is that constructor theory seems to require us to write down every possible constructor and gives us no way to validate whether they will work, not particularly useful from a theoretical perspective since it is essentially equivalent to having to do an exhaustive search of the space. True, but tautological and rather useless since it doesn't provide any insight into the relative importance of initial conditions (or previous history) and the fundamental forces in delimiting what is possible in any given universe.

We want to be able to describe the probabilities of any particular configuration of matter coming to be at some point in time in the universe as a function of the initial conditions and the forces that govern it (statmech can sort of do this for simple systems). This simply assigns probability 1 to everything and leaves as an exercises for the reader how to check whether such assignments are consistent with the laws of nature.

</comment><comment><USER19> A scientific theory has to do more than explain existing phenomena: it has to make predictions which can be tested. What are some testable predictions of constructor theory?

</comment><comment><USER20> > In short, the theory presupposes the possibility of certain accurate > physical transformations, and these are just what no-design laws of physics > fail to provide in their starter kit.

this statement is strictly untrue. it seems to assume that this behaviour is not going to be selected for, when very trivially it is...

natural selection isn't special to life... it applies to everything, again for obvious reasons.

its a very, very simple consequence of existence. those things that survive longest survive longest. its so simple its hard to explain. its no more complicated than the action of a sieve, which stops clumps from going through due to physical constraint - a form of natural selection.

</comment><comment><USER21> Carl Sagan once said: "If you want an apple pie from scratch, you must first invent the universe".

As I understand it from this article, it is saying: "Once you invent the universe, then an apple pie will exist... given enough time." ?

<comment><USER16> "Once you invent the universe, then an apple pie will exist... given enough time."

An interesting conjecture but not exactly provable! I assert that a universe is a necessary but not sufficient condition for apple pies.

<comment><USER22> The article is a bit hard to parse, here's my take on it

Given a universe, in which the exact arrangement of particles that make up an apple pie is not physically impossible, it is physically possible for an apple pie to arise through the evolution of the universe, without requiring 'outside input'. (i.e., design or influence by some entity outside the universe).

Furthermore, while it would be stupendously unlikely for an apple pie to arise completely by chance (imagine the odds of all the right atoms just _happening_ to collide in the right way at the right time), it's not nearly as unlikely that some kind of self-replicator should arise, and this self-replicator could eventually generate an apple pie, or something of similar complexity.

</comment></comment></comment><comment><USER23> This seems almost like a scientific way of stating Murphy's law with an addendum: anything that can happen, will happen..eventually.</comment>


Ask HN: Horrible boss wants to connect on linkedin. Do I? - <AUTHOR>

I worked under the absolute worst manager I've ever had for about half a year. He was a micro-managing, second-guessing, passive-aggressive asshole. Coming home everyday after working for him left me an irritable and exhausted mess. The product I worked on had potential, but his ham-fisted attempts at controlling every little aspect of it left my creativity neutered. <comment><USER2> Don't spend energy on someone that makes you feel negative enough to make this kind of post.

Once you're able to do that, it doesn't matter if you add him or not, go with whatever costs the least amount of energy.

</comment><comment><USER3> The short answer is no, absolutely not. You should be making a deliberate decision about who you invite into your social graph. Ideally, these will be people you respect and admire, but it's fine to have people with whom you only had a typical decent working relationship. Do not, under any circumstances, connect with people who did not treat you with dignity and respect. For one reason, you don't want them badmouthing you behind your back if a recruiter goes to them for a reference. More importantly, the people you highlight in LinkedIn also represent a vision of how you would create your future professional life. Choose people you would work with again, not people that were a blight on your existence.

</comment><comment><USER4> It depends.

If you take the LION approach, then yes.

If you are already selective then it's fine not to, but keep in mind that Linkedin is about business networking not friending and burning bridges without good reason is bad business.

I'll point out that bad workplaces make bad managers, too. All of the faults you list can be embedded in a corporation's culture.

Finally, it is an opportunity to place professionalism above some past personal friction in a workplace you have moved beyond.

</comment><comment><USER5> Same thing happened to me. I just ignored the request.

"The most dangerous type of asshole is the one that thinks he's not one."

The only benefit in accepting this guy's "connection request" is that you would be introduced to his social graph. These are people who either think he's an a-hole and arent interested in meeting you (as his connection) or who are accepting of the way he behaves. Either way I dont think it'll benefit you.</comment>


A venture capitalist searches for the purpose of school. Here's what he found. - <AUTHOR> https://www.washingtonpost.com/news/answer-sheet/wp/2015/11/03/a-venture-capitalist-searches-for-the-purpose-of-school-heres-what-he-found/ <comment><USER2> There is no question in my mind that public education in the US is broken. You get what you measure and we measure students' ability to do well at standardized tests. So we produce graduates who have spent their school years pursuing high scores on standardized tests.

What we need are problem solvers. The problem space is boundless, and it evolves with very innovation and every discovery. Even for the working middle class, the level of intellectual flexibility they will need to support their family throughout a 40 year working life is not being taught in school.

Students need to be challenged to identify problems and then approaches to solving them. This can not be learned by locking themselves in their bedroom memorizing facts.</comment>


Running iBooks without Internet brings your CPU usage to 100% - <AUTHOR> https://discussions.apple.com/thread/6648299?start=0&tstart=0

<comment><AUTHOR> Friendly note for those that use iBooks. Ibooks spawns a storeaccountd process that relentlessly fires off so many internet connection attempts that it actually maxes your computer's CPU, get's your fans all worked up, and rapidly drains the battery. This only happens if it can't connect so places like on the airplane or behind a firewall. As long as iBooks is open the process is un-killable. So essentially I can't use iBooks on the go.</comment>


Tenth bus explodes in Rome this year after 'short circuit' - <AUTHOR> https://www.theguardian.com/world/2018/may/09/bus-explodes-rome-historic-centre-italy-investigation <comment><USER2> Are 15 year old exploding Mercedes buses "a thing" anywhere else?

<comment><USER3> This sounds more like sabotage.</comment></comment>


Troll Management: Handling Conspiracy Theorists on a Forum (2009) - <AUTHOR> http://raincoastermedia.com/2009/07/20/troll-management-handling-conspiracy-theorists-on-a-forum/

<comment><USER2> I run a small forum that's been around for nearly 10 years now and I've found that over the years when we do get someone that's absolutely insane or trollish the best thing to do isn't to outright ban them, but to give them an area away from the rest of the group where they can spout off. This is similar to the advice in the article, I suppose.

The implementation of which was creating a 'Purgatory' forum where there was absolutely no censorship and if people crossed the line too often they were restricted to that forum (though anybody else who wanted to actually engage them could also post). It pissed them off, but in almost all cases, instead of registering new accounts and flooding the main forum with posts (as often happens with banned trolls), they just spout off for a couple days at most, and then either calm down or fuck off of their own accord.

<comment><USER3> The BBSs of the 80s had the concept of the Twit Bit, which, if set for a user, they were the only ones who would see their posts. It was if everyone else were simply ignoring their posts.

<comment><USER4> HN also does this, although secretly.

<comment><USER5> Obviously not the best-kept secret...</comment></comment></comment></comment>


How DRM free approach reduces piracy (from the managers of CD Projekt Red) - <AUTHOR> http://kotaku.com/everything-ive-learned-about-the-witcher-3-468670725

<comment><AUTHOR> _"We are trying to get rid of DRM," said Szczesnik. "If someone wants to pirate a game, eventually he will." "Which is bad, of course," Badowski interjected. "But you can't do anything about it, so. We want to give the best user experience possible. When we removed DRM, people on those torrents were actually asking people not to download our game, because we [weren't using DRM]." While they were clear that they don't want people to pirate their games, both Szczesnik and Badowski said that invasive DRM isn't the answer._</comment>


Interesting Job Ad - Web Software Generalists - <AUTHOR> http://www.pictureofhealth.com/jobs/developer

<comment><AUTHOR> I don't work for them. Just intrigued by the job title and ad.</comment>


Facebook's global lobbying against data privacy laws - <AUTHOR> https://www.theguardian.com/technology/2019/mar/02/facebook-global-lobbying-campaign-against-data-privacy-laws-investment <comment><USER2> > I don't think it's a surprise that the UK chancellor would meet the chief > operating officer of one of the world's largest companies …

It is. Politicians need to be transparent and serve the public. Private meetings without public record with big influent corporations is concerning.

Politicians should keep public records of this kind of encounters. That a public officer talks about his right to keep secret talks to remove privacy from his citizens is wrong at many levels.

</comment><comment><AUTHOR> "Facebook... Used chief operating officer Sheryl Sandberg's feminist memoir Lean In to "bond" with female European commissioners it viewed as hostile."

and

"the memo reveals that Sandberg's feminist memoir was perceived as a lobbying tool by the Facebook team and a means of winning support from female legislators for Facebook's wider agenda"

cute.

<comment><USER3> If someone was looking for a genuine place to deploy the trite phrase "virtue signalling", this is what that actually looks like.

<comment><AUTHOR> from [https://leanin.org/book](https://leanin.org/book)

 _In response to Sheryl's 2010 TEDTalk on the ways women are held back—and the way we hold ourselves back—viewers around the world shared their own stories of struggle and success. This overwhelming response inspired Sheryl to write this book. In Lean In, she shares her personal stories, uses research to shine a light on gender differences, and offers practical advice to help women achieve their goals. The book challenges us to change the conversation from what women can't do to what we can do, and serves as a rallying cry for us to work together to create a more equal world._

I guess that in a more equal world men and women can more equally act in a morally reprehensible way.

</comment></comment></comment><comment><USER4> Serious question: how should we as informed individuals act towards our friends/family that work at Facebook? Is it like working at Blackwater or Haliburton, i.e. worthy of scorn or st least distance ? Or do we accept them and not talk about it and just have a nice time, even though they are actively undermining democracy as we speak?

<comment><USER5> I talked to a guy working at facebook and he just insisted its not actually that bad and nothing shady is going on. He clarified that nothing shady meant nothing that the public doesn't already know.

<comment><USER4> I mean, was that guy Zuck? Because I would guess that every engineer at Facebook wasn't aware of all of the shady stuff before it broke. Personally, I'm guessing that much more of this is to come.

Plus, shady is in the eye of the beholder. Maybe it's legal to sell ads that undermine democracy in the West, lead to ethnic cleansing in Burma etc., but it doesn't mean it's not horrendous. And it's guaranteed there will be more examples like those until the platform is regulated (which it _has_ to be imo).

</comment></comment></comment><comment><USER6> It's great that this is reported by The Guardian. What's missing is a way to communicate the same thing to the masses in a way that motivates them, i.e. somehow linking knowledge of this to a sense of loss or impending loss to the reader or user of Facebook.

Just on Sunday I had lunch with a friend who works at the ECB and asked disbelievingly whether phones and apps can really track your location or not.

So if Guardian readers with TWO PhDs don't get it, how are we going to educate a woman on the breadline with two kids, living in a shanty on the outskirts of Lilongwe?

<comment><USER7> I fully agree it would be great if the masses would somehow absorb and process this information, but in this case I'd like to think the Guardian a very effective venue.

No politicians on a European level, especially female representatives, would want to be caught dead getting cosy with Facebook. Facebook lobbying efforts are effectively dead in the water for the EU for the moment.

<comment><USER8> Facebook can prop up or destroy a politician in every EU country overnight by minor tweaks that no one will ever be able to detect. And for every politician that takes a tough stand there will be a politician who won't. They will actively put feelers out about their "flexibility" in return for social media "training/consulting services" for their campaigns before elections, funding for pet projects etc etc etc.

We are way past the point were anything can be done by politicians or the responsible press (both of whom have benefited from social media and have stuff to loose by being hardline). Things should have happened 3-4 years ago. Now we just wait it out till everyone learns lessons the hard way.

Niall Ferguson makes the case that this moment in time (transitioning from hierarchy to hyperconnectedness) has similarities to events that unfolded after the invention of the printing press. People remember the Reformation or Martin Luther as the positive outcome as information and connectedness suddenly exploded. But there were huge chaotic negative outcomes too - [https://en.wikipedia.org/wiki/European_wars_of_religion](https://en.wikipedia.org/wiki/European_wars_of_religion)

Educating the masses today is as hard as it was back then. Education requires a healthy environment and a good guide/teacher and time. In todays world assuming the press is going to fill this role is very unrealistic.

</comment></comment></comment><comment><USER9> > _"Sheryl took a firm approach and outlined that a decision on the data > center was imminent. She emphasized that if we could not get comfort from > the Canadian government on the jurisdiction issue, we had other options." > The minister supplied the agreement Facebook required by the end of the day, > it notes._

As the old adage goes: Money talks.

</comment><comment><USER10> At least they didn't succeed in derailing the passing of the GDPR. That's certainly encouraging and I guess the only piece of good news from the article. The rest paints a pretty depressing picture.

<comment><USER11> The amount of worry they showed in the two articles about GDPR reassures that it was adequate. So long as it's enforced adequately.

<comment><USER12> The Irish DPC has 10 open cases on Facebook, we'll have to wait and see if they shake out to meaningful change.

</comment></comment></comment><comment><USER13> What exactly is the expose here? "Company lobbies against laws that threaten its business model", seasoned with various innuendo phrases that mean nothing like "secretive".

<comment><USER14> > What exactly is the expose here?

Facts & Names.

</comment></comment><comment><USER15> It's been a while since a Trump or Brexit type unexpected/unpredicted event that Facebook influenced has happened. As in nothing at a national scale.

Does this mean the architecture is getting better? Or are we going to get hit by more randomness soon?

<comment><USER16> There was reporting last year about Facebook being a catalyst for spreading violence against the Rohingya in Myanmar.

Facebook owned Whatsapp also caused several so called Whatsapp lynchings in India based on rumors that were quickly spread via the app. Brazil's current president's campaign also used a succesful disinformation campaign via Whatsapp.</comment></comment>


CodeGen: LLVM wrapper for just-in-time code generation and compilation - <AUTHOR> https://github.com/pdziepak/codegen <comment><USER3> This couldn't have a worse name. It's already used inside clang, and llvm. Searching "llvm CodeGen" will never find this.

</comment><comment><USER4> I think LLVM has had at least three APIs for dynamic code generation - <USER2> 'legacy' one until 3.5 (don't think it had a name?), MCJIT, and ORC. This one looks more like it's optimising the user interface, and using a kind of DSL with modern C++ features.

<comment><USER5> And in fact one of the ongoing problems with LLVM is that the interface churns so much. As a user it's a huge pain to keep up and to make sure there are no regressions. (And keep in mind this also includes performance, code size, debugging... it's not just about correctness.)

I don't know if stability is a goal for this project but personally I'm hoping someone comes along and makes a stable LLVM interface (and manages to be successful with it).

<comment><USER6> this topic pop up in eurollvm this year again: the LLVM C API is, and should be the only stable API. Others like C++ API or even ABI stabilities can only be considered as best-efforts.

<comment><USER5> Can we at least make the C API more feature complete so that it's a plausible target for more users? As far as I know it's not really a viable target for a heavy-duty user like a language compiler backend.

</comment></comment></comment></comment><comment><USER7> There's similar, and smaller (no llvm) library that i like alot: [https://github.com/asmjit/asmjit](https://github.com/asmjit/asmjit)

<comment><USER8> Very nice, starred. There's also xbyak, which a number of projects use: [https://github.com/herumi/xbyak](https://github.com/herumi/xbyak).

I just wish something like this was available for ARM. There's xtaak (ARM port of xbyak), but it's woefully incomplete.

<comment><USER9> That's a very interesting DSL they've got there.

</comment></comment></comment><comment><USER9> Related is cling, the C++ "interpreter": [https://root.cern.ch/cling](https://root.cern.ch/cling)

<comment><USER10> How do these compare? I have been exploring a bit with Cling but don't know enough to evaluate the differences

<comment><USER9> Cling takes C++ and interprets it like a REPL would. CodeGen is a JIT compiler that takes what's essentially an IR and uses LLVM to generate assembly from it.

<comment><USER11> cling got a C++ jit via LLVM lately. When you add or change a function, it's jitted.

<comment><USER9> I think it always had a JIT?

</comment></comment></comment></comment></comment><comment><USER12> Definitely interesting. I have a couple questions:

1\. Quite confused about actual use cases, could anybody come up with an example? 2\. The way I see it, it's kind of a way to have run-time "macros"? 3\. How much overhead does this have when shipping the code to the user? 4\. Would it be difficult to implement something like this for Rust? I can see special syntax to define the functions, would it make sense to add language support for this feature?

<comment><USER8> One prominent use case is: you can generate linear algebra kernels that are specific to both the shape of your data and the hardware features of the machine on which the kernel is run (i.e. on a Xeon use AVX512, on desktop use AVX2, or on really old desktop use SSE). Therefore you can avoid hand-coding dozens of specializations of such kernels beforehand.</comment></comment>


Formcake - <AUTHOR> https://formcake.com/blog/introducing-formcake <comment><USER2> Congrats on launching, but what differentiates this for the 10+ other services that do exactly the same thing (with pretty much the exact same features)?

[https://formkeep.com/](https://formkeep.com/)

[https://getform.io/](https://getform.io/)

[https://formsubmit.io/](https://formsubmit.io/)

[https://www.formbucket.com/](https://www.formbucket.com/)

[https://www.staticforms.xyz/](https://www.staticforms.xyz/)

[https://formspree.io/](https://formspree.io/)

etc

<comment><AUTHOR> Haha, yeah - there are a lot of these around.

Though some of these are genuinely new to me, the competitors we'd found in this space before like formkeep and getform had unbearably low form limits or expensive price-per-form schemes.

Also, we have a fun cake graphic :D</comment></comment>


The Tech Securing America's Borders - <AUTHOR> http://www.bloomberg.com/news/sponsors/unisys/the-tech-securing-americas-borders/?adv=10297&prx_t=i3oCAAAAAAFEANA <comment><USER2> This article is a paid advertisement.</comment>


Apple A5X likely still 45 nm - <AUTHOR> http://www.anandtech.com/show/5685/apple-a5x-die-size-measured-16294mm2-likely-still-45nm

<comment><AUTHOR> The Qualcomm LTE chip was also previously confirmed to still be 45 nm.

It's very possible Apple wanted to push a 32 nm chip this year but their supply chain couldn't deliver the volume. Hence the need for un-Applelike increased weight and thickness to accomodate the extra batteries. I believe Samsung is making their chips and reports were they were sticking with them. I doubt the Apple vs Samsung lawsuits have anything to do with this though.

This suggests that next years iPad may feature both a process shrink 'tick' (to 28/32 nm) and an architecture improvement 'tock' (to the Cortex A15). That would be big performance gains and allow the device to shed some batts and get thinner again. Expect a keynote slide declaring the 2013 iPad to be "the thinnest iPad ever".

What's more interesting is the possibility that when the "new iPhone" is introduced it may not run the A5X but the 32 nm chips may be ready. Maybe we'll see a few years of iphones running dual gpu "A#" chips and iPads running quad gpu "A#X" chips.

</comment><comment><AUTHOR> Chipworks actually confirms it's 45 nm now.

[http://www.chipworks.com/en/technical-competitive- analysis/r...](http://www.chipworks.com/en/technical-competitive- analysis/resources/recent-teardowns/2012/03/the-new-ipad-a-closer-look- inside/)</comment>


Start Shopping on Google Home - <AUTHOR> https://blog.google/products/home/start-shopping-google-assistant-google-home/ <comment><USER2> I use Google Express quite often for grabbing house hold essentials that I don't have the time to make a dedicated trip. I wonder if my habits will change now that I just need to speak up to place an order.

I also wonder if this will be one of those things which youngins' will take for granted someday...</comment>


Ask HN: Where will the price of Bitcoin be in 3 years? - <AUTHOR>

<comment><USER2> I don't think anyone is much in a place to speculate on that. Hopefully somewhere in the range it is now, though, right? Because if in three years it stays fairly steady in price people will trust and use it more.

</comment><comment><USER3> I'd like to say that it would be around the current price, being stable for a long time through block generation would cause a lot of trust.

Though in being money (finite) rather than a fiat currency I think that in reality it may either be commandeered or destroyed by the current financial system.

</comment><comment><USER4> A can of beans and a turtle's foot.

</comment><comment><USER5> More than U$ 10,000.00. IMHO</comment>


Google copies Flipboard. - <AUTHOR> http://daringfireball.net/linked/2011/12/08/google-currents

<comment><AUTHOR> Essentially, google's strategy seems to be that, anytime users finds a way to access content from non-google application, google will either acquire that app or build a competitor. Google is trying to become the web .</comment>


Google IO Schedule Revealed - <AUTHOR> http://googlecode.blogspot.com/2011/04/google-io-session-schedule-revealed.html

<comment><USER2> I'm glad my Ignite proposal didn't get accepted now, because the Google Ventures meetup (same time) sounds like fun. I'm in for that.

</comment><comment><USER3> Hm. I'm interested in the "TBA" slots. Will they be announcing new things? Why else would they hold off on the names of the sessions?

<comment><USER4> Last year, the "TBA" talks covered products/APIs that were announced during that day's keynote. Some of these included the Android push notification service, prediction web API, and storage API.

</comment></comment><comment><USER5> Wow! They are announcing Full Text Search for GAE.

<comment><USER6> That's been listed in the AppEngine roadmap for a few months now.

<comment><USER5> True, but I don't remember seeing a specific release date. In either case, yay! :-)

</comment></comment></comment><comment><USER7> Dang only chrome will be streamed? I was really interested about the App Engine talks, maybe I'll stick to bottle.py then.

</comment><comment><USER6> There's a TBA in the schedule for Android & App Engine at the same time. That could be _very_ nice..

</comment><comment><USER8> I hope Amy Walgenbach will be talking at that event.</comment>