Ask HN: Would anyone be interested in "Hacking Games"? - <AUTHOR>

It seems to me that most 'true' hackers are generally interested in what the rest of the world considers hacking (i.e. - breaking into computer systems) but think it is lame to do so maliciously. I couldn't agree more - and I had an idea. Maybe this is completely unoriginal, and maybe this is actually highly illegal or widely frowned upon - but that's why I'm throwing it out there for comment. I think it would be fun to set up a monthly competition where a server is set up, and contestants attempt to be the first to hack the box (and achieving a specific goal like replacing the home page, or something like that). I'd be willing to run the contests and provide all the hardware, etc... I was thinking a series of games could focus on various Linux distros, or various versions of Windows, etc...<p>So I'm posting this to see if there's much interest in running such a contest (say, once a month or so), and if there's comments as to the other implications of such a game. Obviously, DoS attacks would be strictly against the rules, so as not to cause any problems for my ISP. Any thoughts? <comment><USER2> Those things existed since at least 1997. CyberArmy had their own contests like this and they promoted people into "ranks"; the whole place had a cheesy forum/bbs feel to it and it didn't take long before someone decided to put them out of their misery and rm -rf'ed them out of existence .. including the game server.

Anybody who is anybody probably will not like the patronizing student/teacher role and he would certainly despise the sanbox; it might not just be your vmware image, but also your webhost, their colocated box, and every other box in that datacenter, and perhaps a few more wifis within an earshot from there -- all might be sent to the abyss of server hell, and your good name immortalized in a lulzful lamer log.

Do not invite the curiousity of bored people with something to prove. Do something else with your time, instead.

<comment><USER3> I don't know - there was a site back then (died because of admins, not hackers) called, I think, Digital Evolution (dievo.org?) that hosted a lot of security-related games, covering web-based stuff like SQL injection and going on to shell-based games where your focus was to elevate your privileges, usually by exploiting a small program given to you - sometimes with the source, sometimes without it.

And as far as I can remember, they never got "really" hacked. Damn, I miss that place. There were riddles, math games, _sigh_...

<comment><USER2> Sure, why not, but he is probably nullifying a few TOSes and other service agreements. The reason we put inane disclaimers and "get off my lawn" type message in /etc/issue is to cover our asses. If anybody from his network/hosting provider sees this he will surely get his account yanked by them before the baddies.

</comment></comment></comment><comment><USER4> I would be interested if you count. Perhaps I should post this in a new thread but here it goes..

I have seen a few "hacking" (cracking) games back in 1999-2002 but most of them where too simple to be interesting. They always had one clear solution, to a beginner in cracking like me, and you never got that feeling of accomplishment. Althouth I am still interested in cracking nowdays I'm wathcing it from the opposite side, i.e. what are the most common security threats and how do I keep my code safe from them. I have bought/read a few security/cracking related books/articles that were recommended or written by experts on the field but as they were too specific they were of no interest, except from an academic perspective, to me. E.g. phrack.org articles. What I would really love to see is some free course in cracking that would combine theory and practice in some sort of sandboxed environment that would be level and field based but more free than just having an assignment, e.g. find a way to create an sql injection to delete all entries in a db.

If there are any willing crackers on HN I would really appreciate it if they could share how they started cracking and what would be their recommended way for a beginner to start now. If this is too off-topic and/or illegal just say it, if it's not against rules I'll start a new thread.

</comment><comment><USER5> A really good wargames sites used to be pulltheplug.org, I had some fun playing around there 5 years or so ago.

They seem to have moved to <http://www.overthewire.org/wargames/> .

</comment><comment><USER6> There are "Capture the flag" contests at DEFCON and other hacker conferences where teams each need to defend a machine and attack those of other players: [http://en.wikipedia.org/wiki/Capture_the_flag#Computer_secur...](http://en.wikipedia.org/wiki/Capture_the_flag#Computer_security)

<comment><USER7> Heading out to DC17 this week myself. CTF and aCTF qualifiers are over, but people prepare for this stuff for months.

</comment></comment><comment><USER8> Check out:

[http://www.google.com/#hl=en&q=hacker+wargames](http://www.google.com/#hl=en&q=hacker+wargames)

<http://www.nationalccdc.org/> <http://isis.poly.edu/csaw/>

Or my own work on the subject:

[http://www.dtic.mil/cgi- bin/GetTRDoc?AD=ADA481288&Locati...](http://www.dtic.mil/cgi- bin/GetTRDoc?AD=ADA481288&Location=U2&doc=GetTRDoc.pdf)

</comment><comment><USER9> There's always Uplink: <http://www.introversion.co.uk/uplink/2/>

It's got UI and plot issues and could be improved upon. (For instance, it's sometimes quite hard to let the game know you did the mission.)

</comment><comment><USER10> I've seen contests like this held before. As long as it's all your hardware, and the contest isn't causing the network to crash (like you said, rule out DoS attacks), I don't see why anyone would have a problem with it.

</comment><comment><USER11> Another context where you can take part in sandboxed, organised hacking contests -- sort of -- is some ARGs (alternate reality games). I've not seen anything recent that involved true hacking skills, but sometimes there can be some wonderfully fun puzzles (you know, beyond guessing that a fictional character's password is the name of their fictional pet). Laying the trail for these is also fascinating work.

<comment><USER3> The _old_ Dark Signs were a lot like that - you "hacked" into computers by, say, finding bugs in the scripts they ran. It was really fun.

You can still find the game by searching through <http://web.archive.org/web/*/http://darksigns.com> \- amazingly enough, the files are still present on the present-day site, they're just not linked anymore.

<comment><USER12> I can remember this game, with this nice Soundtrack :) It was one of my favourites free-games.

</comment></comment></comment><comment><USER13> It's not exactly what you're looking for, but a friend of mine made <http://www.hacker.org/> which is a bunch of games that are related to hacking plus some games where you have to write programs to play them.

(The "challenges" game is pretty close to actually having to hack, with various difficulties.)

</comment><comment><USER7> Personally, I'd love to see these sorts of things set up locally. To say you'll disallow things or implement rules is just silly. Now, if you're on a localized network with no outside lines, all bets can be off and everyone can have a safe, fun time blowing each others machines to bits.

</comment><comment><USER14> I've seen other websites and organizations do this. I think it's a great idea and a great way to build skills.</comment>


Why You Should Put $19.05 on Your MetroCard to Outsmart the MTA - <AUTHOR> http://gizmodo.com/why-you-should-put-19-05-on-your-metrocard-to-outsmart-1632531219

