Shooting at LAX, TSA Officer Dead, Others Wounded - <AUTHOR> http://www.latimes.com/local/lanow/la-me-ln-live-lax-shooting-tsa-agent-alleged-gunman-shot-20131101,0,3517669.story

<comment><USER2> Feeling sorry for a TSA agent because they took the job just so they weren't poor and jobless is like feeling sorry for a Nazi. You always have a choice. Joining the TSA is probably the most debasing and anti-human thing you can do in America right now.</comment>


Python Cryptography Toolkit - <AUTHOR> https://www.dlitz.net/software/pycrypto/doc/ <comment><USER2> Latest release is almost three years old and there is a bunch of vulnerabilities in it (see Issues at Github). I'd strongly sugget to use Cryptography instead.</comment>


WebGL Path Tracing - <AUTHOR> http://madebyevan.com/webgl-path-tracing/

<comment><USER2> That's fantastic. I've been meaning to get into WebGL (perhaps make some sort of tech demo game with it). I've held off because of performance issues (also, I admit, I'm not too excited about dealing with shaders).

I think I should stop procrastinating now and actually do something with it. This is very exciting!

<comment><USER3> Shaders are fun! Looks a bit like "scary c++" at first but not too steep a learning-curve actually. No header files, pointers and the likes. Just a couple of maths functions and maths types (vec3, float etc). Pixel shaders return a "color" vector, vertex shaders a vertex "position" and "that's about it".

<comment><USER2> Oh, really? That sounds eminently doable. Do you happen to have any fantastic resource for shaders?

<comment><USER3> Learn them together with WebGL -- I recommend "The Lessons" over at LearningWebGL.com very highly.

<comment><USER2> That's a great site, thanks very much.

</comment></comment></comment></comment></comment><comment><USER4> This is one of the coolest things I've seen all year, without exaggeration. The gradual rendering alone is new to me (and utterly fascinating), but the fact that diffuse lighting can be rendered in a browser... this completely redefines what I understand a browser to be capable of. Seriously amazing.

<comment><USER5> If you haven't seen path-tracing before, you should check out LuxRender: <http://www.luxrender.net/> It's an open source unbiased renderer that uses similar techniques.

It's a massively parallel problem, so the recent abilities to run general purpose code on a graphics accelerator has really been a huge boost to performance something like: <http://www.youtube.com/watch?v=70uNjjplYzA> would have been impossible before CUDA came out.

</comment></comment><comment><USER6> Fantastic use of WebGL. It's amazing how much can be done in browsers today. Also amazing how much it heats up my MBP!

</comment><comment><USER7> This guy is an inspiration:

<http://madebyevan.com/about/>

I've been struggling to complete a web page app like this for a while, and he has finished several even though he's still in school.

</comment><comment><USER8> Warning: caused a complete system hangup here with Chrome 13 on Windows 7, Intel graphics.

<comment><USER9> Chrome 13, Windows 7 - display driver (Intel Integrated) crashed but Windows managed to recover it. Intel graphics related issue maybe?

<comment><USER10> Exact same setup and experience for me.

</comment></comment></comment><comment><USER11> Beautiful... the fading grain as it renders is extremely pleasing.

<comment><USER12> Indeed, very polished. It's so awesome! Nice experience, very smooth (OSX/Radeon/FF5).

</comment></comment><comment><USER13> Found a little easter egg. Enter

javascript:ui.setObjects(makeRecursiveSpheres())

in the location bar with the page open and you'll really torture your graphics card.

</comment><comment><USER13> This is killer. Be sure to try dragging the scene/objects!

</comment><comment><USER14> Looks very promising. Congrats for the imp of the idea. Now I'll try to get out javascript/browser from the performance equation and see how it rocks.

</comment><comment><USER15> Works splendidly - 2011 MBP w/Radeon latest FF stable.

<comment><USER16> Works great here too, FF8 on Linux with NVidia drivers.

</comment></comment><comment><USER17> Works great! Until I overloaded it. Made my graphic driver crash.

</comment><comment><USER18> well you should try <http://www.3dtin.com> too then

</comment><comment><USER19> amazing! converges very fast.</comment>


Code for sale - <AUTHOR>

Where can I find scripts/software components for a variety of languages and frameworks I can purchase?  I am a software developer but I often have too much on my plate.  Thanks in advance. <comment><USER2> Code Canyon is a marketplace for that: <http://codecanyon.net>

</comment><comment><AUTHOR> Yes, I am aware of Code Canyon. Are there any similar sites?</comment>


Need feedback on a mobile startup idea - <AUTHOR> Hi, I am thinking of an app and wanted your advice. Here's what the app does: It enables small shopkeepers and their customers to record transactions where the customer buys goods on credit. e.g. a customer pays 20 bucks for a 100 bucks item and the shopkeeper records that amount in his app and sends the customer a notification to accept and save that transaction and the amount of money owed through the app. The customer receives the message on his app and acknowledges that he owes the money or not. This helps in keeping record of pending transactions between the merchant and the customer. We are planning it for small grocery stores and their customers. What do you think? Is it feasible? Would you buy such a product? <comment><USER2> What happens when the customer doesn't pay the remaining 80 bucks? Shop keepers probably want a full solution, one that guarantees (or insures) all money gets paid. I think the risk is customers not willing or not able to pay, not the number or ease of notification they receive asking them to pay.

<comment><AUTHOR> the app has the mobile numbers of both the customers and their merchants since sign up. So, the merchant can call up the customer or send sms/whatsapp through the app to remind him.</comment></comment>


Gear Review: Wahoo Elemnt Bolt - <AUTHOR> https://joshua0.dreamwidth.org/65779.html <comment><USER3> Hi, HN! Author, here. Yeah, I was a little disappointed by the GPL and attribution issues, too. But also, I feel a little bad not having given them too much time to respond, or too much heads up that I was gonna write a piece about it. So if anyone has a way to reach out to them, I don't want to trash them too much, and I'd be really happy to update that blog post!

But also, the other side of this is that the attribution issue is, perhaps, only 50% of my thrust here -- the other 50% being that it's actually a really cool device inside, and it's neat to see how they managed to build a device that's (mostly) competitive with Garmin's rich feature set so quickly. And so that, I think, might be what would be even more interesting to HN, rather than just torching them. If they opened the platform up to tinkerers a little bit -- perhaps if they 1) unlocked the bootloader; 2) provided /system images; and 3) enabled a switch to give you access to adb -- then it would be a really really cool form factor of a toy for a lot of different uses.

<comment><USER4> Hi, I just sent you an email, I searched my inbox and spam and didn't see anything from you. Not sure what happened there. We're working on getting the GPL and attribution issues all sorted, that was ignorance on my part versus anything willful. Sorry about your photos and such, if it makes you feel any better I did it to myself at one point as well...

-Chip from Wahoo

<comment><USER5> Chip, while it's great to hear you are working on this, I'm struggling with the idea of someone being ignorant to this. Or do you just not know where your software comes from?

<comment><USER6> It's honestly very common people are unaware.

