Ask HN: Does code documentation increase contributions? - <AUTHOR> I'm trying to convince a team working on a complex open-source project that they need to document all the code they write.
They have documentation for some public APIs, but most of the code only has an occasional comment. Otherwise, there is no data structure, function, or module documentation. I.e. no explanations what they represent, or do, no member or argument descriptions, and no overall module introductions.
For now I'm trying to focus on a single argument: better code documentation will bring more outside contributors by making it easier for them to figure the code out. The project is corporate-funded, already has a lot of users, and is present in all major Linux distributions and FreeBSD, but sees little outside contributions.
To me the answer seems obvious, but I would like to hear your opinions, if possible see actual data, or at least anecdotal evidence of any effect.
General opinions on the need for most, if not all code being documented are also welcome.
Thank you! <comment><USER2> To me, the composition of a community is probably not a technical issue and is more likely to be a social issue. In a way, this question sort of highlights the social versus technical gap.

The identified problem is lack of new outside contributors. The proposed solution:

      1. mandates more work by existing contributors.
      2. does not directly recruit outside contributors.
      3. is structured to require a cultural shift of
         the existing community.
      4. is a hypothetical without support from reasonable
         evidence.

To put it another way, what I see from across the internet is a community that makes changes by argument rather than consensus, and reaches out to the world of potential contributors for support to win the argument. It doesn't seem to be so much about writing good documentation or determining what documentation is actually necessary for the purpose. It's more rallying the troops.

Curious about what the project is and why someone might want to contribute.

Good luck.

<comment><AUTHOR> Thank you for a thoughtful response. I'm a bit confused by your answer, though, because my problem was the lack of documentation, and making it easier for external contributors was an argument I was using, not the other way around. However, I think I see your points, and I would agree with them otherwise.

I experienced the problem first-hand, trying to add a feature to a complicated piece of code almost devoid of documentation, and spending a lot of time and energy on trying to hold everything in my head. Eventually I gave up and changed my approach, succeeding in the end, but documentation would have made it much easier, in my opinion.

I approached the team suggesting a few measures we could implement, with increasing levels of effort, and argued that they will help us get more external contributions, since that was an already recognized problem and easier to argue for. It seemed logical to me, coming from my experience. I.e. making it easier to understand the code would make it easier to contribute. There are other arguments I could have used, but they are harder to defend, and some of them especially so, since the team already knows the code well.

There were a variety of responses, but also one request for actual data on the effect of code documentation on number of contributors, which I came asking for here, after my Google searches failed. I.e. I'm asking for evidence, supporting or otherwise.

I agree that community composition is mostly a social issue. I'm intrigued by your description: "a community that makes changes by argument rather than consensus". Could you elaborate? I feel I could learn something here.

I would rather not specify the project to keep the discussion abstract and unbiased. Although for anyone really interested that information is a few Google searches away, I expect.

People might want to contribute fixes or small features, because the project is already quite widely used and is essential for bigger companies using Linux.

<comment><USER2> The question is asking for evidence to support an opinion. That opinion is held despite a lack of evidence. That's fine, in so far as it goes. In this case however, the opinion comes with a mandate that makes work for other people even though there is no evidence that the additional work will be of net benefit. For example, the community could devote 100 developer-hours per year to documentation that saves a total of 2 developer-hours per year.

In this case, a proposal was made, someone asked for evidence and the person making the proposal realized their was none. The culture of the community is such that the response was an effort by the proposer to win the argument that runs against the general consensus of the community. Even though the proposer acknowledges a lack of evidence to support the proposal and can reason that their own proposal was made on the basis of something other than evidence.

That's sort of what politics or community infighting etc. look like. The advantage arguing over opinions offers is that actually reaching out and engaging potential community members is harder than saying "We need more documentation". That's a common manifestation of XY Problems in social/community settings.

To step to a higher level, the language -- "argue", "defend", and "would have saved _me_ time" \-- occasionally work in unusual circumstances. But a lot of people don't enjoy arguing over things that don't really matter very much. Such people will simply walk away no matter how good the documentation is.

To put it another way, an unwillingness to name the project shows exactly how this is an XY Problem. The means are at odds with the ends. The fight club is probably not a good model for a software project.

Good luck.

<comment><AUTHOR> Thank you. I have to admit, that it's again hard for me to pinpoint what exactly you're answering to and what's your argument. Either because I'm not that smart, I'm unwilling to accept some of what you say (for whatever psychological reason/bias), it is somewhat obscure, or all together. So, please forgive me, if I fail.

First of all, I'm not sure this is exactly an XY problem, because I started the discussion describing what exactly I was doing, what difficulties I faced, and how documentation can help solve them, in my opinion (yes, opinion). So there was no confusion what I want to actually achieve. I.e. faster and easier understanding of the code, which is the primary function of documentation. I.e. you read documentation, instead of reading code (sometimes many functions deep), thus saving time and effort. At least with sufficiently good documentation.

A counter argument was that documentation is not necessary, and the code alone is enough. Another was that tests are better than documentation, because they're verified to be correct. One person replied that when they started, they also tried to write documentation, but were discouraged by the project leader, and now they also support that approach. All of that is beside the point of the discussion, although provides context.

Yes, there is no evidence supporting the particular argument I was using. I was attempting to use logic and induction to change other people's opinion, so that they don't see documentation as a thing that "doesn't matter very much". It is hard to evaluate the effect of documentation and provide evidence without extensive data and research, similarly to how it is hard to evaluate why exactly the developer time was spent. I would be glad to see evidence, though.

OK, now I'll try to calm down a little, lower my defenses, and dig at the root of the problem.

The code is a mess, there is a metric shitload of it, and it is hard to understand. I wanted no more of that pain, and I wanted to have that fixed. I.e. to have the code easier to understand, no matter how. Perhaps this is exactly what I should have written. Instead I simply wrote that the code was complex (which is true enough) to try not to trigger other people's defenses, thinking that perhaps arguing for the documentation would be easier. I know that documentation helps, in many ways, but it would be just one way of fixing it. That way was also against the popular opinion, as it turned out. I may have also had a bias against people doing "the wrong thing" (TM), since I always document my own code.

So, perhaps, this situation and my approach is what you mean by the XY problem. I don't think that my proposed means are completely at odds with the ends, but I agree that they're unnecessarily limiting, rigid. I think that I would have been better off simply raising the issue itself and asking for solutions. Especially, since that particular piece of code is already considered problematic by many. Perhaps that's what I'll do.

I had issues with some people from that community before, and I do have my own communication difficulties, which makes it more complicated, and perhaps contributed to my choice of approach. Perhaps I'm a considerable part of that particular community problems too.

Please excuse me, if the above attempt at self-reflection is too personal for a stranger's HN comment. Thank you.

</comment></comment></comment></comment><comment><USER3> Documentation has a cost, and a risk. It must be maintained when the code changes, if not one deceives future developers and increase the chance of bugs. Ideally the code itself should be documentation enough; keep code comments for complex parts of the code which are not obvious -- these comments then stand-out because they are rare.

The only place where you should document the obvious is in the public API, so I'd say the existing team are probably on the right path. Sorry :-)

<comment><AUTHOR> Thanks! Yes, I hear the same from them and I try to consider this approach :)

It is an additional effort, for sure. It is not without its benefits, though, and I'm trying to find out if it's worth it.

Why I originally brought this up with them is because I started working on a feature and found the code barely comprehensible. I spent a lot of time to try to keep everything in my head and failing repeatedly and felt like documentation would have helped me a lot. I.e. I was exactly in the position of a new external contributor and found the experience lacking.</comment></comment>


Show HN: Introducing MonkeyLearn integration with Zendesk - <AUTHOR> https://monkeylearn.com/blog/introducing-monkeylearn-integration-with-zendesk/ <comment><AUTHOR> Hello HN!

We have been seeing quite a lot of conversations in customer support teams around tagging tickets (used as part of triggers, macros, analytics, etc). And we know how its hard and time consuming process.

This is why we built a MonkeyLearn extension for Zendesk (that we are releasing today) to help this tagging process with machine learning.

With this integration, MonkeyLearn will automatically tag and categorize incoming tickets into Zendesk. It will predict the value of a given field based on the subject and content of a ticket (it uses your historical data to train the machine learning model).