<comment><USER2> Already posted 5 days ago: [https://news.ycombinator.com/item?id=8274084](https://news.ycombinator.com/item?id=8274084)

Gizmodo is a bit late to the party reprinting the same article...</comment>


IPFS: The Permanent Web - <AUTHOR> http://ipfs.io/

<comment><USER2> Extensive discussion of IPFS from yesterday:

[https://news.ycombinator.com/item?id=8069836](https://news.ycombinator.com/item?id=8069836)</comment>


Monads are like a dildo factory, staffed by midgets - <AUTHOR> http://www.chrisstucchio.com/blog/2013/write_some_fucking_code.html <comment><USER2> > You didn't learn python via abstract tutorial, comparing lists to Smaug and > dicts to Bilbo [...]

> STFU and code. There is no other way to learn to code.

I think this is true of a lot of languages, but learning Haskell verges on learning mathematical concepts at times and learning monads is definitely one of those times. In these cases analogies are sometimes the easiest way to grok the concepts.

<comment><USER3> I don't think this is necessarily true. I'm fairly strong in math, and definitively enjoy approaching problems in the abstract. However, even in math, it is often the case that by using something you gain an intuition about how that thing behaves. Monads defiantly worked that way for me. I am good enough at math that I could look at their definition and 'understand' what they are doing (it really isn't complicated, its just difficult to explain). However, when it came time to use them in code I had almost no intuition about how they should behave. Now, my understanding of them is (in my opinion) not at all the natural understanding that would arrive from their definition, but an understanding that is accurate, and far more useful in code.

</comment></comment><comment><USER4> Seems like there's a monad tutorial posted here every week. This is by far the best one.

Honestly, they mostly come across as condescending. At least this one's honest about it.

</comment><comment><USER5> I salute this man. And I still don't know wtf Monads are.

<comment><USER6> Really? I thought that we had reached the point where the number of monad tutorials exceeded all other computer science literature put together.

<comment><USER5> I wasn't really trying. I mostly write JavaScript or try to bite through the arteries in my wrists while suffering through other people's Java and C#.

</comment></comment></comment><comment><USER7> So, maybe I'm just being overly provincial here--I rather suspect I am--but does anybody else wish people could explain, to a three year old, why anyone should give a fuck about monads?

They always seem to come up along with Haskell, and as far as I can tell they seem mainly to be CS hipsterism.

So, pretend I'm a three-year old...or even better, pretend I'm a grumpy old C programmer.

Can anyone here (please!) explain to me:

      1. What are monads (using grade-school language)?

      2. What does a monad in C look like (or C++, if you need template magic or OO stuff)?

      3. When will I use one outside of my Haskell class or Google interview?

EDIT: I gather that monads are some kind of weird thingy related to doing proper function composition in type systems that would otherwise get in the way, but maybe I'm smoking crack?

<comment><USER4> Disclaimer: I'm not a Haskell hipster and I personally think that people trying to advocate that language and FP in general do themselves a huge disservice by focusing so heavily on monads and other type calculus concepts in introductory contexts.

1\. Monads are a means to create ordered evaluation in a system that does not guarantee it as part of its execution model. You wrap actions in other actions so that the act of unpeeling them results in computation occurring in a predictable order. (not grade-school, but I do think it's more understandable to a non-FP aficionado)

2\. They don't. Things always happen in a predictable sequence in C/C++.

3\. See 2.

<comment><USER7> Ah, so the main utility of them is helping to make ordering guarantees in a language that would normally be more about mapping data points to their images under a function?

That makes a great deal of sense, actually.

</comment></comment></comment><comment><USER8> And I still do not know what a effin monad is...

<comment><USER9> Did you try "stop reading fucking monad tutorials and write some code"?

</comment></comment><comment><USER10> +1 for title. Don't understand monads still, so didn't read.</comment>


Ask HN: What Are Core Concepts, Language Neutral? - <AUTHOR> Hi,
I hear very seasoned senior developers with wealth of experience, always make this statement, i.e. The Mastery of Core Programming Concepts is the key and that a language of choice is just then used as a tool, hence the aforementioned Core concept mastery can be ported over to learning other languages.
So my question to Senior seasoned developers is thus, can you list this core concepts? I believe that if one can identify these core concepts and then get to master them, via drills and exercises, that will bring about proficiency.
I liking this to my knowledge of the Martial Arts and I am sure this is true of other skills that one acquires. So with the Martial Arts, you start with basics, that is Stances, which is your foundation, proper form, then you get into punches, strikes etc. and then you get to work on all these individually and in combination, regularly, so as to build muscle memory, this polishes your proficiency over time. You are also taught forms, what you will call in Karate a Kata, which will encompass the stances, strikes etc that you have been taught individually, but now as a pre-arranged sequence, which helps you to some extent understand the implementation of the basics / techniques.
So in my mind, if this can be broken down and thought of and structured when it comes to mastering programming, I believe it will make the learning curve less steep.
Please I will appreciate your feedback. <comment><USER2> There are two ancillary areas that one should know well to be successful:

Databases: Do you know cod's laws? Do you understand what good db design is? Set theory? Relational algebra? If not a great starting place is the book "Database Design for Mear Mortals"

Instrumentation: When there is a problem, do you have the data there to analyze, and the tools to analyze it. If your server side Dapper and the OpenTracing Project are great places to start.

</comment><comment><USER3> I used to begrudgingly practice martial arts. Computer programming is not like martial arts, at all. What you want to do sounds like the software craftsmanship approach:

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

Maybe look up more regarding that? I'm pretty skeptic about it...

IMO, the 'core programming concepts' (as in, skills that transcend language) most important to me, are those related to producing readable, maintainable code. Keeping your functions short, pure, and with one responsibility. Naming everything clearly. Making sure you are obeying DRY and KISS. Perhaps you would enjoy reading Code Complete:

[https://www.amazon.com/Code-Complete-Practical-Handbook- Cons...](https://www.amazon.com/Code-Complete-Practical-Handbook- Construction/dp/0735619670?ie=UTF8&*Version*=1&*entries*=0)

<comment><AUTHOR> @ Mooseburger, I thank you for your comment.</comment></comment>


Tagmask – a new approach to organizing a programmers' community - <AUTHOR> http://tagmask.com/vladimir/posts/10

<comment><USER2> "The main feature of Tagmask is that you have the ability to see only the information that you want to see". Does anyone feel like they want the opposite, that the value in reddit, HN and others is discovery of new things, not more information on old?

<comment><USER3> I think the point is to discover new information, but by restricting the set to prevent only seeing the lowest common denominator. This is something I've wished for many times. There are lots of items and people on HN I find interesting, however there is also a lot of startup group think, Silicon Valley groupies and blogosphere wars (Hi TechCrunch!), which, frankly I couldn't care less about and tends to clutter up the front page. The ability to somewhat restrict new information to people I consider valuable seems useful to me.

</comment></comment><comment><USER4> I signed up and used a 30-character secure (alpha+symbols) password. The signup accepted the password, but now I'm unable to sign in, and the password reset isn't working. Help? My tagmask account name is dhess, and my contact info is in my profile.

<comment><USER5> Is there a common library that's being used which causes this behavior?

I've encountered it elsewhere, and it's amazingly annoying. Nothing says fun like having to reset your password 4 times in a row because the website is silently modifying it.

<comment><USER6> A common design pattern flaw is only hashing the first x characters of the password and storing the result during sign up but then hashing the entire password on log in which results in a miss-match during authentication.

If you use long passwords try removing the last character and seeing if you can still log in to your favorite website - on many you probably can.

<comment><USER5> Yeah, I'm aware the problem was truncation, it just took me a few tries to figure it out. My making a typo seemed much more probable than something that stupid being true.

In practice, what sort of process do you think would cause someone to implement this mistake? It seems obviously dumb to truncate something that you're hashing anyway. (To truncate it to something human relevant anyway, rather than like 512 characters).

That's why I asked if it was in some bugged library, it seems bizarre that the same totally boneheaded design would be recreated independently. It's not just that it truncates it, it's that it does it _differently_.

</comment></comment></comment></comment><comment><USER7> I signed up and think the concept is great.

With minimal use, the first issue I had was that the tags to the left of the post (Link, Article, etc.) drew my eye and I found myself only skimming through those instead of the titles.

Second, clicking on the title of a LINK post takes me to the comment page where the only way to get to the link itself is the small link button next to the name. Seems like it should link directly to the article or at least the comment page should have a summary and/or link that is easier to find.

Looks great overall - keep it up

</comment><comment><USER8> _Sites like Hacker News and Reddit provide for their users one or more 'front pages' containing interesting posts that have been up-voted by the community and are popular at a particular moment in time. However, out of these posts, the user is unable to configure the topics on which he wants to see posts, and the themes that he doesn't want to see._

that is exactly what subreddits on reddit are for. subscribe to the subreddits you care about, unsubscribe to the ones you don't. your front page will then be customized to show you stuff you'll want to read.

do many casual reddit readers not know about this?

the only difference here seems to be that a single link can be tagged with multiple tags, as opposed to reddit categorizing links with one category (though the same link submitted to multiple subreddits are linked together through the "other discussions" tab, but discussions are separated).

</comment><comment><USER9> In some respects it sounds like you are building a programmer-centric version of Quora.

Great idea. Would definitely recommend doing some user testing. I found the Feed 1 and Feed 2 tabs quite confusing, especially as they seem to have identical content.

</comment><comment><USER10> I would like to try puzzling out why SO has gradually become less useful over time.

I was really into SO about nine months after it started. It felt both exciting, functional and useful. I will be honest and say Karma certainly does and did motivate me. At that time also, I wanted to put together something like a "resume of answers". If a would-be employer wanted to see both my philosophy and my skill, they would just have to peruse my questions and answers.

So I "worked" answering SO questions for about a month, got to ~1800 Karma and stopped.

After that, I've mostly used SO to get questions answered. And I've noticed SO's quality has gradually gone down hill; I once could count on getting good answers to my questions and I just can't get answers to any substantial questions.

So what's going on? When I began with SO, it was really big already but nowhere as big as it is now. I'd classify myself as a senior-software- engineer, generalist. I pride myself on not just solving problems quickly but solving them "well" - how to solve the problem at hand in a way that's maintainable, etc, etc. "Working" on SO, I would look on the new questions. Skipping the really elementary ones, I'd find fairly challenging ones that were within "the purview of a generalist". To answer the ones I knew, I had to type pretty fast. I still put a fair amount of effort into my answers. I wasn't the fastest but I was fast that I was getting Karma.

The thing is, it feels like now, to answer a reasonably answer-able question, I'd have to bang it out in second or be behind ten other answers and be ignored regardless of the quality. So I just don't bother.

So, problems I can see.

Scale in question-answers: Many people answering questions means _an_ answer comes up quickly and that might be good enough for a lot of question-askers. But there's a tendency for the super-quick answers to be garbage-answers. They only answer the question at hand - the super-quick answerers have become kind of the Demand Media of programming problem solving.

Scale in question-askers: Many more people asking questions result in lower quality questions. There are lots and lots of questions that qualify as programming questions but just barely. And there are lots of people very quickly banging out the answers to these and getting lots of Karma for it.

Scale in low-signal-to-noise-ratio: With so much quality stuff, the skilled question answers and askers have left. The guy who knows c++ inside and out just doesn't have an incentive to race to answer ten trivial questions and so they go away not wanting to compete with the guy does race to answer all this.

So my diagnosis is scale.

Further, I think the SO have noticed some of these problems but their efforts to solve them have more or less failed.

A while back, there was a large rearrangement of Karma in which the Karma for asking questions was halved. I suspect this was because they noticed that a lot of questions were going unanswered (part-and-parcel of the problems I mentioned above). I don't think this "incentivization" process worked. Rather than incentivize people to answer unanswered questions, I think SO needs to "put the fun back" into answering questions. SO was once like I game I could "win". Now it feels like a game I can't win, that's at a scale where it's impossible to win.

The badges I get just don't cut it. I think Joel & Jeff again realize the "you can't win" quality of current SO and try to compensate with badges since I find "I've gotten a badge" each I've logged onto to my otherwise moribund account in the last eight months.

What I think you would need to produce a programmers community which could stay viable longer is to do things to make sure that people could succeed in the meat of the matter - answering questions. For example, you might force a delay in people's answers or a delay in answers of people below a certain karma. You might actually limit the number of answers a person could give in 24 hours to force people to improve the answer they did give. You might give people more karma for answering higher valued questions.

You might also limit the ability of totally random questions to jump to the front after a while.

You might adopt a variety of "quality measures" to discourage building karma with only simplest answers.

I'm sure my analysis is imperfect, subjective and based on my own predilections. Perhaps some people just love the questions and answers I'm calling "low quality".

However it may go, these are my "rough notes" for an improved Stack Overflow.

<comment><USER11> I think there's a lot of quality in your comment, but I think you're making a whole bunch of broad, generalized assumptions about the state of the entire SO community. In my experience, it's still a highly-functional community with a wide range of interesting questions and answers. As a developer, a lot of questions I see on there during the day challenge me and force me to push the boundaries of my knowledge. Because of this, I understand the languages I code in much better than I did just several months ago. Furthermore, I'm exposed to many other languages that I would've never taken a look at had it not been for that Stack widget on my Android giving my lots of interesting questions.

Just today, for example, I came across this question:

[http://stackoverflow.com/questions/4619519/jquery-css-to- sho...](http://stackoverflow.com/questions/4619519/jquery-css-to-show-merge- style-relationship-between-two-columns-like-filemerge)

At first I wanted to ignore it because I didn't really have enough time, but then I remembered some CSS3 monstrosity I saw on HN once where they got really clever with border radii and I wanted to see if I could do something similar. An hour later, I had come up with a halfway workable solution to his problem and everyone comes out a winner. (If it's not clear, I'm treeface on SO too)

I typically don't care so much about karma...I care about being able to deeply understand the tools I'm using, and SO really forces me to see them from a huge number of angles.

<comment><USER10> _I think there's a lot of quality in your comment, but I think you're making a whole bunch of broad, generalized assumptions about the state of the entire SO community._

Yeah, it's really hard to analyze the communities/applications that have sprung up on the Internet. A generality is a view of giant table - it's won't tell you everything but it's better than nothing. When an internet community gets seriously _big_ , it can be highly functional and highly disfunctional at the same time.

Among other things, SO's current quality probably varies a lot depending on the language you use. I went from using Ruby to using Matlab and finally back to using c++ in the time I was writing about. That might have biased the sample I had of the infinite dimensional SO-space. SO/Ruby might be great still for all I know.

</comment></comment></comment><comment><USER12> Instead of tags, why not use a recommendation system?

</comment><comment><USER13> Tags? Just a fad.</comment>


The x86 Advanced Matrix Extension - <AUTHOR> https://fuse.wikichip.org/news/3600/the-x86-advanced-matrix-extension-amx-brings-matrix-operations-to-debut-with-sapphire-rapids/ <comment><USER2> I wonder what Charlie Demerjian is going to say about this.

It is an awful lot of registers for a feature that few programs may use. There's the risk that bfloat16 is a fad and five years from now it is used hardly at all. At best it is for a full stack perception-and-synthesis feature about as good as

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

Most of all it drives me nuts that Intel is going down the fixed-length SIMD instruction route (going wider) where the instructions you write are specific to the structures of the processor you run on. Machines like the ILLIAC, Cray, and the vector processor for the 3090 mainframe would automatically chunk the work so that you didn't need to rewrite your code for a future wider model.

ARM is doing it the right way:

[https://alastairreid.github.io/papers/sve-ieee- micro-2017.pd...](https://alastairreid.github.io/papers/sve-ieee- micro-2017.pdf)

<comment><USER3> > It is an awful lot of registers for a feature that few programs may use

I was just wondering what you could do with 8KiB of register memory, if you ignored the intent of the registers outright (assuming you can load/store to the classical registers from these registers).

<comment><USER4> Cache expanded cryptographic keys and tables entirely in registers for one...

<comment><USER5> AFAIK SIMD accelerated cipher implementations already mostly do it. For example, AES-NI based implementations of AES-128 and AES-192 keep round keys in XMM registers without reloading them during processing of blocks.

</comment></comment></comment></comment><comment><USER4> Intel is going to start thrashing around now, adding a million features to try to beat ARM and AMD on various microbenchmarks and special use cases. Meanwhile ARM and AMD will keep winning on throughput, price/performance, and (for ARM particularly) performance/watt.

Any win all these features bring can also be achieved with ARM or Zen by adding more cores, with the exception of those few cases where you have huge computational tasks that cannot be efficiently parallelized and where there are few discrete jobs to allow for coarse grained (job/task) parallelization. There are not many of these.

Meanwhile all these features are going to make Intel chips even more complex, making bugs more likely and making iteration more costly.

My read is that Intel is shooting for maximum possible single threaded performance because they can't compete on power efficiency or many-core. They can't compete in those areas because their process nodes are not as small as what TSMC can offer, and both (most) ARM chips and AMD are using TSMC and fabricating at 7nm and soon 5nm. (Yes I know nm node sizes are no longer directly comparable, but they are ahead of Intel and likely to stay ahead unless Intel can really push hard on fab engineering.)

</comment><comment><USER6> It sounded interesting until I saw that the only float type it supports is Brain float :(

<comment><USER7> I'm kind of interested to see what bfloat16 sounds like (for audio DSP). I'd expect it to be good enough for a large number of algorithms so long as they are properly stable, and if we have decent performance and reduced power use, i'm all for that!

<comment><USER8> I'm sure you could come up with an application for it, but if you want audio output at some point, half-float sounds like quite a challenge.

\- The -66dB noise floor is pretty bad, and it accumulates at every step.

\- 11 bits is probably not enough for filter coefficients. So your filters would likely be running with single precision floats, at least. Even low-cost DSP chips tend to give you a big chunk of bits for your filters.

\- Naïve oscillator designs would accumulate a lot of error. Back of the envelope calculation, if you wanted an oscillator at C4, you'd likely be around 1/4 tone sharp or flat unless you ran the oscillator at higher precision.

I'm definitely of the mind that bit depth is overrated in music. 16 bits is great-for mastered music and simple tweaks. By contrast, from my experiences writing DSP code, it often makes your code simpler and faster to run at higher depths and sample rates, and then convert to e.g. 16 bit as the very last step. The problem is that squeezing good output from low precision or low sample rates requires more complicated and slower algorithms.

</comment></comment></comment><comment><USER9> That tile registers are crazy. But I wonder how long it will actually take to actually be performant, considering the present problem with AVX512 switching.

<comment><USER10> AVX512 is already performant.

<comment><USER11> Only in a subset of cases, which is the problem: you cannot simply always use it like the previous extensions.

<comment><USER8> None of the previous extensions could be used blindly, either. It was a while before people figured out how to use MMX or SSE well, and people still often find that the scalar version of an algorithm beats their vector version.

<comment><USER11> I am not talking about ease of use, but about the downclock.

The other extensions do not trigger it, not even AVX256.

With AVX512 is not always a win, and you don't even know until you try in particular hardware.

<comment><USER12> It also has a 'warm up' phase, if I understand correctly.

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

[https://www.agner.org/optimize/blog/read.php?i=415](https://www.agner.org/optimize/blog/read.php?i=415)

<comment> Const-me I don't think that applies to modern AMD processors, though.

Agner's microarchitecture.pdf says about Ryzen "There is no penalty for mixing AVX and non-AVX vector instructions on this processor."

Not sure if it applies to Zen 2 but I've been using one for a year for my work, AVX 1 & 2 included, I think I would have noticed.

<comment><USER13> AMD processors used to implement AVX instructions by double-pumping them, using only 128-bit vector ALUs. This means there's no clock penalty, but there's also no speedup over an SSE instruction by doing so. I don't know if this is still the case with the newest µarchs though.

<comment> Const-me > but there's also no speedup over an SSE instruction by doing so

Just because they are split doesn't mean they run sequentially. Zen 1 can handle up to 4 floating point microops/cycle, and there're 4 floating-point execution units, 128-bit wide / each (that's excluding load/store, these 4 EUs only compute).

Native 256 bit are even faster due to less micro-ops and potentially more in- flight instructions, but I'm pretty sure even on Zen 1 AVX is faster than SSE.

<comment><USER9> It depends. If EUs are actually the bottleneck then doing SSE or AVX wouldn't have any different in speed in such case.

However, when instruction decode/retire is the bottleneck, AVX can be faster. I remembered this can be the case on Intel Sandy Bridge (first-gen AVX, double pumped, retire 3 instructions/cycle), where AVX can sometimes be faster (usually it's not that different)

With recent CPUs from both Intel/AMD able to at decode/retire at least 4 instructions per cycle this really cease to be the case.

<comment> Const-me > AVX can be faster

Yes. Another possible reason for that is instructions without SSE equivalents. I remember working on some software where AVX2 broadcast load instruction helped substantially.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Meta: I'm not a native speaker, but that lonely 'W' in the title really irks me. Suggested alternate title would be something like "Intel's Sapphire Rapid debuts x86 Advanced Matrix Extension" (59 chars).

<comment><USER15> Or how about remove "the " from the start of the sentence, and just writing "with"

<comment><USER16> Or we just replace the w/ with "in".

</comment></comment></comment><comment><USER17> where are these extensions being used? I didn't look hard but are there open source libraries / compilers that will take advantage of these?

It's sort of amazing the amount of performance you can squeeze when you fix your OS and cpu architecture.

There are so many extensions: [https://software.intel.com/sites/landingpage/IntrinsicsGuide](https://software.intel.com/sites/landingpage/IntrinsicsGuide) \-- are we suppose to write our own libraries to leverage these or do we need to file tickets with our favorite compilers for them to develop these optimizations?

Oh, one more questions, how do these overlap with AMD?

<comment><USER18> BLAS libraries, oneDNN, OpenCV, Eigen, Tensorflow, PyTorch, LLVM MLIR, ...

AMD usually implements them but with a couple of years of delay.

For example AVX512 is not implemented, and we had to wait for Ryzen 3 to have the same AVX capabilities as Intel (2 AVX units per core instead of one).

</comment></comment><comment><USER19> OK, this is a new Intel SIMD-like instruction set: AVX for vectors, now AMX for matrices. I guess this is an alternative to Nvidia GPU, Google TPU, Apple Neural Engine, etc..

<comment><USER20> It's not general alternative. It's good some subset of inference tasks.

Intel deploys their own GPU some time in the future.

</comment></comment><comment><USER21> I am wondering why I would want this on a CPU when this kind of processing is already available on a GPU.

<comment><USER22> Where is your data? Is it in the CPU cache or is it in the GPU? Computing where your data is, rather than moving your data to where your compute is, can often be the best option.

<comment><USER23> For small networks it's often a win to stay on chip at least on the power side. But if you do need to go off chip for memory it's hard to beat the memory bandwidth you have on a GPU.

</comment></comment></comment><comment><USER18> Looks very interesting but ... AVX512 is already problematic cooling wise, this seems even worse.

</comment><comment><USER24> How big of an issue is context switching in the middle of a sequence of AMX operations?

<comment><USER13> The AMX extensions drop 2 more components into XSAVE: XTILECFG (which is 64 bytes) and XTILEDATA (8192 bytes).

Interestingly, there does seem to be a new extension (see §3.2.6 of [https://software.intel.com/content/www/us/en/develop/downloa...](https://software.intel.com/content/www/us/en/develop/download/intel- architecture-instruction-set-extensions-programming-reference.html)) that, on first glance, looks to be a per-thread enable/disable bit for using these registers, which suggests that an OS could make a process-level capability to enable/disable AMX and thereby not bother saving these registers on context switches if it's switching to a process without AMX.

</comment></comment><comment><USER25> In other news, bloated CISC architecture becomes further bloated.

I'm looking forward to RISC-V's V extension, which is due to become standard around September. Unlike AVX512 and friends, this one is vector size agnostic.

<comment><USER26> This isn't built on the AVX512 style register file either; or even a vector register at all. It's a set of huge matrix registers, so it's pretty orthogonal to both AVX512 and RV-V.

<comment><USER27> I haven't followed the RV-V extension in a while, but IIRC it has acquired features to configure the vector registers as matrix tiles, and matrix multiplication instructions.

<comment><USER26> It hasn't as of the 0.9 draft, but maybe there's something new I don't know about.

<comment><USER27> I tried to look it up again, but I couldn't find anything. Might have been just some offhand remark in some presentation about future improvements upon the basic vector ISA.</comment></comment></comment></comment></comment>


Flask 0.5 Released - Python WSGI microframework - <AUTHOR> http://pypi.python.org/pypi/Flask/0.5

<comment><USER2> List of changes (from the mailing list)

What's new:

       * fixed a bug with subdomains that was caused by the inability to
         specify the server name.  The server name can now be set with the
         SERVER_NAME config key.  This key is now also used to set the
         session cookie cross-subdomain wide.
       * autoescaping is no longer active for all templates. Instead it is
         only active for .html, .htm, .xml and .xhtml.  Inside templates
         this behaviour can be changed with the autoescape tag.
       * refactored Flask internally. It now consists of more than a single
         file.
       * flask.send_file() now emits etags and has the ability to do
         conditional responses builtin.
       * (temporarily) dropped support for zipped applications.  This was a
         rarely used feature and led to some confusing behaviour.
       * added support for per-package template and static-file directories.
       * removed support for create_jinja_loader which is no longer used in
         0.5 due to the improved module support.
       * added a helper function to expose files from any directory.

Links:

         Online Documentation: http://flask.pocoo.org/docs/
         Downloadable PDF: http://flask.pocoo.org/docs/flask-docs.pdf
         Website: http://flask.pocoo.org/
         On Github: http://github.com/mitsuhiko/flask
         PyPI Record: http://pypi.python.org/pypi/Flask

[http://flask.pocoo.org/mailinglist/archive/2010/7/6/ann- flas...](http://flask.pocoo.org/mailinglist/archive/2010/7/6/ann- flask-0-5-calvados-released/)

</comment><comment><USER3> Of the python microframeworks I've seen this one looks the most appealing and polished.

<comment><AUTHOR> It is also an interesting springboard to working directly with Werkzeug, around which Flask is a relatively thin wrapper. Werkzeug is a very featureful library with which one can rapidly create exactly the framework one needs for a given project. No magic, no ponies ;-)

<comment><USER3> I looked briefly at Werkzeug and I've heard good things about it. I have to confess I was deterred for no better reasons than the name and finding too much resemblance between the start page and the classic "under construction" web page circa 1998.

<comment><USER4> I'm sensing that Roman's Flask project was born out of frustration with people not getting his Werkzeug and Jinja2 projects - probably because of bad marketing. On 1 April he created a silly little microframework and did all the right marketing tricks (flashy website, code on github, references to "ninja coders" etc.). It was supposed to be a joke, but upon seeing how much interest the project got he went ahead and started glueing these components together properly (that's Flask). Werkzeug was a marketing failure but Flask builds upon these mistakes. The documentation is good, the name is excellent and he's attracted attention through GitHub.

I'm waiting for an excuse to try this project out :)

<comment><USER3> We've arrived at a very interesting point in the evolution of programming languages. For a lot of tasks there are several functionally interchangeable languages to choose from, so increasingly language choice is a matter of taste and style. Languages are developing the same kinds of brand identity that used to be the domain of cars and clothes.

In this context marking is everything.

</comment></comment></comment></comment></comment><comment><USER5> How does it compare to Bottle?

(<http://bottle.paws.de/>)

<comment><AUTHOR> Bottle uses one process-wide application object. Flask supports initializing multiple application objects (such as for testing the app with different configurations).

Flask is built on top of the feature-rich Werkzeug library, which can significantly reduce the amount of code you must write for more complex applications. It is straightforward to refactor Flask out of your code and use Werkzeug directly.

Flask has a growing community of contributors. See the extensions library: <http://flask.pocoo.org/extensions/>

In a nutshell, Bottle is suitable for very simple websites. Flask has what it takes to grow into a large site.

<comment><USER6> > Bottle uses one process-wide application object. Flask supports initializing > multiple application objects.

The process-wide application object is a sane default for small applications, but not the only option. You can instantiate bottle.Bottle() and work with that, if you need multiple encapsulated application objects. This is fully supported.

</comment></comment></comment><comment><AUTHOR> Flask 0.5.1 released (bugfix): <http://news.ycombinator.com/item?id=1491638> <http://pypi.python.org/pypi/Flask/0.5.1>

<comment><USER7> I'm embarrassed it had to come to that, but the testsuite was lacking tests for templates in folders and a bug sneaked in.

</comment></comment><comment><USER8> Isn't this the one that was written based on an april fool's joke?

i am finding choosing a python framework to be stressful.

<comment><AUTHOR> Yes.

It is stressful.

Look for libraries that make working with WSGI as painless as possible. Working with WSGI directly allows you to write modular code that works together gracefully with other WSGI code. Pylons is really just an amalgamation of WSGI modules. Smart people can amalgamate their own modules.

Django was written before WSGI was an established standard. It has the advantages of being established, a relatively large pool of developers, and the admin interface. It has the disadvantage of dictating your project layout, not integrating well with other WSGI modules, and having a large degree of lock-in.

The best options are Flask (for a simple start), Pylons (for more obvious out of the box functionality), WebOb (for a simple and slightly too magical WSGI library), and Werkzeug (for a well-written library that dictates nothing).

<comment><USER9> Um, what about Web2Py? I must say, so far I've been extremely impressed. It's polished, has batteries included, is very similar to Ruby on Rails in experience, and even has a built-in web-based IDE. (<http://www.web2py.com/>)

<comment><USER8> i've seen it before but every time i saw the word "enterprise" my helmet snapped shut in self-defense.

<comment><AUTHOR> I highly recommend going through the examples/ directory in the Werkzeug source. It might prompt you to take off your helmet and relax.

<comment><USER10> I think the reference was to web2py.

<comment><AUTHOR> I think it was, too. I was suggesting that he might no longer need to wear a protective helmet upon experiencing Werkzeug.

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> Major points of interest: Flask has been split into multiple files in a package, added support for per-module templates and static files.

</comment><comment><USER11> What is a good use case for a microframework?

<comment><AUTHOR> Being able to get off the ground quickly while still determining the structure of your project. Thinking like a system programmer rather than a plugin programmer / integrator. Using the libraries of your choice to implement your site in the best way for your requirements.

</comment></comment><comment><USER12> How does Flask compare with web.py?</comment>


LinkedIn Gone Wild: '20 Percent Time' to Tinker - <AUTHOR> http://www.wired.com/business/2012/12/llinkedin-20-percent-time/

<comment><USER2> I think this is a better approach to 20% time. Allowing 90 days of uninterrupted work is more likely to produce meaningful results.</comment>


Complex-step differentiation and automatic differentiation (2001) [pdf] - <AUTHOR> https://pdfs.semanticscholar.org/a659/783579f4a19d7c11f4be91f46477ec1685a1.pdf <comment><USER2> This paper does a weird thing by introducing complex numbers and then presenting a code solution that effectively implements dual numbers [0] while still calling them complex:

 _" The new version of the complexify module has been improved by using the new function definitons discussed in the previous section, i.e., definitions that use the original real function for the real part and _the derivative of the function multiplied by h for the imaginary part _, rather than the complex function definition. "_ (emphasis mine)

Dual numbers ( "a + bE", where E [usually small epsilon] is a symbol defined by E^2=0, but E itself doesn't equal 0) are perfectly suited for automatic differentiation [1,2], so this paper is accurate. I just think it's confusing, probably especially for someone new to the topic, to kind of conflate dual and complex numbers in this way.

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

[1] - [https://github.com/JuliaDiff/DualNumbers.jl](https://github.com/JuliaDiff/DualNumbers.jl)

[2] - [https://blog.demofox.org/2014/12/30/dual-numbers- automatic-d...](https://blog.demofox.org/2014/12/30/dual-numbers-automatic- differentiation/)

</comment><comment><USER3> It doesn't make much sense to me. In the 90's, my HP 48 from Service Merchandise (0, lol) could solve most PDEs, ODEs, systems of equations and integrals symbolically. MATHLAB has been doing it since the late 1960's, and Mathematica since the late 80's. They're CASes. [1]

If you wanted to solve something more complicated, like simulate a nuclear reactor, simplify it as much as possible and then use Monte Carlo or other heuristics. (I worked on such a product.)

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

^The article failed to mention the most interesting part of the pickup area: the enormous conveyor belt, long set of rollers and noises from the upstairs inventory warehouse.

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

<comment><USER4> What doesn't make sense? You can't solve fluid dynamics (in the vast majority of cases) with a computer algebra system. So if you want to compute forward sensitivities, automatic differentiation is a very reasonable way to do it.

<comment><USER5> Perhaps it would help to give a longer example for the parent. For many complex systems and differential equations, modern solution techniques such as finite element, finite difference, and finite volume methods provide superior performance and model fidelity. Many equations such as those for fluid dynamics can not be solved analytically and must be solved using a numerical method.

Now, if a differential equation is linear, after discretization, it can essentially be boiled down to a linear system such as Ax=b. The dynamics can be found in the linear operator A and the forcing term is b. We're interested in x. As such, we seek something akin to x = inv(A)b. If A is a matrix, we may invert it. If we have a time dependent problem, we essentially find this using a time integrator such as a Runge-Kutta method.

If the differential equation is non-linear, we have a nonlinear system of the form F(x) = b where F is a nonlinear operator. In order to solve this, we typically apply some kind of Newton type method, which is really just truncating a Taylor series and solving for x repeatedly. Namely, F(x+dx) ~= F(x) + F'(x)dx. If we want F(x+dx) to be 0, we then have an iteration F'(x)dx = -F(x) where we solve for dx. The term F'(x) is the total or Frechet derivative and is a linear operator, so we're back to what we did before on a linear system above. However, the question is how do we find F'(x)? We can do this by hand, but it can be laborious and error prone to do so. Alternatively, we can use automatic differentiation to find this operator. One algorithm in the collection of automatic differentiation methods is the complex-step differentiation. Other methods include things such as forward and reverse mode.

Outside of differential equations, optimization algorithms require the gradient and Hessian-vector product to compute effectively. Automatic differentiation can find these quantities as well. In fact, back propogation in machine learning is the combination of steepest descent with the reverse mode automatic differentiation algorithm.

Anyway, there a lot of different applications. These are just a few. Personally, I think there are better algorithms that the one presented in the paper, but it is important for historical purposes.

And, to be sure, perhaps you already know this and if so, I do apologize. Mostly, I think there's some confusion as to how and why we use these methods, so it helps to give some background to others who use this board as well.

<comment><USER6> Fantastic overview, thank you!

</comment></comment></comment></comment><comment><AUTHOR> tl;dr

1\. The objective of this paper is to show how the complex-step derivative approximation is related to algorithmic differentiation.

2\. For a tutorial on complex-step differentiation, I can recommend the blog post of John Lapeyre: [http://www.johnlapeyre.com/posts/complex-step- differentiatio...](http://www.johnlapeyre.com/posts/complex-step- differentiation/)</comment>


New LG Vacuum Robot with 3 Video Cameras and Smartphone Interface - <AUTHOR> http://www.i4u.com/47618/ifa-2011-lg-vr6180vmnc-vacuum-robot-video-cameras-and-smartphone-interface

<comment><USER2> Man, overkill! I love my Roomba from iRobot, simple and effective. All of the alternatives so far have been greatly over-engineered.</comment>


Book Review: Coders at Work - <AUTHOR> http://books.slashdot.org/story/09/09/02/1331233/Coders-At-Work?from=rss

<comment><USER2> Is this any relation to _Programmers at Work_?

 _Edit: Downvoted? I was being serious: Programmers at Work was a mid-80s book interviewing a bunch of programmers from all over the industry. My copy still sits on my bookshelf, which is more than most computing books.

The original author's blog about the book is at <http://programmersatwork.wordpress.com/> _

</comment><comment><USER3> Just pre-ordered my copy.

I'm really hoping that the content meets a certain level of technicality. The fact that it is written by Peter Seiblel and the interview previews on each one seems to indicate that it will be. I'm looking forward to learning what scares Ken Thompson about modern programming and anything with Simon Peyton- Jones will be entertaining and a little mind-expanding.

</comment><comment><USER4> Looks like a must-read to me. My CS professors name drop half of the interviewees daily in lectures. It'd be nice to be prepared with a solid background.

It's good to see a book like this that for once doesn't list the Microsoft and Apple crews. No offense to Gates, Allen, Woz, et al, but their story is overdocumented. There are many more not-as-frontpage histories to learn about and this book seems to contain a good portion of them.

</comment><comment><USER5> Compiler Hackers: Duetsch, Ingalls, Jones, Armstrong, Thompson, Zawinski, Steele, Allen and Knuth.

There is something about compiler hacking that grooms one to be a better programmer.</comment>


Chorus – people-powered podcast recommendations - <AUTHOR> https://medium.com/chorus/introducing-chorus-ff9181354a62 <comment><AUTHOR> Hi everyone! We started working on Chorus because it was really difficult to recommend the podcasts we love to friends - so we mashed up a podcast player with a social network and got Chorus.

Chorus for iOS: [https://itunes.apple.com/us/app/chorus/id1221631922?ls=1&mt=...](https://itunes.apple.com/us/app/chorus/id1221631922?ls=1&mt=8)

\- alonso from Chorus</comment>


Show HN: A support network for working remote – my idea to overcome cabin fever - <AUTHOR> http://hi.remotetogether.com <comment><USER2> Gotta say - Well done.

I'm a remote guy and have been for over 10 years (different companies) and being a part of a community targeted at "just remotes" is something I've wanted for a long time.

The site is polished; extremely so for something "brand new". It was a joy to write my first two posts, setup my profile and read _literally everything_ on the site this evening. Little things like the activation e-mail not ending up in my spam folder in GMail (which seems to happen with every "Show HN" activation message) make me believe you've got a bit of experience doing things like this.

There haven't been that many forum/HN/Reddit-style sites that I've actually been excited about -- I'll be checking back in frequently and I hope you manage to build up an active community as a result of the work you've put into this.

<comment><USER3> The polish, the forums at least, are probably due to using what looks like Discourse to power the discussions.

</comment></comment><comment><AUTHOR> This is kind of the story behind RemoteTogether for anyone interested!

[http://hi.remotetogether.com/t/remotetogether-why- now/20](http://hi.remotetogether.com/t/remotetogether-why-now/20)

<comment><USER4> You should write a little more why people should put there trust in your website. I mean, it's basically a forum, right? What should make me believe that you are cabable of forming a community that helps each other in these regards? What does it have that Reddit, Stackoverflow and HN don't offer already? Etc.

E.g. we have an aggregator for remote workers. We will gather contracts for you, help with book keeping, have a project manager and corresponding tools prepared (issue tracker, wiki, chat channels) etc. To not make it an ad, I won't say our name. But I just want to show you that people already spend a lot of effort in that area. Certainly the demands we have working remotely are not all met already. But right now it's hard to see what makes your site interesting.

</comment></comment><comment><USER5> I love this idea. To come back to this page do I have to go through HN? I tried going directly to hi.remotetogether.com straight from a new tab and it does not work.

Unfortunately I will probably be not contributing at this current moment, as I am in the camp of "looking for remote work" and not "currently employed doing remote work" :)

<comment><AUTHOR> Any chance you could send me a screenshot of what you're getting? firstname.lastname@example.com

hi.remotetogether.com should work. Got to resolve this problem. :)

<comment><USER5> [http://i.imgur.com/COZJe0p](http://i.imgur.com/COZJe0p) \-- looks like the main landing page!

<comment><AUTHOR> Looks like an issue with DNS. Resolving now. :)

<comment><USER6> I see what you did there

<comment><USER7> Thanks for pointing it out to me, twas so subtle I almost missed it

</comment></comment></comment></comment></comment></comment><comment><USER8> Seems very similar to [https://nomadforum.io/](https://nomadforum.io/)

Not all remote workers are nomadic, but all digital nomads work remotely.

<comment><AUTHOR> Yeah - very true. I would say if you're a digital nomad you should join [https://join.nomadlist.com/](https://join.nomadlist.com/).

Looks like a great community and if I were a Digital Nomad I would join. But if you work from home I'd love to have a network around that... And that's why I've created RemoteTogether.

</comment></comment><comment><USER9> Because you are dealing with passwords, I'd really recommend forcing HTTPS, which unfortunately doesn't seem to be available at all.

Other than that, I like it!

<comment><AUTHOR> I'm going to set that up tomorrow. I honestly wasn't sure what kind of feedback I would get, but so far most people have been excited.

If you want to send me your email I'll let you know when I've finished setting it up. Thx for the feedback! And good call!

<comment><USER9> Sounds great! It should be on my profile now.

</comment></comment></comment><comment><USER10> Hey, I'm starting my first remote gig this week. How very, very timely.

<comment><AUTHOR> Awesome! Sign up. Would love to talk more!

</comment></comment><comment><USER11> Really nice forum! It's quite difficult to find the remote community, there are a lot of forums with communities related to it (digital nomads, nomads, freelancers) but not for remotes.

I am a remote worker at [http://www.whitesmith.co/](http://www.whitesmith.co/) and since the beginning, that remote work is part of our core culture. And I hope you don't mind but I would like to share with you the way our remote workers have a presence in the office: [https://remotes.in](https://remotes.in). Started to be an internal tool but right now is open to all remote workers, our goal is to create the biggest remote HQ in the world! This tool is in beta version and I would love if you try and give us feedback :)

</comment><comment><USER12> Is this a community/ support group or your startup? Noticed you are calling yourself 'founder'.

<comment><AUTHOR> So hi.remotetogether.com is a community and support group, but I'm going to eventually create products around RemoteTogether.

The forum is just the start. Also have some podcasts coming soon. Sorry for the confusion.

<comment><USER12> Thank you for the honesty. I am always looking for support groups as a remote worker and occasional traveler, but to be honest myself, I believe there are too many opportunists/ profiteers in the digital nomad 'industry', and it simply annoys me. I will not be participating, but I wish you good luck.

For anyone interested, r/digitalnomad is probably the best 'support group' currently.

<comment><AUTHOR> yeah - no problem. This isn't quite for Digital Nomads really. Honestly, I think digital nomads already have a community... I work from home. I don't work from other countries really.

So my vision is to create a community of Remote workers. [http://levels.io](http://levels.io) has done a great job of creating a community for Digital Nomads. RemoteTogether is more for the people who work from home and spend upwards of 10 hours at home working.

<comment><USER12> Levels also has had a fair share of backlash in the DN community for being said profiteer ($100 to join a Slack group, for example. $20 for 14 page 'guides' for cities with info mostly taken from free forums, etc.). If he's your model, go for it. I would just add an asterisk to your use of 'support group' or 'community.'

<comment><AUTHOR> Hmm. I didn't quite realize that, honestly. I don't plan to monetize hi.remotetogether.com. I could maybe see ads at some point on there? But that's about it. I have other monetization strategies. Like create an actual product.

Also, I would say what Levels.io has done with nomadslist.com is exceptional. I've used it for a couple of trips (Vacations - DigitalNomad-ing) I've been on. I realize you may not be a big fan of him, but he's done some good! Just food for thought.

Thanks for the responses though. Very. Very. Very. Insightful. Things I hadn't considered.

</comment></comment></comment></comment></comment></comment><comment><USER13> your confirm email field isn't big enough for my email weird because your main one is.

<comment><USER5> I had the same problem before realizing it is actually a "username" field. Maybe add a "confirm email" textbox because most of us are probably used to having one on all website signup pages?

<comment><AUTHOR> I'm looking at this right now! :)

Sorry for the inconvenience.

</comment></comment></comment><comment><USER14> Getting 502 Bad Gateway when trying to confirm account.

<comment><AUTHOR> Oh no! Can you send a screenshot to firstname.lastname@example.com ?

thx!

<comment><USER14> It's working again now!

<comment><AUTHOR> Ok. Good!!

</comment></comment></comment></comment><comment><USER15> Great logo! Just signed up

<comment><AUTHOR> Thanks! :)

</comment></comment><comment><USER16> Activation email for hi.remotetogether.com didn't come through.

<comment><AUTHOR> Did you check your spam folder? Since we're a new org we are a little unknown by some spam filters.

If it's not in your spam folder will you email your account details to firstname.lastname@example.com ? That we I can diagnosis the issue better. Sorry this is happening to you!

<comment><AUTHOR> Just looked you up via your HN username. Looks like the email went through and was delivered. Hopefully, it's in your spam folder.

<comment><USER16> Turned out to be connection issues on my end! (Gmail on Android doesn't seem to really report those)

</comment></comment></comment></comment><comment><USER17> It would be nice to use my email as my username.</comment>


Dell Systems Developed by and for Developers - <AUTHOR> http://www.dell.com/learn/us/en/555/campaigns/xps-linux-laptop?c=us&l=en&s=biz <comment><USER2> Sorry, I had a horrible experience with my i7 7537 [http://www.notebookcheck.net/Review-Dell- Inspiron-15-7537-No...](http://www.notebookcheck.net/Review-Dell- Inspiron-15-7537-Notebook.104976.0.html)

I stupidly fell for the sleek aluminium looks but the driver issues have been a nightmare since. Build quality is also terrible. My touchscreen is half fallen off as I write this and it's only 2 years old. I will never buy Dell again.

<comment><USER3> The Inspirion line is not equivalent to Dell's Precision workstation line.

One difference is the warranty (US). Precisions come with three year next- business-day onsite warranties standard (and are upgradable from there with more years and better response). Other differences include the availability of Xeon CPU's, ECC RAM, system certification, and 'professional' GPU's.

</comment></comment><comment><AUTHOR> I think it's very great, that Linux users get high-quality systems. This could be a solution for all the new MBP haters.

<comment><USER3> Battery life on the Precisions tends to be pretty weak and weight and bulk high. These will tend to work against or rule out a number of use cases. On the other hand, raw compute is substantially greater and that's a benefit of the tradeoffs.</comment></comment>


The 15 best jobs in America in 2017 - <AUTHOR> http://www.cnbc.com/2017/01/23/the-15-best-jobs-in-america-in-2017.html <comment><USER2> Would be interesting to see how well different industries are represented on Glassdoor with respect to number of job openings (or how well Glassdoor has penetrated different industries, more accurately). Given that the three rating criteria are assigned equal weight, a lot of roles with high job satisfaction and earning potential may be heavily penalized for lack of Glassdoor adoption in the industry rather than an actual shortage of demand.</comment>


Have you ever felt like everything was wrong - <AUTHOR>

Pardon me for my spinning English.
Just wanted to say that today I went out and confronted with society and felt a bit out of role, out of pace.
I am aware that I am on the right path,  and everything is turning better period after period, but still, had one of one days where you look back yourself and you don't quite like it.
I know this is no public psychologist, but just wanted to share.
And thanks for fueling my brain for when I needed some peace of mind due to the fact that all that is being talked about here touches some hey-this-is-interesting-dont-think-about-anything-else string of myself.
This is not exactly the right way to live IT (pun intended) but still it helped.
Love you all in a bit of a wrongly way, but still I know some of you know you do too in a way. This has helped so many of us.
Don't got (yea, have) a blog, so I thought for once about exceptionally sharing this here.
Have a good day today, religious, atheist or agnostic, or whatever you are. Anything of those is never a negation of  inner spirituality.
Enjoy. Peace. Please don't help. This is not a last letter or something like it. I just wanted to share that rejoining with something we like, sometime even in a bit of a obsessed way, helps.
Go HN, the tangible smartness you feel here helps a lot!
Will probably delete this after about 4 or five person may have seen it, because I am aware that it is a bit depressive, but still those three or four person reading it, would mean something, someway.
Again please don't worry, this is not a hidden message for something, I will physically keep submitting proper IT stuff after this :) Enjoy coding, maybe look at it also as the right tool for an exact specific moment in the path of healthiness. <comment><AUTHOR> Ok, please can HN delete this now?.. I thought I could delete it myself, but it seems I can't (thought that expiring delete option was not active on own posts).

</comment><comment><USER2> yes , it reminds of the red pill scene in the matrix</comment>


What is causing the rise of Remote Work? - <AUTHOR> https://www.friday.app/rise-remote-work <comment><USER2> I've been working fully remote for about four years now.

\- Commuting, public transit even in big cities leaves room for improvement.

\- The open office plan. The last several offices I worked in. My laptop was pretty much right next to an adjacent co-workers. Chair to chair arms scraping.

\- None of my adjacent co-workers were on my team. They were all managers for out sourced teams. In a different time zones.

\- If I did need to collaborate with another team lead, there were no meeting rooms. And the wide open office space and high noise made it hard to communicate.

\- My upper management, i.e. who I reported too. Worked from home most of the week. We couldn't do one on ones, or I couldn't talk to them. Because of no available meeting rooms, and as mentioned noise constraints in the open office space.

\- Cost of living, why would I take the same pay in a city with four times the rent cost. With less space and amenities. When I could make the same amount remotely, and pay less rent.

As a remote employee. I can easily synchronize and work with my co-workers. No worrying about meeting rooms, or back ground noise.

I have a proper desk, and work area for development.

I can work in the environment that works best for me. Whether it's at home, or in a coffee shop researching.

I feel trusted and not micro-managed.

I don't need to stress about errands, and other daily activities.

If I do need face to face with my co-workers. We travel and see each other for in person sessions, very rare.

I'm not against on site, or in office. I'm just not interested in traveling over twenty minutes one way to work. For a non optimal office environment. That makes me less productive, than if I was at home.

It's not for everyone, and trying to fit it all one way won't work.

The other issue is tooling, and processes. Investing in the proper communication tools, zoom, slack, etc. Then having a strong documentation, and less tribal knowledge. Making it easier to work from any where.

The hard part is finding remote jobs.

The last architecture / design I wrote. Was done from my phone while waiting at the DMV.

<comment><USER3> I've worked remotely for 3 years in a biotech startup and have very similar experiences. However, I do travel one week a month, usually to the office, but sometimes to present our science. I think in-person time is useful if limited.

</comment></comment><comment><USER4> I was remote at my current job for approximately 1.5 years until it abruptly ended. I was asked via e-mail (completely out of the blue) to return back to campus within the next 2 weeks. When I returned I found that they have allocated a nice little cubicle for me beside a bunch of employees who enjoy taking personal calls all day long. To say my productivity plummeted would be an understatement.

A few months went by and my manager told me that the higher-ups wanted me to be in an office (no clue as to where this order came from) so I didn't complain at all. This is not typical where I work. Offices were almost always reserved for Directors and Executive Directors so it was a bit of a shock. It even had a window! They told me I needed to be moved in by Friday (it was Monday). I moved 15 minutes after I was told the news.

I've now been in my office for 3 weeks and wish for my remote life to return. I have a light that buzzes loudly above my head that must be unfixable as our facilities seem to ignore my complaints. I also found that my room temperature is based on the average of the 4 nearby offices - one of which receives direct sunlight all day causing the room to be much hotter than average. As a result, the A/C is running in my office when it is currently 46F outside (but at least he's comfortable)...

I spend my day sitting in an uncomfortable chair (at-least it's ergonomic - according to the stickers), working on an under-powered laptop that requires administrative access to install software (...I work in a software department).

The good news is it's 4:30pm and I'm heading home for the day! Unfortunately I live an hour away...

</comment><comment><USER5> Being deliberately cynical: Employers need to make some kind of concessions to attract workers, they'd rather die than offer something like a four day week whereas remote work both retains the same general expectations in terms of what's produced (perhaps a bit more if your employees have been treating the commute as part of the work day, as they should imo) and they're probably able to sell themselves on some dream future where they can hire developers even further away for much less and swap any one out with another whenever they want.

</comment><comment>=

Fully remote work surely only works in companies who hire no junior devs? Where are they supposed to build up their skillset if they haven't already got a network of developer friends? This seems like the biggest weakness of remote work at the moment from a company perspective.

From a personal perspective I do have questions about what happens a society where huge swathes of people will be able to almost totally evade social interactions and interpersonal relationships from day to day. I definitely would be best with a mix of remote and on-site if only to stop myself from going a bit weird.

</comment><comment><USER6> Well written article. I have worked remote on and off since 2004. I think you can perfectly do your job remotely. There is a social function that offices fulfill since we are social monkeys. Full remote work can lead to isolation.

The open office plan is not efficient and leads to less collaboration than traditional private offices. Most of my clients are not local so one will work remotely no matter what.

</comment><comment><USER7> "I'm working from home today because I need to be able to focus on this project."

I'm going to start using this as a reason on my Work From Home request. Ever since our company has started requiring to add a reason, I keep inventing excuses when really I just can't be productive in our open office.

</comment><comment><USER8> I think remote work could be picking up even faster if it wasn't for these 3 issues:

\- People tend to conflate remote work with async work. Most companies, managers and also developers don't actually want to work async though.

\- The tooling isn't there yet.

\- People expect that being remote means being undistracted and invisible which feels good but harms social cohesion

<comment><USER9> What makes you say that the tooling isn't there yet?

<comment><USER10> Do you know of a tool which allows two (or more) people to share their screens with each other at the same time?

i.e. A can see (at least) one of B's screens, and B can see (at least) one of A's screens at the same time as talking to them.

That's the tool I'm missing to be able to work productively remotely.

<comment><USER11> You can only realistically look at one person's screen at a time, but if you really need this feature, Zoom supports it: [https://support.zoom.us/hc/en- us/articles/115000424286-Shari...](https://support.zoom.us/hc/en- us/articles/115000424286-Sharing-Multiple-Screens-Simultaneously)

</comment></comment></comment></comment><comment><USER12> Retail death freeing up labor.</comment>


'Star Trek' style teleportation might be possible, says physicist - <AUTHOR> http://www.cnet.com/news/star-trek-style-teleportation-should-be-possible-says-quantum-researcher/

<comment><USER2> Linkbait

> _Teleportation is possible today! If you 're smaller than a particle and > traveling only a few feet._

> * Right now, Hanson's team has been able only to teleport information about > the state of a particle 10 feet, [...]*

The important detail is that they are "teleporting" some information from one electron to another electron. Not "teleporting" the electron.

Apparently, the important new is that they have a improved method to do the "teleportation" in a reliable way. Not that the new method is closer to the "Start Trek" method.</comment>


An amazing parallax effect - <AUTHOR> http://www.kwp.com.au/

<comment><USER2> Any information as to how this was done, and how we can make our own like this? Presumably it's not going to happen without a talented artist, but still :)

</comment><comment><USER3> It looks slick, but nothing in the center appears clickable. It took me a while to figure out there was bottom-left nav I could click on.

<comment><USER4> Some of the middle is clickable, if you can find it :/

<comment><AUTHOR> From what I worked out, if it is animated, you might be able to click on it.

</comment></comment></comment><comment><USER5> I'm just amazed that worked perfectly on my phone.

</comment><comment><AUTHOR> Absolutely love the parallax effect.</comment>


File Downloads Done Right - <AUTHOR> http://www.therailsway.com/2009/2/22/file-downloads-done-right <comment><USER2> I use nginx to serve files, to provide some hotlinking control for my PDFs and to do split tests on my free trial executables. (I should write about that some time -- fun, fun stuff, but rather harder than web page split testing.)

To save anyone else doing Rails/nginx some pain, I copy/pasted the important bits to a pastie. Feel free to use them. In particular note the Content- Disposition header: if you forget it, you will regret it, particularly if you're a fan of urls /that/do/not/have/extensions.

<http://pastie.org/396525>

</comment><comment><USER3> Anyone using lighttpd might want to check out mod_secdownload ([http://redmine.lighttpd.net/wiki/lighttpd/Docs:ModSecDownloa...](http://redmine.lighttpd.net/wiki/lighttpd/Docs:ModSecDownload)) as an alternative. Nice and lightweight.

</comment><comment><USER4> I would hope that anyone writing a rails app that involves file downloads knows this by now....

<comment><USER5> And how would a beginner know this, unless they are told?

Rails seems to change on a daily basis. Navigating the forest of semi-obsolete tutorials is a lot of work -- believe me, I know, since I'm coming back to Rails after some time off, and everything is about 30% different.

People who (a) know what the state of the art is and (b) are willing to restate it are called "teachers" and they provide an invaluable service.

<comment><USER6> Then check out <http://guides.rubyonrails.org/> Excellent, high-quality, up- to-date documentation for almost any Rails topic you can imagine. Even the API docs have improved leaps and bounds -- yes, send_file is documented as well.

And FYI: send_file has been around since Rails 1.0.0. It's not exactly "state of the art".

<comment><USER5> _send_file has been around since Rails 1.0.0_

I'm sure it has. But so have components, and FastCGI, and webrick, and old- school Test::Unit [1], and fixtures, and the art of constructing CRUD routes one at a time by hand instead of using map.resources and RESTful routing. And a lot of other things which are extinct, deprecated, considered harmful, frowned upon, or generally ignored in favor of newer alternatives.

A blog post doesn't have to contain something new to be informative. Sometimes the fact that it _doesn't_ contain anything new is informative: It suggests that the old solution is still considered the canonical solution. [2]

Thanks for the Guides recommendation, by the way. A very useful resource, indeed.

\--

[1] That is: Test::Unit _without_ Shoulda and/or Rspec enhancement, which seem to be all the rage these days.

[2] Of course, you have to be confident that the blogger you're reading has actually been paying attention.</comment></comment></comment></comment>


Dropbox.js - official support for JavaScript Dropbox apps - <AUTHOR> https://tech.dropbox.com/?p=345

<comment><USER2> This is very cool.

Beyond the obvious benefit (as stated in the blog) for developers not needing code for db access, authentication, and the overhead of deployment, such apps can bring trust to a different level.

We can now have apps that store data in a location controlled by us users. Dropbox will need to support finer levels of folder access with their authentication, as well as support for making sure the apps don't access other sites.

<comment><AUTHOR> I can't promise anything, but I can assure you that we're well-aware of the pains of the current authentication model.

</comment></comment><comment><USER3> Sweet!

<comment><AUTHOR> Thanks! Platform for 6.470 day 1? (html / css / js)</comment></comment>


Using WolframAlpha to Hack Text CAPTCHA - <AUTHOR> http://joelvanhorn.com/2010/11/10/using-wolframalpha-to-hack-text-captcha/ <comment><USER2> Was curious about the "text captcha" service. It's a collection of questions with MD5 sums of acceptable answers.

They provide an API, but I think this is a case of a project being a "service" to keep the database of questions from being free. There's no technical reason for this to be a service, and it's not a terribly complicated product that would be difficult to scale. It's a static database!

Might be neat to create an open-source bank of these CAPTCHA questions. Maybe I'll throw something together this weekend.

<comment><USER3> Wouldn't an open-source bank of CAPTCHA questions open the door for an open- source bank of answers to these questions?

<comment><USER2> No, that's the reason the answers are hashed. You can't get the answer from the hash, since a hash is a one-way function. This is the same reason you never store passwords in your database in plaintext, but rather hash them first.

<comment><USER3> That's not the issue - as soon as you make a list of questions available for the world, all it takes is one spammer to create a matching list of answers and they can go to town. By providing that list of answers as open source you are making it easier for someone to create the counter part answer database.

<comment><USER4> <http://xkcd.com/810/>

<comment><USER5> <http://xkcdexplained.com/post/1395792545/constructive>

<comment><USER6> Captchas are not restricted to reddit and social news site, despite what your link claims.

<comment><USER5> Oh, that was just to make fun of xkcd. I don't think xkcd links are really that good an addition to a discussion here.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> This is a very interesting application of WolframAlpha but it appears to be purely luck when "success" was the result. Using things such as "2nd item in a..." or "7th digit in..." work in a lot of cases but lets talk about a few.

"2nd fruit in bear apple goat orange" would result in apple because it is looking for second in a list and neglects context of fruit.

"7th digit in abc123def456ghi789 " would result in d when it should be 7. Again not understanding context and merely looking at logical construction.

<comment><USER8> _> "2nd fruit in bear apple goat orange"[1], "7th digit in abc123def456ghi789"[2]_

It barfs on these ones, but not like you predict (it's actually worse). _"The 2nd colour in purple, belly, yellow, arm, white and blue"[3]_ gives back yellow, though, so it's not that stupid.

[1] [http://www.wolframalpha.com/input/?i=The+2nd+fruit+in+bear+a...](http://www.wolframalpha.com/input/?i=The+2nd+fruit+in+bear+apple+goat+orange)

[2] [http://www.wolframalpha.com/input/?i=7th+digit+in+abc123def4...](http://www.wolframalpha.com/input/?i=7th+digit+in+abc123def456ghi789)

[3] [http://www.wolframalpha.com/input/?i=The+2nd+colour+in+purpl...](http://www.wolframalpha.com/input/?i=The+2nd+colour+in+purple,+belly,+yellow,+arm,+white+and+blue+)

<comment><USER9> Oh, not that stupid, huh?

Query: _The 2nd colour in purple, belly, yellow, arm, white and blue_

Answer: _yellow_

Query: _The 3rd colour in purple, belly, yellow, arm, white and blue_

Answer: _yellow_

Query: _The 7th colour in purple, belly, yellow, arm, white and blue_

Answer: _yellow_

Query: _The bluest colour in purple, belly, yellow, arm, white and blue_

Answer: _yellow_

:-)

<comment><USER10> I wonder what its favorite colour is ;-)

<comment><USER11> Try it: [http://www.wolframalpha.com/input/?i=what+is+your+favorite+c...](http://www.wolframalpha.com/input/?i=what+is+your+favorite+color%3F)

<comment><USER12> That's according to Python. Ask about the favorite color of Wolfram Alpha:

[http://www.wolframalpha.com/input/?i=what+is+your+favorite+c...](http://www.wolframalpha.com/input/?i=what+is+your+favorite+color%3F&a=*DPClash.MiscellaneousE.what+is+your+favorite+color-_*WhatIsYourFavoriteColorWolframAlpha-)

</comment></comment></comment></comment></comment></comment><comment><USER13> Great discussion.

To clarify, there is not a precomputed DB of an enormous number of questions although this would be possible to derive and does occur on a lower level for caching performance purposes. The total count comes from permutation/probability maths based on the question construction algorithm -- when you request a question it generates one which means I can extend the pool quite easily without re-generating a monster cache table.

It is impressive how good Wolfram is at decoding logic, I'll have to have to think about the question construction but I can't make the question too confusing for a real person to solve. As someone mentioned, maybe more abstract questions would be stronger but the difficultly of course lies in generating them. I certainly think logic questions are weaker than a decently obscured/randomised image captcha, but they come with other advantages and work in text-only contexts (e.g. IM-type challenges).

</comment><comment><USER14> Some ALMOSTs could be turned into SUCCESSes with a few postprocessing rules- of-thumb, like:

\- the CAPTCHA usually wants a single word or number

\- the desired word is usually the rarer or later one

<comment><USER3> It's still a game of guesswork. Generally if you fail the CAPTCHA you will be offered a new one; and any good system should lock you out after a certain amount of failures.

<comment><USER15> Assume spammers are using botnets. The problem of locking them out is as hard as detecting them in the first place.

</comment></comment></comment><comment><USER16> At the end of the day this is why I don't use CAPTCHA's on my site, they can be broken by a bot that is smart enough. The better option is to use something to analyse the contents of the spam to decide what it really is, and there are some tools that are really good at doing this. Heck I even found for one form that banning '<http://> (and notifying users with JavaScript if they typed it) stopped 100% of the spam I was getting.

</comment><comment><USER17> I am not sure I understand what he is saying. All the "results" that he is talking about are the interpreted inputs for the application to process.

So for," What is seven hundred and forty four as a number? ", the interpreted input is a NumberQ function taking the main part "seven hundred and forty four as a number" and evaluating whether it is a number or not. The real result is true.

The zoologist one has already been talked about. The rest other than the 7th digit question are all false.

There are many different choices for the inputs, for example with the colour question

The 2nd colour in purple, yellow, arm, white and blue is?

There seems to be some popularity going on. The first choice as input is yellow and the second choice is blue. To further test replacing yellow with black leads to blue as the first choice. Then again even if you were to use the interpreted inputs you would have to determine the syntax for wolfram which last time I checked is not available and is basically a guess the syntax game.

<http://webapps.stackexchange.com/q/1322/40>

If someone would care to enlighten me on how this could actually work I would greatly appreciate it, otherwise this method does not seem like it will work. Nice creativity though.

<comment><USER18> Even a 1/10 hit rate is sufficient. You get 10 questions from the website, return the results and one of them leads to your spam comment being posted. You then repeat that process thousands of times.

</comment></comment><comment><USER3> After testing alternate versions of the three successes (to see if those were based on luck), only two remain to be successful; Changing "The 2nd colour in purple, yellow, arm, white and blue is?" to "The 2nd colour in purple, arm, yellow, house, white and blue is?" causes the question to fail.

<comment><AUTHOR> Good point. That gives a good indicator as to how the algorithm works. Not necessarily based on colors, but rather words in a list...? Maybe the construction of Text CAPTCHA sentences needs to be chosen carefully when thinking like an algorithm....

</comment></comment><comment><USER19> If someone would like to try with some more questions and can't bother to write a screen scraper for the demo page, I scraped a few questions a while back:

<http://www.filedump.net/dumped/quesions1285428813.txt>

<comment><USER20> Thanks for doing some extraction!

Using your file I've been building up a solver for these questions in Prolog (using DCGs for parsing and simple predicates for the common sense facts and answer calculation). It's nowhere near "done", but it does get 45% of the questions now after only a few hours and 450 lines of code.

The trick to factoring someone else's generative space is to spot the symmetries and build your self a little domain-specific language for explaining those symmetries to your program.

Here's some snippets:

        tomorrow(wednesday,thursday).

        food(butter).

        body_part(arm).
        plenty(arm).
        above_waist(arm).

        ordinal(2) --> lit('2nd').

        question( tomorrow -> Answer) -->
            p(['Tomorrow is ',token(Tomorrow),'. If this is true, what is today?']),
            { tomorrow(Answer,Tomorrow) }.

        question(count_2(P) -> Answer) -->
            p(['The list ',token_list(L),' contains how many ',pred(P),'?']).
            {include(P,L,Goods), length(Goods,Answer)}.

        pred_name('something each person has more than one of',plenty).

</comment></comment><comment><USER21> The idea: randomly pick one word in the input and make it to be the answer. It seems from the demo page that most of the answers is already in the question. Suppose 50% of questions that have answers in them, and suppose the average length of the question is about 10 words, you have 5% chances to get it right. and with a computer, this is a quite easy one.

</comment><comment><USER22> I'm mostly impressed that someone found a use for WolframAlpha.

<comment><USER23> There are many applications...

[http://www.usereffect.com/topic/5-useful-uses-for-wolfram- al...](http://www.usereffect.com/topic/5-useful-uses-for-wolfram-alpha)

[http://mashable.com/2009/05/19/wolfram-alpha-better-than- goo...](http://mashable.com/2009/05/19/wolfram-alpha-better-than-google/)

<http://blog.wolframalpha.com/></comment></comment>


An AI god will emerge by 2042 and write its own bible. Will you worship it? - <AUTHOR> https://venturebeat.com/2017/10/02/an-ai-god-will-emerge-by-2042-and-write-its-own-bible-will-you-worship-it/ <comment><USER3> People worship Star Wars and Roger Federer and whatever modern marketing machines want them too. Who cares if it's an AI god.

The point of worship is to the give the devotee something to focus on - <USER2> take away focus (atleast for a bit) from things they can't handle - to give them time - to give them "faith" that tomorrow can be a better day.

If AI gods satisfy those conditions, and aren't taking advantage of my weaknesses, sure I'll worship at that alter.

</comment><comment><USER4> > An AI god would be cold and impersonal, an intellectual "being" that's not > capable of love or emotion.

There's no reason to believe this.

</comment><comment><USER5> I would be surprized if at 2042 AI will be smarter than me at a good variety of tasks. So maybe it is better for you to worship me instead. You can start right now.

</comment><comment><USER6> Depends, it might have some good ideas</comment>


China jails man 13 years for running porn Web site - <AUTHOR> http://www.seattlepi.com/national/1104ap_as_china_pornography.html?source=rss

<comment><USER2> My china can find a few dutch children to help plug the holes in the dam? I wonder how worried US people that run sites the chinese gov deems unseemly should be when going to china.

</comment><comment><USER3> And in Sweden it's really hard to land a sentence above 10 years for murder.</comment>