Ruby daemons using RobustThread - <AUTHOR> http://superjared.com/entry/ruby-daemons-using-robustthread/ <comment><USER2> This seems useful. If you like stuff like this, you should also look at all the goodies in facets.rubyforge.org.

That said, this library is about programmer convenience, and does nothing about Ruby threads being flaky little bastards. I'm a little disappointed.

<comment><USER3> Flaky in what way? In my usage of them I haven't had problems. Then again I use them with a lot of blocking io operations so they seem to be pretty fairly scheduled.

<comment><USER2> Semi-random deadlocks, lack of thread-safety in many stdlib classes, inability to schedule very many of them. I tried to add some paralellism to my Ruby wget port, and it was a nightmare. There hasn't been the same amount of work put into Ruby threads as Posix or Java, and it shows. Threading is hard.

That said, Ruby threads are fine for simple cases, but EventMachine is popular for a reason.

<comment><USER4> Why would there be need for thread safety in ruby? There's a global interpreter lock so there's really only 1 thread running at any time -- every line of your ruby code should be atomic. The more threads you schedule, the more the interpreter has to cycle them in and out, so basically threads are somewhat useless in ruby. The devs had to spend time making Rails thread safe due to JRuby where there isn't a GIL.</comment></comment></comment></comment>


Ask HN: How much you make working remotely? - <AUTHOR> How much do you make working remotely? <comment><USER2> About $115K/annum working remotely—probably about the same as if not. As @stephencanon said, an employer that suspected there was a downside in productivity for remote workers (and I'd say it's at least equally likely that working remotely results in higher productivity on average) could assuage their own concerns by remembering the significant (~50% of salary?) savings from not having to pay for air conditioning, heating, security, probably some office equipment (I provide my own printers, for example, since they're not terribly useful for remote work anyway), and various other bits of overhead.

<comment><USER3> Can I ask what your job is? Sounds like you won the remote working game

<comment><USER4> Sounds similar to me. Living in BC, doing Rails programming fulltime for a company in Toronto. Fly out for a week for quarterly meetings, but otherwise fully remote (and timezone shifted).

Started initially as a fully-remote team, but as the company's grown and staff has rotated, I'm the only fully remote guy still there. Coworkers take an occasional work-from-home day though.

</comment></comment></comment><comment><USER5> Exactly the same as I would make if I weren't working remotely. I'm doing the same work, and it has the same value to my employer. (If anything, one might argue that remote employees should be paid more, since the overhead costs are often less).

<comment><USER6> I don't think it works that way.

Workers aren't paid by the value they create to the company. That sets a ceiling, but the floor is set by the competitive market. How little can you pay somebody to take that job and do the work you need done? That effectively bubbles up from the local cost of living and is modulated by availability of workers.

Hard-to-find software engineer in SF? Going to pay even more than the crazy housing costs imply.

Easy-to-find marketing events manager in NYC? Going to pay less than the crazy housing costs would have you think.

Remote allows you to hire from anywhere, so the competition is higher. I'd imagine that, if anything, it would hurt your earnings, because you're now competing with people from Iowa who have $300 / month rent payments.

<comment><USER7> You're wrong though, at least in my case. My pay doesn't change at all and I move quite often.

<comment><USER8> Yes, he's wrong. I do quite well working remotely and every offer I've received for which I'd have to work in a $%^&ing open office (because open office good, cubicle bad plus mandatory daily Jar Jar meeting at no additional cost(1)) would have entailed a 25-50% pay cut.

My advice is to refuse in every way you can to be the generic fungible engineer most management wishes you to be, and to instead specialize in emerging technologies. When such technologies are in demand, your compensation will skyrocket.

1\. [http://softwaremaestro.wordpress.com/2007/06/30/scrum- master...](http://softwaremaestro.wordpress.com/2007/06/30/scrum-master-jar- jar/)

<comment><USER9> That link is stupid. We do daily standups. It usually takes about 3 minutes. If it's taking 2.5 hours/week, you're doing it wrong.

<comment><USER8> Whenever I see "If X isn't working for you then you're doing it wrong" I remind the person who said it that they really ought to consider that there are no silver bullets/holy grails. If daily standups work for you, great (see, I'm acknowledging that it works for some people), but please keep your process religion to yourself, mmkay?

<comment><USER9> But this is a pretty clear indication that things are broken. I understand that there are variations in how things are done, but if you're doing "standups", the whole point is: keep it short and sweet. Otherwise, call it a "morning meeting" and run it as long as you want.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> This would work better as a poll so people can answer anonymously.

<comment><USER11> No, it would not. This doesn't work, and neither would a poll. To be clear: we can have an interesting discussion on salaries, value of employees, etc. but if anyone takes any of these numbers, from this post, or a poll, and does so much as average them, they would immediately produce meaningless data. Some reasons:

\- Participation is voluntary, the group is self-selected. This in itself renders all results meaningless.

\- HN polls let you vote on more than one option, yet you only have one salary.

\- Time of day bias. It is currently lunch hour on the east coast, and morning in the Bay area. Remote developers living in the UK, Thailand, etc. are on yet a different schedule.

\- Whenever a discussion like this pops up, the workers have an incentive to lie. If you say "I am top talent in my field and I make [2x my actual salary]", and enough people do this, you might actually raise the expectations of the employers. This discussion is actively giving a voice to the workers, and they have a huge reason to misrepresent facts for personal benefit.

I really wish HN got rid of polls. People tend to treat them as valuable data, and they are really just noise. The discussions are great, but the number noise is worthless.

<comment><USER12> Indeed. Many people (though not all people) lie on anonymous polls. Frequently. They lie when they perceive themselves to have incentives to lie (per your last bullet point). They also lie _in absence_ of any apparent incentives.

Some of it is just human psychology. Nobody sees what appears to be a norm, measures himself against it, and wants to admit that he falls short of it -- even if he's totally anonymous. This is especially true when a poll concerns topics of great emotional weight, like salary. Take an anonymous poll on everyone's favorite sports team, or favorite ice cream flavor, and you'd probably get accurate results. Take a poll on salary, and many of the results would be dubious.

</comment></comment></comment><comment><USER13> I know three people who work 100% remote, full-time for rates equivalent to 130-185k+ per year.

Interestingly, I'd always thought of remote workers as either high-end technical specialists working as-needed or cheap bodies being delegated to.

These folks all fall somewhere in the middle with the common factor being soft / niche skills - they work for sort of places that most people would run away from and work on things the most people haven't touched in years.

Two of them started out on-site, but were so valuable the company was happy to allow remote work in order to keep them on staff.

<comment><USER14> I've been that guy, several times in my career. Moved back to the Midwest, my Silicon Valley employer continued to pay me. Subsequently got other jobs working at startups and working from the Midwest (3 of them at least). Working one now.

</comment></comment><comment><USER15> "Somewhere on the high end of Silicon Valley market rate for the specific thing that I do for a guy who's been doing it this long."

The important part is that the spot on the globe where I decide to plug in my laptop has precisely zero bearing on that bill rate. I'll grant that the offset of having to pay for my own equipment and health care versus having to pay a premium in housing cost and take a huge hit on quality of life so as to be able to commute an hour to sit in a felt cube all day every day does leave me a bit ahead. But then I'd argue that surplus should be captured by _me_ rather than J. Random Software Company.

Never let the poor negotiating position of the others around you affect your ability to negotiate the best deal for yourself. If your counterparty suggests dropping your rate to match the locals in whatever tropical paradise you've had the good sense to set up shop in, it's your job to chuckle softly and say "no. It doesn't work like that."

</comment><comment><USER16> About 2500 USD/month, working hour or two a day. I can make more easily, but I already make like 2x of average salary in my country, so I can live comfortably, travel as much as I want to and have time to pursue other projects (running my little winery and working on low cost FTIR spectroscope).

<comment><USER17> working hour or two a day? What's your work schedule looks like? curious to know.

<comment><USER16> I am doing maintenance programming for living (in Delphi 5), which usually consist of long list of small problems and changes: I am usually trying to do one or two things a day, generate new binaries and send it to customer so he have something new to play with. I am usually working on my own things till, say 5 or 6 and then do my daily work for my customer.

<comment><USER18> Besides having the not-so-mainstream needed habilities, how do you manage to find that kind of (niche?) work?

<comment><USER16> I don't know, really. I do Delphi programming for 15 years now and it was quite mainstream back then, even now I occasionally do work for new clients (iOS, Rails, Machine Learning) and every 7 years or so I found another client whom I really like to work with and I just try to keep around. So I might find my client number 3 eventually and it is not going to be Delphi anymore. I usually work with like 2 new people each year.

Basically I do like to work with established, non-tech company that is around for long time, both companies are family owned with 50+ years in operation. I do respond to ads sometimes, got some referrals, bump to some odd guy at wine tasting and stuff like that.

<comment><USER18> Thanks for sharing your experience! :D

I had never think about this: _" established, non-tech company that is around for long time"_

Probably makes for a very good working enviroment, they may have a lot of technology to add to their business, and also they may value your work a lot more than a tech companies.

</comment></comment></comment></comment></comment></comment><comment><USER19> I suspect you meant to ask this to people doing commission/independent- developer/consultant-type work, rather then employees that only happen to work remotely, if so maybe it needs to be specified.

<comment><USER20> And for a certain class of employees that work remotely (e.g. sales, consulting), people should know that the trade-off often requires a significant amount of travel away from home (sometimes up to 50%+).

</comment></comment><comment><USER21> Living in East Europe, working as a consultant (C++, no web dev) remotely for West European company. Making 10x more of what I'd make locally (Senior/Lead role).

I've changed several jobs during the last decade, always tripling the next salary (of course I've never mentioned my previous salary) - and I've always given the rate I asked for.

So, if you want to make more - just ask for it.

<comment><USER22> I've been halfway considering doing something similar myself. Where do you live? What are the standards of living there?

<comment><USER21> Please write your email in your profile and I'll send some more details.

</comment></comment></comment><comment><USER23> With 60% oDesk clients and 40% other remote clients, back in 2012, I did around 17k $ in the whole year. I explained it at the end of this post [http://malditointer.net/after-working-1200-hours-in- odesk/](http://malditointer.net/after-working-1200-hours-in-odesk/)

<comment><USER23> I keep working in remote for hand-picked clients. I raised my rates (I started really low, 8$/hour, coming from non-technical background at all). My current rate is 25$/h, and I have started to take some projects that imply some development (ruby on rails, html/css).

AMAnything if you feel like! Willing to help or solve some doubts.

<comment><USER24> How much time and effort did it take you to reach $25/h from $8/h? From what I see, it is very competetive and there will be always some guy who is willing to work at less than price you mention (and sometimes, if not most of times, he would have more experience/ratings than you) how do you handle that? I mean how would you make someone chose you over a experienced guy?

You said you started to take development projects, then what kind of projects you were working on earlier?

<comment><USER23> You can figure that out if you take a look to my oDesk profile, link is included in the post and you can see what kind of works/and when I raised my $/h.

</comment></comment></comment></comment><comment><USER25> $115K per annum + equity. Designer + some front-end dev - 6 years design experience, junior dev experience. I do pay for my own healthcare though, but I consider it one of the things I am willing to sacrifice for the lifestyle.

I also do freelance work on the side, billed $32k last year (mostly from Wordpress website referrals). I consider myself a perpetual traveller to minimise tax: [http://en.wikipedia.org/wiki/Perpetual_traveler](http://en.wikipedia.org/wiki/Perpetual_traveler)

I don't know why anyone thinks you should get any less than someone in-office. I am guessing those people are probably underpaid because they don't know how to value / sell themselves.

</comment><comment><USER26> I am a software engineer at Canonical working in Go on Juju. I live in Massachusetts and have 15 years of professional development experience and a BS in CS from a decent technical university (WPI). When applying for the job, I asked for (and got) the same salary I'd ask for if applying for an office- based job in Boston (which was a fairly significant bump over my old office- based job in Boston). From what I understand, Boston salaries may be lower than those in SF, but the cost of living probably makes up for the difference.

</comment><comment><USER27> I'm Ruby on Rails & Javascript developer from South-Eastern Europe (Croatia, Zagreb). I'm working for a client in Chicago, USA and my rate is 40usd/hr.

<comment><USER28> How did you get the job?

<comment><USER27> We started working via oDesk, but later switched to working directly.

</comment></comment></comment><comment><USER7> $87.5k salary + equity as a designer/dev type. It's the same pay no matter where I live and is higher paying than my pervious location-dependent job.

</comment><comment><USER29> I charge about £50 per hour doing freelance e-learning development, but I don't actually take much freelance work on because I'm too scared to move away from full time employment - from which I earn a lot less (roughly £30k a year) but I get 42 days holiday, pension, sick pay and security.

</comment><comment><USER30> 150k. Although I work remotely, I still live in the DC area and occasionally go to the office for meetings.

</comment><comment><USER31> Third world national, living in the third world. $3800 per month working full time (~40Hrs a week)

</comment><comment><USER32> $40/hr @ 30-40/hr work week. I live in a low-cost country. Tempted to move to Silicon Valley though. I live with the constant battle of wanting to live in the USA or in my home country.

</comment><comment><USER33> So how do I find one of these jobs? Do I have to be a genius or master at language or technology X? 20 years of work experience? Can I live on the other side of the planet?

<comment><USER34> Learn either rails, python or front end stuff (angular, sass, html), git is a must.

Apply for jobs on: [https://weworkremotely.com/](https://weworkremotely.com/) [https://careers.stackoverflow.com/jobs/remote](https://careers.stackoverflow.com/jobs/remote) [http://nomadjobs.io/](http://nomadjobs.io/)

</comment></comment><comment><USER35> I work remotely, for a company located about 1.5 hours drive away, though am expected to come into the office twice a month on my own dime.

I make essentially a market rate salary.

</comment><comment><USER36> I do freelance, so it varies depending on how I schedule client work. On average, I sit comfortably around $5k a month with a 30/hr work week.

</comment><comment><USER37> $6k per month - if I sell something in new or do a workshop (not remote) 10k.

</comment><comment><USER38> Not entirely remote, but about $30/hour.

</comment><comment><USER39> $2000 per month working full time remotely.

</comment><comment><USER40> Above market rates for office-based work.

</comment><comment><USER41> £350pd at the moment as a freelancer

</comment><comment><USER34> $4K a month. Unlimited vacations.

</comment><comment><USER42> $650/day on a C2C contract.

</comment><comment><USER43> $80/hr @ 20-35hrs/week

<comment><USER44> Freelance or contracted by a service firm at that rate?

</comment></comment><comment><USER45> 225k this year, its great as long as they don't micro manage you

<comment><USER46> wow, that's amazing. May I ask what type of work you do?

<comment><USER6> I'm going to go out on a limb and guess freelancing on CyberCoder.

</comment></comment></comment><comment><AUTHOR> My rate is 65usd/hr on w2 at the moment

</comment><comment><USER45> this year 225k, it's great as long as they micro manage you to death

<comment><USER47> um, spam much?</comment></comment>


Ask HN: What should the technical design for a front end feature include? - <AUTHOR> What should the front end part of an applications technical design represent and consider?  With back end, there's the database schema, API endpoints, flow charts for processes.  But with the front end, only recently has it become somewhat data heavy.  What do you do when asked to submit a technical design as a front end engineer?  For reference, at my employment design is a large part of being a senior developer, so I have to do something, I'm not sure what though, and have not been successful in finding examples online. <comment><USER3> A few ideas. The data model. How to map and continually re-map the server side model to the client side model. The design patterns appropriate to the problem, for instance using redux middleware to implement an interceptor, and leveraging any number of message based programming patterns from the Patterns Of Enterprise Application Architecture book. The communication mechanism from client to server. The data serialization format. Establishing testing patterns that are reliable in preventing bugs and regressions.

<comment><USER3> The messaging patterns are actually in the book Enterprise Integration Patterns.

</comment></comment><comment> eigen-vector Define the customer experience. If you have a Product Manager who is involved with the project, you would ideally meet with them ahead of putting together a technical design document and discuss what the customer experience is going to look like. Try to finalize as many details as possible—APIs, latencies, accessibility etc. This should be an important part of your technical design as it defines the problem you're trying to solve. Your design should then be an answer to the customer experience problem you've formulated.

</comment><comment><USER4> I use this when designing a redux application:

1\. Define function signatures of selectors and action creators. 2\. Define the state tree shape.

Action Creators and Selectors translate to the "API endpoints" as it's the public interface to your frontend data model.

The state tree translates to the "database schema".

I would also consider what the data model for client-side persistence (localstorage, cookies) is.

</comment><comment><USER5> Haven't you heard? We do agile now. Nobody designs anything anymore - <USER2> just fix it in the next sprint!

<comment><USER6> I would argue that you cannot do agile management without having at least a working prototype first.

It would simply fall apart otherwise, because you need a long-term plan whether you're working in sprints or not.

</comment></comment><comment><USER7> Statecharts can be especially helpful. [https://statecharts.github.io](https://statecharts.github.io)

</comment><comment><USER8> I would say: Controls, events, views, view-data bindings, data-server bindings, state, authentication, telemetry and error handling.

<comment><USER9> To the list above, also include unit testing with preferably at least 80% code coverage. I'm always amazed how easy it is to break things on the frontend without even realizing it. You make one little change here and it breaks somewhere else.

</comment></comment><comment><USER10> Copy an old one.</comment>


Apple's Animal Farm  - <AUTHOR> http://brainstormtech.blogs.fortune.cnn.com/2009/08/24/apples-animal-farm/ <comment><USER2> I'm not sorry the evil empire got such a hard time, since they deserve even more.

Apple's behavior may be reprehensible and worthy of criticism, but it's not yet clearly anti-competitive, nor is it as likely to have as far-reaching a chilling effect on general computing technology.

<comment><USER3> Umm excuse me? Apple hardware, sofware and especially the iPhone are outrageously closed and anti-competitive. Apple has already begun chipping their own accessories such that third party ones are no longer allowed. None of my iPod accessories (wall charger, car charger, firewire cable) work with my iPhone, so I will have to buy all new ones. Also include the other obligatory examples as the palm pre fiasco.

I found this article to be a little over the top, but strangely true. It was a good read.

<comment><USER2> Creating a closed product is not anti-competitive behavior, merely consumer- hostile.

Attempting to close others' otherwise open products (e.g. PC hardware) through licensing requirements, which require payment regardless of whether or not ones software is actually installed or not, is anti-competitive behavior.

Granted, this distinction may not be compelling to the average consumer, but I contend it's more relevant to the average hacker.

<comment><USER3> My beef is more so with Apple's DRM chips installed in their accessories now which has negated all my previously bought Apple and non-Apple accessories, forcing me to purchase new, Apple authorised accessories all over again.

One could defend it as time saving on backwards compatability (like forcing everyone to upgrade to IE8 from IE6 to use a website's "cool" new feature), but I think its as simple as typical Apple money-grubbing.

It's not illegal, it's not exactly unethical, it's just rude.

<comment><USER2> Like I said, I don't disagree that such behavior is consumer-hostile. I don't know that they're guilty or innocent of it, just that it's not particularly relevant to the topic of anti-competition.

However, I'm quite confident the market will take care of that sort of misbehavior quite naturally.</comment></comment></comment></comment></comment>


Less is more: language features - <AUTHOR> http://blog.ploeh.dk/2015/04/13/less-is-more-language-features/

<comment><USER2> The narrative in Why Functional Programming Matters ("WhyFP") is that it is not enough to simply remove features, but to take advantage of their removal to add other, more powerful features.

The paper gives laziness as an example. It's made possible by idempotency. Which is made possible by the removal (or careful management) of side-effects. Which then allows certain otherwise impossible ways to express infinite data structures.

[http://www.cse.chalmers.se/~rjmh/Papers/whyfp.html](http://www.cse.chalmers.se/~rjmh/Papers/whyfp.html)

<comment><USER3> Which in turn allows more modular code. I translated an example from Why FP using Python here: [http://satvikberi.com/2014/10/13/functional-programming- usin...](http://satvikberi.com/2014/10/13/functional-programming-using-lazy- evaluation-to-write-more-modular-code/)

</comment></comment><comment><USER4> I take issue with the single-number-type thing. This guy is conflating two different reasons/ways to divide up number types - for transparency w.r.t. machine (optimization) and by conceptual types (integer vs natural number vs fractional, etc.). The first arguably doesn't belong in a high level language. The second arguably is _exactly_ what a truly high level language should have.

<comment><USER5> I agree. Just think of how often what you really want to express in your program is a function that takes a Positive Integer, and any other type of number is simply wrong.

<comment><USER6> I've often thought you could add that to your type system somehow? Sometimes you want to express that this variable can only take numeric values between 0-1 or this variable can only take string values with exactly three uppercase ASCII letters. Just like you don't need a special string type to handle three letter strings, you don't need a special number type to handle positive integers, you just need a way to represent subsets in your type systems.

On the other hand I'm decidedly old school and get very uncomfortable around languages that at least don't separate floats from ints.

<comment><USER7> Pascal had subrange types, which were quite nice in that regard. Although I don't remember using them _that_ much.

</comment></comment></comment></comment><comment><USER8> Yet another article that misses the point of "goto considered harmful."

The way "goto" is used in modern C (named breaks and defined function escape routes) is perfectly acceptable. Newer languages include these features in the language, in much the same way that C encoded structured "goto"s as "while" loops and "if" statements.

Dijkstra was complaining about unstructured programming compared to structured programming.

<comment><USER9> Yep. Things like while loops, break statements and if-else statements containing blocks are basically _structured constructs over goto_. Goto is the basic building block, it is not "entirely redundant", it is entirely foundational. It's just too low-level for everyday usage.

</comment></comment><comment><USER10> To me this is a weird list. It's a bit like removing the personality of a person and then claiming that made the person better.

Also a lot of the things he lists are not at all as clearly harmful as he makes them out to be.

GOTO: Used in some of the cleanest code bases. For example the lua programming language, redis db, and linux kernel OS. Yes the use is limited, but it's there not because of mistakes but rather because it is sometimes the most clean way.

Numbers: I don't understand this one. In the very least having different types of numbers seems to be a necessity for anything performance oriented such as graphics. JS not having them (they seem to have been added for WebGL as an extension, no?) is not a good reason for all new languages to do the same.

Mutations: I am personally of the view that mutation often simplifies the informal reasoning complexity of a program. There's a reason functional programming hasn't caught on and it likely never will. A hybrid approach of having both immutability and mutability like Rust seems most sensible.

Reference equality (Referential transparency?): If you have immutability do you not get this for free? How can you be sure about getting rid of mutations but not be sure you want objects to be equal based on data?

Each language has it's own quirks that make it special and that's part of the reason programming is fun. There's never a single right way.

<comment><USER5> GOTO, mutations, and side-effects break referential equality and equational reasoning, making it much harder to prove things about your program. I guess you can do that by endless permutations of tests or a stochastic testing system, but that sounds like a horrible way to spend your time.

<comment><USER11> A program that's harder to prove correct is not necessarily incorrect.

I'd actually argue that most of the software that runs our lives today is impossible to prove correct and yet seems to be doing quite alright overall.

You're setting up a similar false dichotomy as people who say that programs that ship without automated tests are worthless and broken.

<comment><USER5> Nah, I am saying two things:

1\. Mutability makes your program harder to reason about.

2\. There are better ways to spend your time than writing tests for conditions that could not exist with pure functions.

You could totally extrapolate a ton of statements from those two statements though. But I'm not doing that now, and not here.

<comment><USER12> > 1\. Mutability makes your program harder to reason about.

How so?

<comment><USER5> I give an example in a sibling (cousin?) comment here: [https://news.ycombinator.com/item?id=9372280](https://news.ycombinator.com/item?id=9372280)

</comment></comment></comment></comment></comment></comment><comment><USER13> I dispute the basic narrative here. If you have tail calls, you have GOTO. If you have closures, you have pointers. The story (so far) is not one of features _disappearing_ , but of features being subsumed by other more general, abstract features.

<comment><USER14> No you don't. A GOTO allows you to GOTO a location that isn't valid code—for example, the middle of a multibyte instruction. A tail call does not. That's what the article meant by "disallowing invalid code": a GOTO is strictly equivalent to a tail call, except for all the extra _invalid_ things a GOTO also allows you to do.

<comment><USER15> Not really. Machine language jumps can do that sort of nasty stuff but usually gotos are restricted to more well-behaved labels.

That said, gotos are still much less structured than tail calls. You can make some much more spaghetti-like control flow patterns and you are also encouraged to use shared mutable variables instead of passing parameters by value.

</comment></comment></comment><comment><USER16> It's interesting to see that recent languages are making strides towards this list.

* Golang does away with inheritance and exceptions.

* Rust does away with mutability, or at least makes it explicit.

I wonder if a convenient language with all of these taken out could exist. I'm skeptical about a single number-type.

Also, wouldn't reference equality simply be gone if you take away pointers?

Also, his point about interfaces is pretty narrow, not every interface's manipulation can be characterized by one or one set of manipulations. I think Golang is a fantastic example of a language that forces a role-based interface pattern.

<comment><USER17> > * Golang does away with inheritance and exceptions.

Meh,regarding exceptions you still have errors that you bubble up by returning them. It's hardly different from exceptions.

On the other hand, Go went way too minimal with its type system so much that, you can opt out with inteface{} because it's not expressive enough. I would prefer no interface {} , no reflection ,but to allow types as parameters and value.Which they are not in go.

finally, go has GOTO ... I would have gotten rid of that at first place.

<comment><USER18> > you still have errors that you bubble up by returning them. It's hardly > different from exceptions.

It's _completely_ different: you have to _manually_ bubble them if you want them to bubble. You can perfectly not deal with them.

Yes, the initial reaction to seeing an err pop up is to return it. No, you don't _have_ to return it.

</comment></comment></comment><comment><USER19> I think it's worrying if language design ever becomes about having higher and higher level features 'protecting' the programmer from making mistakes, at the cost of losing access to lower level features that are considered harmful. Higher level features are much better than a GOTO 99% of the time, but there's always going to be 1% of the time when a GOTO might be better.

<comment><USER20> Protecting the programmer is a good sell to corporations though. Less chance of error prone production code, easier for people to develop with, etc.

<comment><USER21> The same corporations that use the Linux kernel, various database engines and various language runtimes, all of which contain C or C++, many platform specific byte manipulations and various other unsafe features?

<comment><USER22> Have you used Linux lately? It's always close to falling apart, in my experience. That the developers are doing a heroic job of keeping all the unsafe parts under control does not mean this is a good idea for the rest of us.

<comment><USER21> I use it daily, both personally, for development and in production. Performs better than commercial _nix and Windows IMHO; cannot comment on_ BSDs or Mac.

</comment></comment></comment></comment></comment><comment><USER23> This article is nearly its own reductio ad absurdum. By this line of reasoning, we would all be better off programming just with NAND gates – the most minimal programming model of all.

<comment><USER24> It seemed really unfair the way the "valid programs" was slightly out of bounds on C (meaning there are some things you can do in assembler, but not C, to which I agree); but then as he starts removing more and more features, the "valid programs" circle is wholly inside his imaginary language construct; and no matter how much is taken away, we're to believe all possible valid programs can still be represented? Nonsense.

</comment></comment><comment><USER25> Nice post, although I think the author is cheating a little with his Venn diagrams. Most of the time, his language subset contains almost all the valid programs. I don't think it is true. I'd like to know how one can make hard real-time embedded programming with the only language features he offers, for instance, or anything that requires as much processing power as you can (cryptography, constraint solving, data mining, optimization, simulation, etc.) I am not talking about exotic niches here.

More generally, I'm still waiting for a massively successful piece of software made in a language that would involve no mutation, no null pointers, only one numeric type, etc. Even John Carmack has not yet delivered a revolutionary game engine programmed in Haskell.

<comment><USER26> > More generally, I'm still waiting for a massively successful piece of > software made in a language that would involve no mutation, no null > pointers, only one numeric type, etc. Even John Carmack has not yet > delivered a revolutionary game engine programmed in Haskell.

One can program with mutations in Haskell, and all the side-effects can be kept "sandboxed" at the same time; also I believe the side-effectful parts of a Haskell program can be compiled (in principle) in a way that results in very efficient code, as fast as e.g. C++, though I'm not sure how well current compilers are doing in this respect.

So in a way, Haskell (as a language) offers the best of both worlds.

</comment></comment><comment><USER27> Unlambda [1] is completely functional and has only 2 built-in functions. According to the author, it's the perfect programming language, even though it's extremely inefficient and the code is almost impossible to understand. Many of the features he lists enhance either efficiency (number types) or readability. The languages that lack these things are bound to be slow and hard to understand at least in some cases.

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

</comment><comment><USER17> > F# projects have fewer and smaller cycles than C# projects.

Sure, but maybe the reason is the people that choose to use F# and Caml like languages are a bit smarter that the regular coder. Or maybe F# projects have a different nature and people don't write "enterprise applications" in F#.

</comment><comment><USER28> Whilst it is true that the absolute number of possible wrong programs grows as the number of features increases, I don't think that it implies that the _proportion_ of wrong programs actually coded by people grows as well.

</comment><comment><USER29> I do not like this article at all. I rebutted it extensively at [https://lobste.rs/s/ipml3l/less_is_more_language_features/co...](https://lobste.rs/s/ipml3l/less_is_more_language_features/comments/fnomu1#c_fnomu1).

</comment><comment><USER30> I don't understand the point in removing cyclic references, coming from FORTH, Lisp, Smalltalk point of view those are required, if you split a big recursion into smaller factors. The recursion automatically becomes a cyclic reference between words, functions, methods or even classes, as classes are just closures.

Does he want to forbid factoring? His feature looks more like a deficit of the linker to me.

</comment><comment><USER31> I think Erlang hit everything?

Not sure about Cyclic dependencies and I don't think it have Reflection unless I'm wrong.

</comment><comment><USER32> If you install nightly builds on a production system you deserve to get bitten.</comment>


English sites that are blocked in China - <AUTHOR> http://whatblocked.com/

<comment><USER2> This site is itself blocked in China at the moment.

<comment><USER3> Ironic no?

<comment><USER4> Expected.

</comment></comment></comment><comment><USER5> Isn't it better to have a list of "non-blocked websites"?</comment>


Elon Musk teases June news on Hyperloop, his rapid transit system for the future - <AUTHOR> http://www.theverge.com/2013/5/29/4378468/elon-musk-teases-june-news-on-hyperloop-rapid-transit-system

<comment><USER2> The concept is now fully fleshed out. His idea is a Maglev train which uses ram-air and/or a lifting body to generate lift, and electromagnets for propulsion. It's actually an excellent idea, and I don't see why it wouldn't work. It would be very similar to current dedicated guide way rail systems (similar to Maglev) but much faster and far more efficient, as the electromagnets are used only for propulsion, and the lift is generated via the vehicle's speed.

The biggest challenge would be keeping the vehicle at a constant distance from the power rail, as aerodynamic disturbances (such as turbulent air) would destabilize the vehicle. I assume that his work in rocket control systems would come in handy for this.</comment>


Now on twitter.com you can save or schedule drafts up to 18 months in advance - <AUTHOR> https://twitter.com/twittersupport/status/1266081598748925961 <comment><AUTHOR> Tweet was edited for length. Original tweet was:

Not quite ready to send that Tweet? Now on [https://twitter.com](https://twitter.com) you can save it as a draft or schedule it to send at a specific time –– all from the Tweet composer!

Source for 18 months is:

[https://www.neowin.net/news/scheduled-tweets-and-tweet- draft...](https://www.neowin.net/news/scheduled-tweets-and-tweet-drafts-are- now-available-on-twitters-website)</comment>


Rx glitches aren't actually a problem - <AUTHOR> http://staltz.com/rx-glitches-arent-actually-a-problem.html <comment><USER2> The title initially intrigued me because I thought it was talking about errors in prescriptions; it's actually about ReactiveX.

<comment> daniel-cussen I thought he was talking about reception glitches in radio.

</comment></comment><comment><USER3> EDIT: The article is about javascript. Everything below does not apply to javascript. You need more than one thread, at least, for any of these problems.

I strongly suspect that combining async streams will prove to be a problem in practice, whether we resolve glitches or not. This article requires quite subtle reasoning about async systems. In my experience this type of reasoning is rarely done effectively on real life projects.

I am not criticising Rx, I am interested in Rx. But I am always concerned when a project/community starts producing articles on very subtle topics and claims 'x isn't a problem if you just understand it properly'. Here properly probably means deeply, and deep knowledge in software is scarce. There are too many things to know, to know many things deeply.

Let me look at one example (and please comment if I'm really not understanding something).

So we consume, asynchronously, two streams. Because they are asynchronous we might hit some point where it's a bit uncertain where two outputs are related.

        errors            ---e1----e2</comment><comment></comment><comment></comment><comment>
        userActions       -u1</comment><comment>u2</comment><comment></comment><comment>u3----
        analyticsMessages ---e1u1--(e1u2 e2u2)---e2u3--

That's a good example, and we fixed that problem with 'errors.withLatestFrom(...'. But, since we are asynchronous don't we also have to worry about this scenario.

        errors            ---e1</comment><comment></comment><comment></comment><comment>-e2--
        userActions       -u1--u2--u3-u4-u5-u6-u7-u8--
        analyticsMessages ---e1u1</comment><comment></comment><comment>---e2u8--

Now, let me clarify what happened here. The error occurred after u2, but the errors thread got descheduled and the userActions thread kept on processing. I am not certain exactly what to expect from 'errors.withLatestFrom(userActions,...' here but I suspect that 'e2u8' may be the expected output.

So this error reporting system is fundamentally unreliable. If this is correct then I would say that combining Rx streams is not appropriate for this use case. This also suggests that although we managed to get rid of our glitches we still produced a terrible piece of software.

Do I have to wrong end of the stick? (The answer was yes, but it was good anyway)

<comment><USER4> > The error occurred after u2, but the errors thread got descheduled and the > userActions thread kept on processing.

Your suggested case is contrived and doesn't apply to JavaScript (the examples were in JavaScript where I assume all these streams are in the same thread). I am not claiming withLatestFrom is the correct mechanism for determining order of events in multi-threaded assumptions. That's an orthogonal concern to the issue at hand.

> I strongly suspect that combining async streams will prove to be a problem > in practice

Combining async results is a true problem and people often attempt to solve them with callbacks or heavy usage of Futures/Promises. Rx solves these problems easily, and I've witnessed a lot of developers confirm this when learning Rx. It's not hard to teach the difference between withLatestFrom and combineLatest and their intended use cases. Much easier than managing callback hell, which is what RxJS intends to replace.

<comment><USER3> (A great thing about HN is getting to talk with the authors directly)

I didn't recognise that you were talking chiefly about javascript. It is true that my example doesn't apply here.

Ok, then I would make one comment (and edit my first comment).

I would avoid the discussion of simultaneity at the start

        'Events in parentheses happen "simultaneously".
         In practice they happen at slightly different times,
         but separated by only a couple of nanoseconds, so
         people understand them to be simultaneous. Events (c1c2)
         are called glitches and sometimes considered a problem
         because one would expect only c2 to happen.'

Because you are working in a single threaded simultaneous events just don't exist. The glitches you describe occur completely independently of timing, nanoseconds or otherwise. Drawing up diagrams where events occur at the same time is adding complexity which doesn't exist.

        errors            ---e1</comment></comment></comment><comment>-e2</comment><comment></comment><comment>---
        userActions       -u1</comment><comment>u2</comment><comment></comment><comment>u3----
        analyticsMessages ---e1u1--(e1u2 e2u2)---e2u3--

        errors            ---e1----e2</comment><comment></comment><comment></comment><comment>
        userActions       -u1</comment><comment>----u2</comment><comment>--u3----
        analyticsMessages ---e1u1--(e2u1 e2u2)---e2u3--

Both of these scenarios produce glitches (as I understand it). So we don't need any notion of 'simultaneous events' to create them.

Anyway - that is nitpicking. I enjoyed your article. I agree that the scenario described at top does not apply in javascript.

I too strongly dislike callbacks :)

</comment><comment><USER5> Glitches as demonstrated via the diamond pattern can be avoided by traversing the graph in topological order. This was demonstrated in Greg Cooper's PhD thesis: [http://cs.brown.edu/~greg/](http://cs.brown.edu/~greg/)

Transactions, as I understand them, solve a different issue. This is the issue of multiple inputs to the graph occurring at the same time.

<comment><USER6> > Glitches as demonstrated via the diamond pattern can be avoided by > traversing the graph in topological order.

This is correct for DAGs which only propagate _value_ (as in Javelin[1] and my own library DerivableJS[2]), but for graphs which propagate events (as in Rx), topological sorting would only work for those parts of the graph which are _effectively_ propagating value. Events don't have an inherent dedupe operation, so it is very difficult to even imagine ways in which glitch avoidance could be automatically enforced. It would certainly require semantic program analysis.

Personally I think we should be avoiding the proliferation of events (as encouraged by Rx enthusiasts) for exactly this reason. Their imperative nature makes them very difficult to reason about.

[1]: [https://github.com/hoplon/javelin](https://github.com/hoplon/javelin)

[2]: [https://github.com/ds300/derivablejs](https://github.com/ds300/derivablejs)

<comment><USER5> The event/value distinction is an interesting viewpoint I hadn't considered. Thanks for writing this.

</comment></comment></comment><comment><USER7> They aren't a problem if the operations at the leaves of the graph are idempotent, which is usually the case if these operations are UI repaints.

If the operations are for other effects - such as Ajax calls - then glitch elimination is handy. Eliminating glitches at the dataflow level prevents debounce logic from leaking out to the code performing the effects, preserving the clarity and generality of that code.

I find glitch elimination most useful when the dataflow graph is value- propagated, vs. event-propagated, as it is in the dataflow library I helped implement, Javelin - [https://github.com/hoplon/javelin/](https://github.com/hoplon/javelin/)

Javelin also supports transactional input, another feature that's helpful when building dataflow graphs on which effects other than UI-repaint are hung.

</comment><comment><USER8> It's a feature.</comment>


Ultraviolet light reveals how ancient Greek statues really looked - <AUTHOR> http://io9.com/5616498/ultraviolet-light-reveals-how-ancient-greek-statues-really-looked <comment><USER2> I knew that ancient architecture was usually vividly painted, but it didn't occur to me that the statues might be as well. The interesting thing is how nowadays we model buildings and statues after our notion of what classical art looked like, but the models were never intended to look like that. It's almost cargo-cultish, in its own way. Of course, the non-color elements like the shapes and the proportions still stand through, and those are definitely worthy of study. But painting such a sculpture or building like this would probably be outright offensive to some people.

The color-restored versions somehow look less... impressive with the colors on, but that could be just because I'm used to thinking of the colorless versions as more regal. On the other hand, black-and-white photographs look more artistic as well, so it could be something about the lack of color itself.

If you want to see how ancient classical buildings looked when they were in use, check out the old British TV series "I, Claudius." It's strange to see everything so bright and garish, but it's accurate in spirit, if not in detail.

<comment><USER3> It _is_ a little cargo cultish. The architecture looks good, though, and that's what counts, and why it continues to be influential. I'm rather more annoyed with idiotic signs on buildings which say "PVBLIC BVILDING" or "COVRT HOVSE". Just because Latin does not need to distinguish between "u" and "v" in writing (they're unambiguous in context as either a vowel or a consonant), does not justify torturing English.

<comment><USER4> Just in case anyone did not know: 'V' was a lot easier to chisel than 'U' (why they are interchangeable)

<comment><USER5> Incorrect. The letter U was simply not a part of the Roman/Latin alphabet. It, and the letter W, were Carolingian-era developments.

Besides: why would "U" be hard to chisel compared to, say, "R"?

</comment></comment></comment></comment><comment><USER6> The statues on the pediment of the Philadelphia Museum of Art are painted in the old style:

[http://commons.wikimedia.org/wiki/File:Pediment,_Philly_Art_...](http://commons.wikimedia.org/wiki/File:Pediment,_Philly_Art_Museum_%281%29.jpg)

[http://commons.wikimedia.org/wiki/File:Pediment,_Philly_Art_...](http://commons.wikimedia.org/wiki/File:Pediment,_Philly_Art_Museum_%282%29.jpg)

<comment><USER7> Those look much better than the colored statues in the original article. Any idea if the difference is due to the lighting, the quality of the job, or historical accuracy?

<comment><USER8> Here's a different couple of reconstructions: [http://www.leica- microsystems.com/news-media/our-customer-ma...](http://www.leica- microsystems.com/news-media/our-customer-magazines/resolution-materials- technology/materials-technology-resolution-no-4/ancient-feast-of-colour/)

I think the ones in the original article are painted on plaster replicas and the lighting is horrid compared to the professionally lit marble sculptures. It does seem hard to believe the artists would have caked on 'fond de teint' on the face and arms of the statue like in the reconstruction, without any subtlety, and losing all the lovely skin-like glow of marble.

</comment></comment></comment><comment><USER9> In the Euripides play about Helen of Troy:

 _My life and fortunes are a monstrosity, Partly because of Hera, partly because of my beauty. If only I could shed my beauty and assume an uglier aspect The way you would wipe color off a statue._

Strange as it seems to our modern eyes, they really did consider this beautiful. I'd guess that such bright colors were rare (and expensive) back then, so anything that vivid would have been extraordinary.

<comment><USER10> Also, though we can detect which pigments were used on the statues we cannot determine the quantity. The degree of artistry, and perhaps subtlety, that was used to paint these statues is lost to us. We know that they were not plain, but beyond that we know very little of what they actually looked like.

</comment></comment><comment><USER11> The terracota army - a tens of thousands strong army buried close to Xi'an in China is also colored brightly but the colors fade away quickly. And the scientist have decided not to continue with the excavations so that in the future when we have the technology to conserve the real colors we can dig up the rest and see it and keep it in its current beauty.

</comment><comment><USER12> I wonder whether I think the 'traditional" blank white statues look more dignified because that's what I'm familiar with, or because they actually do look more dignified.

Perhaps we should paint all the DC monuments in festive colors?

<comment><USER13> The particular pictures in the article look fairly awful; you'll notice they all have a bunch of bright primary colours right next to each other. I can only think of one place you'd see that many bright colours close together nowadays, and that's on a clown outfit.

Go ahead, you try looking dignified when you're wearing that archer's pants.

</comment></comment><comment><USER14> Many years ago a Middle-Eastern family bought a famous mansion in Beverly Hills. There was a huge outrage that they had the Greek statuary colorized. The press seemed to think that it proved the lack of taste of those "foreigners". It's funny to now realize that they were probably more correct than the sophisticated Americans who thought the statues should be undecorated.

</comment><comment><USER15> Why do the have a painted statue of a roman emperor in a article about painted Greek statues?

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

Also, weren't many roman and greek statues sheltered somewhat and protected against wearing off all this paint?

</comment><comment><USER16> "The color? Always something tacky."

Pity the ancients didn't share our fashion sense, eh.

<comment><USER17> Didn't we simply copy what we thought was their fashion sense. If their statues or architecture came down to us in colour, we would have a preference for colourful statue and architecture. Just goes perhaps to show how much influence does culture have on ones perception of such things.

<comment><USER16> That was my original point, that it's our culture that makes us consider these statues garish and tacky. Back then, they were (obviously) the height of fashion and pleasing design.

</comment></comment></comment><comment><USER14> I'm sure how to express it, but this information could be disruptive in a fairly serious way. The whole purity of the white Greek statues sort of connects to the modern minimalist aesthetic. I think the way the statuary has been presented to us in popular culture and in general education in the US has given us a sense of the Greeks that is subtly changed by this realization that they weren't what we thought of them as. At least many of us.

Greek art may be less like the Miro in the Guggenheim and more like the mural in the barrio. And as the truth spreads that their art was in many ways closer to what white Americans think of as "immigrant" art, it will probably slightly help with multiculturism. And influence design.

And as StavrosK appropriately snarked, "Pity the ancients didn't share our fashion sense, eh." Yes, and I think there was/is a pretty strong myth that they did.

<comment><USER18> While I agree this will challenge a lot of popular assumptions about classical art, this information isn't exactly new. See for instance Alma-Tadema's representation of the Parthenon:

[http://commons.wikimedia.org/wiki/File:1868_Lawrence_Alma- Ta...](http://commons.wikimedia.org/wiki/File:1868_Lawrence_Alma-Tadema_- _Phidias_Showing_the_Frieze_of_the_Parthenon_to_his_Friends.jpg)

</comment></comment><comment><USER19> Nashville, TN has a full scale replica of Athens' Parthenon, complete with four story Athena. She was originally unpainted, but recently was updated to match what she looked like in ancient days. Lots of gilt and garish paint.

Before: [http://legacy.lclark.edu/~ndsmith/Acropolis/Nashville%20Part...](http://legacy.lclark.edu/~ndsmith/Acropolis/Nashville%20Parthenon%20Athena.JPG)

After: [http://people.vanderbilt.edu/~amanda.n.krauss/AthenaGilded.j...](http://people.vanderbilt.edu/~amanda.n.krauss/AthenaGilded.jpg)

</comment><comment><USER20> Better article:

<http://www.smithsonianmag.com/arts-culture/true-colors.html>

This is one of those slow news day tropes "rediscovered" and recycled every few years.

In the Hermitage in Russia, there are several centuries old paintings with incidental Greek statuary in the background, painted in living colors. This is one of those nuggets even art historians keep forgetting to pass along.

</comment><comment><USER21> Did they also use ultraviolet light to determine the colors and patterns painted on the missing quiver of the bowman statue? Amazing. Also, could it be true that the colors are not exact? Certain pigments could degrade more, leave less of a trace, so assuming the reconstructed colors might be off slightly, they could have been significantly less ugly than these depictions.

</comment><comment><USER22> I wonder if there was certain lightning requirements.

For example, the famous bust of Abraham Lincoln requires light over head and behind it to give it a serious, solemn almost brooding and suffering look

[http://farm4.static.flickr.com/3504/3753443355_6ed82e886f.jp...](http://farm4.static.flickr.com/3504/3753443355_6ed82e886f.jpg)

In full light, though, it looks less impressive.

</comment><comment><USER23> I wonder if those solid colors were just the base of the paint, and some shading effect was applied on top to make the statues look more realistic. I mean, I have a hard time imagining that artists like the Ancient Greeks, who got the human shape so right, would also get the color so wrong.

(By the way, the little color left on the Elgin Marbles look like a badly weathered garden gnome. Oh well.)

</comment><comment><USER24> I was thinking about the metal ones, and a comment in the site said "And yes it is generally thought that the bronze originals were painted too."

</comment><comment><USER25> It makes all those monumental neoclassical buildings and art look quite funny. Like your idea of beauty was based on a skeleton of some beauty queen of old and you didn't even realize that it's not how she was expected to appear. (Hyperbole, of course. But if you, for example, think about that history shows parodied in Futurama, hey, it seems that we're exactly like that…)

</comment><comment><USER26> but "ultraviolet light" is a contradiction in terms

<comment><USER27> What?

<comment><USER26> Light, by definition, is visible. "Ultraviolet radiation" would be a preferable usage.

<comment><USER28> Nonsense.

Light, as defined by dictionary.com:

2\. Physics

a. Also called luminous energy, radiant energy. electromagnetic radiation to which the organs of sight react, ranging in wavelength from about 400 to 700 nm and propagated at a speed of 186,282 mi./sec (299,972 km/sec), considered variously as a wave, corpuscular, or quantum phenomenon.

b. a similar form of radiant energy that does not affect the retina, as ultraviolet or infrared rays.

</comment></comment></comment></comment><comment><USER29> Somewhere, Ted Turner is smiling.</comment>


Terminal tasks todo with reminder tool for geek - <AUTHOR> https://github.com/thedevsaddam/task <comment><USER2> Cool app, but have a look at taskwarrior [https://taskwarrior.org](https://taskwarrior.org)</comment>


Startup Universe - a Visual Guide to Startups, Founders and Venture Capitalists  - <AUTHOR> http://visual.ly/vizbox/startup-universe/

<comment><USER2> Nice visuals, but just a quick check of the data: Numonyx is a startup? Really? Then why not FreeScale?

Increasingly, "startup" seems to be defined as a way for the M&A guys to make money. If they can't make money, then it's not a startup (or it's a "lifestyle company".)

<comment><USER3> The data is as accurate as Crunchbase is. And I suspect that all companies listed were once startups.

<comment><USER2> Ah that explains it. Crunchbase semi is definitely defined as things for M&A guys, and the data are terrible. (Look at Sequoia Comm for example.)

Numonyx was Intel unloading some of their crappier memory biz lines. They eventually unloaded it on micron, which makes me think that some of micron's BoD (or someone in the decision tree) made off personally.

</comment></comment></comment><comment> alok-g This is awesome! Thanks for this.

How do I search for VCs who find companies in a given sector (say education)? Currently I see the startups in a sector and have to explore each in turn to see who have funded them.</comment>


The Year Ahead 2016 - <AUTHOR> http://www.bloomberg.com/graphics/year-ahead-2016/ <comment><USER2> I really like the look of this! Why all the negativity? Just because Bloomberg did it? The simple truth is that positioned text (and, in this case, discretely positioned fixed width text) is a wonderful format for conveying information. The combination of scroll-advance, the way contrast is used to focus - I say, really cool looking.

My only criticism was the boy in the moon animation to the left of the company list. That was distracting and made the UI feel chaotic. I also don't like the (full color) banner ads - they could have at least got one of their sponsors to do an ASCII art version of their ads!

</comment><comment><USER3> It was totally charming and i scrolled through it with a smile. But you know what - didn't really read it, it's pretty hard to read actually. Not sure that's what you want to be going for as a news organization.

<comment><USER4> 50 charts and tables is a lot to consume on a webpage no matter how you slice it.

The original magazine presentation - 6 full page spreads with 8 or 9 charts each - is way more readable. The higher information density of paper lets you glance at 9 companies at once and spend more time with what looks interesting. We tried to preserve some of the serendipity online with the short preview sentences on the left column, but the linear scroll through the charts takes away from that and makes it feel a little too chore like.

Sometimes translating to digital invites amazing improvements through interactivity (see what is code), but here we had a tight deadline and too many charts to redo them all in an interesting way w/ d3 so the digital focus was much more on the design side.

</comment></comment><comment><USER5> Another great piece of content made completely unreadable by Bloomberg.

Ever since Joshua Topolsky joined Bloomberg, this novelty-over-form style is everywhere.

<comment><USER6> It worked well (and got lots of traffic) the first time they did it. I think they learned the wrong lesson.

</comment></comment><comment><USER7> Did the offices at Bloomberg suffer from an electromagnetic pulse explosion? The 5¼ floppies were safe in an underground bunker?

:-)

</comment><comment><USER8> Holy BBS flashback, Batman....

<comment><USER9> I think you'd find not many BBSes required ~2.5MB of transfer to display a handful of extremely short articles.

<comment><USER4> Not including ads, the page is 1.1 MB w/ 800KB of chart images and 100KB of css that was mistakenly included (whoops).

We did discuss just publishing a .txt or .nfo file instead, but some of the charts required a bit of ASCII cheating and being able to adjust font size & weight of labels really made them a lot more readable.

<comment><USER10> There are still BBS's around. You just need to look. There are some BBS art on sixteencolors and some of the art packs have addresses for some BBS systems.</comment></comment></comment></comment>


A Woman Who Walked 10,000 Miles in Three Years - <AUTHOR> http://www.nytimes.com/2014/09/28/magazine/the-woman-who-walked-10000-miles-no-exaggeration-in-three-years.html?ref=magazine&_r=0

<comment><USER2> 10,000 miles / (365 days * 3 years) = just above 9 miles per day. Not bad :)

<comment><USER3> I've just ticked over 1500 (directly recorded) miles for 2014. I reckon I could -probably- do 10k miles in 3 years without a job but that would be in London or equally easy surroundings (maybe some of the South Downs, etc.) and not carrying packs of supplies, etc.

Through jungles and war zones and ... no. No way. She's crazy. But in a good sense.</comment></comment>


"This is US's F-35 Lightning II It has been in development since 1992" - <AUTHOR> https://threadreaderapp.com/thread/1015212921071329281.html <comment><USER2> When you look at the development time for many of these advance warmachines often taking at least a decade or more, it's scary to think about what is being developed right now that will enter service 20 years from now.

</comment><comment><USER3> When something takes this long (26 years so far) to put into service, it's already obsolete before it gets used.

A bit like flying a Sopwith Camel (1916) against a Fock-Wulf 190 (1941).</comment>


Ask HN: How do you find AWS management tools? - <AUTHOR> I have been working on a project and wanted to get some feedback from the community to make sure, I am headed in the right direction.
CloudEgg.net
The whole idea is to have a repository of vendors, open-source solutions that are available for their use cases. If we have to trivialize it, it's a review website for only AWS Cloud Management tools.
What's the process you follow to find a tool today? <comment><USER2> Will it be an open directory? By open I mean can website visitors search for the tools? The wording on the website sounds like you collect requirements, do a (manual) search ("We do a thorough search of our database and the internet") and contact (email?) the user with results. That would make you a middleman, possibly taking a referral bonus.

I use directories like [https://aws.amazon.com/marketplace/](https://aws.amazon.com/marketplace/) [https://elements.heroku.com/addons](https://elements.heroku.com/addons) [https://github.com/marketplace](https://github.com/marketplace)</comment>


Former Boeing official subpoenaed in 737 MAX probe won't turn over documents - <AUTHOR> https://www.seattletimes.com/business/boeing-aerospace/former-boeing-official-subpoenaed-in-737-max-probe-wont-turn-over-documents-citing-fifth-amendment-protection/ <comment><USER2> I wonder what the actual documents are.

I mean, Boeing should have at least a copy of _every_ document ever produced by its staff, unless all internal copies of those documents have been (intentionally or accidentally) destroyed and the only surviving copy is known to be in the hands of Mr. Forkner.

<comment><USER3> Could be handwritten notes, for example.

<comment><USER4> Your comment about the handwritten note made me think of Feymann's story of being tasked with find some note that had been scribbled before the Challenger launch with something akin to "go for it!" or the like. Presumably whatever was in the note was evidence of some sort of cavalier attitude towards safety.

His conclusion, though, was that this was an extreme distraction and likely intentional misdirection to prevent them from spending time focusing on the real questions and systemic causes of the accident. Part of me does wonder how much of that is happening here. It would do Boeing wonders to be able to pinpoint as a "root cause" of these failures some sort of cavalier attitude by a few engineers rather than a very large systemic failure on the part of the company itself, which includes but is not limited to cost-cutting, regulatory capture, and abuse of their oversight authority.

</comment></comment></comment><comment><USER5> It's not necessarily an admission of guilt. If the investigation is about negligence, and trying to establish whether it was intentional or not, it is a very grey line and it is understandable that the pilot would be defensive.

<comment><USER6> Specifically, asserting your 5th amendment rights is _not_ an admission of guilt in a criminal case.

In a civil case, it may be taken as an admission of guilt - partially because the rules are different.

There are different standards for guilt (preponderance of evidence vs beyond a reasonable doubt) for the two. In a civil case, you do not have a presumption of innocence - and asserting a 5th amendment right can intimate guilt.

According to the Supreme Court, asserting your 5th amendment rights explicitly cannot be used by a prosecutor as evidence of an admission of guilt - specifically because you are presumed innocent until the prosecutor proves otherwise, and you are under no obligation to prove yourself innocent.

<comment><USER5> But I think the article used "admission of guilt" in the ethical sense rather than legal sense.</comment></comment></comment>


Money laundering in the UK - <AUTHOR> https://www.theguardian.com/world/2019/jul/05/how-britain-can-help-you-get-away-with-stealing-millions-a-five-step-guide <comment><USER2> An article about international money laundering that doesn't mention real estate. Weird. Because real estate in the developed has been, is and will continue to be a prime vehicle for money laundering by kleptocrats.

Fun fact: all US tax residents, lawful permanent residents and citizens need to declare all foreign assets to the US government every year if they're over some pretty low thresholds. You may have to do this not once but twice if you're over slightly higher thresholds. One is or was known as FBAR and is a disclosure you need to make to the Department of the Treasury (specifically FinCEN). The other is Form 8938 and is part of your tax return (so to the IRS).

Both require you to list all assets you own, co-own or otherwise have signatory authority over... except for real estate. If you earn money from real estate (eg by renting it out) then that needs to be declared (and possibly taxed) but the ownership of the property itself does not. Why? Who lobbied for that exception?

<comment><USER3> BuzzFeed had a series of articles about a number of suspicious deaths of Russian expats who had fallen out with Putin or otherwise were persona non grata. Apparently the Home Office / upper echelons of the police were dragging their heels in investigating them - the general conspiracy theory is no one in the UK government really wants the flow of money from Russian oligarchs that is propping up the London property market to dry up. Tie that with May's speech sometime ago (little reported on) that the UK needs to be "better friends" with Russia (and this was _after_ Salisbury)...

With this and Brexit and everything else, I really want out of this country. But then I'd have to move back to the US.

As for the FBAR, it is annoying, but at least only tedious and not onerous. I will never have enough money to really justify having to fill out these forms - and the people who really ought to are the ones with enough to hire the specialists to hide it from the US government.

<comment><USER4> The FBAR limit is pretty low, around $10k isn't it? Once over that limit, are you really saying you could skip filing it on the basis of not having much money? The FACTA limit is much higher, most people wouldn't need to do that one.

<comment><USER3> It is low - my initial take was this law was written in the 1970s when US expats were rare and only the really wealthy lived overseas. I was thinking of the people I've read about who had 100k etc stashed in Swiss bank accounts and the like. The problem is the potential fines if you get caught not filling out the forms - I forget the exact numbers, but it's like 50% of the balance (or all your assets?) and a fixed fine ... It is pretty much an attempt to borderline bankrupt you.

In reality, however, enforcement is lax - the IRS is getting decimated thanks to Trump and co. and so going after the small fry is not cost effective. High profile cases, e.g. Boris Johnson who has American citizenship, are just as much for PR purposes as enforcing the law. The IRS went after him because he was selling his house, something like that, and so it was profitable to get him for avoiding US tax law.

<comment><USER5> I'm no fan of Johnson, but he did absolutely nothing wrong in that case, and his personal connection to the US was very weak. He renounced his citizenship shortly after that episode as are record numbers of very ordinary (income wise) Americans abroad since FACTA was introduced.

The IRS makes overseas compliance for ordinary and accidental (just happening to be born on US soil, but otherwise no connection) American citizens very difficult and opaque, and the penalties are extraordinarily disproportionate when most of the time they usually owe absolutely nothing to US tax authorities other than paperwork.

It also makes access to financial products for American citizens and ex- citizens abroad difficult because local banks don't want to risk dealing with the millions on non-compliant citizens because they also face very high penalties for providing services to non-compliant citizens.

Essentially no other country taxes on the basis of citizenship instead of residency, and they are making a pig's ear of it.

</comment></comment></comment></comment></comment><comment><USER6> This is interesting, but as someone who has formed a UK limited company (and yes, it is as easy as the article claims), they've missed that the tricky part is getting a bank account. The onus is on the banks to carry out checks under "Know your Client", not Companies House. Registering a company in the UK doesn't really get you anything, other than a thin veneer of authenticity among people who don't understand how easy it is.

Not saying it's not a problem, but they should have looked into how easy it is to get banking for these "novelty" businesses.

<comment><USER7> All you need is proof of address (a utility bill). The article hints at it, but identity theft is rather easy in the UK.

A few years ago someone went to a Vodafone store, opened a contract and walked out with a new iPhone in my name. I'm not exactly sure what they used to do that, but shortly after I found bank accounts and other phone contracts in my name, so I assume they used the Vodafone contract as proof of address.

<comment><USER8> > All you need is proof of address (a utility bill).

Don't you also need passport/id card? I suppose they have to accept a birth certificate too, so maybe that's the easiest thing to fake

<comment><USER9> You don't need to fake a birth certificate, you just need to 'request a replacement' in the name you're using. I believe this was a big issue a few years ago, people requesting birth certificates for people who had died young, then leveraging those to get passports etc.

</comment></comment></comment></comment><comment><USER10> What this guide leaves out is the most important part: getting a bank account. I can't speak to the process in the U.K. but in the United States the "know your customer" rules are quite strict and accounts for businesses are doubly so. Just having a set of incorporation papers won't work and it can't be done online (in my experience).

Having a duly registered company with fake directors gets you nowhere without a bank account.

<comment><USER3> I suppose things have changed a bit since I moved to the UK, but in my experience, the US is infinitely better than than the UK is terms of banking. It was quite easy to open up a business bank account in the US - took one day. Here, it is still hell to open up an initial personal bank account - passport, the residence permits, the proof of address... A few weeks at least. Once you are in the system, it does get a bit easier, but the UK system is still tied to the concept of you're associated with a specific branch at a specific location - it is like the 1950s in some ways. Larger banks are sort of more efficient, but it is not the US at all.

<comment><USER11> As a UK citizen, that last part doesn't seem true for my personal banking. Once you have an account it's very easy to open others at different banks.

Just recently I opened a secondary account with an app only bank. Other finance apps can simply use the API to help you keep track of your own spending, etc.

Of course immigrants may have additional hurdles with banking in the UK, I don't know.

<comment><USER3> This was 12 years ago, so things have changed, but man... when I first got here, landlords were wanting 6 months of rent upfront. The system was obviously designed (or it just came out that way) to make it hard for immigrants to initially establish themselves. These days, it is going to get a lot worse once Brexit happens.

Perhaps you misunderstood me or I wasn't clear - when I first got here, I tried to deposit a check into my account using another branch / office than the one I where I opened my account. I couldn't. It is not a matter of opening another account with _another_ bank. From the little I know of the banking system, things are or were not then, as wholly integrated as they were in the States. OTOH, the US is only now catching up to the rest of the world w/ Chip and PIN debt/credit cards....

<comment><USER12> The UK system is also highly dependent on utility bills as a proof of address if you are an immigrant.

<comment><USER13> I've always been mystified by the idea that's taken hold in the UK that a utility bill is some kind of ID. As far as I can see, a modern utility bill could trivially be faked on a regular printer. (I assume that utility companies can't verify bills without violating data protection laws.)

<comment><USER14> It does elevate "oh, I made a mistake" to concrete fraud/forgery if there's reason to go back and look into it.

<comment><USER13> I've always wondered if it would actually constitute fraud if you made a fake utility bill with your real address on it.

<comment><USER14> If you submitted that for reimbursement purposes, I'm sure it would.

If you submitted it for proof of address purposes and you have service from that utility in your name but with different consumption values, I would think it would not.

If you submitted it for proof of address purposes and you do not have service from that utility in your name, I would think it would be.

<comment><USER13> Yes, I mean in the proof of address case. It seems doubtful that providing a fake document with your real address could constitute fraud, if the document was being used solely to verify your address. But perhaps there is some other criminal offense of forgery or some such that is still applicable.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Is it intentional? Of course it's intentional. This is how they bring in massive amounts of money. No doubt some of it ends up in politicians' coffers, directly or indirectly. Seeing the consequences of the change in law to allow this is trivial especially with the guy who kept trying to demonstrate it to the government. How ironic when the government is the one who intentionally initiated this. No wonder they charged only the whistleblower with filling false information. It's not stupidity, it's malice. As it typically is with humans, despite the obviously incorrect perception to the contrary that some are fooled by.

</comment><comment><USER16> 1\. Transaction reporting requirements are a blatant violation of privacy. Stopping crime is not a sufficient justification for warrantless mass surveillance of private interactions.

2\. If money is dirty, you should be able to prove a crime was committed to procure that money. If you can't, then the allegation is mere suspicion, and we've entered the territory of "guilty until proven innocent" civil forfeiture.

<comment><USER17> I don't agree with your first point, but it sounds like the basis for a coherent argument.

However I think your second point is arguing against a statement the article doesn't make at all. The article is really arguing about making it possible to prove guilt, not just seizing everyone's assets and then checking if they're dirty!

<comment><USER16> >>The article is really arguing about making it possible to prove guilt

That's not how free societies work. The state must find evidence of a crime and then use that evidence to prove the crime occurred. It cannot require everyone to document their activity, and pass it off to authorities, under pain of imprisonment, so that authorities are given evidence of crimes as they occur.

The idea that anything not vetted by the state should be suspected of being "dirty", and shunned, is a dangerous ideological framework that favors tyranny and extreme centralization of power.

</comment></comment></comment><comment><USER18> This is well known that UK laws protect people who commit financial crimes in other countries. UK is the destination for all corrupt Indian politicians and businessmen who committed financial crimes.

[0] - [https://qz.com/india/1301746/nirav-modi-to-vijay-mallya- high...](https://qz.com/india/1301746/nirav-modi-to-vijay-mallya-high-profile- indian-fugitives-whove-fled-to-the-uk/)

</comment><comment><USER19> At the end of the day people need to reconcile the fact that there is a tension between financial privacy and transparency for the sake of fighting crime. Additionally, there is the fact that the implementation of policy is typically a messy affair, and the added complexity that the state may not be the "good guy" (take civil abuses of civil forfeiture in the US as an example) makes the whole topic one that where clear lines are hard to draw.

</comment><comment><USER20> Despite the clickbait title of the article, this isn't complete information. Plenty of locales will be happy to take your money and register your company - named, numbered, owned by Larry, Moe, and Curly no problem.

However banks still have their "know your customer" requirements, and generally need to understand and verify the ultimate owner of an entity. That is where the checks are. Just registering a company doesn't give you access to a bank account. Where companies like HSBC get in trouble is they do the verification incorrectly, wink, and don't discover the error until someone points it out to them.

Money coming in and out of traditional tax havens gets a lot of scrutiny. As someone mentioned earlier most current money laundering schemes involve real estate or buying profitable businesses. I've read the mexican drug cartels will buy winning lottery tickets from people (at full value!) because it allows them to justify their income.

</comment><comment><USER21> > _Among the characters who have used British shell companies to hide their > money are Paul Manafort, disgraced former chairman of Donald Trump's > election campaign, and Viktor Yanukovich, overthrown president of Ukraine, > among thousands of lower-profile opportunists._

Including tons of other establishment figures, global leaders, kleptocrats, and business moguls, but of course only those in the eye of the British "national interests" or out of grace with the establishment on both sides of the pond, like Manafort and Yanukovich are mentioned in the BBC...

</comment><comment><USER22> Disappointed. I was hoping to learn something useful, instead "you can open a company without an ID" \- anyone can do it. But what about making money?

</comment><comment><USER23> Obligatory mention for the US: Delaware, the scumbag state - allowing tax avoidance.

</comment><comment><USER24> OK, so you put the dirty $$ in the banking system. Then what? This can work in Russia and alike places but at least in USA you would have to declare it and answer soon or later how you got it. The former Economy Minister having $1.7 Billion in his account might ring a bell or two.

Having it there and not being able to use is...useless.

<comment><USER25> The usual trick is to then have your corporation (pile of illegal cash) loan "you" money - that was Manafort's way, for example. No tax owed on a loan, it's not income.

<comment><USER26> HMRC are onto that one and are suing a lot of people over those scheames.

<comment><USER27> It's more controversial than that. The government effectively passed a retrospective tax on this arrangement, called the 'loan charge' because they thought it should have been against the rules but it turned out in many instances it actually wasn't.</comment></comment></comment></comment>


Languages For Every Sysadmin - <AUTHOR> http://commandlion.com/2012/06/03/every-sysadmin-three-languages/

<comment><USER2> I often find it difficult to talk about problems to some sysadmins because they don't understand how the MVC model works (I am a web dev). They point to a URL and ask me, "So where is this file/directory" and I have to oversimplify rather than explaining what frameworks do with URLs and routing and all that. It would be so painless if they got what I was saying! I say this as a dev who occasionally needs to handle deploy scripts and maintain servers.

</comment><comment><USER3> Well put, especially the last line section: at least be familiar and competent enough in the language your product or company uses. As he says, no need to be an expert, but be able to at least understand it.</comment>


Unity Joins the Blender Development Fund as a Patron Member - <AUTHOR> https://www.blender.org/press/unity-joins-the-blender-development-fund-as-a-patron-member/ <comment><USER2> I can without a doubt say that Blender is my number one favorite piece of software I've ever used! The speed of development is breakneck now, but the program still runs solid and stable, and the community around the program is excellent, too!

<comment><USER3> Amen to that! In another life, SoftImage 3D was my favorite tool. Then Microsoft bought it. Then Autodesk, the software graveyard tar pit, bought it and petrified it for all eternity. There will never be any more SoftImage development.

Can't happen to Blender. Blender will always be free and cross platform. Learn Blender and use it for life.

<comment><USER4> Given how Blender came into being (acquired a product facing an economic dead end), never say never. There could be other products out there barely breaking even for companies that could be rescued by foundations.

</comment></comment></comment><comment><USER5> Great move by unity, a lot of indie devs use blender since then can afford/use commercial 3D tools.

I might be wrong, but last I checked unity had drag-n-drop support for Blender models.

<comment><USER6> I use Unity's Blender integration extensively. It just invokes blender's CLI to convert .blend -> .fbx for you automatically, which is nice.

However, only very simple material properties are imported. Multi-textured objects, materials with specific BSDF properties, etc. are basically ignored entirely and you have to manually reproduce them in Unity after the fact. It's very annoying.

<comment><USER7> Perhaps with this news this is soon a thing of the past

<comment><USER8> It would be a good start if the Principled shader could be imported with some degree of fidelity. A lot can be done with just that one..

<comment><USER9> Can't happen without parity, or at least mapping between Unity and blender rendering engine.

Materials is complicated enough that they should probably not attempt to port. Unity ships with real time rendering features that blender doesn't have, so anyhow stuff will be fine in unity itself. It leaves blender plenty useful for mesh modeling, uv mapping, rigging and animation.

</comment></comment></comment></comment></comment><comment><USER10> While this might be a case of "commoditize your complement", it's also a great news for Blender which is by the day becoming a really solid offering in 3d. Remembering the weird but promising NaN versions (before being acquired by the community to open source it), this is great news.

<comment><USER11> I think Blender is already at to top when it comes to 3D, although it lacks the integration into professional creative pipelines/workflows.

</comment></comment><comment><USER12> Has blender made progress on their UV tools? Last time I used it, they were miles behind what Maya / 3ds Max offered and honestly, for me, that's a part of the process i would prefer to be as smooth as possible.

<comment><USER13> At least there are open source add-ons for UV manipulation in active development:

[https://github.com/nutti/Magic-UV](https://github.com/nutti/Magic-UV)

[https://github.com/leukbaars/DreamUV](https://github.com/leukbaars/DreamUV)

[https://github.com/SavMartin/TexTools- Blender](https://github.com/SavMartin/TexTools-Blender)

Incremental improvements are going into the core tools, though, just by looking at the user manual history: [https://developer.blender.org/diffusion/BM/history/trunk/ble...](https://developer.blender.org/diffusion/BM/history/trunk/blender_docs/manual/modeling/meshes/editing/uv.rst)

The manual page: [https://docs.blender.org/manual/en/latest/modeling/meshes/ed...](https://docs.blender.org/manual/en/latest/modeling/meshes/editing/uv.html)

</comment></comment><comment><USER14> Like Nokia and Blackberry when the iPhone came out. Autodesk is about to pass into irrelevance as Blender becomes the tool of choice for developers. I've used 3ds Max and Maya professionally since the 90's, and while they still have more functionality, Blender is improving and becoming more functional with each release and is quickly coming up to par. I'd argue Blender has better UI and is more stable than those programs. The Blender community is fantastic as well.</comment>


Symfony2 is the best to Build great project  - <AUTHOR> http://www.pngine.com

<comment><USER2> i loved the interface and the technology behind it</comment>


Talks from the first TVM and deep learning compilers conference - <AUTHOR> https://www.youtube.com/playlist?list=PLR4pm7mU3ROmrk9rimv6nRinKb0YKBx0f <comment><USER2> TVM is an open-source deep learning compiler stack for CPUs, GPUs, and specialized accelerators. It aims to close the gap between the productivity- focused deep learning frameworks, and the performance- or efficiency-oriented hardware backends.

The conference contained 20+ talks covering deep learning compilation, specialized accelerators, IoT, ML for systems, privacy/security and more</comment>