You can find it in the marketplace here: [https://www.zendesk.com/apps/support/monkeylearn-ticket- clas...](https://www.zendesk.com/apps/support/monkeylearn-ticket- classification/)

This is an initial version and it's free to use (at least for most cs teams).

We are trying to understand the value and if it helps support teams in this process, so any type of feedback is greatly appreciated. Also, if you need any kind of help to fine tune the model, more than happy to help.</comment>


Tata will stop selling the 'world's cheapest car' - <AUTHOR> https://m.economictimes.com/industry/auto/cars-uvs/rip-nano-worlds-cheapest-car-goes-up-in-smoke/articleshow/64941654.cms <comment><USER2> The world's cheapest car is a go-kart or ATV or a modified bike even. Due to complex lobbying and regulations, these are not precisely allowed on the road in all US states without some form of harassment.

In addition to that, the greatest danger on the road is other cars. Hence why we have the arms race and proliferation where everyone tries to drive a bigger and heavier car than the next person.

</comment><comment><USER3> I remember the fanfare and the enthusiasm when this car was launched. Everyone hailed it as the pinnacle of Indian innovation but no one wanted to buy it lest they be seen as "poor" people.</comment>


'Hangover-free alcohol' could replace all regular alcohol by 2050 - <AUTHOR> http://www.independent.co.uk/life-style/health-and-families/health-news/hangover-free-alcohol-david-nutt-alcosynth-nhs-postive-effects-benzodiazepine-guy-bentley-a7324076.html <comment><AUTHOR> > _Professor Nutt, who was sacked from his position as the government drugs > tsar in 2009 after he claimed taking ecstasy was less dangerous than riding > a horse_

Well, that made my day

<comment><USER2> I did research paper on ecstasy for a chemistry class. It really isn't that bad for you, its pretty similar to taking a antidepressant. Most of the problem/concerns come from what is mixed in with the MDMA.

</comment></comment><comment><USER3> Either they've never watched TNG or Synthehol was already trademarked. Shame.

</comment><comment><USER2> The negative side effects are a way to get you to stop drinking. With none of the side effects people will have no reason to stop drinking.

This seems like the kind of solution that actually makes things worse.</comment>


Show HN: A really simple way to write BDD tests with NUnit - <AUTHOR> https://github.com/RokitSalad/Helpful.BDD

<comment><USER2> Years ago when I did .NET stuff, I had a framework that implemented Given, When, Then and And as properties on a 'Scenario' test superclass that just returned this. I then created 'Steps' files that grouped relevant extension methods together with names describing a step in a BDD example. That allowed tests like these:

        [Test]
        public void ShouldDisplayBar()
        {
            Given.AFooWithId(1);
            And.ABarWithText("Baz");
            When.TheUserGoesTo("/food/show/1");
            Then.TheyShouldSee("Baz");
        }

The nice thing being you get nice intellisense and easy reusability and refactoring with the steps.

All that said, BDD isn't just changing the names of arrange, act and assert, it's more about coming up with a common language that lets you work as a team to describe examples of your system's behaviour. And the chances are, if you're just doing it one of these ways that is focused purely on code and syntax, you're not involving customers anyway.

</comment><comment><AUTHOR> It can be installed from nuget - Helpful.BDD</comment>


Lyft Says It Will 'Evaluate' Its Partnership with Didi Chuxing After Uber Deal - <AUTHOR> http://www.marketwatch.com/story/lyft-says-it-will-evaluate-its-partnership-with-didi-chuxing-after-uber-deal-2016-08-01 <comment><AUTHOR> Pulling some information from Lyft's Blog about Partnerships:

1\. Didi Partnership Announcement (9/16/2015) - [https://blog.lyft.com/posts/lyft-didi](https://blog.lyft.com/posts/lyft-didi)

2\. Update on International Partnerships (6/13/2016) - [https://blog.lyft.com/posts/an-update-on-our- international-p...](https://blog.lyft.com/posts/an-update-on-our- international-partnerships)

Also, The Verge's article: [http://www.theverge.com/2016/8/1/12341986/uber- didi-china-ly...](http://www.theverge.com/2016/8/1/12341986/uber-didi-china- lyft-gm-self-driving-car)</comment>


Ask YC: To open source or not, that is the question - <AUTHOR>

We would be done building our app in around 15 more days. And I can't decide whether open sourcing this makes a good idea.
What is the app:
We plan to build an ERP for SMEs, which has the essential erp functions, common to all. Right now we are building a project management/tracking applications suitable for teams between 20-200 in size.
Why I should open source it:
1. We are just two people, so there would be bugs. Given enough eyeball all bugs are shallow.
2. User testing, like all startups we are poor. Hiring a full time QA is difficult. We can only do so much QA ourselves.
3. Publicity, Well we sure can use that.
Why we should not open source it.
1. This is not a hobby thing for me. We left our jobs to work on this, of course, because we want to make money out of this thing. Open sourcing makes difficult to monetize this. There is only so much you can charge for services.
2. This is not something which is going to be used by the end users, or is not a library. So the chances that we would get open source contribution in this seem far fetched.
I am thinking on the lines of dual licensing, where we release this under GPL/similar modified license if it needs to be used for less than say by 25 users or in a open source project, but ask that a license be bought when there are more than 25 users. <comment><USER2> I may get down-modded for this, but I suggest not releasing it given the scenario you described. I love open source, but most open source contributions are made for joy of creation, pride, fame, sometimes naivete (by assuming you'll get the benefits described) and finally, money. Many projects are created because they're ancillary to some business need--like SUN paying Charles Nutter to work on Jruby. These motives don't really apply to your case, and the benefits you list don't materialize for most projects. It costs you time to open source things properly and limits your options. Rightly or wrongly, some companies will be reluctant to buy you with your code released.

Statistically, most open source projects do not gain traction, significant users, free features, or free QA. They sit there on SourceForge, unloved. I wish I had a citation here. Try browsing SourceForge projects. Publicity-wise, consider how many you've heard of. It seems likely you'll get little in return for open sourcing. It's like a dance, and there's a decent chance that Baby will be put in a corner.

<comment><USER3> I would second this. We currently run an open-source project (distributed storage) and commercial venture based upon it, but the open-source was the driver done because we thought that it was an important problem to solve and that it would be worth more as open-source than as a proprietary product. Our commercial venture arose by choosing one specific application of the code and building a business to address it. Note that our open-source project is something that we (and others) have worked on independently of the commercial venture. The community is separate (though aware) and drives the open-source project in directions that we did not expect.

</comment></comment><comment><USER4> Hard choice. One other factor you didn't mention about is community. In releasing your code to a wider audience, you are trying to create a community around your code. Community requires support; a wiki/bug-tracker to post problems and solutions, a mailing-list to support conversations and questions, a robust source control server to host your code, and a understandable release process to push out new versions.

Also, you will need to write a lot of documentation about your code, how to install, how to extend, etc. You will probably want to write a FAQ first to fend off first-time newbie questions about installation, management, etc.

You will also have to make conscientious decisions about what versions your software will run on, and which requests you will support -- we run a stack on Tomcat 5.5 with Java 5, for example, but we have gotten X amount of questions about support for Java 6, JBoss, JRun, etc etc etc.

My two cents: it's rough to get other people involved. The good karma for open-sourcing can be more trouble if you are not organized about how to handle and attract new members to your project.

</comment><comment><USER5> First off - don't let me put you off - you are managers of your own destiny but...

I am not sure that SMEs do a lot of formal project management - they might just possibly buy a copy of MS Project but that's as far as it goes in the main. I am sure there is a generic ERP market among SMEs but those folks are careful with their money - spending it in areas that are more central to the areas where they make money. One problem area is going to be the sheer diversity of the market place - large corporations are remarkably similar (hence the wide adoption of SAP perhaps) - but SMEs tend to run leaner and making more use of individual skills - thus shaping their operational procedures around people rather than corporate "this is how it's done". I would look for a vertical market to tackle first while striving to make each ERP component as generic as possible. Good luck anyway.

<comment><AUTHOR> They do not right now, but if we provide enough value above what can be achieved with MS project, why would they not be willing to part with their money? (Ah, or so I wish :) )

</comment></comment><comment><USER6> Let me see if I've got this right: you want to open source your code so you can get a bunch of free bug fixes, QA testing, and positive press, and what you're offering in exchange is a crippled, deployment-size-limited version of your package for small teams and other open source projects?

Thanks, but no thanks.

It sounds to me like you simply don't have the resources you need to develop your system, and want to get a bunch of free labor from the OSS community without really opening your code.

If you're going to go open source, you're still going to need folks to do documentation, QA, and marketing. You're still going to have to plan and manage releases. Hell, you're going to have to fight an uphill battle convincing some managers they should pay you for _anything_ when the base product is "free."

Plus, you're going to have a community just itching to fork your product and put you out of business at the first sign of you putting your bottom line ahead of their interests.

Do yourself a favor, and either scale back the scope of your project so it's something you _can_ handle, or find the resources to staff up and finish the damn thing. Then decide if you want to open source the code base. Just don't expect something for nothing.

</comment><comment><USER7> How's it different/better than something like OFBiz or one of the other open source systems? What's your edge over all the other project management things out there?

With open source, you're essentially foregoing any revenue from licensing in the hope that you'll make money consulting, unless you do something like have a GPL library where people will pay to be able to link to it in proprietary apps.

I'm not entirely convinced that the world needs yet another project management thing. I think it had either be really good and far better than what's out there now, in which case you can charge for it, or... perhaps another direction is best?

PS: YC's formatting isn't very advanced.

<comment><AUTHOR> > I think it had either be really good and far better than

>what's out there now, in which case you can charge for it

That is what we plan to do. The idea is that over time, we will have a full service, not just a project management. A hrms system, a payroll system, a project management system, which all tie together. That is what makes big ERPs be able to charge such high licensing fee. This is what we plan to bring to SMEs

<comment><USER7> To be very blunt: I don't know, I'm just not convinced that two guys are going to go up against even existing open source systems... Not impossible, but I don't see it as easy unless you really have something up your sleeves.

</comment></comment></comment><comment><USER8> Open source it for non commercial use. Don't expect much benefit from open sourcing at first. It takes patience to build a decent community around an open source project.

While most open source projects never gain any traction, plenty of companies have thrived with an open source model. (Not all end up like MySQL though)

<comment><USER7> If it's open source, you can't dictate what people do with it. That's part of the definition. You could use a license like the GPL that means they're not going to take it proprietary, but it's simply not open source if you can't use it for what you want.

<comment><USER8> GPL only covers source code. It doesn't cover other copyrighted works (like help manuals, logos and other text) or allow users to user your trademarks. So while the source code is open you only license use of all the other material for noncommercial use.</comment></comment></comment>


KDE Connect 1.10 released - <AUTHOR> https://nicolasfella.wordpress.com/2018/11/04/kde-connect-new-stuff-0x3/ <comment><USER2> This is an astonishingly useful tool -- I've been using it for years, and I'm always impressed that it's well maintained and getting new features.

From the way my music player (Clementine on KDE) pauses for a call, incoming or outgoing - the media controller from the phone, sms pop-ups on the computer, the file browser and two-way sharing, clipboard mirroring, and a nifty 'find my phone' feature (your computer triggers a phone ring).

There's a few features I've not used but are pretty cool to show off to 'other OS users' \-- use the phone as a trackpad, triggering 'run commands', etc.

<comment><USER3> Yes, that pause on call feature is pretty cool. If you have the plasma- integration for your browser [1] installed it can even pause your Amazon Prime Video (or Youtube, ...). Assuming you are watching a video on the Amazon website and your phone rings, the video pauses automatically. As soon as the call is over, the video resumes automatically :D

Sadly Spotify does something to not let the browser detect how to control the player :-/ (it works on many websites, just not on spotify.com)

[1]: Firefox: [https://addons.mozilla.org/en-US/firefox/addon/plasma- integr...](https://addons.mozilla.org/en-US/firefox/addon/plasma-integration/)

[1]: Chromium: [https://chrome.google.com/webstore/detail/plasma- integration...](https://chrome.google.com/webstore/detail/plasma- integration/cimiefiiaegbelhefglklhhakcgmhkai)

<comment><USER4> Regarding Spotify : I use its desktop client (an electron-like app, but using their own implementation of a browser, if I got this right), and it does properly work with Connect, as it implements the standard media player controls on desktop.

I have an android wear, this allows me to play/pause, next/previous track volume up/down spotify running on my desktop from my wrist, this is super cool (although to be fair, you can also do that with the spotify app on mobile, used to control spotify on desktop).

[https://www.spotify.com/fr/download/linux/](https://www.spotify.com/fr/download/linux/)

<comment><USER5> Unfortunately you can't install tracking protection for their desktop app, so you'll have to mess with a Pi-Hole or modifying your hosts file or something...

</comment></comment></comment></comment><comment><USER3> IMHO, KDE Connect is currently one of the best parts of KDE (together with Dolphin and the Nextcloud integration). I use it for a few years now and while my there are only a few use-cases I use regularly, I am always delighted to have it when something unexpected happens.

For example, my phone has its own place on my desk and there are just a few places where I put it when it isn't there. A few weeks ago it wasn't on the desk and not in the other places where I searched for it. Calling it from another phone didn't help because it was late in the night and my phone switches to silent mode for the night automatically. But KDE Connect was the hero of the day, as the 'ping' feature works even if the phone is in silent mode :-)

Looking forward to more awesome KDE Connect versions.

<comment><USER6> The best thing about kde connect is that it's an open protocol so i has been implemented in other desktops (eg: gnome made gconnect and it works with kdeconnect android)

</comment></comment><comment><USER7> If anybody here is using gnome instead of KDE, there is "GSConnect" that allows you to use your current desktop environment with KDEConnect on your android mobile phone.

[https://github.com/andyholmes/gnome-shell-extension- gsconnec...](https://github.com/andyholmes/gnome-shell-extension- gsconnect/wiki)

<comment><USER8> In a similar vein, I am not on Gnome or KDE but have been using the basic kdeconnect functionality, such as sharing clipboard and transferring files, through kdeconnect-cli quite happily. It comes with the standard kdeconnect installation I believe.

[http://manpages.org/kdeconnect-cli](http://manpages.org/kdeconnect-cli)

<comment><USER9> still, on my xubuntu system

        sudo apt install kdeconnect --no-install-recommends

wants to install 101 packages :(

<comment><USER10> That's the joy of Qt for you.

It shouldn't be so bad though, the whole set of packages is probably a couple hundred of MB, IIRC.

</comment></comment></comment></comment><comment><USER11> KDE Connect is by far the most useful tool I have discovered in the last few years. If you use Linux and Android you should give it a try!

My personal highlights:

\- shared clipboard (share urls between devices, write long text on PC and then copy it into a messenger, ...)

\- very easily share files (and whole folders) between devices

\- music on PC stops when someone is calling

</comment><comment><USER12> I've been using this app for several months and it's great. I can see on my desktop when I get messages and reply or see calls and I can control youtube in firefox from my phone and a lot of things in between via the Plasma integration ad-on for firefox.

It's all very seamless and it "just works"!

</comment><comment><USER13> KDE Connect is just one of the greatest tools ever. What I really did not expect is that it worked out of the box without any shenanigans to set up. Great job!

</comment><comment><USER14> I miss my Android phone because of KDE Connect. I wish it was available on iOS.

<comment><USER15> It seems to provide a lot of the functionality of macOS Continuity[1], and then some. It's a shame we can't hook into that stuff on iOS, since it's already capable of doing a lot of this.

1\. [https://www.apple.com/macos/continuity/](https://www.apple.com/macos/continuity/)

<comment><USER16> The Apple "experience" includes lots of little niceties that only work with Apple software running on Apple hardware (or, for those who live dangerously, a "Hackintosh").

The touchpad on my 2013 MacBook Pro doesn't click properly anymore, and I don't much care for the newer models, so I ended up buying a ThinkPad X1 Extreme (running Linux). Unfortunately, it's meant giving up lots of little things like iMessage integration, AirDrop, Continuity, synchronization with iCloud, etc.

Yes, several of these features have alternatives that _do_ work nicely on Linux, but the experience usually isn't as seamless, especially on the iOS side. And while most of the bits above could probably be reverse engineered, I can totally understand why open source developers (many of them volunteers) might not be enthusiastic about spending their time improving compatibility with a closed platform that won't reciprocate.

</comment></comment></comment><comment><USER17> what is kde connect? [https://community.kde.org/KDEConnect#What_is_KDE_Connect.3F](https://community.kde.org/KDEConnect#What_is_KDE_Connect.3F)

</comment><comment><USER4> Excited to see Connect being actively developed. It's already incredibly useful for me, but I can see it reaching a whole other scale when librem5 phones will be out.

Something I wonder more and more often, lately, is if Connect should not be responsible to manage notifications.

I've seen that a rewrite of the notification system is on the table [1] to be on par with android's one, and indeed, I would love to have grouping and persistence in my notifications (I currently put the notification widget on my desktop ; it's good enough, but I need to click it to see notifications history and it quickly gets floody, without grouping).

The reason I would love to see it being part of Connect is to make it easy to handle shared notifications between several Plasma installs (currently, I spend a long time tweaking the send and receive notifications plugins in Connect, this works great with two devices, but starts getting ugly with three). I can see this being a killing feature, on Plasma mobile.

I guess users who don't use Connect wouldn't love that much to have a dependency on it for their notification system, though. But since the discussed rewrite seems mobile focus (IIUC), both systems could co-exist : the classic desktop style notification system currently implemented, and the mobile friendly one in Connect, with an option in system settings to select which one we want to use.

[1] [https://community.kde.org/Plasma/Notifications#Crazy_Ideas](https://community.kde.org/Plasma/Notifications#Crazy_Ideas)

</comment><comment><USER18> I'm tempted to get another computer just to give KDE another chance. VMs never really do it justice.

Are there any recommended hardware manufacturers that are known to work best with it? Most of the typical Linux-centric sellers seem to ship Ubuntu or some other hacked Gnome version, and I'd like to reduce my install effort to the very minimum.

<comment><USER19> Macbooks are always a sure thing. They don't have perfect support out of the box, there's always some annoyance, but their popularity and uniformity means that there's always a workaround available on the Arch Wiki. You could say the "community support" is top notch.

<comment><USER20> Is this still true for the newer (i.e. "touchbar") models? From what I've heard, it's very hard to get Linux working well on those, and that even things like the wifi card aren't supported yet

</comment></comment></comment><comment><USER21> Meh, first time I heard about this and of course I wanted to try it. But (as I could have imagined) it says it will only discover other devices on the same local network - but my mobile is in my work's guest network, whereas my laptop is in the internal network. So yeah, this won't fly unless I can think of some VPN trickery :(

</comment><comment><USER22> Does anyone have a quick and easy way of getting this running on OSX, or can suggest an alternative?

Currently trying to get this to work via Craft ([https://community.kde.org/Craft](https://community.kde.org/Craft)) and hoping for the best meanwhile

<comment><USER23> Currently I'm using Soduto [https://soduto.com/](https://soduto.com/) and it's working ok, although only basic functionality is covered.

</comment></comment><comment><USER24> I forgot about this tool ages ago and recently I was wishing I did something that this does perfect.

</comment><comment><USER25> Anyone got this working on Arch with i3?

<comment><USER26> I have gotten it to work on NixOS with it. I've read that it also works with Arch.

Make sure kdeconnectd is running, that your appindicator tray bar is working, and that your devices are on the same network

</comment></comment><comment><USER27> I know this is a personal blog, but this is a good time as any to remember a few points when doing a release announcement:

\- describe the project

\- link to it

See: [https://lwn.net/Articles/397441/](https://lwn.net/Articles/397441/) for more guidelines.

Here's a link to KDE Connect's description:

[https://community.kde.org/KDEConnect#What_is_KDE_Connect.3F](https://community.kde.org/KDEConnect#What_is_KDE_Connect.3F)

And Play Store listing: [https://play.google.com/store/apps/details?id=org.kde.kdecon...](https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp&hl=en)

</comment><comment><USER28> I know my message won't be well received here but I wish KDE had a leadership with a pair of balls that could say to developers "stop losing your time on these side projects and polish the core desktop and libraries". There are so many pet projects in KDE while the desktop rots in its instability and lack of polish...

<comment><USER29> You seem to be having some grave misconceptions about

1\. How open source projects work, 2\. How polished and stable KDE already is, and 3\. How useful piece of software KDE Connect is.

<comment><USER28> 1) Of course you can't force contributors to do anything but there are ways: tell them repeatedly there are bugs that need fixing, refuse to give them infrastructure to host their pet projects and make it clear they are not official and can't bear the KDE trademark, etc.

2) Don't make me laugh.

3) I don't even own an Android so I could never know. And that's not the point.

I know this is just some ranting and nothing will change. KDE went down a hole a long time ago when they lost their funding. But I'm sad to see the things that are happening to it. KDE does not deserve to die like this.

<comment><USER30> KDE just recently received a 300k donation [1].

You seem to remember KDE from the 4.x dark times. Give it a try, it has vastly improved in the last 2 years.

[1] [https://dot.kde.org/2018/10/15/kde-ev-receives-sizeable- dona...](https://dot.kde.org/2018/10/15/kde-ev-receives-sizeable-donation- handshake-foundation)

</comment></comment></comment></comment><comment><USER31> "pauses for a call, incoming or outgoing"

This is a pretty standard feature on most mobile operating systems. It'd be like saying "I like the how I get a notification when I receive an sms"

<comment><USER32> Does it also pause youtube (or any other in browser multimedia) or other platforms?

<comment><USER33> It does as long as the application handles the standard events regarding play/pause.</comment></comment></comment>


Call OCaml from Objective-C, run on iOS, code sample and build steps - <AUTHOR> http://hyegar.com/blog/2016/01/23/calling-ocaml-from-objective-c-on-the-iphone/ <comment><USER2> OCaml is a much more interesting language to me for writing iOS or any other app than Swift is.

<comment><USER3> OCaml support on iOS is really cool but it needs more tooling and a critical mass in community size before it'll gain any kind of traction.

Many developers still won't use Swift, for instance, because they think it's not ready for production yet. And there have been over three dozen Swift books published in 18 months: [http://www.h4labs.com/dev/ios/books](http://www.h4labs.com/dev/ios/books)

<comment><USER2> There are a number of issues with Swift, though I'm sure they will improve:

1) No backwards compatibility: developers must keep rewriting their Swift code with each new Swift release, since syntax and features often change.

2) Swift's interaction with C++ is a non-starter, and many, many apps use C++.

3) Some C APIs are still quite difficult to use from Swift. Objective-C, being a strict superset of C, makes it very easy to use Core Audio, for instance. OpenGL interop can also be a bit frustrating.

4) Swift's "functional" idioms are weak and poorly implemented. If you can't provide a true functional backdrop to these features, they probably shouldn't even be in there. Coming from a real functional language, you're in for nasty surprises in Swift if you casually use higher-order functions all over the place, because there is a lot of copying going on.

5) Swift's performance is definitely not, shall I say, "swift," though hopefully that will eventually improve.

6) Poor and confusing compiler errors.

I actually realize now that I could go on all day about this.

<comment><USER4> I'd say most of your criticisms are unimportant nitpicks from a pragmatic perspective (i.e. from the perspective of: I work on iOS apps and I want to get. things. done.).

 _> 1) No backwards compatibility: developers must keep rewriting their Swift code with each new Swift release, since syntax and features often change._

Nobody cares. We are very used to this. If you program iOS apps for a living, you know this has always been the case. Every new version of Xcode and iOS breaks code. With Cocoa and CocoaTouch, the language can at times feel like nothing more than a way to call the ever-changing SDK APIs.

It doesn't matter if your app is written Objective-C (a language that also continues to change every year), Swift, Ruby-motion, whatever... it'll break on the new Xcode. If not, you think something is wrong and pray the issue does not arise later.

Anyways the syntactic and semantic updates to Swift are automated fairly well, anyways, so this not really a major pain point IMO.

 _> 2) Swift's interaction with C++ is a non-starter, and many, many apps use C++._

True, many apps use C++. While, I, personally, would _love_ to see C++ intro arrive before Swift 4.0 or 5.0, it's a feature that for all practical purposes is a luxury that we can live with out.

Use an Objective-C wrapper, then call it from Swift. All C++ that is called in the UIKit layer should be wrapped in an Objective-C API's anyways (UIViewController.mm is harmful!), so no big deal. The exception to this is, if you were trying to write an app in pure Swift. In that case, using C++ breaks the purity anyways, so you might as well use Objective-C wrappers.

 _> 3) Some C APIs are still quite difficult to use from Swift. Objective-C, being a strict superset of C, makes it very easy to use Core Audio, for instance. OpenGL interop can also be a bit frustrating._

Support is definitely good enough. Again, if you need more you can (and should) use both languages. Swift was designed to be used in an Objective-C codebase.

 _> 4) Swift's "functional" idioms are weak and poorly implemented. If you can't provide a true functional backdrop to these features, they probably shouldn't even be in there. Coming from a real functional language, you're in for nasty surprises in Swift if you casually use higher-order functions all over the place, because there is a lot of copying going on._

I disagree. I believe the functional constructs add a ton of utility to the language. The key is to understand how they were designed to fit into the langauge. It helps to be a bit of a language lawyer, but the compiler can optimize away copied value types in a way that references cannot be optimized. WWDC spoke a lot on value types, functional programming, and their possible design implications in Swift 2.0

see: [https://developer.apple.com/videos/play/wwdc2015-408/](https://developer.apple.com/videos/play/wwdc2015-408/)

and: [https://www.youtube.com/watch?v=av4i3x-aZbM](https://www.youtube.com/watch?v=av4i3x-aZbM)

and: [https://www.youtube.com/watch?v=vgK8jaf8nlk](https://www.youtube.com/watch?v=vgK8jaf8nlk)

 _> 5) Swift's performance is definitely not, shall I say, "swift," though hopefully that will eventually improve._

Swift is more than fast enough for applications development. Once an alternative to ARC rises (see comments bellow), it will be a competitor for real time systems.

ARC guarantees that there will be no pauses. With a language like go, you are blazing fast until the GC pauses everything. With ARC trade raw execution speed for a consistent and stable speed with no pauses or fluctuations in performance. This is because ARC is static. The retain/release code is injected at compile time. So while there is a performance overhead for allocating and deleting on the heap, there is no pause. To avoid the overhead, you can use structs instead of classes and protocol extensions for polymorphism.

 _6) Poor and confusing compiler errors._

The language was released in 2014. The error messages are being actively worked on. They were vastly improved with 2.0.

EDIT: to be fair, you did say "I'm sure it will improve".

<comment><USER5> > The language was released in 2014. The error messages are being actively > worked on. They were vastly improved with 2.0.

Well, "Segmentation Fault" hasn't really improved, and it's reasonably common when type inference in closures breaks down.

<comment><USER4> I'm unfamiliar with this situation. Is this truly a common problem? I'd love to see a source code example to test.

<comment><USER5> Pretty consistent for me in projects that are:

\- Sufficiently large

\- Contain a closure that contains a compiler error

\- Which the compiler tries to work around via type inference, causing another error

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> Think this is related to one of Edgar's blogs that was discussed yesterday:

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


RedHat is hiring to make Linux run better on laptops - <AUTHOR> https://blogs.gnome.org/uraeus/2016/08/12/want-make-linux-run-better-on-laptops/ <comment><USER2> As much as I like Ubuntu, I have a significantly higher level of trust in Red Hat to get this right for some reason. Maybe it's just confidence in the company's core principles.

I've hit a point where I'm ready to move on from my Macbook Pro after about 10 years and I've been looking at Linux laptop options. It's mind boggling that it's so hard to find good options.

Everything seems to revolve around "get a Windows laptop and wipe it" or "buy some flavor of old Thinkpad" with warnings about EFI and compatibility. Then there are company's like System76 who have what looks like a good offering on the surface but I keep seeing threads about bad experiences with them.

If I could order a laptop direct from Red Hat I'd do it without hesitation.

<comment><USER3> You don't need to buy an old ThinkPad; current-generation ThinkPads work fine, as long as you avoid nVidia GPUs. All the other hardware (including power management) Just Works.

<comment><USER4> Is it really very difficult to get nVidia GPUs working with linux?

I wanted to buy a laptop with a GPU for CUDA experiments.

I was looking at Lenovo Yoga 710 (14 inch with nvidia gpu). Am I going to have a bad time dual booting a linux distribution?

<comment><USER5> For desktop PCs, not at all, Nvidia GPUs are very easy to get working and will give the best performance.

In modern laptops, you usually have the complication of 'optimus' which allows you to switch between the onboard Intel graphics and the Nvidia GPU. This can be a bit awkward to get working, but it's improved recently. I've had plenty of issues getting it working right on Windows too.

<comment><USER6> On my T530, there's a firmware option to set the graphics to discrete-only, integrated-only, or optimus. The downside to discrete-only is the power usage. The downside to integrated-only is that the displayport won't work.

All three work great in Windows of course. For Linux, integrated-only is best, followed by discrete-only, and I've never had success with optimus.

<comment><USER7> I have a W530 that allows you to set it the same way. In my experience, you are _ALWAYS_ better off to pick one or the other and leave it there. Some folks have had success with Bumblebee [0], however.

It's my understanding that newer Thinkpads don't have the BIOS option to switch and that this is much more of a PITA to get working.

[0]: [http://bumblebee-project.org](http://bumblebee-project.org)

</comment></comment></comment></comment></comment></comment><comment><USER8> My ex colleague is now at Read Hat, and he told me one anecdote. The card reader of his ThinkPad didn't work. He created a bug in the bugtracker, got personally contacted by the guy who apparently does card reader stuff, and a day later he had a kernel, where the bug was fixed.

<comment><USER9> > who apparently does card reader stuff,

You mean the guy wrote codes for card reader or the card reader manufacturer? :)

<comment><USER10> > I've worked at RHT and based on the turnaround, it's the guy that writes > codes for the card reader. I'm still impressed but not surprised by the > level of service he got. Red Hat has a great hacker culture.

</comment></comment></comment><comment><USER11> RedHat seems to be trying to make their OS more accessible and mainstream friendly through their $0 developer license [http://developers.redhat.com/blog/2016/03/31/no-cost-rhel- de...](http://developers.redhat.com/blog/2016/03/31/no-cost-rhel-developer- subscription-now-available). Not that there's anything wrong with CentOS. So it's cool that effort extends to commodity hardware, too.

Sample size of one but as part of working down the Redhat certifications track I purchased an Intel NUC [http://www.intel.com/content/www/us/en/nuc/nuc-kit- nuc6i5syk...](http://www.intel.com/content/www/us/en/nuc/nuc-kit- nuc6i5syk.html) for a low power lab machine; it's really just a laptop squeezed into a cube but everything I've needed to use it for works fine. Admittedly I have not tried wireless or bluetooth.

Hopefully that means laptops built off reference Intel designs will also Just Work. Interestingly NUCs are showing up now in the Hackintosh community because despite moderate specs next to a modern desktop, they're still competitive with Apple's current hardware. No doubt Apple will refresh this year; they seem to be overdue.

</comment><comment><USER12> Fedora's bleeding-edge kernel support usually means better hardware support for newer laptops, which is great. One potential drawback, however, is the decision not to include any non-FOSS drivers in the installation package. I completely understand why they do it, but it throws a wrench into the idea of loading Linux onto a laptop and having everything "just work".

For instance, getting the Broadcom wifi card that comes with my Dell XPS 13 to work on Fedora has been such a pain in the ass (proprietary driver only) that most people recommend tearing it out and replacing it with an Intel card that has a more Linux-friendly driver.

If Redhat really wants better Linux penetration in the laptop world, at some point they're probably going to have to make a decision to either go the Linux Mint route and include proprietary drivers by default, _or_ try to engage some of the hardware manufacturers to open-source their drivers.

<comment><USER13> Laptop manufacturers could also just avoid this problem by using modems that don't require proprietary drivers or firmware, like those from Intel or Atheros. This is an entirely avoidable problem.

<comment><USER12> I debated calling out the manufacturers as well, but it seemed unfair with the example of my Dell XPS 13. The laptop is installed with Windows by default, and the Broadcom card works just fine there. The XPS 13 Developer Edition (which is pre-loaded with Ubuntu) actually takes your advice and packages an Intel wifi card instead.

Certainly they can try to push the "Sell laptops with Linux preloaded and make sure everything works" approach (because let's face it, that's pretty much the only reason why Windows laptops are pervasive), but if you're trying to increase the number of people using Linux, I'd suggest that they might get better results as the thing one uses to repurpose their existing laptop.

<comment><USER14> Why didn't you buy the developer edition?

<comment><USER12> Because I saw someone selling a barely-used i7/8GB/512gb SSD of the non-dev edition on Craigslist for $800. Similar specs new would've been around the $2k mark.

Additionally, I was fine running Windows 10 at first and doing all my dev work in a Fedora VM, but the Anniversary Update has pissed me off considerably, leading me to want to migrate to a bare-metal Linux installation.

<comment><USER15> Just curious, what pissed you off about the Windows 10 Anniversary Update? That update hasn't made it to my PC just yet.

<comment><USER16> I think what pissed of many users was that the update messes with your settings once again, and that Cortana cannot be disabled anymore without messing around in the registry. Another point was that they forgot to turn off some debugging option they had presumably activated for their developers which opened up a big vulnerability.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I always had both Windows and Linux (Arch) on every computer in my house (now only a few of them have Windows because I use Windows in VirtualBox in Linux). It seems to me that wifi speed in Linux is always slower than that in Windows. Drivers are the culprit? If you want people to use Linux laptops, I think you should make them really really fast (esp. at boot) so that everybody has to wow when they just try it. No need to use gnome or kde, openbox is fine as long as it's not ugly. Then wifi spped must be faster or at least as fast as in Window. Next is printing. In summary, most of the issues are related to drivers.

<comment><USER18> >. It seems to me that wifi speed in Linux is always slower than that in Windows.

Firmware. Install it.

<comment><USER19> It is possible to use wifi driver without firmware?

</comment></comment></comment><comment><USER20> I have a lot of mixed emotions about RedHat and to what degree they are a net positive or negative, but I'm glad someone is taking this on.

It was so frustrating for me that the 'Linux on the Desktop' effort started right after the numbers showed that everyone was trading in their desktops for laptops.

I wanted to program ON my laptop, not program my laptop.

After spending almost 18 months trying to get all of the hardware on my laptop to work with linux (this included swapping out the wifi card and learning ACPI scripting so I could cobble together partial fixes from four other sources, and learning Crusoe CPU registers to contribute a power saving fix back to Transmeta, both things I have absolutely no interest in whatsoever), I said screw it and bought a Macbook. I'm on my fourth now, and aside for some difficulty installing command line tools, it's entirely removed hardware as a source of stress and procrastination.

</comment><comment><USER21> Please focus on reducing and avoiding regressions in the Intel gpu stack. It's gotten pretty bad in the last two years. Major regressions were introduced beginning with kernel 4.2's atomic modesetting changes, across the board.

<comment><USER22> Try removing the Intel DDX driver and using the default modesetting driver. It seems to be far less buggy for most people.

<comment><USER21> Two issues with that, the atomic modesetting regressions are in the DRM part. Also, I've tried the generic modesetting X11 drivers, and that one's very bad, does heavy tearing and is unusable on my machines. The best setup right now is to use the intel ddx with TearFree enabled plus vsync forced with compton. If you don't enable TearFree plus vsync via glx via a compositor, there will be heavy tearing.

New issues since Arch Linux's update to Mesa 12 are some weird drawing bugs that surface as flickering of the content for a few cycles (redraws) a couple times during the day. It's not screen flickering. The content is sometimes displayed partially and then, say, you type something, content flicker on each event for a few redraw cycles until it cures itself. If I had to guess, I'd guess something in mesa 12 and/or current X11 intel stack is very buggy.

How bad is this with the binary nvidia drivers? I couldn't use Wayland with that, but if there's zero tearing with nvidia, there's less incentive to use Wayland anyway.

<comment><USER22> Anecdotally most people seem to have a much more stable experience with modesetting, distros like Debian have even been promoting over Intel for a while. I use Arch myself and have had no issues.

Also DRI3 is a far better solution than the various TearFree hacks, less performance overhead, better integration with the compositor, and not hardware specific.

Nvidia drivers don't support DRI3 but they have their own double compositing hack that work as well as any other.

<comment><USER21> No, DRI3 is default in Arch and with that there's also heavy tearing, and I must enable tearfree plus vsync.

DRI3 actually has a weird bug when opening a video with mpv, where you can watch for a split second how a small rectangle is resized to the desired video window's size. This doesn't happen with DRI2 or Wayland.

All of this is most likely very GPU-dependent, so Debian cannot make a decision like that with confidence. I understand that the simple modesetting driver relies on Mesa and there's no UXA or SNA code which can introduce bugs, but I can assure you that when I tried the generic modesetting driver, it was one big tearing party.

BTW, DRI2 and DRI3 in Glamor mode is pretty much the same as the generic modesetting driver, because the SNA code isn't used at all.

I've been tyring my best to migrate to Wayland compositors, but Xwayland integration is still too buggy. But it might be an easier solution than messing around with xorg.conf.

</comment></comment></comment></comment></comment><comment><USER23> Wouldn't be nice if there was a universal driver that you could use upon any operating system that supported universal drivers.

Alas not aware of any initiative or indeed reason that such drivers could exist, even in binary blobs it would be a step forward.

<comment><USER24> There is UEFI Byte Code (EBC) which at least in theory can be used to write drivers. [http://www.uefi.org/sites/default/files/resources/EBC_Driver...](http://www.uefi.org/sites/default/files/resources/EBC_Driver_Presentation.pdf) Anecdotally, cards come with EBC drivers which flat out don't work.

There was also Forth Fcode used in Open Firmware. It was never widely adopted.

Basically any universal driver framework is going to be compromised in some way that you won't like. Either it'll be too slow because it cannot use specific features of the operating system. Or it will annoy OS developers by tying them to an ABI which they don't want to support forever. Or (like EBC) it won't be widely supported and/or won't work at all because in reality no one cares about this.

</comment></comment><comment><USER25> My main machine is an oldish ThinkPad T420s. It runs Fedora 24 flawlessly. Sadly not many machines seem to run Linux (any distro) perfectly. Part of the reason I haven't upgraded to a newer machine is because this machine _just works_ and I am very lazy so trying to get a newer machine to run as well is more work than I care for. It isn't like performance has improved massively since SandyBridge.

<comment><USER26> I have a t420s also. In fact I bought a second as a spare. With 16gb ram and ssd it is a great machine.

The one thing I love about it that I can't find on any new laptops is that all the ports are on the back; power, Ethernet, displays USB etc. I can show up at a plant and plug in to the network and power and have a mousepad beside the laptop keyboard and binders and notebooks on the other side without getting tangled up in cords. For bigger stays at a site I bring a 27" monitor too but still no cords out the side. No new laptops have all ports on the back!!

<comment><USER25> YES! I love that also. I can deal with power on the left but when the hell do so many device makers put the damn power on the right side where my mouse will be?! The only ports I want on the side are USB and only on the left side please.

</comment></comment></comment><comment><USER27> Is RedHat interested in contributing to Qubes, which uses Fedora? This would help advance the state of the art in desktop security and seamless UI compositing.

</comment><comment><AUTHOR> While this is indeed a great news, Are just two people enough for the wide range of laptop and devices out there in the wild ?

What i would really love to see is a cross distribution effort in the same direction : People from the main distribution coming together, identifying the main experience pain point a fixing them upstream.

I really think there is an under served (from both hardware manufacturer and distros) market of people who wants a better linux desktop/laptop experience. But until someone figure out a way to monetized that (like linux is on the server side), it will be hard to build on the desktop side the same kind of momentum that linux is enjoy on servers.

<comment><USER28> > Are just two people enough for the wide range of laptop and devices out > there in the wild ?

because it is RedHat i'd guess they would target enterprise deployments and that would allow to focus on narrow set of hardware. Making good on those would allow the stuff to trickle down into the open wilderness.

</comment></comment><comment><USER29> better (10 years) late than never, right? :D

<comment><USER30> I am now close to 11 years at Red Hat and I have always used Red Hat Enterprise Linux on the various laptops the company gave me. So we're not late. We're just ramping up a bit more in this space :-)

<comment><USER31> While I personally run Arch, I recognize that many of the projects that make the Arch experience so nice are supported by Red Hat. (Not least because you have Lennart on the payroll.) Thanks for what you do!

</comment></comment></comment><comment><USER32> Power Management should be top priority I think.

</comment><comment><USER33> Sounds like RedHat is after [https://bugs.launchpad.net/ubuntu/+bug/1](https://bugs.launchpad.net/ubuntu/+bug/1)

</comment><comment><USER34> Neat! Munich seems like a nice city to live in.

</comment><comment><USER35> Yeah, two people will fix it.

</comment><comment><USER36> This is great, because all distributions will benefit from it eventually, not just RedHat/Fedora. The folks at Canonical, in particular, seem to be very adept at leveraging the work of others for the benefit of Ubuntu.

I would hope these kinds of efforts lead to better collaboration and coordination between the different distros for improving compatibility with desktop, laptop, tablet, and even phone hardware...

...but Unfortunately I don't think we should expect better collaboration and coordination, due to the usual political and quasi-religious barriers between distros.

</comment><comment><USER37> the year of linux on the laptop they said.

</comment><comment><USER38> I'm currently running Gentoo on a T30, T60p, and X1 Carbon (1st gen). For the X1 Carbon I actually switched because Windows 7 was causing periodic freezes. Power managment and drivers are always what is missing, and getting drivers written in a timely fashion is hard. That said, if they focus on a subset of laptops then they could show some major improvements. I do wonder about the old M$ ACPI manoeuvring though, if vendors still aren't documenting features then there will be problems.

</comment><comment><USER39> Please improve GNOME multi-display support anybody.

I have triple monitor setup, GNOME always crashes. I am using XFCE with some success on F22.

</comment><comment><USER40> Welcome back, Red Hat Linux...

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

</comment><comment><USER41> I find the Arch derived distribution Apricity runs very well on my HP Spectre X360

<comment><USER2> Does it handle the pen/touch well? That's a nice looking machine.

<comment><USER41> Not really used the pen on the linux side much but touch works fine. double finger scroll & pinch to zoom works in chrome (but not firefox, or at least I can't get it working). The graphics are fairly snappy with wayland too.

I do have a few annoyances, eg the insert key is shared with prt sc and there is no right hand ctrl key (I remapped "menu" in gnome shell). Actually I do miss my x220 keyboard layout quite a bit :)

</comment></comment></comment><comment><USER42> The problem with Linux on laptops is Linux itself. The notion of Linux on anything other than servers turns most consumers off. Imagine if Android were called Linux Phones instead. It would be a disaster.

Linux should be used incidentally to the device or laptop itself. Or it should be spared for those who really want to know and understand more about it.

I used Linux on a laptop for a couple of years and, mostly, loved it. I hope Red Hat doesn't brand it as such.

<comment><USER43> The fact that you've been downvoted is, I think, actually indicative of a major impediment to Linux's spread. Linux is not a consumer OS. There's no way around this: it is not designed to be user-friendly, it's designed to provide power to power users. Using Linux as a consumer is a miserable experience and the vast majority of people who have a choice will choose otherwise.

Unfortunately, the Linux community has such faith in their project that they're ill at ease with hearing about its failings. It's not clear why they should be, though: Linux is a (relatively) great OS for its intended purposes, and there's no need for it to extend to every possible use case. Linux on the desktop is a somewhat pointless goal, and the community would benefit from embracing that fact.

<comment><USER44> > Linux on the desktop is a somewhat pointless goal, and the community would > benefit from embracing that fact.

Please no. Linux works great on the desktop, even for casual users. I have installed Linux on a few friends old laptops and they've all loved it. Distro's like Elementry, Manjaro, Mint and Ubuntu make it easy for casual users.

There are only 2 problems with Linux on the desktop remaining.

1) Games. A lot of gamers would love to switch but love their games that are currently Windows only at the moment. This situation is slowly improving.

2) The fact that almost everyone uses MS Office. MS works hard at making sure it doesn't follow standards so LibreOffice et al. won't be 100% compatible with it, so most businesses/people just revert back to MSOffice due to compatibility reasons. But if they all just switched to LibreOffice they'd get just as much shit done.</comment></comment></comment>


role names - <AUTHOR>

ok this is a simple question. I am trying to come up with 7 levels of permissions and their respective role names. what I have is:
root, admin, manager, assistant,user,public,none
or
root, admin, publisher, editor ,user,public,none
I'm not too happy with this naming. could you suggest something better that would be understood by most users? This is in the context of database <comment><USER2> Sounds overly complex, offhand.

<comment><USER3> I think you may have a point -- what kind of user (A) has to deal with these roles, and (B) can't understand terms like 'DBA' or 'superuser'? Hopefully you're not just renaming roles already defined by the DBMS?

It sounds like you might not be dealing with non-technical business users here; if you can explain your users a bit better, you can probably get more help.

Otherwise...

If you can get spaces into the names, all to the good. Could just be too restrictive to use one-word role names. Longer names might look like: [database manager, table designer, table manager, writer, reader, banned]

Or use verbs: [administer, manage, design, write, read, do nothing.] This allow you to write friendly messages; "You may #{ role-verb } pages on this site."

If the database holds, say, web sites and pages, try to find actual career names; [database administrator, site manager, web designer, writer, customer, banned]

Hope that's some ideas.

<comment><AUTHOR> Thanks. yes, I could change them to role code, role name, and description. also naming by what they can do is good too. read xxx create xxx etc...</comment></comment></comment>


An new instant note-taking web app. - <AUTHOR> http://scrib.in/

<comment><USER3> Apps like this are funny. Looking through the comments now, it's as if every one of us has implemented one of these (yes, I have too.)

One simple explanation is that they're easy to write, and fill a need we all have. I suspect another reason is that as developers, we notice a problem: "I hate taking notes!" and then instinctively, we try to solve that problem with technology: "I will write a better note-taking app!"

I have no strong feelings about this variant, except that I really think it should size itself to my browser (with a reasonable max-width.) That would make it pretty multi-device friendly (mobile/desktop/tablet), and be basically 0 work on your part.

</comment><comment><USER4> Feedback:

1\. The inability to protect a note or do anything beyond create a note may fit the "simple" mantra it does not create good usability. There are so many essential features (no matter how simple the site is) that are missing. What if someone guesses my URL? What if I don't want anyone else to see my note(s)? I tried signing up and got "Thank You for signing up. We will notify you when user-specific features become available."

2\. The ability to edit other peoples notes can create value with collaboration but it needs to be real time. If I open a note in another tab, edit it then switch back to the first tab and edit it I've just overwritten everything that the other edits contained. This is a big problem.

3\. (Personal opinion with no real justification beyond personal preference) why have you put adverts on this? For me if you're building something that is "simple" and then putting adverts on it seems a contradiction, now instead of a basic notepad I have a basic notepad with a flash advert distracting me from the actual purpose of the site: typing. Yes, if you had large costs to cover it would be understandable, but you don't.

This isn't a bad start, the design is nice but "simple" is not synonymous for "lack of features", it means something is easy to use but has enough depth to make it usable, this doesn't. A very basic revision history is necessary at the very least, although personally I'd use one of the already existing text tools (pastebin, pastie, hastebin) or for collaboration google docs.

Personally I think if you were to expand this into having real time collaboration, customisation of permissions (using the "account" system?) and revision history it would become something worth having bookmarked :)

Edit: seems this is just a resubmit from a couple of days ago, not sure why it seems to match the previous comments, have you made any changes? <http://news.ycombinator.com/item?id=3719057>

<comment><USER5> Based on what you described, I think <http://sync.in/> is the service that may suit your needs.

<comment><USER6> Or <http://piratepad.net>

</comment></comment></comment><comment><USER7> This is similar to <http://notepad.cc> but not better than it.

</comment><comment><USER8> The homepage gets stuck in an refresh loop in some browsers (i.e. IE9). You've missed the 'url=' directive in the attribute:

        <meta http-equiv="refresh" content="0;http://scrib.in/abc123" />

Use this instead:

        <meta http-equiv="refresh" content="0; url=http://scrib.in/abc123" />

Or, better yet, just set 'document.location' (adds history item) or use 'document.location.replace()' (no history item) in script.

See:

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

<http://www.w3.org/QA/Tips/reback>

<https://developer.mozilla.org/en/DOM/document.location>

</comment><comment><USER9> Just for reference I'd like to add <http://substance.io> . It offers some more options for structuring a document and has a lot of export options. Real time collaboration also missing, but seems to be planned.

<comment><USER10> Thanks for the link, substance looks pretty cool I will consider it the next time I have to type up a tutorial.

</comment></comment><comment><USER5> Cool project. You might want to check out the etherpad github repository, if you want to add real-time syncing to your site. <https://github.com/ether/pad>

</comment><comment><USER11> This shit is awesome!! I have been wanting something exactly like this for a while now. I even tried building it myself but then never finished. My use case was communicating with my roommate and this works perfectly for that.

In my opinion it doesn't matter that it doesn't update automatically. Its not for chat or real time collab, its for notes. I totally get it and I think the simplicity is beautiful. Really great work!

edit: didn't notice the add till I looked at comments and turned off abp. Is it even worth the couple bucks?

</comment><comment><USER12> Love the simplicity. I've definitely seem something along these lines before, but this zero login, zero hassle approach should be used a lot more online.

I think this is the tip of the iceberg for ease of use... eventually we'll see everything get this easy, and once _payment_ is on this list we'll finally see online donations for stuff we like comparable to throwing change in a guitar box downtown. Looking forward to that!

</comment><comment><USER13> You might want to fix this in case you ever decide to add a way to log on:

<http://scrib.in/m27dy7>

(I added the text </textarea><img src=g onerror="alert(1)"> and went to view it.)

<comment><USER14> cool! I can confirm that it works :)

</comment></comment><comment><USER15> I had developed a similar tool: <http://wrrrite.com>, but didn't know that this is such a highly competitive space

</comment><comment><USER16> Much better than my terrible attempt at something similar: <http://flyerme.info>.

<comment><USER3> Oh hey, I wrote that app too! It's probably still kicking somewhere on some domain I've forgotten about. Mine was not better than yours :).

</comment></comment><comment><USER17> 'tab' should insert a tab character, not kick me out of the text box =(

<comment><USER18> If you want indenting etc., check out Workflowy or my app: <https://zetabee.com/text>

</comment></comment><comment><USER19> would also be cool to have a code highlight.. (ala <https://refheap.com/paste> )

</comment><comment><USER14> as most comments mentioned before - there is plenty of those apps around - <USER2> don't really see anything new in this one...

</comment><comment><USER20> looks like a clone of write.fm - which I built over a year ago</comment>


Rapportive Is About To Get Less Useful - <AUTHOR> http://techcrunch.com/2014/06/17/linkedin-owned-email-widget-rapportive-is-about-to-get-less-useful/

<comment><USER2> There are a few alternatives to Rapportive that are gining traction. Check out Connect6 (connect6.com) for starters. It works everywhere not just Gmail -- some have described it as Rapportive for the Browser.</comment>


On the Design of Display Processors (1968) [pdf] - <AUTHOR> http://cva.stanford.edu/classes/cs99s/papers/myer-sutherland-design-of-display-processors.pdf <comment><USER2> It's covered by The Jargon File.

[http://catb.org/jargon/html/W/wheel-of- reincarnation.html](http://catb.org/jargon/html/W/wheel-of-reincarnation.html)

> _wheel of reincarnation_

> [coined in a paper by T.H. Myer and I.E. Sutherland On the Design of Display > Processors, Comm. ACM, Vol. 11, no. 6, June 1968)]

> Term used to refer to a well-known effect whereby function in a computing > system family is migrated out to special-purpose peripheral hardware for > speed, then the peripheral evolves toward more computing power as it does > its job, then somebody notices that it is inefficient to support two > asymmetrical processors in the architecture and folds the function back into > the main CPU, at which point the cycle begins again.

> Several iterations of this cycle have been observed in graphics-processor > design, and at least one or two in communications and floating-point > processors. Also known as the Wheel of Life, the Wheel of Samsara, and other > variations of the basic Hindu/Buddhist theological idea.

This applies to all types of coprocessors and hardware offloading. But it's pretty funny to think that the effect is first observed in GPUs, and today the main player is still the GPU. The history is already established, 50 years ago.

<comment><USER3> In the 90s Auspex sold fileservers that had lots of specialty offload processors. This was before modern GPUs. Then the advantage of functional processors disappeared, and Auspex with it. Later came RDMA, which essentially is akin to having some functional processing in NICs. Anyways. This has been happening for a long time. But CPUs are maxed out for now, I think, so I'd expect that the current cycle will be a long one.

<comment><USER2> > _But CPUs are maxed out for now, I think, so I 'd expect that the current > cycle will be a long one._

CPUs in the future may be a mixed bag, there may be different coprocessors, but integrated in the same physical chip - more advanced SoC. At least this picture is what I find to be the most convincing after the end of exponential scaling by Moore's Law.

<comment><USER3> Heat dissipation is an issue.

<comment><USER2> Yes. It is already an issue of AVX2, which has the hilarious problem that the user must try finding a net performance gain between speeding things up and heating the CPU into thermal-throttle... But I think if an on-chip coprocessor can offload a common task and making it more energy efficient, the thermal issue can be avoided. We've already seen successful applications of cryptographic instruction sets / coprocessors, video transcoding, and the number can only get bigger.

</comment></comment></comment></comment></comment><comment><USER4> _"As we have said, we know of no remote display in which the computer and display channel are integrated into one machine, i.e. exactly one turn around the wheel."_

The later ZX80 was an extreme example, I think. It also supported their claim that _"Having one processor would be cheaper"_ , but that partly was because it was such a poor display processor.

</comment><comment><USER5> What's interesting is how fast the evolution is compared to the decades in the Jargon file. The other interesting bit is how bandwidth and RAM costs would change the architecture today.

</comment><comment><USER6> Discussed briefly in 2014: [https://news.ycombinator.com/item?id=7813216](https://news.ycombinator.com/item?id=7813216)

<comment><USER7> 2014 poster here, happy to see it discussed again. I love the paper.</comment></comment>


An intelligent discussion on ligatures for 'wtf' and 'lol' - <AUTHOR> http://typophile.com/node/16343

<comment><USER2> LOL WTF! Just kidding.

Normal ligatures look like the letters they represent. Look at "fish" for example. The ligature exists to make the dot on the i not conflict with the overhanging part of the f. These WTF and LOL ligatures don't look anything like the word they replace, so they should just be called "random new characters", not ligatures.

Also, not all commonly used words get a special character. The, an, is, be, are, are more common than "et" and "at", but they don't have their own character.

Anyway, I think this is more of an art project than anything else.

</comment><comment><USER3> More artistic than intelligent, IMHO, but very interesting, especially to see a forum so "moderated" by "creative forces."

Also, it seems incorrect to call those ligatures: WP says those are when >= 2 graphemes combine into one glyph. i.e., the "fi" in print, or the Æ and such.

Offtopic, found this cool character on the WP page: Ѽ.

<http://en.wikipedia.org/wiki/Ligature_>(typography)

<comment><USER4> Piggy butt?

<comment><USER3> my first thought was tomato :)

</comment></comment></comment><comment><USER5> I remember diving into ligatures when I was hacking my thesis in LaTeX. The geekiness of learning LaTeX made writing up tolerable.

And the output was spectacular, if only in looks and not in content :)

</comment><comment><USER6> Not Startup News, but a very nice thread which I enjoyed reading.

<comment><USER7> Not startup news, but definitely hacker news. See the jargon files for more of the same kind of hackers at play.</comment></comment>


Jimbo Wales exiles 'porn' from Wikiland - <AUTHOR> http://www.theregister.co.uk/2010/05/09/wikimedia_pron_purge/

<comment><USER3> The biggest criticism of this purge seems to be that the definition of pornography might have been slightly too restrictive. Some good images were lost that might not have been legally required to be removed.

So what?

The Wikimedia Foundation can't be expected to toe the line, deciding for itself exactly what pornography will result in criminal prosecution and just keeping their fingers crossed that the State of Florida will agree with them. The laws on obscenity are complex and inconsistent. American citizens have been convicted of criminal obscenity for possessing _drawings_ of children engaging in sex acts, whose production did not involve any actual child. Perfect discrimination between legal and illegal images is not possible, and they've decided that an error of unnecessarily deleting "good" pornography is preferable to an error of distributing illegal images of minors.

I've been a Wikipedia editor since 2004, and I can say from experience that child pornography is not some mythical boogieman. It does exist on WP, and it can go undetected for a surprisingly long time.

The most recent example I can think of is an article on a medical condition that involves as a symptom the swelling of the breasts in pre-pubescent girls. A photograph was added showing a _very_ young girl standing topless with her eyes edited from the photo, showing the camera her prematurely large breasts. The image caption was a brief description saying that the girl was 13 years old, had the relevant medical condition, and that the uploader, whose username began with "Dr", took the photo himself in Brazil. Uploading this image was the user's only contribution, and he hasn't been seen since.

It was literally months before any editor looked closely enough at the situation to realize that this might not be fully kosher. This isn't because editors are lazy or naive. Wikipedia is a big place, and catching these things happens almost entirely by happenstance. Once the issue was raised on Media for Deletion, consensus was quick that it had to go. But while the image is gone from WP, it's more popular than ever elsewhere. A Google image search for the title of the article will reveal the image re-hosted across dozens of web sites, which is why I'm being so scarce on the details here.

The Foundation has to make a decision on whether preventing incidents like this is worth the downside of forbidding some pornography, the only redeeming feature of which is often that it isn't illegal, should be hosted on Wikimedia servers, exposing the Wales and the Board to the possibility of severe criminal penalties. We have no moral ground from which to accuse them of shirking their responsibilities if they decline.

<comment><USER4> The image you mention here only becomes porn-like due to its exposure to the non-medical mind. The image itself may not have been intended to be porn. His disappearance could be linked to simple fear from the irrational.

There must be an ethical and rational balance over the incredibly important aspects of research and science concerning the development of the young human.

Irrational social fear relating to any form of sexual development in the young can polarize legitimate scientific study in regards to youth psychology and physiology.

At some point one can cross from critical (and RATIONAL) exposition of credible threats and crimes to an absurd witch hunt which puts pedophiles behind every tree, image, or serious study.

Society already has a difficult enough time grasping how to cope with the sexual development of its young while at the same time horrified over scientific/medical exposition of said development.

<comment><USER3> You can argue all you want that the laws are not just. I agree fully. But that isn't the issue here. The issue is whether it's reasonable to expect the Foundation to expose themselves to (possibly unjust) prosecution by displaying images that they believe may be illegal or immoral. If they were facing criminal charges at this moment, I would be the first to say that they have done nothing wrong, but you cannot fault them for not wanting to risk the future of Wikipedia by fighting a legal battle (using donations provided by people who thought they were just helping support an encyclopedia) against laws that you and I think are unjust.

If you feel strongly to the contrary, I submit to you the following challenge. I will tell you how to obtain the image in question, provided you agree to display the image publicly on web space you own and control, in perpetuity until its removal is requested by either your hosting provider or legal authorities, with text below that states:

\- Your full, legal name and basic contact information (e-mail address is fine)

\- That the image was presented to you by sources unknown with the assertion that it depicts a 13-year-old girl

\- That you believe the photograph was taken for the purposes of legitimate scientific study, but you admit there is at least _some_ possibility that it was taken with the intent of pornographic distribution

\- Any other information or disclaimers you think are relevant

Let me know if this works for you. If so, you're more principled than I am.

</comment></comment></comment><comment><USER5> The big problem with any centralized deletion of porn is that there is no standard definition of porn. Commons should strive to only exclude images which can lead to legal problems and leave the decision which of the remaining images to use up to the different language Wikipedias.

Maybe that's what they plan to do and I would have no problem with that. I would have a problem if they went above and beyond that.

<comment><USER6> Even that would be a problem... legal problems according to what legal domain? What is acceptable in some US States is wildly different from what is acceptable in some EU countries.

The concern I have is greater than the definition of what is or is not pornographic, but it is the underlying notion that some entity feels that I should not see something, that a puritanical approach has come in at the top. To me this is the greater problem.

If we stick to legal definitions then we're in a much better position, even though the lack of a global legal system introduces technical issues about what is stored where, and what is available to whom (according to where they are) and the maintenance of that legal knowledge (that in one region the laws are X, Y and Z and that in another the laws are B, C and D).

</comment></comment><comment><USER7> That Sanger thing was just him trolling; I'm surprised it got the rise it has done... (there is no way those "etchings" would ever have been considered CP by a criminal prosecutor)

<comment><USER8> FWIW, the UK police often get confused between art and child porn:

<http://www.guardian.co.uk/uk/2007/sep/25/artnews.art>

<comment><USER7> There is a distinct difference between a "created" image and a photograph (which the suggestion in your link is).

The wood carvings are probably fine; you have to take a pragmatic approach at some point. Artistic (non-abusive) photography is also usually fine - I'm not sure what the outcome of that specific case was but I expect nothing came of it.

The point is to capture those abusing - or encouraging the abuse of - children. So you will find occasional contradictions and difficult distinctions.

<comment><USER8> My point was it's probably not wise to assume what the authorities may or may not find actionable.

<comment><USER7> Ah, I see. Well I work in investigating computer pedophilia (among other things). Obviously there is still a caveat of "within my experience" but I am quite confident that nothing will come of this particular complaint to the FBI.

<comment><USER9> I think that what may happen in a lot of these cases is that the authorities subscribe to the, "if there's smoke, there's fire," train of thought. If they see that someone has art of small children (or just 'under age' children), they'll probably bust down their door hoping to find actual child porn. If they don't, then they'll try to make 'child porn' charges stick using just the art because the authorities involved at this point either don't like the person or just don't want to admit that they were wrong (and spent a bunch of wasted time for nothing).

<comment><USER7> The problem is this; if you receive a complaint about child pornography what do you do? If it's about an individual and the complaint is not by a family member etc. then probably not much will take place. But as soon as there is reasonable cause for suspicion then an officer is on dangerous territory - <USER2> it turns out there was abuse etc. going on then they are screwed (usually by the media) if it is uncovered later.

If it is about a public place etc. like the gallery example they really have to take a look/action. Removing the image is standard - if it turns out to be CP and the Police left it up then there would be hell to pay ;) The problem is defining if it is CP or not - and you will find some lawyers whose sole purpose for the UK CPS is to assess if images break CP laws and can be prosecuted etc.

You will see mistakes; predominantly of the side of innocent people being investigated. But, again, many of the child protection officers are not idiots - they spend their career investigating these cases and, so, will be able to make a decent judgement whether there is merit in the accusations or not.

 _If they don't, then they'll try to make 'child porn' charges stick using just the art because the authorities involved at this point either don't like the person or just don't want to admit that they were wrong_

Bullshit I am afraid. Fortunately the law doesn't work like this. Also, CP charges are hard enough to make stick at the moment for all sorts of reasons - it would fall apart due to impracticality.

<comment><USER9> > _Bullshit I am afraid. Fortunately the law doesn't work like this. Also, CP > charges are hard enough to make stick at the moment for all sorts of reasons > - it would fall apart due to impracticality._

I'm more referring to the idea that the guy 'got off' because they couldn't find any child porn, so they charge him with anything they can find (e.g. unpaid parking ticket).

<comment><USER7> Hmm. Probably not to be honest, fortunately most police aren't really like that.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> A somehow distributed (to resist censorship) and encrypt (against problems with varying local legislation) wikipedia would not have problems like this.

<comment><USER11> We can hope. It might also turn out that censors, irritated by the resistance, would criminalize participation in it.</comment></comment>


Protovis - A visualization toolkit for JavaScript using SVG. - <AUTHOR> http://github.com/mbostock/protovis/

<comment><USER2> I've used protovis for an internal graphing framework. It's absolutely, positively, 100% the best visualization tool for the web.

The syntax is easy to work with (once you get over the initial learning curve, which is somewhat steep), and it flies on a modern browser. It's the only framework out there for visualization development that's flexible enough to do interesting things with.

I think the only other comparable tool is processing (not processingjs, which is too slow for non-trivial tasks), although processing is focused on pixel manipulation whereas protovis is focused on vector drawing.

</comment><comment><USER3> Protovis is one of the most interesting pieces of code I have looked at recently. It really opened my eyes up to the power of javascript and I learned a lot from it. The code is clean, well documented, and imo brilliant.

</comment><comment><USER4> I am not even surprised this is cool - Jeff Heer is behind it <http://hci.stanford.edu/jheer/> and he's written some crazy cool frameworks - Prefuse (Java) and Flare (AS3). I'm setting my gitHub watch on this one :-)

</comment><comment><USER5> you guys might also dig the author's next opensource JS project, polymaps: <http://polymaps.org>

</comment><comment><USER6> Anyone know what other similar libraries there are?

<comment><USER7> It depends on what you want to want to do - this library has a wider scope than others I've seen. The closest I know would be Raphael, which is nice in that it also supports IE (Canvas): <http://raphaeljs.com/>

If you just want Graphs/Charts, here's a few off the top of my head:

<http://www.deensoft.com/lab/protochart/>

<http://www.liquidx.net/plotkit/>

<http://code.google.com/p/flotr/>

<comment><USER8> for clarification, raphael's IE support is not from HTML 5's canvas tag, but from SVG's precursor, VML: <http://en.wikipedia.org/wiki/Vector_Markup_Language>

</comment></comment></comment><comment><USER9> Doesn't work in IE6/IE7.

Raphaël does.

</comment><comment><USER10> Here's a better site for checking out some demos: <http://vis.stanford.edu/protovis/>

This vis library looks really interesting to me because of its flexibility. My main concern is that it's based on SVG. I wonder how easily it could be modified to be canvas based instead. The only reason I say that is because canvas seems to be getting a lot of attention from browser vendors while SVG is languishing...

<comment><USER11> ProtoVis has a somewhat modular rendering backend, I believe. So you could probably rewrite it to run on canvas. That said, why do you think SVG is languishing? The IE9 demos made quite a big deal of their SVG support and the other major browsers already have pretty decent support for it.

<comment><USER10> Looks like I just haven't been paying attention. Thanks for pointing that out.</comment></comment></comment>


The Growing Menace of Data Hoarding - <AUTHOR> http://www.datanami.com/2016/06/13/growing-menace-data-hoarding/ <comment><USER2> I sort of expected/hoped this would be about personal data hoarding rather than companies hoarding. Most big companies (and more so in tech) have at least some data warehousing strategy to deal with how data is handled so I'm not sure that 'hoarding' is even the right term for most companies.</comment>


React Context – Helpful Context Like AdBlock and OS - <AUTHOR> http://casesandberg.github.io/react-context/

<comment><USER2> Wait why would you call this `React-Context`? this sounds like it is replacing core functionality when in reality it just adds some useful values inside the existing functionality.

To me this is analogous of calling something `react-props` or `react-render` but all those libraries do are add values inside of your props or render but not actually change the behavior of props or render.

Does this make sense?

<comment><USER3> I agree. The name confused me until I spent more time with the docs than should have been necessary.

</comment></comment><comment><USER4> The performance of this website seems a little low. I'm noticing a lot of lag when I scroll that I don't notice on other sites...

Is it because of the lib?

<comment><USER5> No (edit: kinda). It looks like the site calls setState() on the root React component every time the scroll event is fired.

For those not familiar with React, setState() is a function that is used to update mutable state, and it is not a very cheap function, because it propagates the state through all child components, re-renders some virtual DOM, and potentially also causes actual DOM reflowing. Calling this in the scroll handler is what causes the noticeable delay.

edit: it seems like the lib itself does also call setState on scroll [0]. I don't think this is the source of the issue on the site itself, which has additional scroll handlers (for the magic non-scrolling sidebar), but it could cause similar performance problems, depending on how many child components are in your Context.

[0]: [https://github.com/casesandberg/react- context/blob/master/sr...](https://github.com/casesandberg/react- context/blob/master/src/context.js#L162)

<comment><USER6> Out of curiosity how did you find that out? I've been looking for a decent debugging workflow for React.

<comment><USER5> Sorry to say, it's nothing React-specific. I understand that there is a React Developer Tools addon for Chrome that might be of interest [0].

As for me, I just turned on Javascript CPU profiling in Firefox Developer Tools, scrolled a bit, and checked what JS calls were causing the slowdown. Because the unminified source for the website is available on Github, you can quickly find and examine the functions' code directly [1].

[0]: [https://chrome.google.com/webstore/detail/react-developer- to...](https://chrome.google.com/webstore/detail/react-developer- tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en)

[1]: [https://github.com/casesandberg/react-context/blob/gh- pages/...](https://github.com/casesandberg/react-context/blob/gh- pages/docs/components/home/HomeBody.jsx#L96)

<comment><USER6> Thanks. I've been spending too much on the Rails and iOS stack that I've lost track on proper front end tools and workflows. Appreciate it.

</comment></comment></comment></comment></comment><comment><USER7> I'm curious if this will work even if components use (e.g.) PureRenderMixin. Because I've been looking for a simple way to "inject" props downstream with pure components.

</comment><comment><USER8> the lib seems very small, and will come in very handy. nice work!

</comment><comment><USER9> It doesn't seem to recognize uBlock on safari.

<comment><AUTHOR> [https://github.com/casesandberg/react- context/issues/3](https://github.com/casesandberg/react-context/issues/3)</comment></comment>


Smashing the Stack for Fun and Profit: Revived - <AUTHOR> http://avicoder.me/2016/02/01/smashsatck-revived/ <comment><USER2> This is a fun walk through of a malicious stack overflow... And a great reminder that being familiar with assembly can greatly said in understanding what is happening when you do certain things.</comment>