[http://ebb.org/bkuhn/blog/2009/11/08/gpl- enforcement.html](http://ebb.org/bkuhn/blog/2009/11/08/gpl-enforcement.html)

> I'd say that 98% of the violations I've ever worked on since 1998 have been > unintentional and due primarily to negligence, not malice.

(author of the above statement led FSF's GPL enforcement for many years)

<comment><USER5> Fair enough. At least this one is being fixed!

</comment></comment></comment></comment></comment><comment><USER7> Saw one of these the other day and proved that it used OpenStreetMap data, couldn't find any attribution anywhere but I didn't have the device for long.

... so it's violating the ODbL too.

</comment><comment><USER8> > t turns out that it wasn't Wahoo's engineers at all that were responsible > for the firmware update service, but instead, it belonged to MediaTek.

Most people don't realize that Mediatek (and allwinner and all of those little Chinese SoC/chip vendors) aren't really in the merchant chip business. Remember getting data sheets, perhaps spec'ing chips with second sources (Intel had to get AMD to second source their early x86 parts or nobody would risk buying them).

Well when you can't get a data sheet from Mediatek or their ilk it's not because they are holding out on you _per se_ \-- they probably don't have one. They would prefer to sell a chip (perhaps a customer-specific one) with a blob of proprietary code and a custom kernel etc and just hand the whole lot over to the customer for a single application. Sadly, a lot of customers go for this.

</comment><comment><USER9> I enjoyed this quick breakdown -- if it doesn't get traction on HN this time, I'd love to see this reposted if/when the author gets a reply from the Wahoo CEO about sources and attribution.

Plus, besides GPL, LGPL and Apache2, I'm interested in knowing what other licenses they are violating

<comment><USER10> There's a response in the current top comment of this HN comment thread.

</comment></comment><comment><USER11> First off, I have to say I'm surprised and disappointed at their response. I've met members of the Wahoo team at CES and have been using their gear for years, it's uniformly well-designed and the connectivity is pretty much bulletproof, which is pretty amazing for the glob of IoT gadgetry that is a modern cycling sensor network. I hope they come back with an update.

Second, the ELEMNT is a terrific cycling computer, but it's so optimized for cycling that I expect it would be useless for any other activity. If you want something to use for biking AND hiking, I strongly suggest that you look into a Garmin triathlon watch.

<comment><USER3> I was kind of surprised too. I have some conjectures about the internal politics from the output that I observed (super friendly, super helpful support team; development team knew it was an issue, and had orders from above?).

And yes, the ELEMNT is an ok cycling computer, but I think with a few bug fixes, it would work 'at least tolerably' for hiking (that is to say, at least as well as the Garmin Edge 510 did). The Edge 510 was not a great hiking computer, but for 'datalogging with a separate battery from my phone, and capable of speaking ANT+ to my heart rate monitor', it at least captured correct data...

<comment><USER12> I'm surprised you thought this thing had more bugs than Garmin. My Garmin randomly inserts week-long periods of time into my bike rides, and I'm not the only one: there is an entire site dedicated to un-ruining your Garmin .fit files at [https://www.fitfiletools.com/](https://www.fitfiletools.com/) . The way a Garmin suspends and resumes your ride takes more time as your ride gets longer. At the last rest stop on a 200-mile ride my Garmin spent about 2 minutes just resuming. And you mention that the wahoo gives cues after turns, but my Garmin does that and worse. Garmin gives cues on mountain roads where there's no choice, and fails to give them at the intersection of two roads where you do need to make a choice!

</comment></comment></comment><comment><USER13> Cool review! But I have to disagree with "As far as I can tell, the ELEMNT BOLT does everything the Garmin does, but about 10% worse" \- the Garmin Edges might have a better spec sheet, but IME, the software/firmware just does not work properly far too often. Crashes, freezes, general jank. The Bolt has been a joy to use in comparison. A bit surprised it's just Android under the hood! Maybe it's helped them in adding features and fixes relatively fast?

</comment><comment><USER14> The Linux kernel sets the standard here of not really enforcing the license. Complying is additional cost and companies are not going to do it unless forced to. SoC manufacturers are not going to stop supporting android just because they're forced to release their changes.

We're long past the days where it was questionable if open source would gain traction and everyone had to be deferential. License holders should start setting the standard of enforcing the terms of the license they chose.

<comment><USER15>
      License holders should start setting the standard of
      enforcing the terms of the license they chose.

As I understand things, the prize if you're successful in enforcement is... a copy of the GPL appears in some sub-menu somewhere, and you get a dump of the GPL-derived source code. This dump might not compile, might not be possible to flash onto the device, and might not provide all functions.

I can understand why a philanthropist with the money to pay for such a legal battle might spend it on other things instead.

<comment><USER16> > This dump might not compile, might not be possible to flash onto the device, > and might not provide all functions.

no, since there are some LGPLv3 parts they would break the license if there was no easy way to go from their dump to a device with modified code.

<comment><USER17> Wow, you have to be crazy to just blatantly ignore LGPLv3. Coming into compliance with the kernel style GPL is easy enough, but v3 is a whole other ball game.

If I was Garmin, I'd fund one of the guys they stole from to fund an injunction. Wahoo is a US company, it's easy enough.

</comment></comment></comment></comment><comment><USER18> I have one of Wahoo's cadence sensors, which I use with Strava on my phone, and have liked it. I was considering getting one of their heart rate monitors as well. But seeing this casual misuse of GPL and Apache2-licensed software doesn't give me a warm and fuzzy feeling.

As for GPS weirdness mentioned in the article, I'm wondering if there are some shenanigans going on in Android, or if I ran into some GPS jamming or some sort of selective availability? I took a ride along the Illinois side of Mississippi River north of the Quad Cities, and while I was near the Quad Cities nuke plant, my phone's GPS altitude readings were ridiculous - <USER2> altitude profile for my ride showed altitudes over 2,000 ft, when there are no such places in Illinois that high, save at the top of some skyscrapers in Chicago. This was consistent on both the outbound and return trips, with the anomaly occurring just south of Albany. Northward, the altitude readings were what they should be (in the ~600-700 ft range).

<comment><USER19> Altitude is a tricky thing with these kinds of devices. They're usually based on pressure readings from a sensor inside the device but that reading can be affected greatly by a number of factors.

See [https://groups.google.com/forum/m/#!topic/wahoo-elemnt- users...](https://groups.google.com/forum/m/#!topic/wahoo-elemnt- users/L7skAUrsVwk)

<comment><USER12> With all the people riding around with these sensors now, shouldn't it be possible to synthesize a very accurate basemap elevation from the reported barometric and GPS readings?

<comment><USER20> Strava does this

<comment><USER19> Got a source?

Strava segments in my area often have _very_ wrong altitude data. Chicago is extremely flat yet there are segments that report gradients of over 10%, sometimes as much as 27%. I believe they are thrown off by buildings and the frequent elevated train tracks.

[https://www.strava.com/segments/1504604](https://www.strava.com/segments/1504604)

<comment><USER20> [https://support.strava.com/hc/en- us/articles/115000024864-An...](https://support.strava.com/hc/en- us/articles/115000024864-Announcing-Strava-s-Elevation-Basemap)

I'm guessing segments just use the elevation data of the activity that they were created from, hence why they can be wildly wrong.

</comment></comment></comment></comment></comment></comment><comment><USER21> I wonder if an email from the copyright owners of Mapsforge or Twitter4J to the CEO would be more effective than from a consumer...

</comment><comment><USER22> Huh. I have one of these but obviously didn't do this level of analysis on it. It's a great little bike computer, IMO. I wouldn't try to use it for hikes. Shame about the license violations.

</comment><comment><USER23> HM, what is the advantage of having that as opposed to just using your phone, especially at this price point?

You could even have it charged from the dynamo.

<comment><USER24> Battery life mostly.

I've used the device for 4 hours this week and the battery dipped from ~50% to ~40% (that is witout backlight and other variables which might consumer more energy)

I believe they are also weather proof (mine didnt mind some water splashed onto it).

A Dynamo to power my phone would unnessecarily add another drag coefficient and slow me down.

It is also claimed that the device is more aerodynamic than the competing devices from GARMIN and also a phone based solution.

The device also has some very nice LED indicators for metrics like heart-rate (blue when resting, green in sweetspot, orange/red when burning matches and dipping into non-aerobic zone).

I could go on but this list covers most of the reasons I bought the unit.

<comment><USER5> All of this plus the screen is more readable, it's way, way easier to use whilst hurtling down a mountain (actual buttons) , it's considerably lighter whilst having longer battery, it never falls off the mount onto the road (where the screen promptly cracks).

You could use a phone (I did for a bit) but the experience is worse in every single dimension. Until, of course, you get really lost and need Google maps...

Actually, I have also found it extremely useful when navigating unmarked trail races. It's small and light enough to keep in your pocket and the mapping beats anything on a GPS watch. I use it to track my progress too, no problems with elevation for me but there isn't much of that in the UK anyway.

I used a Garmin for about 5 years but I got the Bolt last Summer and I have found it considerably more reliable. The worldwide maps are great too. However, on the basis of the complete disrespect for OSS I will stop recommending it to others and I won't be buying another. Shame.</comment></comment></comment>


1600% faster app requests with Rails on Heroku - <AUTHOR> https://coderwall.com/p/5cafjw <comment><USER2> How would this compare to using JRuby and threads?

If you use eventmachine, _every_ single network call you make has to be evented. So you'd need to use things like <https://github.com/leftbee/em- postgresql-adapter> which aren't going to be as well tested as the standard pg driver.

<comment><USER3> yep, or even MRI with threads.

EventMachine requires fundamental changes to your code.

threads do not.

And even with MRI, you are, I am going to predict, see _significant_ performance improvement using an app server that can dispatch multi-threaded (say, puma) with config.threadsafe!.

I am confused why threads aren't getting more attention on this topic.

<comment><USER4> > I am confused why threads aren't getting more attention on this topic.

I think it's because of the "threads are hard" meme. I _think_ the Ruby community is growing beyond that, but it's not a fast process.

<comment><USER3> Ironically, doing evented/fiber code right is probably harder than doing threads right, for this kind of stuff.

I'm a bit astounded that heroku, in their attempt to deal with, um, let's call it "routing-gate", aren't talking about talking about multi-threaded dispatch and config.threadsafe!, but only unicorn with 2-4 forked processes. When it seems awfully likely that multi-threaded dispatch is going to scale a lot more efficiently with regard to number of overlapping requests.

I think some of it is the lack of mature, robust, 'self-managing' app server solutions. For MRI (with the GIL), what's likely needed is something that can fork multiple processes (to use all cores), with each of those processes dispatching multi-threaded (to deal with I/O blocking as well as even-ing out latency when not all requests finish in identical time). So far as I know, Passenger 4 Enterprise is the only thing that can do this for you, without you having to manually set it all up.

</comment></comment></comment></comment><comment><USER5> Pardon me, but how is this better than queuing a job, and checking the status for that job instead? That's my standard MO when dealing with 3rd party API calls from a request.

<comment><USER6> How do you check for the status of the job? Do you hold the client connection open and block the process while you wait? Or do you notify the client through some other mechanism (polling, websocket, etc).

The advantage of evented I/O is that you don't have to do either of these things.

<comment><USER5> The way I do it now is tell the client to check back in X seconds depending on how many available workers compared to used workers there are.

I already have this wrapper for client side on iOS and working on a Batman.js version.

I usually do this for client side Login with different providers.

Say Facebook or Twitter. Login on the client, obtain token, send to server for validation. Server validates against Facebook/Twitter.

Server will tell the client to check back in X seconds. Client waits X seconds and does another check. Server is either done or not.

I rather do that, than to keep a request open. It's easier to manage on iOS as well since, say the user decides to check their email while the login is still processing.

</comment></comment></comment><comment><USER7> This is not a performance improvement, its an arquitectural change that has to be accounted for when using Unicorn. Unicorn is NOT for slow requests, as their own documentation explains. (<http://unicorn.bogomips.org/>)

On Kaya.gs to handle 3rd party requests I built a queue, which has the advantages of being able to be light on environment and have a small footprint.

The title is enticing as well, as this has nothing to do with Heroku.

</comment><comment><USER6> I use this technique on Heroku for my oauth requests and it works well. One downside is that your responses have to interface directly with Rack, and you lose out on all the functionality in Rails and the middleware stack.

To account for this, I created a controller mixin to recreate the middleware stack for responses:

<http://www.jonb.org/2013/01/25/async-rails.html>

</comment><comment><USER8> percentage isn't really fair. I'm sure it's a vast improvement, but a lot of requests were failing (before the change) due to what appears to be being under-scaled ... at least the author was fair in stating he was after a link- baity title.</comment>


"Zombie" Ants Found With New Mind-Control Fungi - <AUTHOR> http://news.nationalgeographic.com/news/2011/03/pictures/110303-zombie-ants-fungus-new-species-fungi-bugs-science-brazil <comment><USER2> Killing off Fungi was one of the reasons humans evolved to keep their body temp at 98.6 F. Any warmer and we would be feeding nearly non-stop. [http://www.sciencedaily.com/releases/2010/12/101222121610.ht...](http://www.sciencedaily.com/releases/2010/12/101222121610.htm) This helped Mammals as whole win over other species that are a lot more susceptible to fungi.

Looking at all the nasties out there, I am very glad we followed this evolutionary path.

<comment><USER3> Before we start getting to smug about our sense of free will, let me just point out that there are widespread human brain parasites.

One example is Toxoplama Gondii, which infects roughly 1/3 of the world's population.

Studies have shown relationships between everything from increased car accidents to Bipolar disorder. Some have even suggested its distribution across regions affects human culture.

[http://discovermagazine.com/2007/feb/toxoplasma-gondii- cultu...](http://discovermagazine.com/2007/feb/toxoplasma-gondii-culture-sex- ratio)

</comment></comment><comment><USER4> The only really new part here is that there are several species of what was previously thought to be one fungus.

IIRC, the fungus produces a compound similar to LSD that causes the ant to climb onto a sunlit leaf and clamp on with its mouth. The fungus then grows inside the ant and reproduces.

<comment><USER5> And IIRC, snail flukes do a similar thing: When they are ready to move from their snail host, they migrate into its eye stalks, which turn bright colors. The infected snail loses its fear of open spaces and climbs onto a branch or leaf, where a passing bird spots what looks like juicy worms and pecks off the stalks.

The fluke is now in the bird's digestive system, and it starts manufacturing eggs. The eggs are embedded in the new host's guano, which falls to the ground.

A passing snail eats the guano and becomes infected with flukes, starting the cycle anew.

Update:

<http://www.youtube.com/watch?v=EWB_COSUXMw>

Some varieties use three or more hosts. Dawkins describes one parasite that infects snails, birds, and sheep in turn.

<comment><USER6> That was a remarkable video. Thanks for posting it.

</comment></comment></comment><comment><USER7> There's a beautiful segment in planet earth about this. I believe its the jungle episode from season 1.

<comment><USER8> First thing I thought of. It's quite a wild little segment. A worker ant has to carry the infected ant away from the rest of the colony. Eventually the infected ant dies, and this alien looking fungus sprouts of of his head. The fungus then releases a bunch of spores (meant to infect other ants) so it's a good thing he was dragged away from the colony! The whole Planet Earth series is absolutely amazing, do yourself a favor and watch them all if you haven't.

</comment></comment><comment><USER9> Most impressive are some Jedi parasitic wasps that turn roaches and spiders to real zombies, doing really weird stuff like making the spider build a web for them [http://www.scholarpedia.org/article/Neuroethology_of_Parasit...](http://www.scholarpedia.org/article/Neuroethology_of_Parasitoid_Wasps)

</comment><comment><USER10> wow, this reminds me of <http://en.wikipedia.org/wiki/Toxoplasmosis>, one third of the world's human population is infected. This parasite interferes with brain chemistry and alters both function and behavior.

</comment><comment><USER11> Reminds me of a nice exhibit in the Museum of Jurassic Technology.

<comment><USER12> Link: [http://www.mjt.org/exhibits/foundation_collections/stink_ant...](http://www.mjt.org/exhibits/foundation_collections/stink_ant/stinkant.html)

</comment></comment><comment><USER13> This explains my ants from the Google AI Challenge.

</comment><comment><USER14> Reminiscent of the interesting life cycle of the lancet liver fluke, which also alters the behavior of ants: [http://en.m.wikipedia.org/wiki/Dicrocoelium_dendriticum#sect...](http://en.m.wikipedia.org/wiki/Dicrocoelium_dendriticum#section_8)</comment>


Supporting Covid Research: Rapid Reviews on Sysrev - <AUTHOR> https://blog.sysrev.com/covid-rapid-review/ <comment><AUTHOR> Over the course of two months, a multinational team used Sysrev to assess the clinical characteristics and the risk factors associated with SARS CoV2 in patients with Chronic Kidney Disease.

We built the sysrev.com platform for reviewing documents in teams and launched it last summer. Over the last two months, a team from the UK and China used the platform to collect evidence on COVID19 in patients with chronic kidney disease.

The linked blog post goes into some of the detail about how Dr. Keenan's team used sysrev. I can't wait to see some of the conclusions they draw from the research, all of the evidence for which is available in open access sysrev projects.

If you're interested in analyzing the data they collected see [https://sysrev.com/u/249/p/29629](https://sysrev.com/u/249/p/29629). If you like the idea of open access research and want to help analyze other projects please ping me!</comment>


Banning anonymous social media accounts will do more harm than good - <AUTHOR> https://www.theguardian.com/commentisfree/2018/sep/25/angela-rayner-social-media-online-abuse-labour-party <comment><USER2> Easy to experiment / the Graun should enforce real names in its own comments section and see how it plays out</comment>


1992 Wash Post editor memo on the PC and impacts - <AUTHOR> http://recoveringjournalist.typepad.com/files/kaiser-memo.pdf

<comment><USER2> Money quote:

      I am *not* here dreaming of (or worrying about) a world in
      which computers have displaced the printed word, and us too.
      I could find no one at this conference who would predict
      the demise of the newspaper. No one.

Really? Sounds like a movie exec in the early 50's.</comment>


Twitter API adds Direct Message permission - <AUTHOR> https://groups.google.com/forum/#!topic/twitter-api-announce/6VT8D4tapuw/discussion

<comment><USER2> While the timeframe does suck, especially for iOS developers who have to wait for Apple's approval of any updates, this is a good move by Twitter.

More and more sites and apps are adopting Twitter integration, not all of them should have full access to our accounts.

</comment><comment><USER3> Alternatively, "Twitter breaks 3rd-party clients and bans fully-native experiences with two weeks' notice"

<comment><USER4> Yeah, this didn't happen overnight. They could have given more warning.

<comment><USER5> Warning only helps so much when you're required to reauthenticate users for permissions they already granted.

</comment></comment></comment><comment><USER6> Yet another developer hostile move by Twitter. Developers get two weeks to switch to OAuth (with app review), and to top it all off, Twitter's official apps don't have to abide by the new permissions model. Ridiculous.

I can't wait for all the 1 star reviews third party apps get when users have to login again.

<comment><USER7> When you use Twitter, you give Twitter access to your DMs. This seems like common sense to me.

</comment></comment><comment><USER7> However slightly developer hostile this may be, it's great for users. This was very well needed and i'm glad Twitter implemented it!</comment>


RobotFX - <AUTHOR> https://www.robotfx.info/ <comment><AUTHOR> The main purpose of the Grid-X expert advisor is to trade in a grid manner, meaning to open more than one trade. The difference, compared to other grid expert advisors, is that the RobotFX Grid expert advisor can also open its trades based on the price action. Even more, if the price reverses, the EA can hedge by placing opposite pending orders at a given distance, with higher, lower or equal lotsize than the initial trades. So, depending on the trader's needs, this grid expert advisor might be better than all the others. Try RobotFX [forex trading tools] at [https://www.robotfx.info/](https://www.robotfx.info/)

</comment><comment><AUTHOR> MetaTrader is a trading platform developed by MetaQuotes Software for online trading in the forex, contract for differences (CFDs) and futures markets. MT4 or MT5, as they are commonly known, can be downloaded for free directly from the MetaQuotes web site (metaquotes.net) or through dozens of online forex trading brokers.

Try RobotFX [forex trading tools] at [https://www.robotfx.info/](https://www.robotfx.info/)

</comment><comment><AUTHOR> MetaTrader Expert Advisors 4 Forex Try RobotFX [forex trading tools] at [https://www.robotfx.info/](https://www.robotfx.info/)</comment>


Places for true un-politicized news about the US? - <AUTHOR> It's just that I rotate between all these organizations (e.g., reuters, cnn, foxnews, msnbc) and I legit don't know where to actually find unpartisan material anymore. <comment><USER2> Forget about nonpartisan. Everybody has a bias.

Most "real" news doesn't happen everyday. If you follow it less often you'll miss out on most fake stories and the ones that matter will still be around.

If you really want to follow the daily rumor mill you can try Twitter. Don't follow too many people and you will develop a sense for who's got good calls and who's total noise. Also many people will actually link to authoritative evidence/source, unlike most news websites that don't want you to ever leave their domain.

Generally speaking for everything that news outlets cover Twitter should have better coverage as that's where all the journalists hang out in the first place. For things that don't get covered, don't expect Twitter to do much better.

</comment><comment><USER3> If you think Reuters is not unpartisan, your concept is flawed.

Most mainstream news about the US: Reuters, ABC News, USA Today, BBC, Wall Street Journal (News not Editorial),

You might also want to check sources like [https://www.allsides.com/](https://www.allsides.com/)

You should also differentiate between news articles and opinion writing. Wapo and The Times write good analytical articles that are not biased.

<comment><AUTHOR> I hear you on Reuters maybe that was an unfair inclusion (it is certainly not sensationalist news) but still...

</comment></comment><comment><USER4> Read politicised news, and actively separate the facts reported from the editorial stance: [https://news.ycombinator.com/item?id=23858477](https://news.ycombinator.com/item?id=23858477)

"If you agree with it, it's truth. If you don't agree, it's propaganda. Pretend that it is all propaganda. See what happens on your analysis reports."

<comment><AUTHOR> In that case then maybe the question "Where can I find news that requires the least amount of cognitive load to consume?" is more appropriate... this is also a little defeatist.

<comment><USER4> Defeatist, maybe. But short of finding an outlet whose editorial slant matches one's preconceptions, I can't imagine doing better. [https://ria.ru](https://ria.ru) will reliably run the russian slant. [https://apnews.com](https://apnews.com) will reliably run the US slant. [https://www.bbc.com](https://www.bbc.com) may be relatively neutral on US politics, but internationally it reliably runs an anglophone slant. I don't read chinese, so I don't know what their equivalent may be, but I'll bet it runs a chinese slant. (a while ago, I found a website that seems to be running the north korean slant, [https://news.ycombinator.com/item?id=23738281](https://news.ycombinator.com/item?id=23738281) . Even the Amish had, at one point, [http://www.thebudgetnewspaper.com](http://www.thebudgetnewspaper.com) . It may be a little while before they notice it's down.)

</comment></comment></comment><comment><USER5> AP and Reuters seem to be alright in my experience, as do some foreign sources (BBC). AllSides.com provides media bias ratings which pass my sanity filter, although I won't claim to know how trustworthy a source they are.

[https://www.allsides.com/media-bias/media-bias- ratings](https://www.allsides.com/media-bias/media-bias-ratings)

<comment><USER6> I don't know how I feel about allsides.com bias ratings. The Economist and The New York Times (news only) appear in the left-leaning column. The New York Times (opinion) appears in the solid left column. Given The Economist's solid advocacy for business and free trade, and Douthat and Brooks and Stephens as NYT opinion writers, I'm positive this isn't even slightly accurate.

Treating allsides.com as propaganda, as another commenter here has advocated, I'd have to say that allsides.com is shifted everything left one column, or maybe more.

<comment><USER5> I don't know enough about individual publications to say whether I agree that their ratings are off, but I do like how allsides allows you to vote on whether you agree with their ratings[1] -- and I encourage you to. At least out of their site visitors, there seems to be a decent degree of agreement. I think what they're trying to do is admirable and it's an extra bit of legitimacy that they're willing to admit they're not perfect. If there's a better source for exploring media bias out there, I'm not aware of it.

[1] [https://www.allsides.com/media-bias/media-bias- ratings](https://www.allsides.com/media-bias/media-bias-ratings)

<comment><USER6> Thank you for pointing that out.

</comment></comment></comment></comment><comment><USER7> As already mentioned, basically every news organization has its own bias.

However, I do recommend The Wall Street Journal. They have the biases you'd imagine, but I've found that they're really only overt in the opinion pages. The regular reporting is fairly straightforward, unlike say, The New York Times, which manages to inject its bias into even the most mundane of topics.

</comment><comment><USER8> Politico.com?

I am not American, but follow the politics. The content seems neutral to me but I haven't really judged it seriously enough.

</comment><comment><USER9> News covering current affairs is inherently political.</comment>


They want my personal password? - <AUTHOR> http://theywantmypassword.tumblr.com/

<comment><USER2> Maybe you can get them to accept an "updated" version instead of the zip file, that way you can just send the latest version and you bypass the zip file.

<comment><AUTHOR> Hi there, I could do that but then I would have to re-create the config files which contain the environment-specific information. Really the only option is to simply unlock the zip file and the Web App will be instantly up and running. However those people have lost their court case and now they are trying to make the things worse for me.

<comment><USER2> Right, wouldn't work then. Maybe you could set up a meeting with them, you and a notary, they bring the zip, you bring the password, you key it in, they extract it. That way, you also have official confirmation that it was all in fact done.

Just spouting ideas here, I am not a lawyer, this is not legal advice.

<comment><AUTHOR> That would work if I wasn't located 7000 kilometers away an on another continent ;) The bad people are located in Aruba while I am in Germany.</comment></comment></comment></comment>


India's DataProtection Recommendation Report: A Free and Fair Digital Economy [pdf] - <AUTHOR> http://meity.gov.in/writereaddata/files/Data_Protection_Committee_Report.pdf <comment><AUTHOR> Some background:

In 2017, the Supreme Court recognised a fundamental right to privacy in Puttaswamy vs Union of India, and the Centre constituted the Srikrishna Committee to help frame the country's data protection law.

A summary of recommendations starts at page 168. It agrees that India's current data protection framework is inadequate, and that the data protection law should apply to entities regardless of where they are physically located, so long as they process the data of Indian residents/citizens.

The committee also agrees that individuals should have core rights including notice and consent — the right to be notified of data collection and the right to consent to data collection. Other rights that it recognises for data subjects include the right to be forgotten and the right to data portability (both, in limited forms). It also has identified certain additional user rights, including the right of users to access and rectify personal data, the right to object to and restrict processing (including for direct marketing), and the right against decisions being made only by automated processing.</comment>


Republicans out Democrat in 'World of Warcraft' witch hunt - <AUTHOR> http://www.nbcnews.com/technology/ingame/republicans-out-democrat-world-warcraft-witch-hunt-6283586

<comment><USER2> A small minority of Americans have extremely conservative religious views, and firmly believe that everything in our world is a battle between the forces of God (which they are on the side of) and people controlled by various demons on the side of the Devil (which they are opposed to). Members of this minority tend to view _everything_ through this lens. If you come from this perspective, it is clear that a game where people pretend to be evil beings killing people HAS to be inspired by forces of evil. And people who play those games are in danger of their souls being captured by those evil beings.

The same minority applying the same logic come to other conclusions that surprise the more secular majority - such as that Harry Potter is the work of the devil and should be banned. (Again, if there are only 2 sides that control everything, the world described in Harry Potter clearly is not inspired by the Bible and must be the work of the Devil.)

This minority is strongly attracted to the Republican party, and has proven influential within it. (Both Rick Perry and Michelle Bachmann publicly identify with this minority.) However their views do NOT reflect the majority of the Republican party.

I can completely understand how some members of the Republican party who have this world view would conclude that this "outing" is a good idea. That said, it is no more fair to attribute these opinions to Republicans in general than it is to attribute, say, Shirley Maclaine's views on reincarnation to all Democrats.

<comment><USER3> I went to a Christian school growing up, K-12. This is very much true. (Or at least the vocal Christians, the neocons/Pentecostals)

I'd also add that there's very much a persecution complex going on too: they believe that the world is out to get them, as Christians.

Be that "persecution" Harry Potter "encouraging witchcraft", a fear of RPG games ("these kids pretend they're wizards and cast actual spells!") to "they took the 10 commandments down in the courtroom - more proof of an evil, Godless country..."

The more they see these things the more they cry out, "help, help we're being repressed!" and then it bounces around the echo chamber and feeeds their belief as a whole.

<comment><USER2> Yup. A feeling of persecution is very good for reinforcing a faith that believes that you are being persecuted for your faith.

As another example reinforcing that is that members of missionary religions (like Jehova's Witnesses and Mormons) commonly admit that the personal value of being a missionary isn't so much that you convert anyone - on average you don't = but how much the challenges of missionary work reinforce your own faith.

</comment></comment></comment><comment><USER4> Honestly I see no problems with dredging up such comments. If it works for votes, then have at it. I hope to see more of it from both sides.

why?

Because people need to realize how little anonymity they truly have. There is no privacy online. Anyone with the time and resources is going to find out if you have an online presence and what you have been doing.

Politics is a dirty game. Candidates and their sycophants are constantly digging up facts about opponents and would be opponents. National campaigns employ teams of people just for this purpose. Every utterance, whether direct or an alias is subject to being found.

That it is happening to a politician is all the better. Both sides feed on prejudices, apparently this group thinks that playing fantasy games is a bad thing.

<comment><USER5> This situation is "good" from a _"raising awareness of privacy issues and concerns"_ standpoint.

From the standpoint of the individual in question, who we should of course feel empathy for? Awful.

From a _"quality of political discourse and health of the democracy"_ standpoint? _Gag_.

<comment><USER6> Yea, it would be a workaround, not a fix.

</comment></comment></comment><comment><USER7> Ugghhh...

I feel like the word "Republicans" is starting to refer to a weird, faceless, unrelatable entity. Like some weird urban legend. I'd probably believe it if I was told that they live in burrows underground.

Then again, I do live in SF.

<comment><USER8> Just drive 90 minutes East. You'll know you're in red territory when every Prius on the road suddenly becomes a huge truck.

<comment><USER9> You mean East bay? Places like Berkeley? :-)

<comment><USER8> Well, we do have John Yoo over here in Berkeley. _shrugs_

</comment></comment></comment></comment><comment><USER5> Sounds like a pretty good example of why people who really "have nothing to hide" still need and deserve privacy.

<comment><USER10> It wasn't that she was "outed", but that the Maine GOP used the (public) fact that she _plays a game enjoyed by millions_ as the basis for a shameful smear campaign.

If the people in Maine decide that playing WOW is enough to decide their vote, then I guess they'll get the representatives that they deserve.

<comment><USER5> The comments that they dredged up were technically public, though I assume she made them under the assumption that people outside that immediate audience wouldn't be reading them.

Even if she doesn't lose the election because of this, it is a shame she has to deal with this kind of crap at all.

<comment><USER10> It's a shame that she has to deal with this kind of crap at all, although she should have known better. If you're going to run for office, you should just assume that anything you do on any public web site (even a de-facto private one like that) will be taken out of context and used against you.

I can see some poor campaign intern, years from now, slogging through all of my HN comments to find something to use against me while I run for local office. Poor kid.

<comment><USER11> > I can see some poor campaign intern, years from now, slogging through all of > my HN comments to find something to use against me while I run for local > office. Poor kid.

Be smart: rotate your online accounts regularly. Do it on reddit, HN, any place where changing your identity is relatively cheap (FB unfortunately is not one).

Also unfortunately, pg doesn't allow deleting accounts on HN. Who knows why. So for HN, just stop posting on your current account, and start a new one, hoping pg wakes up and lets us delete our accounts in the future.

<comment><USER10> I see the benefits of online account rotation, but I've decided to just stick with my real name and try not to say anything too stupid.

It's like walking a tightrope without a net.

</comment></comment></comment></comment></comment></comment><comment><USER12> I don't see this turning out well for the accusers. The audience that they are reaching online via a website, plus the bloggers and other news sources that are going to cover this are more likely to have a sympathetic outlook toward someone that plays video games and will feel the accusers are the ones who are not in tune with the real world.

<comment><USER13> I kind of expect this to turn out like a minor version of SOPA...

They are targeting her for doing something that SO MANY people do that you're going to make all those people take her side when otherwise they probably wouldn't have cared. Worst campaign move ever... don't those guys know this is the 21st century and online games are normal?

<comment><USER14> What is being highlighted are the things she said in comments. Go look at the page.

They don't harp on the game very much. They do a little, probably because they see it as juvenile (not saying I agree). Mostly it's about the things she is saying.

<comment><USER13> Yeah but anyone playing a mmo is going to say stuff like that. It only looks bad to the people who have never gamed before.

<comment><USER14> I don't think most anyone playing an mmo is going to say they are going to drown Grover Norquist in their bathtub.

This isn't game talk.

<comment><AUTHOR> I've seen that and far worse in Trade...

</comment></comment></comment></comment></comment></comment><comment><USER15> I think outing someone for playing one of the most popular online game out there is ridiculous. What you do in game doesn't impact what you do in real life, and killing a sheep in Elwyn Forest doesn't mean you like to kill animals. However, I did look at the site and some of the comments she wrote go further than the game itself. She posted that she "wished she wasn't at work and could play instead" and that she was "slacking off" at work. I see nothing wrong with bringing those comments to potential voters.

<comment><USER16> > killing a sheep in Elwyn Forest doesn't mean you like to kill animals

What GOP member would speak against hunting?

<comment><USER17> Are you being intentionally obtuse or are you making a joke?

The clear answer is: Among many others, fiscal conservatives who don't care about hunting.... Am I missing something?

edit: huh... I suppose if you don't tout one political party's line here, you get downvoted. Good to know. I was just trying to point out that there are, in fact, people with diverse views that do not fit into the boxes many people presuppose. Kind of disappointing for a group that I had assumed was open- minded.

<comment><USER10> I don't agree with the downvotes, but I'm going to take this as an opportunity to mention that there is a meaningful correlation between conservatives and the gun lobby, and that the people who are happy to see their candidates out hunting are dramatically more likely to skew Republican.

</comment></comment></comment></comment><comment><USER18> Is this the first taste of the future of politics? Smear websites dredging up every silly / facetious / dumb comment someone has ever made?

The smear site is linked to in the article and can be found: <http://www.colleensworld.com/>

The whole site is made up of pictures of her comments from reddit. I suppose older folks will probably be very unhappy with many of her comments, but she just sounds like a normal person who uses the reddit and plays WoW.

Actually scratch that, having played WoW she is definitely far above average :). Too bad I don't live in Maine though!

I guess we can only hope that this stuff isn't convincing to people who actually use the internet, and that in the future it won't work.

<comment><USER2> You think that this is a change?

Not long ago I listened to [http://www.npr.org/2012/09/19/161436246/political- consulting...](http://www.npr.org/2012/09/19/161436246/political-consulting- and-the-lie-factory) which discussed the origins of modern political consultants. One tactic included taking the worst things that a person ever said, and then running ads where you just quoted that person and tied them to those quotes.

Context did not matter. For example in a 1934 campaign they smeared Upton Sinclair with quotes taken from his fictional characters in his books. Of course any good author will include fictional characters who are very dislikable, and they will say things that the author does not agree with.

Smear websites are just a minor update on this age-old tactic.

<comment><USER18> oh definitely agreed. Smear tactics/hit ads are nothing new, but this is (I believe) our first taste of this form of it in the future. We have all seen attack ads on TV and in print, but this is the first time I have seen a website pulling quotes from reddit (at the moment).

I think the largest change is in the distribution. Upton Sinclair was a internationally syndicated author whereas this woman is simply a redditor who is now running for public office. The real change is in the ability of a single person to reach the universe.

</comment></comment></comment><comment><USER19> It's a state senate election, which relatively few people pay attention to. Or even care about, though they really should. So a tiny advantage could make a difference.

Quick! Name your state senator! Name their opponent in this year's election!

But when I think this through...why shouldn't voters be made aware of things she said in public? If that's how people want to decide how to vote...well, people make decisions about voting based on equally irrelevant things all the time.

</comment><comment><USER20> I don't think that her playing WoW is a problem, but some of the comments she made certainly could be.

</comment><comment><USER21> the website linked in the article is mainly made up of dailykos comments. how are they not fair game? The WoW stuff is a little ridiculous (and I would bet ineffective) but postings on a political site definitely matter.

</comment><comment><USER22> Waiting for the Snorg T-shirt "I'm a Democrat but I play for the Alliance!"

</comment><comment><USER23> For the last year, I've been thinking about what my longtime involvement in certain very popular gaming sites would mean for me if I ever chose to run for office in the future. (It's pretty easy to connect me to the account) There's a somewhat reasonable chance that I may try my hand at public service 20 or 30 years from now.

This article basically proves the worst of my fears, and makes me wonder if I should try to divorce my "real life" identity with online gaming identities going forward. :(

<comment><USER6> Hopefully 20 years from now things will be better.

</comment></comment><comment><USER24> Why is this on the front page of HN? If anyone needs evidence that the quality here has suffered, this is exhibit 1.

"On-Topic: ...anything that gratifies one's intellectual curiosity. Off-Topic: Most stories about politics, or crime, or sports, unless they're evidence of some interesting new phenomenon."

I don't consider this some interesting new phenomenon and would be surprised if others, when pressed, would really think this was. This is a "weird news, politics" story.

<comment><USER10> I'm conflicted. It's easy to read this as partisan flamebait (because it is) but also brings up the kinds of questions about things like identity, privacy, online community, digital media, real-name policies, and anti-gamer bias that at least a few people care about.

News isn't exclusively about what has just happened, it can also be about what has been happening.

</comment></comment><comment><USER25> I find that incredibly funny.

<comment><USER26> It would be funnier if it wasn't so sad and pathetic.

</comment></comment><comment><USER27> I hope she'll bury them in the election over this, but I'd be surprised if it had much effect.</comment>


Ask HN: Why don't Digg, Reddit show a cached copy of a submitted site? - <AUTHOR>

The title says it all, there still are a lot of sites that go down after being slashdotted.
So why social news submitting sites don't just show a cached page of the site? (Also, if they feel like it they would be able to "justify" showing their header with ads above the site in a frame.)
How comes this problem wasn't addressed? Or was it?
Maybe this wouldn't help for AJAX sites (but it won't break them aswell), but for the rest of the static content i am pretty sure it will
Do you think this might be a startup idea? Perhaps it can be enhanced with a "show a page how it was 5 days ago, 3 months ago, etc" so if you suspect the page might change you can show it "freezed" without having to do ugly things like screenshoting it and submitting to tinypic.com <comment><USER2> Showing their own ads above a cached copy of the page? Sounds like profiting from copyright infringement. Lawsuits ahoy!

However: prime Coral Cache with the page before publishing the link, monitor the servers of the submitted site, and offer the Corel Cache link instead of the original link if the submitted site is struggling to cope with the load? That seems like a good idea.

</comment><comment><USER3> There is <http://www.duggback.com></comment>


Smartphone gambling is on the rise among African millennials - <AUTHOR> https://www.iafrikan.com/2019/12/17/smartphone-gambling-sports-betting-online-mobile-phone-africa-millenials/ <comment><USER2> Hah, interesting article, thanks! Currently, a lot of young people, not only in Africa but throughout the world, are increasingly using online betting sites and casinos. And there are many online casino sites and, of course, some of them are dishonest and want just to make money on young and inexperienced players. Therefore, before the game, it is better check the lists of legal casinos on governmental state websites or use special platforms, such as [https://slots-nj.com](https://slots-nj.com) or [https://www.playnj.com](https://www.playnj.com), if you play in American casinos, for example.</comment>


Ask HN: How do you find meaning in tech when it net destroys means of living? - <AUTHOR> I'm having a lack of sense of meaningful purpose and motivation to continue doing anything in tech because it seems like a net destroyer, taker of jobs and concentrator of wealth for the very few, and that participating in it would be complicit in the destruction of countless lives. And not thinking about it or rationalizing it away doesn't make the externalities disappear. No mythological trickle down or freed up labor for other "new" job lies can gloss over the chaos and damage caused by software designed to replace people. <comment><USER2> I share your concern. In addition to working to contribute my tech knowledge in alignment with my values I've also got very curious in alternative models for people to collaborate and work together (and share capital and resources). Haven't find the one true magic answer but my enquiries have led me to run and be involved in many amazing organisations.

ReConsider Havkerspaces, RandomHacks and BarCamps and be curious on those sorts of models and how you could get involved/grow/evolve them.

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

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

[https://wiki.hackerspaces.org/Design_Patterns](https://wiki.hackerspaces.org/Design_Patterns)

Open spaces like these will help you find your tribe 'tech people who want to make a contribution' from there, there's stacks you can do to contribute and learn from those grappling with the same concern.

</comment><comment><USER3> Plenty of technology doesn't replace people. Plenty of it isn't harmful. Some tech even makes the world a better place. Yes, the intersection of those areas can be small. But there are jobs to be had and kept within it, and companies to be started.

Meantime, why do you need to find meaning in your job any more than your local supermarket checkout clerk needs to find meaning in theirs? Sometimes you just need a paycheck. As long as it's one that's not hurting anyone else, go ahead and look for meaning elsewhere in your life.

</comment><comment><USER2> I would encourage you to be grateful for the privilege you have in working in tech and pair that with your personal values of making a positive contribution.

There are stacks of social issues locally to you and beyond that benefit from tech improvements.

The technology is progressing anyway, bring your focus to ensuring that tech is deployed for the greatest social benefit and call others to your cause you'll soon find like minded folk.

Anyone have good examples of social projects that are based around using tech for social good they can share?

<comment><USER2> The hive project comes to mind - bee colony collapse is a big issue globally. This project using raspberry pi to make a simple monitoring tool to improve colony health and crowd source global data.

[https://www.raspberrypi.org/blog/plan- bee](https://www.raspberrypi.org/blog/plan-bee)</comment></comment>


Most Bitcoin Trading Faked by Unregulated Exchanges, Study Finds - <AUTHOR> https://www.wsj.com/articles/most-bitcoin-trading-faked-by-unregulated-exchanges-study-finds-11553259600 <comment><USER2> The mention of 81 exchanges left me thinking: If none of the trading was fake, but then I created a single exchange literally named "ScamCo Faketrading Exchange" which claimed 1 petatrades per second were happening on its platform, then would this analysis say that >99% of all trades were fake?

I think it would.

I don't think any of the exchanges that I could have named off the top of my head were on their naughty list (paywall is keeping me from loading it again to check), ... so it seems to me that this report might be a bit overstated.

<comment><USER3> The actual volumes on different exchanges are not anything close to that disparate, so while your hypothetical does raise a real way that such a claim could be misleading, it has nothing to do with the actual situation at hand.

<comment><USER2> The presentation (linked in another comment here) lists a number of exchanges which they believe are presenting fake data:

CoinBene, RightBTC, CHAOEX, IDAX, LBANK, BitForex, Exrates

I don't think I've heard of any of these, and there are zero hits in my email.

They go on to identify pretty much every exchange I've ever seen discussed on HN (for example) as having legitimate volume-- coinbase, bitstamp, bitfinex, gemini, ...

I think the headline should instead be "coinmarketcap volume claims are nonsense" \-- which I think most people in the bitcoin space would say "well, duh". At least my view purpose of coinmarketcap and similar sites seems largely to direct people to the latest token pumps, as evidence by the absurd "market caps" they display for illiquid pre-mined tokens...

What set off alarms for me is that there is no way that you get to 81 exchanges without including some really sketchy or obscure stuff.

But a site that wants to list sketchy tokens needs to include the sketchy exchanges because for the most part the non-sketchy exchanges won't list them.

<comment><USER4> Bingo. I started using Messari/onchainfx and it's a much better alternative.

</comment></comment></comment></comment><comment><USER5> Here's the slide deck presented by Bitwise, who did the study: [https://www.sec.gov/comments/sr- nysearca-2019-01/srnysearca2...](https://www.sec.gov/comments/sr- nysearca-2019-01/srnysearca201901-5164833-183434.pdf)

Another summary article (non-paywalled) from CNBC: [https://www.cnbc.com/2019/03/22/majority-of-bitcoin- trading-...](https://www.cnbc.com/2019/03/22/majority-of-bitcoin-trading-is-a- hoax-new-study-finds.html)

EDIT: This is a very slick presentation. The weakest point I saw was a bit of handwaving around the key signing ceremony, specifically about how sharded keys are distributed. It's odd that they go into such detail about how to provision a clean laptop but then just sort of say "well, take your private key and mask it into seven pieces".

<comment><USER5> Page 61 has the 10 exchanges that appear to have real volume of the 81 exchanges analyzed: Binance, Bitfinex, Kraken, Bitstamp, Coinbase, bitFlyer, Gemini, itBit, Bittrex, and Poloniex. They estimate that the total ADV for the market is $273M, less than the $6B reported by [https://coinmarketcap.com](https://coinmarketcap.com).

<comment><USER6> >Page 61 has the 10 exchanges that appear to have real volume of the 81 exchanges analyzed: Binance, Bitfinex, Kraken, Bitstamp, Coinbase, bitFlyer, Gemini, itBit, Bittrex, and Poloniex.

I didn't expect Bitfinex to be on that list, considering all the USDT shenanigans that they were caught up in.

<comment><USER5> I was a little surprised by that as well, but my own analyses of Bitfinex data (together with the USDT/USD market on Kraken) brought me to a similar conclusion that they are likely operating above board. That said, there have been previous studies challenging that conclusion so I wouldn't be surprised if they found more signals on a deeper inspection.

The slide deck does go into the USDT/USD differences as well, and even mentions the large Bitfinex hack.

</comment></comment></comment></comment><comment><USER7> I spent last summer algo trading crypto. This study doesn't surprise me at all. On one market, I consistently saw limit orders that would appear inside the spread and then get instantly filled.

If you do the math on how much you need to spend on exchange fees to get a coin to get coin to the top 100 in volume, it's only a few grand. That's assuming you don't own the exchange.

</comment><comment><USER8> Company: "All our competitors are fraudulent. We're on the level, we promise"

</comment><comment><USER9> Seems like a good thing. Look at the volume for cryptocurrencies. It seems to be insane / ridiculous, as if the sum total of all coins for almost any given cryptocurrency are exchanging hands weekly (I know this is not exactly what volume means, but it's close enough).

Looking at bitcoin volume on coinmarketcap right now, it's about $9B 24h volume on a $71B market cap. In just 8 days the entire market cap of bitcoin will have 'exchanged hands' (again, I know this is not exactly what volume means). Meanwhile, most people are not using bitcoin as a medium of exchange. These numbers just seem absurd to me. There's no way that people are using bitcoin as a medium or exchange OR a speculative trade that frequently, unless these traders are fickle idiots.

That said, I know little about how currencies work, so maybe I'm making some invalid assumption. But I don't see how this data being faked is at all meaningful _unless you 're using this data to try to estimate the "value" of bitcoin, etc._ If so, yeah this is bad news for you. But how did you not know that bitcoin, etc. aren't really being used to exchange value?

<comment><USER10> You say:

"Looking at bitcoin volume on _coinmarketcap_ right now, it's about $9B 24h volume on a $71B market cap. In just 8 days the entire market cap of bitcoin will have 'exchanged hands' (again, I know this is not exactly what volume means)."

And, from the deck in the article:

"Despite its widespread use, the _CoinMarketCap.com_ data is wrong. It includes a large amount of fake and/or non-economic trading volume, thereby giving a fundamentally mistaken impression of the true size and nature of the bitcoin market."

(Emphasis mine)

<comment><USER9> What exactly is your point? That I am repeating the point in a paywalled article? I have always thought the market data on cmc makes _no sense_ , and am pointing out a simple experiment you personally can do to check.

<comment><USER10> I just am saying that basing any assumptions on the data from CoinMarketCap is to make those assumptions meaningless, because the data at CoinMarketCap is false. Apologies if I'm misreading your comment.</comment></comment></comment></comment>


Show HN: I made this site, I need HN to give it some traction - <AUTHOR>

http://www.upverge.com <comment><USER2> The advertiser is misspelled in the below page,

[http://www.upverge.com/advertisers](http://www.upverge.com/advertisers)

If you are an ""advertisor"" interested in being a member of our affiliates program,

So now, are you sure you will get thousands of users?

As a User, why should I come to your site? What's in it for me? You have free ad posting, then there is no way you could guarantee that it would be spam free links and are worth visiting..

As an advertiser, why should I pay you when I get it for free? (to get a top place ??), If the users are not interested why would I be interested in spending advertising in your website..

just a thought..

<comment><AUTHOR> You make very valid points. I don't think I will get thousands of users unless this goes viral. As an advertiser, you would pay to make sure ur ad posting remains at the top because it's ordered by amount.

</comment></comment><comment><USER3> This reminds me of [http://www.milliondollarhomepage.com/](http://www.milliondollarhomepage.com/)

<comment><AUTHOR> Yes, that is very true. This is kind of where I got my inspiration for this site. The difference is that I'm allowing people to post their ads for free and then seeing if people are willing to pay for being at the top of the list. We'll see if this actually works, like I said it's an experiment but will only works if enough companies register.

</comment></comment><comment><USER4> If I still had a flag button, I'd flag this.

<comment><USER5> Why flag? The title could be better but it isn't really spam.

<comment><USER6> The same site was submitted to HN two days ago by the same person:

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

<comment><AUTHOR> It was at a bad time. Its not like I sent out millions of emails.

</comment></comment></comment></comment><comment><USER5> Can you tell us something about the idea and why you think it is different?

<comment><AUTHOR> I'm basically trying to create another medium for small companies to get traffic for cheap. It's much like [http://www.milliondollarhomepage.com/](http://www.milliondollarhomepage.com/) but I'm allowing companies to post their ad for free. Right now it's fairly simple, it's only the company logo and a link to their website but I will eventually add additional information. I want to first see if this actually works and I get enough companies registering.

<comment><USER7> I'm still having a hard time understanding what I, as a company, would actually be getting from this. Is the 'ad' anything beyond the listing on your site? Companies are going to want to host banners that they can push elsewhere, not necessarily to send their customers to your site first.

<comment><AUTHOR> A company would benefit by getting more traffic to their site if a user clicks on their link. Right now it's very minimal, it doesn't have anything I agree, but I plan on making it so you can upload some type of banner or something. I figured nobody would take the time to create a banner and upload it so that's why I just have their logo and URL, it's easy to enter that basic information for a company. If the site gets enough traffic, the companies at the top of the list would get the most visibility ofcourse.

</comment></comment></comment></comment><comment><USER8> I figured, sure why not, I'll post an ad for free. But when it asked for a required address and phone number, I decided not to.

Too early for that kid of trust.

<comment><AUTHOR> It's not required :) I should remove them entirely. People might get intimidated by all the input fields.

</comment></comment><comment><USER9> App Not Setup: The developers of this app have not set up this app properly for Facebook Login.

<comment><AUTHOR> That's weird, I can log in using my facebook. Anyone else have this issue?</comment></comment>


Redesign: From PHP/MySQL to Node/MongoDB Stack - <AUTHOR> http://josebrowne.com/open/php-mysql-to-node-mongo-single-page-app <comment><USER2> The article's title is "Redesign: From PHP/MySQL to Node/MongoDB Stack". And isn't about going from PHP/MySQL to Node/MongoDB at all. Instead it's mostly about putting together a one page app sort of thing, rather than putting everything together server side.

<comment><USER3> Yeah, it's simply linkbait. It could just as easily be called "A blog where I try out new technologies!"

</comment></comment><comment><USER4> Finally, it's official: Node is the new PHP.

<comment><USER5> We'll probably be complaining about the horrible legacy Node.js applications created by scores of mediocre JS developers in a few years, like we do with PHP now.

The classic discourse is: "PHP is not a bad language, it was just designed with one specific purpose in mind and then grew organically. Of course there is some ballast now... Oh well, OK it _is_ a bad language. But the real problem is that it's too easy - everybody thinks they are an elite developer because they can code a bit PHP."

VB -> PHP -> JS ?

<comment><USER6> PHP is robust enough to create webpages and scripts, that's what it was designed for.

I think nobody is claiming "they are an elite developer because they can code a bit PHP" , that's what you said.

It would be far more interesting to talk about what you use and how , rather than bashing PHP.

</comment></comment></comment><comment><USER5> Looks very nice, and the fact that it changes the URL when you click on a link is awesome. I didn't even know that was possible now. I wonder if the server delivers a different page for different URLs (for search engines / older browsers).

Also it feels very snappy, but I wonder how it works under less favorable conditions (slow computer or connection).

<comment><USER7> You can change the URL live by using pushState[1].

[1] [https://developer.mozilla.org/en- US/docs/Web/Guide/API/DOM/M...](https://developer.mozilla.org/en- US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history)

</comment></comment><comment><USER8> the modal is slightly annoying, sorry :|

<comment><USER9> Also pocket doesn't know what on earth its dealing with, clearly works though so thats something. Not tested read it later.

</comment></comment><comment><USER10> Cool, a 404.

</comment><comment><USER11> Got a 404.</comment>


Covid-19 Can Damage the Brain - <AUTHOR> https://www.nature.com/articles/d41586-020-02599-5 <comment><USER2> I had in late February, what an antibody test much later confirmed, was a mild COVID case, before any of the lockdown. Almost a month later I had neurological symptoms, left side numbness which sent me to the ER for an MRI and neurological workup. Nothing of note was "found" and it resolved itself, but fuck was it scary for a healthy 30-something. I didn't learn until a month after that that I had COVID and put together all the pieces of what had happened.

</comment><comment><USER3> Yeah it's like massospora and other "zombie" fungi. Once it gets into your brain, you feel the need to join mass protests and invoke your individual liberty to not wear a mask. Then it spreads to the other tinfoil hats accompanying you just to get out of their homes and see people.

</comment><comment><USER4> How accurate is this?

<comment> GuB-42 The article is pretty vague.

It is another item in the long list of uncommon effects of Covid-19. They admit they don't know much about it but it is worth investigating.

</comment></comment><comment><USER5> That was a pretty scary read!

</comment><comment><USER6> It apparently damages the brain before you even catch it. No other way to explain all these COVID deniers and anti-mask protestors.

<comment><USER7> Please don't post unsubstantive and/or flamebait comments.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

</comment></comment><comment><USER8> > at least 0.04% of people with SARS and in 0.2% of those with MERS

Neglible.</comment>


EdgeDB: A New Beginning - <AUTHOR> https://edgedb.com/blog/edgedb-a-new-beginning/ <comment><USER2> Well ... I kinda like the query syntax's ability to traverse relationships, nest objects/sub-headings, and apply filters at the level of projected expressions!

This has been done before of course, but I'm not sure I've seen this combination of syntax on an RDB before. It's certainly easier to read and write that a bunch of outer joins.

What would be nice to know is whether this can work on top of an existing PG database, providing easier syntax.

While their last example makes _sense_:

      open_prs := User.<assignee[IS PullRequest] {
          title
      } FILTER .status = 'Open'

I don't find it easy to read/understand. If the [bracketed expression] acts as a filter, why not:

      open_prs := User.<assignee[IS PullRequest AND
                                .status='open'].title

which preserves the nice dot-chaining for link traversal.

<comment><USER3> > What would be nice to know is whether this can work on top of an existing PG > database, providing easier syntax.

That would require introspecting arbitrary relational schemas and trying to represent them as an object graph. I don't think something like this can be done automatically and reliably.

That said, we have a tentative plan to introduce support for external databases (through FDWs, so not necessarily Postgres). The mapping specification would have to be explicit though.

<comment><USER2> Glad to hear about the FDWs ... but wouldn't foreign keys be your friend here? What else would you need, really, to layer this on an existing DB?

<comment><USER3> If your schema consistently uses synthetic primary keys, maybe like the ones produced by some active record ORMs, then, yes. Theoretically, we could make an adapter that would make EdgeDB "understand" Django schemas, for example.

</comment></comment></comment></comment><comment><USER4> I would love to see some auto generated (non-techie) graphical user interface for this like phpmyadmin but w/o all the developer focused options.

Eg. if there is a m:n relationship do not make me enter some foreign key values into a join table but give me some nice autocomplete fields or checkboxes on either side of the relationships' types.

Or if there is some transitive relationship like "country -> city -> district -> office", give me some nice way to filter the list of offices by a given country oder district.

Auto generates this from the schema as web interface.

I already tried building this for SQL schemata but it seems like a schema definition as provided by EdgeDB seems predestined for this use case.

<comment><USER5> I recently tried Postgraphile [1] on an existing postgres database (briefly just for fun, not in prod) and it sort of does what you want. As long as the foreign keys are there, it will generate the correct graphql queries. It even pluralizes the query names depending on whether it's a one-to-one or one-to- many relationship. Once it's in graphql you can just use the interactive graphql endpoint which has autocomplete and documentation to write your queries.

A schema like:

      create table post (
        id serial primary key,
        author_id int non null references user(id),
        headline text,
        body text,
        ...
      );

Can query relations like so:

      allPosts {
        edges {
          node {
            headline
            body
            author: userByAuthorId {
              name
            }
          }
        }
      }

[1] [https://github.com/graphile/postgraphile/tree/postgraphile#a...](https://github.com/graphile/postgraphile/tree/postgraphile#automatic- relation-detection)

<comment><USER6> You aware of any graphsql layer for postgres implemented in pgsql or pl/python?

Something like using JSONB datatype in a entity key value store table. Mapping materialized views using pgsql json functions. To flatten out the data into sql tables for normal consumption?

</comment></comment></comment><comment><USER7> I understand the desire to distance oneself from the term graph database, but this is a graph database.

<comment> eigen-vector I don't think their intent is to distance themselves from the term. Right there in the post, they're mentioning that the object-relational universe they're talking about is essentially a property graph. However, it doesn't seem like it's built to mirror a traditional graph database.

<comment><USER8> It seems more similar in spirit to triplestores, which are pretty neat all things considered. It also reminds me a lot of Datomic, but without the Clojure-ness and immutability.

</comment></comment></comment><comment><AUTHOR> redcrowbar (Elvis) and I (Yury) are the authors of the post. Happy to answer questions ;)

<comment><USER8> Is EdgeDB going to be Postgres fork, extension or a service that uses just uses Postgres as a storage layer (like Datomic)?

<comment><AUTHOR> It's closer to the storage layer: postgres is in the core and not directly exposed (i.e. you won't be able to access it).

<comment><USER8> Does it mean it will be possible to use EdgeDB with hosted Postgres databases, like RDS and maybe Amazon Aurora (on Postgres mode)?

<comment><AUTHOR> Maybe. This is something that we'll have to figure out later.

</comment></comment></comment></comment></comment><comment><USER9> "Databases have always been and will always be the defining piece of any technological stack".

Sorry, I don't see this as true. Databases are no more "defining" of a tech stack than any other part, comms, security, ui, business logic, etc.

You only see it as "defining" if the database is your product. In most cases, the business logic is the defining part of the system, all parts of the tech stack should be replaceable.

<comment><USER10> I would like to rebuttal. If there exists any dynamic application, you need some type of data store to keep all of the records, whether it be a persistent database or simply an in-memory database. So, in my opinion, this is a truthy statement.

<comment><USER9> If you're architecting your application around a particular mechanism, be that a db or comms mechanism or whatever, then you're tightly coupled to it. This is a mistake.

Most applications need to store data, but most applications dont _need_ to store data in a particular db.

<comment><USER11> Taking this attitude to your design is a great way to tank your performance before you've even started. I have seen too many projects suffer from overzealous architecture that treats the database as a persistence layer. Designs that start out trying to abstract away the persistence layer wind up building a complex caching layer.

<comment><USER9> I agree, I'm not arguing for complete abstractions here, just showing that the fact that you can abstract away the differences means that the db is not a "defining" part of the system.

</comment></comment></comment></comment></comment><comment><USER12> Does EdgeDB support variants[0]? I've always dreamed of a database that did.

[0] e.g. [https://reasonml.github.io/docs/en/variant.html](https://reasonml.github.io/docs/en/variant.html)

<comment><USER3> In a way, yes. EdgeDB implements type inheritance and abstract types, so you can have a schema like:

      abstract type Text:
        link body -> str

      type Post extending Text
      type Comment extending Text

And then query Text instances like this:

      SELECT Text {
        body,
        title := 'Post'    IF Text IS Post ELSE
                 'Comment' IF Text IS Comment ELSE
                 'unknown'
      };

</comment></comment><comment><USER13> Definitely sounds cool in theory but where's the call to action? There's only a form to sign up for an email update on the home page. Where is the source code? How can I try this now?

<comment><AUTHOR> Thanks for the interest! We'll release a technology preview (along with the source code) in just a few weeks.

</comment></comment><comment><USER10> You must've done some benchmark tests, would it be possible to elaborate on a plethora of different test speeds? Insertions per second, queries per second, calculating sums, etc.

</comment><comment><USER14> I got an email about this this morning but I have no idea how I got on your email list.

<comment><AUTHOR> You or somebody else must have subscribed your email address. We've _never_ added any single email to our MailChimp list ourselves.

<comment><USER14> If it was me it must have been a long time ago.

</comment></comment></comment><comment><USER15> "EdgeDB is based on PostgreSQL, and inherits all of its strengths: reliability, ACID compliance, and performance."

So, basically PostgreSQL with a different query language. Can't figure out what problem this is trying to solve.

</comment><comment><USER16> On the home page it says, it is "relied upon in production by large businesses". Which large business rely upon it?

<comment><AUTHOR> We created a number of business applications that used earlier versions of EdgeDB. The list of companies we worked with is on our magic.io page :)

</comment></comment><comment><USER17> So instead of having an ORM which I control, let's bake it into the database instead? This seems like a really bad idea.

<comment><AUTHOR> EdgeDB is very far from being an "ORM in the database". It properly implements an object data model on top of relational model, along with a properly designed query language.

</comment></comment><comment><USER18> This is undesirable

<comment><USER19> Your comment doesn't have any substance. For what reason do you think it's undesirable?

<comment><USER18> I see no need for another query language, I don't find using SQL to be that taxing, and I don't find using different tools for different parts of the stack to be a huge hurdle. This feels like it's made for people who have never programmed before and will entice people to use it for that reason. Much like MongoDB it will not work well at a scale of production and will need to be replaced or scaled up to such an extent as to being too costly. Everything about this in undesirable.

<comment><USER20> I don't think people who have never programmed before are the only ones who would be interested in more consistency and maintainability in their code.

<comment><USER18> I don't see how letting something I don't control gives better maintainability.</comment></comment></comment></comment></comment>


Ask HN: What are ways to schedule tasks for the future? (web dev) - <AUTHOR> In this particular case it's for a tracking system.
Namely what I want is a non-performance affecting, for example I may want to gather the ip, time, what a person did (what they clicked on) but instead of doing all of that. You'd just say "Hey task manager, this person did this" but not do all the computation that goes into your database eg. inline in your server-side scripting or multiple calls from the front end.
What technology am I looking for here? I currently use the LAMP stack but am open to other solutions as I have to evolve eventually to keep up.
To further elaborate:
To do this right now I would have to create several inserts in the database that would happen when the person clicks on something that I'm tracking. Rather than doing that, I'd do a short thing like sending a JSON string that has the details I need to insert to a background process that then does this insert outside/away from the main part that handles front end use.
Thanks for any suggestions.
I don't mean crontab either, unless that is relevant. <comment><USER2> I built something that does this idea. I wanted to be able to do expensive computations, but I did not want the person on the website to wait on them. It is sort of like how the old school craigslist does it not updating a category till it gets around to batch processing it.

One example I use it for is image processing of an image that is uploaded. Another is sending an email. And yet another is a ton of database inserts for metrics.

It works in the same manner as a bank queue processing one thing at a time, so you can run it on a smaller server and not worry about overloading your system.

I plan to open source the code in the next week or two if you are interested. I wrote it in Go, and the job queue part uses beanstalkd

<comment><AUTHOR> Wow, Go. I've been listening to a podcast about that "Go time on Change log" I hear a lot of great stuff about it "2000 servers to 2" for example haha, 25,000 concurrent requests per second or some crazy thing.

I would have thought this was a common thing. I am interested thanks for offering however I can't really contribute/possibly even use it as I don't know how to use Go at this time.

Good luck though with it, I think Go by the sound of it will be even more popular than it is now. I mean they even talked about hardware-control with Go. It sounds incredible.

I'll keep it in mind though but yeah outside of my scope at this time, unless it's not difficult to integrate into what I use right now which is LAMP stack on a single-core VPS. Pretty pathetic I know but I domain map. Probably not related but I have a raspberry pi server with Cron (actually working cron) as well that I look to use for prototyping.

</comment></comment><comment><USER3> Sounds like you need a queue of some sort. What I usually see is something like each web server will dump these details (json is fine) into a file. Then at some scheduled time these details can be inserted into your database in batch. (nightly, hourly, etc)

<comment><AUTHOR> Does that suggest Cron? I mean I'm looking for something like a background running process (CRON) or Daemon haha. But for some reason I'm thinking of something like Node. I don't know.

<comment><USER3> It could be cron, but mostly I'd just recommend using whatever you are comfortable supporting. Cron is great for simple batch jobs (I would imagine this would fall into that category). Cron isn't ideal when you have to chain a bunch of jobs together. But, if you have a script that loads files, cron could do the job easily enough.

<comment><AUTHOR> I actually figured out an alternative for this particular case. I would create a client-side JavaScript object and store stuff there, then when they leave, it makes one call to the server with the object passed as JSON. Problem then becomes cleaning the output. I was just thinking, if you can edit stuff in the browser console, can't you edit the contents of an array? I guess actually you wouldn't see that displayed in the code, it's a state maintained in browser memory I think. But I'm still considering this potential problem and making a known/limited pattern eg. numbers only separated by a known symbol like a dash to use for exploding/splitting.... anyway will try it out.</comment></comment></comment></comment>


Why Voting with Your Dollar Doesn't Work - <AUTHOR> https://honeythatsok.com/2014/03/22/why-voting-with-your-dollar-doesnt-work/ <comment><USER2> I think it depends on your goals. I have a somewhat lengthy list of companies whose products/services I will not buy for various reasons. I don't consider it a "boycott", though, because my intent isn't to encourage those companies to change. I simply don't want to support them. Doing that works very well for me, because my entire goal is to avoid involving myself with them.

I combine this with another "vote with my dollar" practice -- with everything I buy, I buy as local as possible. Ideally, this is a small businessperson in my community. I do this because I strongly believe that I could not have achieved the success that I have achieved without the active support and investment of my local community -- so staying local when possible is one way I can repay my neighbors for that. That works, too.

If your goal is to change the behavior of large corporations, then yes -- not buying their stuff isn't going to accomplish that unless you can convince a really large number of people to join you. That's a real boycott, and history shows us that its effectiveness is spotty.

</comment><comment><USER3> TLDR, but the example of not buying beauty products in order to reduce animal suffering is the opposite of voting with your dollar, you are withholding money. Buy beauty products which use humane methods. That is voting with your dollars.</comment>


Ask HN: What are the best non-American Linux media/blogs? - <AUTHOR>

<comment><USER2> [http://arstechnica.co.uk/](http://arstechnica.co.uk/)</comment>


Citus 6.1 Released – Horizontally scale your Postgres database - <AUTHOR> https://www.citusdata.com/blog/2017/02/16/citus-61-released/ <comment><USER2> Are the commands in the examples the actual SQL commands for sharding and is the default to have them in the public namespace?

Ex:

        CREATE TABLE states (...)
        -- distribute it to all workers
        SELECT create_reference_table('states');

        SELECT isolate_tenant_to_new_shard('table_name', tenant_id);

While isolate_tenant_to_new_shard() doesn't seem like it'd clash with anything, create_reference_table() seems common enough to exist in someone's code. Why not have this in a citus schema by default?

> In Citus 6.1 Vacuum is now distributed and run in parallel automatically > across your cluster.

Did VACUUM prior to 6.1 require one node in the cluster to issue locks on other nodes? If so what for? I'm not intimately familiar with how the nodes in the cluster communicate but would have figured each is acting as a standalone DB and coordinating common updates via 2PC (which means VACUUM was already distributed).

<comment><USER3> Fair point on creating these functions in a Citus schema. The reason for this is mostly historical. We started with pg_catalog, haven't run into issues yet, and therefore didn't prioritize changing this [1].

On the VACUUM table side, when the user ran this command, we previously didn't propagate vacuum to the related shards. With this release, we run this command in parallel across worker nodes. ([https://github.com/citusdata/citus/issues/719](https://github.com/citusdata/citus/issues/719))

[1] Citus' user-defined functions aren't in the public, but rather in the pg_catalog schema. If the user defined their create_reference_table(), that definition would override the Citus definition. You'd then need to call the Citus function by fully qualifying its name or changing your search_path.

As a footnote, if a user defines a create_reference_table() function, it would only override the Citus function if the two functions have the same signature: create_reference_table(table_name regclass).

(edited)

</comment></comment><comment><USER4> I just started learning Citus, it is a very promising product.

Couple of things for improvement / may be already supported.

1\. New User records do not propagate to all the nodes - Manual Step.

2\. New Database records do not propagate to all the nodes - Manual Step.

3\. Materialized View with incremental refresh - Currently Postgres re-runs the query everytime there is a data change - For a table of billion records this is very inefficient.

<comment><USER5> > 1\. New User records do not propagate to all the nodes - Manual Step. > 2\. > New Database records do not propagate to all the nodes - Manual Step.

The issue here is that both databases, users and some other objects aren't "database local" but "cluster wide" objects (i.e. visible in all the databases of a postgresql installation). As the citus extension isn't necessarily created in all of them we can't reliably do anything about this...

</comment></comment><comment><USER6> Automatic failover for master nodes would be a really nice feature making citus a hassle-free solution.

<comment><USER7> Hi, Citus Cloud our managed service does have automatic failover available for both the master and the distributed nodes.

<comment><USER6> I know, but i was speaking for the community or enterprise edition. Managed services are sometimes not allowed for legal reasons (data privacy).

</comment></comment></comment><comment><USER8> Can any users of Citus comment on the difficulty/ease of adoption, tradeoffs, and benefits?

<comment><USER8> Another way of asking: Citus seems amazing. What's the worst part of using it (other than cost)?

<comment><USER9> I only have about a month experience but the real issue is you have to do a lot of things manually that are done automatically in other systems like Cassandra.

Particularly rollups and stream like things. That is you have to do the rollups (as well stream like things) either through postgres rules,triggers Listen/Notify, cron etc. With system like Druid (Cassandra), Elastic Search and other time series databases this is not needed (either the query ability is efficient enough because of compressed or it is automatically indexed or both).

For the stream like stuff we have been using Pipelinedb. Pipelinedb is annoying though in that it is a fork and not an extension. Pipelinedb has a similar problem. You have to create the streams apriori.

So both for Citus and Pipelinedb you have to do some planning of your schema where as the other guys you can do more exploratory/adhoc analysis and queries. The disadvantage to the NoSQL guys (besides maturity and literally no SQL) is that you pay a lot more in memory as most of them (IMO cheat) and rely heavily on available memory. Postgres is very memory friendly.

<comment><USER8> Hmm, interesting. Sounds like a problem with a Postgres, not Citus, but it still sounds like a disadvantage compared to competing products (RethinkDB also comes to mind).

I haven't implemented anything for that before personally; would a tool like Bottled Water [0] be helpful for this usecase?

[0] [https://github.com/confluentinc/bottledwater- pg](https://github.com/confluentinc/bottledwater-pg)

<comment><USER9> Yes Postgres has disadvantages (I accidentally posted my comment too soon so that might have caused some confusion) but like I said it is: 1. Mature, 2. SQL is damn powerful, 3. Memory friendly (aka cost).

RethinkDB is cool. I just never got into it to know how well it actually works. As for bottledwater we use Postgres + AMQP aka Rabbit + Listen/Notify. I'm not really a big fan of kafka even though it does have amazing scaling ability.

</comment></comment></comment></comment></comment><comment><USER10> > _Microservices and NoSQL get a lot of hype, but in many cases what you > really want is a relational database that simply works, and can easily scale > as your application data grows._

I believe this product is very threatened right now by Google's newly announce Cloud Spanner database[1]. Even with services like this that make scaling "easy", it doesn't yet make it transparent like Google is striving to do.

[1] [https://cloudplatform.googleblog.com/2017/02/introducing- Clo...](https://cloudplatform.googleblog.com/2017/02/introducing-Cloud- Spanner-a-global-database-service-for-mission-critical-applications.html)

<comment><USER7> Craig here from Citus. Spanner is absolutely some interesting technology, but focuses on some pretty different use cases than we're looking to solve. Spanner is globally distributed but the cost of that is likely to be 100ms per operation. Further it uses SQL for the read, but the insert and update is RPC so it's a bit of a different interface.

Citus is much more focused on interacting like a relational database that simply scales out as opposed to re-inventing a lot of the underlying tech and interfaces. You can find the comment further down from one of our founders, but we're very focused on a few use cases.

1\. Scaling beyond single node Postgres (this primarily for B2B applications currently)

2\. Operational analytics, here because of the way we parallelize the workload you can get sub-second query performance across terabytes of data.

3\. NoSQL++, this is a bit more akin to where spanner may fit, where you have exceptionally high read and write throughput requirements. (Exceptionally high meaning north of 100k writes per second).</comment></comment>