Avoiding "OR" for Better Query Performance - <AUTHOR> https://www.cybertec-postgresql.com/en/avoid-or-for-better-performance/ <comment><USER2> In Oracle land you have no choice but to use a long list of OR because IN has a low clause limit (1000). So if you need e.g. 1.1K rows, even using a fast indexed PK, your choices are OR or pain. The workarounds are horrible, like splitting your IN clauses and UNION ALL two copies of the same query (runs twice), or using a global temp table (which is awkward as heck to setup/destroy each execution, particularly with IN clauses that could range from 1 through 1K+).

Postgres has no practical limit, there's examples of people using 100K+ IN clauses (not recommending). People keep telling me that Oracle is "enterprise grade" and that Postgres is not. To be honest all I see is Postgres is flexible and modern, and Oracle is kludgy and outmoded. I'm forced to use Oracle but I'd never voluntarily start any new projects on it, I'm all in on Postgres from here on out.

<comment><USER3> Used Oracle for a long time but have never had the need to do this. Can I ask what your use case is? I can't imagine one which isn't solved by a subquery or a built-in Oracle temp table which automatically restricts the contents of the temp table to one transaction, with no need to setup/teardown per execution (as long as you're using sensible transactions).

<comment><USER4> We have a problem at work where one of our tables is 5 billion rows and we get a csv (or maybe a few csv's ;) ) with a total of 21 million primary keys. We now need to find which of these 21 million keys are already in our table and do some task on those that are not.

Originally, we batched 1k records at a time and used an IN. It was taking hours. Each query finished in 1.5 seconds. Then we moved to a global temp table. It was around 30% faster iirc. Still not good enough (open to suggestions!!!) but way better. Wish oracle would just do this for us internally.

<comment><USER5> How about this: 21 million primary keys are easily kept in memory. Sort them.

Then do "SELECT id FROM five_billion_rows ORDER BY id" and iterate over that with the CSV ids in lockstep.

Cursor management is pretty good in Oracle, this is likely much better than your own paging with 1k of IN values. I would assume that it would be IO bound regarding the index of the id column.

This also might be an interesting question for "Ask HN".

</comment></comment></comment></comment><comment><USER6> It's surprising to me that "where id = 42 or id = 4711" behaves differently than "where id in (42, 4711)".

I would have guessed the database optimizes this away. It seems like an easy to implement and safe optimization. (Look at abstract syntax tree, find "or" expressions, find equality test expressions under there, check if two or more compare the same sub-expression against constants, then combine.)

Did I misunderstand what the article is saying PostgreSQL does, or does it actually not do this optimization for you?

<comment><USER7> > I would have guessed the database optimizes this away

And one thing about this type of "beneath the covers" optimization is that, over time, the tool ends up doing it for you and applying these sorts of optimizations can end up hurting more than helping - so by all means learn it, but keep an eye on it as versions progress and make sure you're not fighting the optimizer.

<comment><USER8> I think the simpler takeaway is that OR consistently represents a branch in the query planning, where the planner now always has to do two things and merge back instead of one. It makes sense for the OR operations to always preserve this inefficiency instead of leaving the user guessing when it will or won't.

<comment><USER9> I don't understand why that makes sense? Isn't the point of a declarative language to remove the need to consider these details?

<comment><USER10> I have long since resigned myself to the fact that "declarative language" in practice only means that you don't have to manually write the for-loops anymore. The concept of declarative languages seems like it has so much potential, but I haven't seen any that have even come close to it.

</comment></comment></comment></comment></comment><comment><USER11> All of the examples seem like relatively straight-forward transformations.

I'm quite surprised that the PG query optimizer doesn't to those. How do other engines compare here?

<comment><USER12> sqlite certainly seems to optimize it automaticaly; Note the 'IN operator' in the plan where none was in the query:

        sqlite> explain select * from words where wid=1 or wid=2;
        addr  opcode         p1    p2    p3    p4             p5  comment
        ----  </comment></comment><comment></comment><comment>-  ----  ----  ----  </comment><comment></comment><comment>-  --  </comment><comment></comment><comment>-
        0     Init           0     21    0                    00  Start at 21
        1     OpenRead       0     3     0     2              00  root=3 iDb=0; words
        2     Integer        11    2     0                    00  r[2]=11; return address
        3     Once           0     11    0                    00
        4     OpenEphemeral  1     1     0     k(1,)          00  nColumn=1; RHS of IN operator
        5     Integer        1     3     0                    00  r[3]=1
        6     MakeRecord     3     1     4     D              00  r[4]=mkrec(r[3])
        7     IdxInsert      1     4     3     1              00  key=r[4]
        8     Integer        2     3     0                    00  r[3]=2
        9     MakeRecord     3     1     4     D              00  r[4]=mkrec(r[3])
        10    IdxInsert      1     4     3     1              00  key=r[4]
        11    Return         2     0     0                    00
        12    Rewind         1     20    0                    00
        13      Column         1     0     1                    00  r[1]=
        14      IsNull         1     19    0                    00  if r[1]==NULL goto 19
        15      SeekRowid      0     19    1                    00  intkey=r[1]
        16      Rowid          0     5     0                    00  r[5]=rowid
        17      Column         0     1     6                    00  r[6]=words.text
        18      ResultRow      5     2     0                    00  output=r[5..6]
        19    Next           1     13    0                    00
        20    Halt           0     0     0                    00
        21    Transaction    0     0     97    0              01  usesStmtJournal=0
        22    Goto           0     1     0                    00

I've verified that "where wid in (1,2)" produces the same plan.

</comment><comment><USER13> Here's a slightly different and older take on the same problem:

[http://blog.rhodiumtoad.org.uk/2017/01/22/performance- issues...](http://blog.rhodiumtoad.org.uk/2017/01/22/performance-issues-with- ored-conditions/)

</comment><comment><USER14> In MySQL, discovering the UNION hack a couple years ago was like a revelation. It's something that I've since been preaching to everyone who'll listen.

It's extremely common to want to OR a small set of items. It _feels_ like the compiler would be smart enough to use an index (presuming one exists matching the searches fields), but it doesn't. UNION makes it use the index.

It's a nice tool to have in your kit.

(At least not in 5.6 or 5.7.)

</comment><comment><USER15> IDK about the profiler... but I have a hard time believing why the union of 2 joins will be faster than filtering first and then join the results :thinking:

<comment><USER16> Yeah, seeing "sort" in the union-based plan also threw me for a moment about why that would be any faster. Normally sorts kill performance, especially compared to the merge join in the "ugly" version.

I think the key is in the description afterwards, where each subquery only returns 1 row. Which just reinforces: measure everything, this advice may not be generally applicable.

</comment></comment><comment><USER17> The simple query:

        explain (analyze, timing) SELECT id FROM a
        WHERE a_val LIKE 'something%'
           OR a_val LIKE 'other%';
                                                               QUERY PLAN
        </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>
         Bitmap Heap Scan on a  (cost=8.87..12.88 rows=20 width=4) (actual time=0.012..0.012 rows=0 loops=1)
           Recheck Cond: ((a_val ~~ 'something%'::text) OR (a_val ~~ 'other%'::text))
           Filter: ((a_val ~~ 'something%'::text) OR (a_val ~~ 'other%'::text))
           ->  BitmapOr  (cost=8.87..8.87 rows=1 width=0) (actual time=0.011..0.011 rows=0 loops=1)
                 ->  Bitmap Index Scan on a_val_idx  (cost=0.00..4.43 rows=1 width=0) (actual time=0.009..0.009 rows=0 loops=1)
                       Index Cond: ((a_val ~>=~ 'something'::text) AND (a_val ~<~ 'somethinh'::text))
                 ->  Bitmap Index Scan on a_val_idx  (cost=0.00..4.43 rows=1 width=0) (actual time=0.001..0.001 rows=0 loops=1)
                       Index Cond: ((a_val ~>=~ 'other'::text) AND (a_val ~<~ 'othes'::text))
         Planning Time: 0.088 ms
         Execution Time: 0.033 ms
        (10 rows)

using union:

        explain (analyze, timing)
        select id from a
        where a_val like 'something%'
        union
        select id from a
        where a_val like 'other%';
                                                                  QUERY PLAN
        </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>
         HashAggregate  (cost=17.23..17.43 rows=20 width=4) (actual time=0.135..0.135 rows=0 loops=1)
           Group Key: a.id
           ->  Append  (cost=0.42..17.18 rows=20 width=4) (actual time=0.133..0.133 rows=0 loops=1)
                 ->  Index Scan using a_val_idx on a  (cost=0.42..8.44 rows=10 width=4) (actual time=0.128..0.128 rows=0 loops=1)
                       Index Cond: ((a_val ~>=~ 'something'::text) AND (a_val ~<~ 'somethinh'::text))
                       Filter: (a_val ~~ 'something%'::text)
                 ->  Index Scan using a_val_idx on a a_1  (cost=0.42..8.44 rows=10 width=4) (actual time=0.004..0.004 rows=0 loops=1)
                       Index Cond: ((a_val ~>=~ 'other'::text) AND (a_val ~<~ 'othes'::text))
                       Filter: (a_val ~~ 'other%'::text)
         Planning Time: 0.124 ms
         Execution Time: 0.164 ms
        (11 rows)

using gin index:

        EXPLAIN (analyze, timing)
        SELECT id FROM a
        WHERE a_val LIKE ANY (ARRAY['something%', 'other%']);
                                                                QUERY PLAN
        </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>--
         Bitmap Heap Scan on a  (cost=176.15..247.11 rows=20 width=4) (actual time=0.036..0.036 rows=0 loops=1)
           Recheck Cond: (a_val ~~ ANY ('{something%,other%}'::text[]))
           ->  Bitmap Index Scan on a_val_trgm_idx  (cost=0.00..176.15 rows=20 width=0) (actual time=0.034..0.034 rows=0 loops=1)
                 Index Cond: (a_val ~~ ANY ('{something%,other%}'::text[]))
         Planning Time: 0.091 ms
         Execution Time: 0.193 ms
        (6 rows)

Doesn't the simple query win?

</comment><comment><USER18> Thank you, that was a well written and informative post.

<comment><AUTHOR> You're welcome! I found it very helpful for me and than I shared it.

</comment></comment><comment><USER19> Is this applicable to mysql?

<comment><USER20> You might consider running "EXPLAIN" to see for yourself.

<comment><USER21> Both give the exact same result.

<comment><USER20> Well fill a table with a few million rows, and compare the results. If they both come back with the same rough times then you've learned they're both equally good :)

Sometimes its good to ask people "Is this true of XX?", but but if you're curious it almost takes less time to expore and test than wait for somebody to give you an answer - an answer that might actually be wrong. (Some things change across DB-releases, as I've learned to my cost. If I'm ever unsure of whether one approach is faster than the other IN MY SPECIFIC SITUATION I would test. Random benchmarks are often not as useful as real-world tests.)

</comment></comment></comment></comment><comment><USER22> Why not just use a sub query ??

</comment><comment><USER23> I've always said SQL is a bad abstraction. An artifact from the past that we have to deal with like css and JavaScript.

This article solidifies my point. Seriously, ors are bad so union two queries as a cheaper alternative? Theres no rhyme or reason to it at the API level. You have to look under the hood to see why this hack works. Hence why SQL is such a bad abstraction. We program and optimize sql not with logic but with memorization of hacks.

<comment><USER24> > Seriously, ors are bad so union two queries as a cheaper alternative?

They should be equivalent, letting you choose the notation that expresses the problem cleanly. If relations were sets of tuples, boolean expressions could be rewritten safely as straightforward set arithmetic and vice versa.

But SQL relations (tables) are bags of tuples (rows), which breaks that equivalence.

<comment><USER23> That's why the abstraction is bad. The abstraction is not zero cost.

Instead a high level API should be exposed that mirrors the underlying implementation with a bijection. Databases are the bottleneck of most web development and we need to optimize "bags of tuples" not "sets" in order to gain the performance we need. The problem is, the API (SQL) exposes things as if the underlying implementation was sets. Hence the need to memorize ugly hacks like this in order to optimize SQL.

SQL is a language designed for business users, not a language designed to optimize data retrieval speed. We need an API that can do the latter because web devs are doing all these optimizations in the business language.

I'm not saying there's a better solution out there. I'm exposing a problem. The problem is, SQL is not a zero cost abstraction. We need a "Rust" for databases. A high level query language where the optimization paths are isomorphic to the optimizations paths in the underlying implementation.

Maybe at first glance you don't agree with me. But think of it this way. If an optimization path in Postgresql involves rewriting a Query with an OR clause as a UNION of two queries and all SQL implementations are loaded with strange hacks like this... is there a problem? and what is the solution?</comment></comment></comment>


Flight Simulator hands-on: Microsoft looks different 20k feet in the air - <AUTHOR> https://arstechnica.com/gaming/2020/07/ms-flight-simulator-our-yoke-on-look-at-new-features-gorgeous-flights/ <comment><USER2> I'm incredibly excited for MSFS. I always adored the older versions while younger, even with only a basic flight stick. In the current circumstances it seems a great way to satisfy a bit of wanderlust responsibly, even if I do intend quite early on to attempt a bit of airborne commuting to and from the airfield next to my office.</comment>


'Lobbyconners' crash tech conferences to schmooze, cut deals - <AUTHOR> http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2007/10/14/MNKJSL3GM.DTL <comment><USER2> Just shows the conferences are too expensive.

<comment><USER3> The purpose of conferences like these is to extract money from big companies. They're the social analogue of buying MS Exchange, or hiring people through headhunters. Early stage startups should never pay thousands of dollars to go to conferences.</comment></comment>


Show HN: A browser extension I made appeared on 60 Minutes - <AUTHOR> http://www.cbsnews.com/news/see-whos-watching-you-online/ <comment><USER2> Can someone familiar with Disconnect compare it with Collusion? Feature wise what is missing in each?

[http://www.mozilla.org/en-US/lightbeam/](http://www.mozilla.org/en- US/lightbeam/)

<comment><AUTHOR> OP here. The differences between (and history of) these two extensions are a bit confusing :-):

The parts of Disconnect that 60 Minutes showed actually started as a Chrome (from Firefox) port of Collusion that I did for a hackathon ([https://blog.disconnect.me/collusion-for- chrome](https://blog.disconnect.me/collusion-for-chrome)). Later, we updated and integrated this code into Disconnect (there's a "Visualize page" option in Disconnect that brings up the graphical UI).

Mozilla has since made major updates to Collusion in the form of Lightbeam (a Firefox add-on). The Disconnect graphs are now much more like to the original Collusion and the Lightbeam graphs are brand new. But other than the visual differences, Disconnect and Lightbeam are functionally alike (Disconnect is also available on platforms other than Firefox: Chrome, Safari, Opera, IE, iOS, and [sort of] Android).

</comment></comment><comment><USER3> FYI the entire segment can be seen here: [http://www.cbsnews.com/news/the- data-brokers-selling-your-pe...](http://www.cbsnews.com/news/the-data-brokers- selling-your-personal-information/)

</comment><comment><USER4> I don't have the extension, but I wonder how many trackers/beacons there are on that CBS page.

<comment><USER5> Ghostery reports doubleclick, adsense, new relic, omniture, and visual revenue (also adobe typekit, but not sure whether you consider that a tracker/beacon)

Disconnect reports new relic, "google", visual revenue

EDIT to clarify: The answer wasn't intended to suggest that Ghostery blocks more or different ads/trackers compared to Disconnect. I just read off what the blockers reported.

<comment><AUTHOR> It sounds like you're running at least Disconnect and Ghostery at the same time. You can't do these comparisons with multiple filtering extensions running at the same time and get apples-to-apples results because if one extension blocks a request, other extensions don't see the request (the install order [browser dependent] determines which extension has first crack at blocking).

With just Disconnect running (OP), I get this list (similar to AjithAntony):

facebook.com, plus.google.com, reddit.com, www.google.com, apis.google.com, twitter.com, google-analytics.com, livefyre.com, facebook.net, scorecardresearch.com, moatads.com, linkedin.com, doubleclick.net, fonts.googleapis.com, googleusercontent.com, gstatic.com, googletagservices.com, quantserve.com, youtube.com, ytimg.com, googlesyndication.com, 2mdn.net, visualrevenue.com, imrworldwide.com, conviva.com, lphbs.com, googleadservices.com, accounts.google.com, typekit.net, ru4.com, clicktale.net, bkrtx.com, fyre.co, theplatform.com, stumbleupon.com, securestudies.com, network-auth.com

</comment></comment></comment><comment><USER6> Curious, what kind of traffic this drove?

<comment><AUTHOR> We seem to be getting about 100K extra hits per day (and still going) since Sunday. (I have no idea if this is more or less traffic than one might expect.)

</comment></comment><comment><USER7> Congrats, but I wonder why they are doing this now. Are they trying to redeem themselves for that NSA show sell-out? Because if they are, this won't cut it.

</comment><comment><USER8> congrats, but it's not like you haven't had $4M in funding :)

(btw, I'm a user since the early days)</comment>


How to Send Postcards as Effortlessly as Email - <AUTHOR> https://lob.com/blog/how-to-send-postcards-as-effortlessly-as-email <comment><USER2> From the article >"Everyone is unique, so you should make sure each individual mailpiece is customized as much as possible. Don't be afraid to use customer data to personalize and make a statement with your mailing."

"Dont be afraid to use customer data" seems like a dangerous general recommendation to make for an article recommending using the API to send postcards that are open to the world to read. Now I can't just discard spam mail adressed to "Resident", I'll have to read it all and make sure to shred it in case it has some sensitive data automatically encoded into the postcard?

<comment><USER3> I think they mean "you know you can use the person's name instead of listing 'Current Resident'?". I don't think they are encouraging you to send the recipient's social security number on the card.

</comment></comment><comment><USER4> From the article: _" You can mail a single postcard and it will only cost you $0.70 all-in, no strings attached._" That appears to be the cost penalty for sending postcards from an API. Less than half of that is postage.

There's still a direct mail industry, but it's all about getting the big discounts available if you send in bulk and pre-sort everything. It's a form of spam; most of it is discarded.

Worse, people who still pay any attention to paper mail are likely to send you back a reply on paper or call you. Now you need a mail room, a data entry operation, and a call center.

<comment><USER5> > Worse, people who still pay any attention to paper mail are likely to send > you back a reply on paper or call you. Now you need a mail room, a data > entry operation, and a call center.

I'm not all that happy about paper spam either, but this makes sense depending on your target demographic. If you're selling to seniors, for instance...

</comment></comment><comment><USER3> I struggle with this. On the one hand, direct mail is the bane of my daily existence. I get so many catalogs, flyers, etc. (mostly directed at previous owners, or just random names), that my recycling bin just can't handle it. Yes, I am actively unsubscribing from these things, but it's a slow one-off process.

On the other hand, between the Valpacs and the Red Plums, I do get occasional good things. A reminder that my sprinkler system needs to be winterized, or a card reminding me that my dogs are due for their vaccines. These things could be email-based, but a postcard is a great point of initial contact with a customer.

As a developer I am excited to see if I can use this service to send out party invitations, birthday cards, etc. Combined with a database of people's addresses and birthdays, I could automatically send postcards to lots of people, whereas doing it manually would mean that I would constantly forget.

</comment><comment><USER6> I really like their API documentation pages ([https://lob.com/docs](https://lob.com/docs)), does anyone know if this was built using an open source project of some sort, or have any recommendations for one?

<comment><USER7> Looks to be inspired by GoCardless ([https://developer.gocardless.com/](https://developer.gocardless.com/)) and Stripe's API ([https://stripe.com/docs/api](https://stripe.com/docs/api)) docs.

As an aside, GoCardless open-sourced their API docs [https://github.com/gocardless/api-docs](https://github.com/gocardless/api- docs) .

</comment></comment><comment><USER8> I'm working on an iOS Postcard app, so I tried them out. lob.com is a really great service, very easy to set up and get started. Do note that in my test it took over ten business days from ordering the card to deliver, so it is good for marketing postcards, but not good for transactional postcards (e.g., welcome to the service type things).

</comment><comment><USER9> How do you get the physical address from the email address? Or you need them to have provided that somewhere else in the sales funnel?

</comment><comment><USER10> You should send me these so I don't leak out of your conversion funnel.</comment>


The rise of a visual internet? - <AUTHOR> https://www.nytimes.com/interactive/2018/02/09/technology/the-rise-of-a-visual-internet.html <comment><USER2> Not only no, but hell no.

This is one thing that drives me crazy about the Minecraft Modding community. Instead of properly documenting a mod on a Wiki someone will make an hour long YouTube video that takes forever to get to the point and misses a lot of the nuance. Not only does it take forever, but going back to find recipes or specific construction restrictions means scrubbing through the video looking for those 2 seconds worth of frames that had the relevant information. Even the old standards of the FTB wikis are now terribly out of date as everybody moved on to pure video.

<comment><USER3> I'm with you 100% on technical instructional videos in general. It is absolutely the worst medium for the simple fact that you usually need to go back over the steps multiple times the first time you do something.

<comment><USER2> Another place where it came up, but probably on purpose was our annual security refresher course. In the old days this was basically a slide deck with a multiple choice quiz at the end. You could breeze through it in 10 minutes because the content was always the same and the questions were obvious.

That was replaced by an unskippable video system where you have to sit through a full hour of people not emailing their passwords to phishers and remembering to lock their screen when they walk away from their desk. It's miserable.

</comment></comment></comment><comment><USER4> For me text is perhaps the most liberating means of communicating thought. Writing requires no investment or specials tools, and anyone can produce professional, groundbreaking work. And, of all the means of expressing thought, text is the only medium that truly frees the mind from the body. The quality of writing does not depend on what the author's voice sounds like or what they look like or how fast they can think and react.

The internet promised to give everyone a voice and by moving away from text we would give up an important part of that ideal. There's a place for audio and video sure, but I deeply hope there will also always be a place and an audience for writing

<comment><USER5> Western governments have been pushing for internet connection speeds far in excess of what's needed for text _for exactly this reason_.

The competitive advantage from large capital resources is far greater with video than with text. As the internet turns into TV 2.0, the little people can crawl back under whatever rock they live under and the old order of media- democracy is restored.

<comment><USER6> if They're pushing, it is in a weird and ineffective way which neglects the last mile issue and supports the like of Comcast and Verizon killing something like Google Fiber with nonsensical bureaucratic hurdles.

As conspiracy theories go, it's a particularly shabby one.

</comment></comment></comment><comment><USER7> Who is this mythical people who consume video news? I can't stand the slow pace and lack of details.

I very much prefer text, where I can skip boring or redundant parts, or radio where I can work in something else while I get updated on recent developments.

<comment><USER8> Tangential: I follow cnn.com because they matter and I think we need to read widely these days. I just couldn't deal with the aggressive, auto-play video all over the place, so last week I wrote a userscript to monitor all of their pages for video and strip it. My cnn.com experience jut got a lot better.

[https://openuserjs.org/scripts/braindongle/CNN_remove_video/...](https://openuserjs.org/scripts/braindongle/CNN_remove_video/source)

<comment><USER9> I don't know how to break this to you, so here text only cnn from cnn:

[http://lite.cnn.io/en](http://lite.cnn.io/en)

<comment><USER8> I was aware. Thanks for mentioning that. Personally, I think that the layout of the site, the size of things, the number of clicks it takes to get to particular information are all important when my goal is to understand what messages they are selling, not just to consume their content.

</comment></comment></comment></comment><comment><USER10> This idea has been floated so many times, but somehow text is still around. Jason Kottke wrote a good article about why text will never die: [https://kottke.org/16/06/facebook-is-wrong-text-is- deathless](https://kottke.org/16/06/facebook-is-wrong-text-is-deathless)

</comment><comment><USER11> I first got on the Internet in 1993.

In the last 23 years, I've seen the Internet evolve from primarily a text based interface, which encouraged long form writing, and line-by-line- dissection of long form writing, to a medium that is primarily pictorial, and increasingly video based, where close reading of long form stuff is discouraged by code and design.

Postman himself declined even to look at the web in 1999, when I started reading his books, and he passed away in 2004. In 1999, I thought the Internet was part of the solution to the problem he was writing about. Today, the Internet is a bigger problem than television and the movies.

And the shift towards pictorial communication is rapidly approaching levels where it's a threat to civilization. Fark and Failblog are good amusements, but even the briefest look at 4chan will show you, we're in deep shit.

The thing is, the Internet isn't just the Internet.

Twitter can be criticized not for how well or how badly the company polices its users, but also in a medium-is-the-message way. Twitter is a cesspool of hate because the 140 character limit makes it useless for more than playground name calling.

Facebook is part of the problem not just because of Facebook's policies but because it's an interface that pushes blogging into microblogging.

Compare to Livejourbal, Wordpress, or dare I say it, Metafilter, all of which are better by design. (But don't get too smug. There's room for improvement. And it's still all stuff you're looking at with a tabbed browser, and it's always tempting to tab away.)

Or compare to Instapaper. I've removed Facebook and Twitter from my phone, and now when I;m out and about and being a phone zombie, I'm at least reading 1000-2000 word essays that I loaded onto the Instapaper app previously. It's made me a lot happier. But I am sad to report that I still have not regained the long form writing ability I had 15 years ago.

<comment><USER12> 4chan is a threat to human civilization because of its use of images? I think you'll be happy to hear that one of the most common forms of 4chan post is "greentext", a specific kind of long form story. Some of these break the character count cap by many, many posts. And many of these get sizable reactions from the userbase.

4chan, like life, is what you make of it.

If you want to regain your long form writing ability, you could try taking a Moleskine or small pad with you when you travel. You can use it as a way to help create content while you're out and about, as a replacement for your phone.

Additionally, if you're tech inclined, setting up a blog has become easier than ever before.

<comment><USER11> "4chan, like life, is what you make of it."

4chan is what I make of it.

But it's also what the rest of society makes of it.

That's why we're in deep shit.

</comment></comment></comment><comment><USER13> This has nothing to do with the "reach" and "power" of video, and everything to do with the fact that video ads are more valuable. Source: I work in online advertising.

<comment><USER14> Thanks, yes, I was going to say the same thing.

Video is a supply- rather than demand-side phenomenon. Or rather, it's an interaction between publishers and advertisers rather than publishers and readers.

</comment></comment><comment><USER15> Plain text is the only format that has survived from the beginning of computing. It will probably survive for the next 80 years of computing too. I'll stick with it :-)

</comment><comment><USER16> I am pretty sure quality content will be in text form for quite a while.

</comment><comment><USER17> The obvious irony here is that this story was told via text instead of a video or set of images. Each medium has it's own place.

</comment><comment><USER9> Before getting up in arms wait for the NYT 'Text actually dominates' article. I'll reserve my comments for that one.

</comment><comment><USER18> Frankly I find a lot of publishers would rather people consume their video content as video ads pay more, rather than users preferring the video content. This occasionally leads to that most awful of abominations, news videos that are just text and a slideshow (or just text!) with no text option to view it.

</comment><comment><USER19> I met someone recently who had a huge learning disability with reading, to the point that they are functionally illiterate. It really underscored just how essential textual communication has become in our world. Even menial jobs require literacy.

</comment><comment><USER20> What these "[insert communication medium] is dead!" proclamations don't take into account is that everyone learns differently. Even with developers. Some will wade through detailed documentation, others want a quick GIF showing how the API does something, some just want some screenshots, and so on.

</comment><comment><USER21> What a bunch of BS. This is pretty much lauding a return to the days of the cave man, where the only way to communicate information is to draw pictures or pass on an oral history. No, no, and hell no.

</comment><comment><USER22> And yet I still instinctively skip over links I see to video/audio content as it generally takes much more time, concentration, and attention to get value/information out of them.

<comment><USER23> Same here - video and audio runs at its own pace. That's not good for understanding moderately complex topics.

</comment></comment><comment><USER24> Text is going to die for exactly the same reasons that audio-video killed pure audio. That's why radio is now obsolete, and podcasts never took off.

</comment><comment><USER25> I couldn't get through that mess. Did they eventually realize the irony of describing the post-text future using text?

</comment><comment><USER26> Everything old is new again. Socrates thought writing was of lower value than speaking.

</comment><comment><USER27> Not ever here, at least.

</comment><comment><USER28> I read as much text as ever, and semiliterate lowbrows read as little as ever. None of the numbers that article presents suggest otherwise. Sure, there's a lot of consumption of non-text media, too, but we're a long way from post-text yet.

<comment><USER29> I dunno. I read less books and less news, but a lot more email, WhatsApp, HN...

I definitely write more. I probably write more on my phone than in total, pre- internet. Maybe I'm one of the Philistines.

<comment> 52-6F-62 Nah, us Philistines use _cursive_ still.

That said, I read just as much as ever. Though I read far more non-fiction and news than I used to. I used to read more fiction and poetry. The easy access to content gives me _too much_ to read, in fact!

My reading list grows daily. I simply can't keep up. And don't get me started on going down the Wiki-hole

</comment></comment></comment><comment><USER30> This rendered as a blank page on FF, worked on Chrome. Anyone else?

<comment><USER31> There's a great white emptiness on top, but when you scroll down there's some text. No media though. But I'm using private browsing mode which has tracking protection enabled and disables local storage among other things. I guess they don't feature-detect those things.</comment></comment>


Bullshit I had to go through while organizing a software conference - <AUTHOR> https://notamonadtutorial.com/the-bullshit-i-had-to-go-through-while-organizing-a-software-conference-4de1225d0acb <comment><USER2> I am glad this was written without naming the people involved. Although I see nothing wrong with naming names in situations like this (see below) the lack of specific names meant I could focus on the _experiences_ (as related by the poster) rather than having the specific people colour my opinion.

The reason I think specifying people by name would have been OK is that 1 - they were presumably an issue for a number of attendees due to (prior) publicly stated positions and 2 - they apparently made subsequent statements via "broadcast" media such as Twitter, for anyone to peruse. This would be quite different if the people were more private, and if all discussions had been private and/or via non-broadcast tools like SMS or WhatsApp. Plus naming names could cause me to read what they had said and even disagree with the OP, at least on the baseline of non-inviting them. However the anonymity made the post much more interesting.

<comment><USER3> > I see nothing wrong with naming names

As he is pursuing legal options, I'm guessing his counsel told him not to.

<comment><USER4> He named people (and showed pictures of messages) on Twitter in this convo [1], FWIW.

At this point, I think it's more to avoid further escalation, as said in the article.

[1][https://twitter.com/unbalancedparen/status/11223070591548702...](https://twitter.com/unbalancedparen/status/1122307059154870273)

<comment><USER5> I watched this unfold on twitter, and in the organizer's defense, he only addressed the situation and the culprits after those people started a public discussion regarding the ban. The organizer was defending himself.

It's a difficult situation to be in.

<comment><USER6> Moral of the story: Strike first, strike hard, no mercy?

More reasonably but still on the aggressive side, does this mean that now we have to publicly announce when speaker invitations are rescinded to get ahead of the story?

<comment><USER7> At first glance, it kind of does. Although it makes you wonder what you'd actually put in this public announcement. Would you simply state the facts (along the lines of "sorry, but X isn't going to be speaking after all.") or would there be more detail (read: speculation) included?

I don't really think there's a way to win this. In the event that you're wrong, it'll blow up. In the event that you're right, it still probably will blow up, depending on whether that person (or their fans) go on the offensive or not.

The only actual winning move is not to have played (only inviting people that you know, doing advanced due diligence on anyone a degree of separation away), but are you really winning if you do that? It would seem to seriously limit your horizons.

</comment></comment></comment></comment></comment></comment><comment><USER8> I've been a co-convener for two Python conferences in Vancouver.

The conferences were small (<200 people) but I don't remember the organization being as stressful as the article describes.

For me, the key sources of stress were:

1\. hoping that tickets and sponsorship would cover our costs (at some point you have to pay for your venue, flights for your keynotes, etc. and this happens _before_ ticket sales open). I think that we lost a few hundred dollars on the first conference and donated a few hundred dollars to the Python Software Foundation on the second one.

2\. the BBQ. For both years, I arranged a beach BBQ but didn't have enough budget to deal with contingencies in the event of rain (remember this is Vancouver so the chance definitely exists). My plan was to refund attendees if we canceled the BBQ but that would have been thousands of dollars out of my pocket and lots of disappointed people. Fortunately, it didn't rain in either years.

I would say that convening a conference in a city where you have lots of connections really helps. For example, I was able to buy salmon direct from the docks for the BBQ because I knew someone who was willing to help me. I also used my family as the chefs ([https://photos.app.goo.gl/C6yNzqMnBG98GxE36](https://photos.app.goo.gl/C6yNzqMnBG98GxE36)).

What I do remember being hard was not the planning but going without sleep during the conference itself. As a convener, I had to be at the venue before any attendees arrived, had to leave after the last attendee left and then still had to deal with issues, etc. for the next day.

Still it was tonnes of fun!

<comment><AUTHOR> Some simple things (logistics, catering, etc) in countries like Argentina are more difficult. However, your are right. We had a LOT of fun last year. I think I am pessimistic because of everything that happened these last few weeks.

<comment><USER9> Good luck in the courts. Unfortunately that route is very slow.

(You're probably looking at 1.5 to 3 years before you obtain any final orders - and then there's the issue of enforcing any orders you might obtain!)

</comment></comment></comment><comment><USER10> Sorry to hear about the harassment, thats never fun to deal with. On the plus side, sounds like OP made the right call to disinvite the person from the conference. You can tell an awful lot about a person by how they handle rejection.

<comment><USER11> As long as that speaker was one of many, I wouldnt have uninvited them.

If the audience has an issue with one speaker out of 10, they can take a lunch break then.

If it's one out of 2, I can see why they might not want to attend.

Using inclusion or exclusion to punish someone for past actions I would try to avoid at all costs. If someone has broken the law, the legal system is there to do punishment. It isn't your role as conference organiser/colleague/etc. to punish. You are not qualified to make decisions as to the veracity of the claim.

Perhaps the furthest I'd go is saying to them "you (rightly or wrongly) have a reputation for X. Please make sure none of that happens during the conference."

<comment> village-idiot I feel that such policies fall apart when faced with truly toxic people. If the claims of the above article are true, I would consider the people being mentioned to be truly toxic.

</comment></comment></comment><comment><USER12> Sounds like the same reason the Derbycon organizers aren't doing it again: [https://www.derbycon.com/blog/derbycon-9-0-every- beginning-h...](https://www.derbycon.com/blog/derbycon-9-0-every-beginning- has-an-end/)

<comment><USER13> > To put it in perspective, we had to deal with an individual that was > verbally and mentally abusive to a number of our volunteer staff and > security to the point where they were in tears.

It sounds like the proper response to this is to tell the individual to "fuck off and _never_ come back", but looks like popularity mattered too much to the Derbycon organizers:

> Admittedly, we had no idea how to handle this person, and in fear of > repercussion of removing this person, allowed them to stay at the conference > in order to "not upset the masses".

Guys, the response to adults acting like children is to completely ignore them and kick them out of your discussions. They do not deserve to be a part of your forum. Perhaps tell them why you're doing so, so they can improve themselves, but there is no need to deal with their shit.

<comment><USER14> Alas, it's not that simple. A lot of professional victims out there, ready to bring out an utter shitstorm if they get slighted. Conference organizers have their careers to think about, and getting nailed on Twitter as a *ist is a great way to become unemployable.

</comment></comment></comment><comment><USER15> >Nevertheless, we didn't expect a threatening reaction followed by several emails, Twitter DMs, persistent phone calls and Whatsapp messages. She even texted my girlfriend, one of the organizers of the conference, whose telephone number is not public and wasn't given to her at any moment. At the same time, she started contacting other speakers of the conference.

At that point you know you made the right choice... the rest is mind boggling.

<comment><USER16> Right? If you're asked not to speak at a conference, why would you go on to consistently prove it was the right decision to remove you?

<comment><USER17> It is the bullshit asymmetry principle: The amount of energy needed to refute bullshit is an order of magnitude bigger than to produce it.

As another person mentioned, DerbyCon got tired of dealing with it ([https://www.derbycon.com/blog/derbycon-9-0-every- beginning-h...](https://www.derbycon.com/blog/derbycon-9-0-every-beginning- has-an-end/)). And then had to respond to a bullshit storm related to their integrity a month later ([https://www.derbycon.com/blog/derbycon- clarifications-inclus...](https://www.derbycon.com/blog/derbycon- clarifications-inclusiveness-and-gender/)).

</comment></comment></comment><comment><USER18> Sounds like he made the right decision not to have her present. Any rejection that generates such a wave of hatred and downright threatening activity was certainly on good grounds, regardless of the situation before what happened afterwards validates it.

</comment><comment><USER19> How can we know if your side of the story is the truth?

Either way, this is an excellent example of why the Twitter Justice System is a bad idea.

<comment><USER20> That was my takeaway - she's doing to him exactly what he allowed other people to do to her. He's finding that he doesn't like it.

<comment><USER21> Did we read the same article? He turned her speaker position down because of her pattern of vengeful, childlike behavior. She acted completely in line with what her reputation would suggest and pursued a personal harassment campaign.

Maybe I'm missing something. Can you enumerate what he allowed people to do to her, and what she did to him? That way we can compare directly.

<comment><USER22> That isn't mentioned anywhere in the linked article.

</comment></comment></comment></comment><comment><USER23> I'm very sorry this person is having to suffer all this crap, but

> conferences tend to net to a loss.

If you put out a lot of energy, for "free", then you often get shit in return. If you don't take responsibility for what you are getting back for all your hard effort, things can easily go pear-shaped. This seems to be one of those mystical laws of the universe. I'm not saying you should be selfish, or charge big bucks for your time. There are plenty of ways for people to give something back, and you need to make sure that is happening too.

</comment><comment><USER24> I'm a big fan of "unbalancedparen". He's a great guy; smart and considerate.

I think the Industry has invited this sort of bad behavior by rewarding Cry Bullies at conferences. People act enititled and they're not willing to put up with speakers who they may have political or philosophical problems with. Similarly, speakers are expecting privileged treatment too, like the spurned speaker in this blog posting.

When there is a real problem, we're unsure who or what to believe. People will complain with the same force whether the problem is big or small. And everyone tries for a "gotcha" and then to have a Trial by Twitter.

<comment><USER15> In the example ... there appear to be no "Cry Bullies" or similar action.

<comment><USER25> > ..."At that precise moment I saw the former speaker. She was calling the > security of the event and using her cellphone to record me. She yelling that > I was at the conference to stalk her, and that I was harassing her and > following her. I never thought something like this could ever happen. It is > worth noting that, at this point, I had only talked over the phone with her > once, met her in person also once and, as I stated before, I had received > several persistent communications on her."

Sure sounds like a "cry bully" to me. Despicable behavior for sure, and it does validate his decision to not have her at the conference (after he was made aware that her participation at the conference would be highly problematic to others - particularly women, in fact).

Edit: Also a representative example from the twitter threads that were linked elsewhere in this comment thread: `"uh these people are like that, be careful. they take it out on someone, they see em as the enemy and they start to fuck legally, and you also start getting anonymous complaints". I feel like a fool, many knew and I did not. That's why these things have to be SPOKEN about, they shouldn't be hidden`

<comment><USER15> I'm not sure what you mean by "cry bully" at this point.

<comment><USER26> I'd define 'CryBully" as the general pattern of "you should hurt this person because I'm sympathetic and I say they hurt me". Literal crying, claiming harassment and getting someone removed from a conference when no harassment happened in retaliation for a speaker disinvitation would qualify as crybullying in my book.

</comment></comment></comment></comment></comment><comment><USER27> Organising a conference is hard. Creating value is hard. Farting on social media is easy.

As a conference organiser, handling social media fires is especially hard, because you're at peak load already. You're organising a conference!

</comment><comment><USER28> The unnamed person could probably describe her experience in the same words as the author did here. Author made her uncomfortable, organizers may have consulted some gender or wherever oriented groups. We don't know the other side of the story.

</comment><comment><USER29> > There is no way of making a technical conference if some people feel > insecure or uncomfortable.

I'm surprised to hear a conference organizer say this, because I think it's an unrealistic goal.

There's a difference between people feeling as if their safety is being directly threatened by someone at a conference and someone feeling uncomfortable with a speaker because of, for instance, some of their personal views that they strongly disagree with.

(Edit: In the original version of OP's blog post, it did not say why people were uncomfortable with the speaker. It said, "My team and I were contacted by different people to warn us that they were uncomfortable with the participation of a speaker and her partner in our conference. They told the organization of the conference that we would have problems with the speaker and his partner. his communication took us by surprise since we had performed a basic background check on the chosen speakers to avoid these kinds of issues." The blog post was later updated to clarify, "They told the organization of the conference that this couple had caused problems to women in the community," which is still pretty vague.)

Obviously, conference organizers should be taking attendees' safety seriously and making sure they're not being subjected to harassment or unjust discrimination.

But if you take a "comfort is priority #1" mindset, it gives a lot of ammunition to people who dislike a speaker's political views or choices they might make in their personal life.

HN has had a bunch of previous threads about how welcoming conferences should be to speakers who hold unorthodox or unpopular opinions -- stuff that potential attendees might object to.

I think the general consensus has been:

If there is real evidence (e.g. past conduct at similar events) that they are likely to engage in conduct that directly threatens the safety of other attendees or otherwise violate the conference's code of conduct, it's a no- brainer. Disinvite.

If they hold unorthodox, potentially objectionable opinions, but there's no evidence that they're going to violate the code of conduct, and the issue is that people merely feel uncomfortable being around someone who holds such views (or they feel as if the conference is implicitly endorsing such views by having the person as a speaker) then you take one of several paths:

If the opinion is unquestionably beyond the pale, like something that 9 out of 10 attendees would say, "Yeah, that's truly awful," then it's a pretty easy decision. Disinvite.

If the opinion is about an issue that is merely controversial -- meaning that in mainstream society, there is a wide range of opinions (e.g. any strong opinion about abortion or guns) -- then you have to do some weighing of principles vs. practical considerations. If maintaining the person as a speaker is going to tank your conference, then even if you don't support disinviting them as a matter of principle, you might decide it's necessary on a practical level. But if it's not going to tank your conference, then you might be able to lean more heavily on principles.

<comment><USER30> I think the way these people reacted confirms that it would be a very bad idea to have them at any conference. I wish they were named so I could avoid them now.

<comment><USER19> Would you avoid them simply on the basis of a blog post?

OP is saying a false accusation turned into a witch hunt because people believed an allegation posted on the Internet without question.

What makes you confident you're better at detecting the truth than the people who believed the woman's story?

<comment><USER31> What makes you believe the OP's story?

<comment><USER32> I don't absolutely believe OP's story, but an important feature of OP's story is not naming any names.

The story contains various propositions that can basically be divided into:

1\. propositions that can likely be independently corroborated by large numbers of people:

\--- the conference really happened (we are not told which conference where, but if we knew that, numerous people could be found to attest to it, if it had been real).

\--- that the organizer was loudly accosted by the woman, accusing him of stalking: this is a public incident that supposedly happened, in front of witnesses.

\--- the _non grata_ couple is real; people don't like them for some reason and warn conference organizers

\--- the _non grata_ couple are known for harassing behavior

2\. claims made by the organizer, like:

\--- he denied participation in the conference to the couple

\--- he was harassed by the woman with repeated contact attempts

\--- the woman's allegations were false

The claims under (1) are verifiable true or false. If they are true, they lend overwhelming credibility to (2). Basically if everything under (1) is true, it's almost inconceivable that the (2) claims aren't.

</comment></comment></comment></comment></comment><comment><USER33> I can't believe how many people are attacking the author here. He has had to deal with things that nobody should have to, and the couple he uninvited are clearly unhinged and he made a good decision uninviting them.

My sympathies go out to him, and I hope he get support in this, and it doesn't suck up their will to do good things for the community like organise conferences.

</comment><comment><USER34> Perhaps I missed it but is it known specifically why that person was uninvited to begin with?

<comment><USER35> > My team and I were contacted by different people to warn us that they were > uncomfortable with the participation of a speaker and her boyfriend in our > conference. They told the organization of the conference that this couple > had caused problems to women in the community.

> Several people who knew both of them confirmed that they had had problems > with them in the past. We also talked with the organizers of other > conferences and with dev that are part of gender groups focalized in > technology and all of them recommended us to take distance from them.

<comment><USER34> I was hoping for something more specific i.e. concrete actions

<comment><USER36> Probably controversial views on the internet, ie. nothing actually bad.

<comment><USER37> I'm going to make a wild guess that it was more than that, given that they were the type of person to harass the conference organizer after the fact.

<comment><USER22> To be fair, most of the harassment allegations were vague and not even alleged to be perpetrated by the woman who was disinvited (like "a famous hacker knows her, and my Signal started doing weird things").

</comment></comment></comment></comment></comment></comment><comment><USER38> I understand why the writer is not warning us who these people are. But if _you_ know, please spill.

</comment><comment><USER39> The conference scene feels like such a hostile environment. I have my own reasons for not being interested in speaking, but even absent that, my desire to avoid anything resembling the above is much stronger than whatever desire to have people listen to me talk about computers. And that's just speaking; organizing is something I would never do, and really can't imagine how people put up with it.

There is a conference I've gone to twice now and really enjoyed, so I'm going again this year. But I expect as this conference grows, eventually this stuff will come along with it and I'll stop attending.

It's a shame, but I don't really pin this hostility on any particular group (ie, I'm not mad about "SJWs" or whatever). A lot of people acted in bad faith for a lot of years for us to reach this point. There is another poster in this thread talking about how "cry bullies" caused the problem. That kind of shit is not helping.

<comment><USER25> > The conference scene feels like such a hostile environment.

It's a hostile environment either way - even the male speaker in this whole drama was widely known as "a male chauvinist who persecutes and intimidates women at sector conferences" \- which is why he was so unwelcome in the first place! But sunlight is the best disinfectant - throw out with prejudice ANYONE who is publicly known to engage in intimidating behavior, whether they're of the "male chauvinist" or the "SJW" sort. Let the pox fall on both houses.

(edit for the avoidance of doubt: I mean the dude who was disinvited by OP, of course.)

<comment><USER22> It was a woman who was disinvited.

</comment></comment></comment><comment><USER40> I was with the author until the diversity and equity part. Why does everything have to boil down to skin color and gender? I don't see why you need to offer this for a tech conference. It should be about ability and topics.

Edit: I already regret making this post.

<comment><USER41> Because there's a well-known imbalance, and not everything balances itself. Sometimes fairness requires stepping in and lending a helping hand to right an imbalance.

<comment><USER30> should we be aggressively encouraging men to take up nursing?

<comment><USER42> If you searched for this, you would find multiple programs trying to do just that. The difference is that it doesn't make the news because there isn't a reactionary movement which sees that as an existential threat.

<comment><USER43> There isn't a reactionary movement that sees "women in tech" as an existential threat. The "reactionaries" you're alluding to are properly known as "liberals" or "egalitarians".

<comment><USER43> Gah, I realize that I think I was unclear. I didn't mean "liberals and egalitarians are reactionaries", but rather the people who are critical of tech diversity quotas are often motivated by liberal and egalitarian beliefs. Hopefully that's clearer if not more agreeable.

</comment></comment></comment></comment></comment></comment><comment><USER44> I couldn't understand anything. What sort of woman was disinvited and why others were uncomfortable with her?

<comment><USER20> He danced around that so much I feel like something is being hidden (besides somebody's identity).

<comment> village-idiot Assuming that the story is true as written, one of the first reactions the subject had to a negative experience was to have her boyfriend _harass the conference organizer's girlfriend_.

I think that would probably make women feel unsafe.

</comment></comment></comment><comment><USER45> Many thoughts.

Change communication channel immediately.

Don't invite someone and when they arrive tell them they are not welcome to speak. Post a list of speakers before, get your feedback and live with your decisions.

This is the best thing that could happen to your event. Use this time wisely to boost your event.

Is it just me or is there a group of people who seem to go to every conference?

<comment><USER5> > Don't invite someone and when they arrive tell them they are not welcome to > speak. Post a list of speakers before, get your feedback and live with your > decisions.

The speaker was notified in April 25. The conference will happen in mid-June. She was given fair warning.

</comment></comment><comment><USER46> I hope the guy who wrote this post didn't choose to disinvite those two just because they had unfashionable views on social justice. Morality /=/ fashion.

<comment><USER47> Reading the rest of the story, and presuming the statements are true, I doubt the decision was made based solely on abstract political opinion.

<comment><USER46> I hope that's the case!

</comment></comment></comment><comment><USER48> I wish I knew why so many conference attendees requested that such a person be removed from the conference.

Why? Part of diversity means being able to cooperate with people who have different viewpoints and ideologies.

Further reading about this person's aggressive and retaliatory behavior implies that this person has issues that should keep her out of conferences. But, I still think it's important to understand why attendees ask that she be removed.

<comment><USER49> Sometimes, people who have different viewpoints and ideologies are, themselves, not able to cooperate with a diverse group. This seems like one of those times, and I wouldn't be surprised if her reputation preceded her within the community.

</comment></comment><comment><USER50> Small potatoes. I can't imagine legal action helping much. Move on from the unpleasant experience and help others who face greater injustices.

<comment><USER51> You underestimate how far some people are willing to go to harass someone, and in his case it has financial consequences, hence the lawyers.

<comment><USER50> False: OP has not mentioned any financial consequences, only that he had to "give explanations to sponsors."

<comment><USER16> Probably because OP is not seeking legal action in _Hacker News Court_ , but in a real court where broadcasting details of such information is not a good idea.

</comment></comment></comment></comment><comment><USER22> _"We also talked with the organizers of other conferences and with dev that are part of gender groups focalized in technology and all of them recommended us to take distance from them."_

Experience tells me author is probably in the wrong here based on this sentence alone. This screams of those extreme lefties that want to police everybody else with their safe spaces and trigger warnings, then deplatform and unperson anyone who doesn't agree with their agenda or worldview. Author should have disinvited those people instead.

 _"It was a difficult decision in which we prioritized the participation of the public that had reached out to us while also knowing that many people, especially women, wouldn't come to the conference if we did nothing about this situation."_

This reeks of BS to me. We are supposed to believe that the presence of this particular woman at a conference will discourage women from attending? What the hell?

The reason for the extreme reaction was likely because it pissed them off that these extremists got their way, and successfully censored and unpersoned another victim. Admit it, you'd be pissed too.

If you don't like one of the speakers, and you're an adult, you skip that talk. Stop creating drama and find a real purpose in life other than being a professional victim.

<comment><USER52> One can be justifiably angry without becoming completely unhinged. I have no idea who was actually in the wrong here, but I would tend to side with the person making the calm, measured response. All things being equal, if someone acts nuts, they probably are.

</comment></comment><comment><USER53> The reaction of the organizer is very sad. Civilization is based on the peaceful collaboration of people who may hate each other. Disallowing such collaboration is, by definition, uncivilized.

Being able to deal with people that make you very uncomfortable without creating a fuss is a fundamental requirement of adulthood. Regardless of the callous reaction of the un-invited person, it was not OK to un-invite them, at least for the reasons exposed in this article.

The organizer says:

> Being accused like that caused me harm.

of course it did. Just like the harm you did by cancelling invitations on behalf of a hypothetical discomfort of other people. It is exactly the same behavior.

<comment><USER5> I watched this unfold on Twitter, and you're misrepresenting the situation.

The people removed from the conference have a history of disruption and harassment in the community. They were removed because of previous behavior that the organizer was not aware beforehand. He relied on the testimony of people he trust.

\--

> Being able to deal with people that make you very uncomfortable without > creating a fuss is a fundamental requirement of adulthood

The only people who engaged in "creating a fuss" were the speaker and a third- party related to her. They decided to come forward and "out" themselves. Up to that point, everything had been handled in private. There was no need to involve other people such as the organizer's girlfriend or other speakers.

\--

> It is exactly the same behavior.

The organizer denied a speaking position and did so in private, without incurring any shame or denying participation in general.

The speaker and a third party started a campaign of doxxing, harassment and, as other commented put it: "public shaming using false allegations of stalking and harassment".

There's a world of difference between those two behaviors.</comment></comment>


Adaptive Clocking in AMD's Steamroller - <AUTHOR> http://www.realworldtech.com/steamroller-clocking/

<comment><USER2> I wonder how heavily dI/dt events weighed on Intel in deciding to integrate the voltage regulator on-die in Haswell?

Tech Report [1] says the FIVR (Fully Integrated Voltage Regulator) is for:

• higher efficiency, lower voltage ripple

• cleaner power delivery [closer to the load, and controlled by Intel]

• very high frequency, to 140 MHz. This one seems relevant, reacting faster to dI/dt events

• the only apparent downside is that with more things in one package the thermal load is higher, but bear in mind haswell's very low overall power usage

[1] [http://techreport.com/news/24802/leaked-slides-expose- haswel...](http://techreport.com/news/24802/leaked-slides-expose-haswell- integrated-voltage-regulator)

</comment><comment><USER3> This is just the start. Next phase is to over clock while transistor error budget is within bounds, need to have heat and error sensors all over the die.

The other one is having functional instruction packet transactions that they can retry somewhere else if they fail during processing.

With these changes, the CPUs will always be operating at some pre determined error rate regime. No more over clocking, just change the AER (allowable error rate) register, which also will be a thing for simulations that don't matter like games and that do matter like Excel handling your payroll.

<comment><USER4> This is not so far from reality. Ben Zorn has done some work on this -- in particular, his work on "Flikker" might be interesting to you. The paper ([http://research.microsoft.com/en- us/um/people/moscitho/publi...](http://research.microsoft.com/en- us/um/people/moscitho/publications/asplos_2011.pdf)) was published at ASPLOS'11.

In general, this concept is called "good enough computing"; periodically, people think about it, and then brush it by the wayside. But it is a neat thought experiment, even if nothing else!

<comment><USER5> If you enjoy these stuffs, you will also enjoy Michael Carbin's work. Slides from OOPSLA'13:

[http://people.csail.mit.edu/mcarbin/slides/oopsla13.pdf](http://people.csail.mit.edu/mcarbin/slides/oopsla13.pdf)

<comment><USER3> I have been enjoying both of these immensely.

</comment></comment></comment></comment><comment><USER6> _6\. Microarchitectural throttling to reduce current draw (e.g., Itanium processors issue fewer instructions during dI /dt events and vector units often take many cycles to 'warm up'); this reduces IPC and can cause instruction scheduling challenges._

How literal is the 'warm up' for the vector units? I've occasionally seen this effect mentioned with regard to microbenchmarking, but never understood why this might be. Are vector units actually slowly activated over several cycles so as to reduce voltage droop?

<comment><USER7> It's not literal even in Itanium's case, as it's about leveling the voltage droop and not temperature.

There can be many other kinds of run-ups to steady state happening in processors for microbenchmarks. Caches/TLBs, branch predictors, clock gating, macro scale voltage/frequency scaling, memory prefetching, power management in the system outside cpu, etc.

</comment></comment><comment><USER8> Not explicitly referring to the article, but it really saddens me that RWT is no longer going to get the extremely detailed articles it used to with the writers partial transition to the MPR. I'm happy for him, but at the same time I can't justify $800/yr towards good articles as someone who only follows the industry from a hobbyist perspective.

<comment><USER9> You could subscribe to MPR instead? I think that one is $1000/yr, a little more expensive but I understand it has greater coverage.</comment></comment>


Show HN: Melancholy Corner – an online vaporwave/lo-fi radio station - <AUTHOR> https://melancholy.xyz/ <comment><USER2> I like this. I was surprised to see that it is html divs when I opened the inspector. Did you make the styling yourself?

I'd like if the text on the recently played list were selectable for easier copying.

<comment><AUTHOR> Thank you! Yes, I wrote the entire CSS myself without using any frameworks or anything. And yes, noted, I'll make the text on the recently played list selectable.

</comment></comment><comment><USER3> It looks very much like [https://plaza.one](https://plaza.one) \- any relationship? just a similar entry in the vaporwave category, or is one an inspiration for the other? PS: I like it!

</comment><comment><USER4> I don't understand why you call it "vaporware".

<comment><USER5> It's vapor_wave_, a musical and visual style: [https://en.wikipedia.org/wiki/Vaporwave](https://en.wikipedia.org/wiki/Vaporwave)

<comment><USER4> Oops. Thanks for the info.

I misread the title and it didn't make any sense, specially because I tried the radio and it worked.

<comment><USER5> That would have confused me too tbh. The wiki page says "Not to be confused with Vaporware." right at the top, so you're definitely not the only one.

</comment></comment></comment></comment><comment><USER6> I really like this, though it seems like the songs often end abruptly.

<comment><AUTHOR> The songs are like that, I didn't make any of the music myself.</comment></comment>


A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux (1999) - <AUTHOR> https://www.muppetlabs.com/~breadbox/software/tiny/teensy.html <comment><USER2> I find I need to quote myself from 2013, as I can't really add anything further to it:

> Wow. I honestly wasn't expecting to ever see this on the front page of HN > again, given the current ubiquity of 64-bit Linux. (And yes, before anyone > asks, I've played around with minimizing 64-bit executables. Unfortunately > they are both larger and less forgiving of tomfoolery. The smallest 64-bit > ELF I've created is 84 bytes.)

> Since it is here, though, I want to take the opportunity to say thanks to > everyone who's expressed their appreciation of my essay. And I should note > here that writing that essay, so many years ago now, is one of the better > thing I've done for my career. Share what you have to learn the hard way; > the effort won't be wasted.

<comment><USER3> > Share what you have to learn the hard way; the effort won't be wasted.

Document something that's ubiquitous but no one understands is the lesson I took away.

</comment></comment><comment><USER4> Small threads from 2016: [https://news.ycombinator.com/item?id=11709247](https://news.ycombinator.com/item?id=11709247)

and 2014: [https://news.ycombinator.com/item?id=8745024](https://news.ycombinator.com/item?id=8745024)

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

2013, with commentary by the author: [https://news.ycombinator.com/item?id=5016434](https://news.ycombinator.com/item?id=5016434)

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

2007 (!): [https://news.ycombinator.com/item?id=68056](https://news.ycombinator.com/item?id=68056)

</comment><comment><USER5> Oh cool. I stumbled across this a while back and got inspired wrote some ELFs in gas (GNU assembler). It's surprisingly straightforward and there's even a manpage elf(5), which is pretty much exactly the 32- and 64-bit specifications rolled into one.

If this kind of thing sounds fun to you then you'll probably want a System V ABI reference [0] to look up all the different relocations etc. Also, /etc/include/elf.h can be helpful.

The part I started having trouble with was getting dynamically linked binares working. At the time I didn't quite understand what the PLE amd GOT were, so set things down. Maybe it's time to pick this back up.

As always, the OS Dev wiki [1] is also a really good source for these kinds of low level implementation details.

[0]:[http://www.sco.com/developers/gabi/latest/contents.html](http://www.sco.com/developers/gabi/latest/contents.html) [1]:[https://wiki.osdev.org/](https://wiki.osdev.org/)

<comment><USER2> You might be interested in the sequel essay, which covers dynamic linking under ELF: [http://www.muppetlabs.com/~breadbox/software/tiny/somewhat.h...](http://www.muppetlabs.com/~breadbox/software/tiny/somewhat.html)

</comment></comment><comment><USER6> I've recommended this to many people as a practical way to learn more about ELF, system calls, assembly, and various other things, quite aside from size optimization.

<comment><USER2> And indeed, size optimization is actually the _least_ practical subject to learn from that essay.

</comment></comment><comment><USER7> The author states:

>"The linker is still adding an interface to the OS for us, and it is that interface that actually calls main(). So how do we get around that if we don't need it?"

Is the author stating that _start is an interface to the OS then? It's interesting I never thought of this as being an interface. Is this an interface because _start actually sets up the stack used to pass argc, argv and the environment variables? I believe _start is found in the C runtime crt.o correct?

The author then states:

>"The actual entry point that the linker uses by default is the symbol with the name _start. When we link with gcc, it automatically includes a _start routine, one that sets up argc and argv, among other things, and then calls main()."

Is this just a long-winded way of saying _start sets up the stack for the new process? WIthout a stack you can't "set up" argc, argv etc. I would also be curious what "among other things" might include.

<comment><USER2> > Is the author stating that _start is an interface to the OS then? It's > interesting I never thought of this as being an interface.

Perhaps it's not the best term, but it's not really incorrect. I probably wouldn't phrase it that way today (20 years later).

> Is this just a long-winded way of saying _start sets up the stack for the > new process? WIthout a stack you can't "set up" argc, argv etc.

Well -- to be precise, the stack is created by the kernel during the exec system call. The kernel also copies the argument and environment strings into the process's memory. However, the kernel does not create the argv array of pointers, or the envp array. Building those arrays is the job of _start(), and that is what I meant by "setting up argc and argv".

Please note: That was the case back in 1999. Things are different now -- I think it changed with the 64-bit kernel? In any case, nowadays the ELF loader in the kernel also builds the arrays.

> I would also be curious what "among other things" might include.

As before, it depends on the C runtime. The _start() function might ensure proper initialization of libc, for example. (Again, with current binaries that's usually done via an `.init` section, but in 1999 that was not the norm.)

</comment></comment><comment><USER8> [https://github.com/pts/pts-xtiny](https://github.com/pts/pts-xtiny) for creating similarly small i386 ELF executables from C source, without the usual libc overhead. hello_world.c compiles and links to ~200 bytes.

</comment><comment><USER9> I'm still hopeful we can replace ELF with something less insane at some point.

I miss HUNK executables.

<comment><USER7> Could you elaborate on why you think the ELF format is insane?

<comment><USER9> I've had to walk through these files, and it definitely is complicated; I am not confident at all that the complexity is justified by the feature set.

It should be possible to do better than ELF, and I do hope it will happen eventually.

</comment></comment></comment><comment><USER10> So close, only three more bytes and we have a 42-byte file that prints 42.

<comment><USER11> Well, exits with status 42.

</comment></comment><comment><USER12> #!

exit 42

bytes: 10 :D

<comment><USER8> Your suggestion doesn't work on Linux:

      $ echo 'exit 42' >xprog
      $ chmod 755 xprog
      $ python -c 'import os; os.execv("./xprog", ["./xprog"])'; echo $?
      Traceback (most recent call last):
        File "<string>", line 1, in <module>
      OSError: [Errno 8] Exec format error
      1</comment></comment>


Ask HN: Managing a startup's social media without spamming - <AUTHOR> Ok briefly, I am not the biggest fan of social media but realised I need a twitter, LinkedIn for www.readory.com.<p>Since creating the accounts most of the advice for growing the social media following I got include hooking it up to our rss feed and spamming out content with hashtags every hour or so and following/unfollowing bots. Is this really the way to go about things? How can an entrepreneur manage this while pushing out features etcetera. <comment><USER2> Has your site been hacked? The top trending articles are things like "Making $125,000/Month Selling Hacker TLDs", "How To Create Squeeze Pages The Stupidly Simple Way", and "Why Invest In Gold? There Are Several Reasons…". It looks like there's a big problem with spam there.

I would contend that trying to get Twitter followers with content like that is going to go quite badly.

<comment><AUTHOR> Launch growing pains, trying to figure out a way to weed out the content marketers as they have been flocking since we launched early access. I've been tweaking with the trending score along with considering adding invite-only at some point. For now I'm just testing but I wanted to know how I would dash out social media.</comment></comment>


Caddy – The HTTP/2 web server with automatic HTTPS - <AUTHOR> https://caddyserver.com/?hn <comment><USER2> I use caddy for everything I serve on the web now, and have been for roughly a year. It's an amazingly stable server -- fast and easy to configure. The team has continuously updated Caddy, and been extremely responsive to any feature requests and support questions. [https://www.gophercon.com](https://www.gophercon.com) and [https://blog.gopheracademy.com](https://blog.gopheracademy.com) are both served (with Let's Encrypt!) from Caddy.

</comment><comment><USER3> I wish the website had some bullet points comparing features to nginx, my current go-to server.

</comment><comment><USER4> But does it support WSGI?

<comment><USER5> It can proxy to uwsgi</comment></comment>


Impact of exchange rate on starting startups in SV - <AUTHOR>

Just curious: who's finding it more and more attractive to take their euros and start a startup in Silicon Valley because of this ridiculously favourable exchange rate:
1 Euro = 1.4846 U.S. dollars (nov 28 2007)
http://www.google.com/search?q=euro+in+dollar&sourceid=n... <comment><USER2> I don't think it's quite that easy to get into the US, although maybe I'm wrong. I'm trying to think of some ideas about selling stuff to Italians from the US and have a few, but haven't done anything concrete yet. I'm actually trying to stick to a few things (like Hecl) for a little while, which is tough.</comment>


Next-generation Linux file systems: NiLFS(2) and exofs - <AUTHOR> http://www.ibm.com/developerworks/linux/library/l-nilfs-exofs/index.html

<comment><USER2> Furthering my belief that file system developers have zero ability to come up with a cool / memorable name :D

<comment><AUTHOR> It is a well-known fact that the coolness of a filesystem is inversely proportional to that of its name.</comment></comment>


Ask HN: Applied ml vs. Sde in an ML platform team for career growth - <AUTHOR> People who have been in the industry for a while, what would you recommend a junior starting out his career to do. I have an applied scientist and an sde in an ML team offer from Amazon.
The SDE role would involve around building the infra / services to scale the ML models and deal with things like metrics, logging, alarms, etc.
The applied scientist role would be an ML role in which I get to train models and write inference code in production. This would involve reading a lot of papers.
I do not have a PhD but have a strong master's background and do think that I'll be able to do both jobs well.
I have been told that distributed systems is mostly a solved problem and ai would offer rapid growth but would like to hear the opinion of people who have had few years in the industry.
My long term goal is to move into leadership roles like VP, CTO of small companies where I can create impact and define product vision. Can choosing ML over systems affect that? <comment><USER2> If your goal is to move into leadership at the executive level it probably doesn't matter. What matters more is developing your leadership skills, rapid advancement from IC to management and networking.

</comment><comment><USER3> Just do what you want in this case. Don't try to meta-game your career at this level. They are both great options.</comment>


Postgres GitHub Mirror - <AUTHOR> https://github.com/postgres/postgres <comment><USER2> I assume it's fairly new since you're posting it (without context)? However isn't it almost expected for a project like this to be on github? (hey, github is the search engine of code)?</comment>


TELL HN: Many sites at Bluehost got hacked today (including their CEO's blog) - marcelo-br http://blog.sucuri.net/2010/06/bluehost-ceo-blog-and-others-exploites-by-domainameat-cc.html?fee

<comment><AUTHOR> One of our clients on Bluehost was hacked in the last few days too, but not with this. We noticed today, but I'm not sure when it happened. Here's the script.

<http://rayschamp.com/misc/spammer.html>

</comment><comment><USER2> A client of ours has eight WP blogs on Bluehost; none of them were affected.

</comment><comment><USER3> Ouch.

How many times do I need to tell people not to use wordpress? :P

<comment><USER4> Maybe you should tell them to secure their wordpress install instead:

1\. Put an IP lock on the login page via .htaccess so that it can't be accessed from anywhere else but your IP - this one change alone can stop a significant percentage of intruders.

2\. Add this line to the .htaccess file at the top level of your WordPress install - <FilesMatch ^wp-config.php$>deny from all</FilesMatch> \- it'll make it harder for your database username and password to fall into the wrong hands in the event of a server problem

3\. Create an empty wp-content/plugins/index.html file. Otherwise, you leak information on the plugins you're running. One of the easiest ways to break into a wordpress site is to hack through outdated/unsecure plugins. So don't let anyone see what plugins you're running to begin with.

4\. In the header.php file for your theme, look for - <meta name="generator" content="WordPress <?php bloginfo('version'); ?>" /> \- this line reveals the version of your install. Again, hackers look for wordpress sites that haven't updated to the latest version, so delete this line and don't reveal your site's version.

5\. Remove 'Really Simple Discovery' and 'Windows Live Writer' - [http://falcon1986.wordpress.com/2009/07/15/remove- unwanted-w...](http://falcon1986.wordpress.com/2009/07/15/remove-unwanted- wordpress-header-elements/)

6\. Block injection of malicious code with these 2 steps - <http://wpcult.com/wordpress-security-hacks/>

7\. Whenever wordPress patches a security hole or releases a new version, apply it/upgrade to it immediately

The above steps should stop everyone but the most dedicated intruder. This is a lot more efficient than boycotting wordpress altogether.

<comment><USER3> First off, thanks for giving out instructions for securing wordpress.

> Maybe you should tell them to secure their wordpress install instead

Hence the ":P", my comment was mostly in jest.

> 3\. Create an empty wp-content/plugins/index.html file - otherwise you leak > information on which plug-ins you run

It's better to just disable indexes on the entire site. That prevents anyone from poking around.

        Options -Indexes FollowSymLinks

> This is a lot more efficient than boycotting wordpress altogether.

Wordpress has a history of being extremely vulnerable. I don't know how much of it is user error and how much of it is related to the way php is normally configured and used.

PHP invites uploading malicious scripts. Something like Ruby on Rails (or Django) has the code for the application loaded into ram. Static files are served out of the public folder, away from any code. This makes uploading malicious scripts useless, provided someone hasn't turned on php or cgi for the public folder. (Which you should never do) Every php application I've seen or worked on has mixed code with static files and the webserver had write permissions to every folder in the application. Additionally, anyone that doesn't abstract from the database with a query generator or an ORM is asking for sql injection.

That is why I don't care for wordpress. :)

(Am I bitter? Oh yes, most definitely. :P)

<comment><USER4> I can understand your bitterness, one of my earliest wordpress sites got hacked. I just feel that the benefits of wordpress (ease, flexibility, SEO etc) far outweigh the risk of getting hacked.

</comment></comment></comment></comment><comment><USER5> You mean yesterday?</comment>


Morning People Are Less Ethical at Night - <AUTHOR> http://blogs.hbr.org/2014/06/morning-people-are-less-ethical-at-night/

<comment><USER2> Sounds more like decision fatigue.

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

Other examples:

- _If a trip to the supermarket induces more decision fatigue in the poor than in the rich — because each purchase requires more mental trade-offs — by the time they reach the cash register, they'll have less willpower left to resist the Mars bars and Skittles. Not for nothing are these items called impulse purchases_

- _One research study found that the decisions judges make are strongly influenced by how long it has been since their last break. "We find that the percentage of favorable rulings drops gradually from ≈65% to nearly zero within each decision session and returns abruptly to ≈65% after a break."_

<comment><USER3> I marked thousands of papers as a TA in grad school. I was in the humanities, so there was quite a bit of room for subjectivity in the marking. After a while, I found that the average mark tended to go down toward the end of a 4-hour marking session. It could have been caused by decision fatigue. Or it could have been irrational annoyance, i.e. first time: "Hmm, he made a minor mistake here." 70th time: "Why on earth does everyone keep making such an elementary mistake?" Anyway, I compensated by consciously giving out higher marks toward the end.

Anyway, if I'm ever accused of a crime, I'll tell my lawyer to do whatever he can to schedule a session shortly after lunchtime!

</comment></comment><comment><USER4> tl;dr Tested using dice rolls, where perfectly ethical participants should report an average score of 3.5. Night people are also less ethical in the mornings (4.22), but not as unethical as morning people are at night (4.56). Depressingly, average participants are still a bit dishonest during their temporal 'comfort zones,' although the morning people (3.86) once again outdo the evening people (3.8).

I've never trusted morning people and now I have evidence to validate my bias, ha ha! /tongue in cheek

</comment><comment><USER5> I feel like "roll this die and we'll pay you x * what you roll" isn't really a test of ethics, since people know that that is the whole point of the exercise. I think a real test of ethics would be something where the participant doesn't even know that they are being tested, for example, telling a participant that they are being hired for the day to collect parking payments whilst unbeknownst to them they are secretly being recorded to see what percent of the take they are holding back.

Something like that. Because honestly if someone told me that they were testing my ethics I don't really know if I'd tell the truth, since it is the whole nature of the exercise, but I'd never steal from a parking lot owner.

<comment><USER3> Experiments in human psychology are often conducted with en elaborate ruse to hide the real purpose from the subjects. The infamous Milgram Experiment, for example, was disguised as a test of the effectiveness of corporal punishment on students or something like that. The real purpose was only revealed after the experiment.

I don't know what kind of disguise they used with the dice experiment, but the earlier version using matrix quizzes could be easily disguised as a test of math skill relative to the time of day. (Subjects who are prone to cheat might try to look smarter than they actually are, but this actually plays perfectly into the researchers' goal!)

Fun project: Go to a large research university and look for flyers asking for people to participate in psychology experiments. Read the description and try to guess what those experiments are really about.

</comment></comment><comment><USER6> Less Ethical, or just more prone to calculation errors?

</comment><comment><USER7> People do stupid stuff while tired... Shocker.

<comment><USER8> It's more than that; see [https://news.ycombinator.com/item?id=7940762](https://news.ycombinator.com/item?id=7940762)</comment></comment>


Goodbye, XMPP - <AUTHOR> https://blog.fanout.io/2018/05/18/goodbye-xmpp/ <comment><USER2> Goodbye XMPP you could have been amazing but you got relegated to chat and that's how you died.

<comment><USER3> What else was XMPP ever _for_?

<comment><USER2> there was someone who wrote a message bus ruby gem using xmpp.

Sure there are better message bus options now adays but you know people do crazy things... specially rubyists</comment></comment></comment>


Show HN: PhpAppBuild – develop software fast and easy - <AUTHOR> http://www.phpappbuild.com <comment><AUTHOR> This tool helps you to reduce costs and time of application development. Most of application development can be done without coding. It is not code generator, so when you need to change you just reconfigure application. Applications are ready to be integrated with other platforms through API. On phpappbuild.com web site you can try free trial version and check a lot of documentation.

</comment><comment><USER2> Good concept. Most internal, departamental apps at big companies (made by undercover IT) are nothing more than CRUD.

You could capture part of that market.

Now the bad news.

You need to work a bit more on the site and maybe business model. I mean, i cannot tell what happens when i have finished the coding.

Do I have to host the app on my server or do you host it for me? In the first case I would get billed recurringly? Some apps are code and forget because even internal apps must get traction somehow.

If you host the app for me I would get no objection for the recurring care because it is completely justified.

<comment><AUTHOR> Thanks for good comments. I started with that idea, most of internal/business applications are CRUD. But latter I added a lot of features and now you can create much more then CRUD operations. Design of applications is still a little business, it will wait next versions. In this version, we host application for you. You get our sub-domain, but after trial when you start paying you can connect your custom sub-domain to your application. I do not know did you already tried to register application? I know I should work on website and marketing. It is long road ahead. It is hard for developer, but I have to keep this on track.</comment></comment>


The Road to SaaS Revenue is Painfully Slow... - <AUTHOR> http://www.smallhq.com/blog/the-road-to-saas-revenue-is-painfully-slow-are-you-prepared-for-it/

<comment><AUTHOR> This is the first article I've done in this format. I would love to hear feedback on it :-)</comment>