A React implementation of Spectrum, Adobe's design system - <AUTHOR> https://react-spectrum.adobe.com/react-spectrum/ <comment><USER2> Having spent the past couple years working on a large design system, I am most excited about @react-aria and @react-stately. There is huge potential for allowing resource constrained teams to build out a truly customized DS in a fraction of the time. Even for a well resourced team, these hooks can make extending their existing DS and borrowing complex behavior much simpler/faster. The biggest challenge for a DS at scale is in how you can adapt it to the infinite edge cases that a product eventually uncovers- while staying consistent and leveraging existing code. I think these libraries offer the best model yet for achieving this. Congrats to @devongovett and the team at Adobe for realizing these ambitious projects and successfully open-sourcing them.

</comment><comment><USER3> One of the things that I always find missing in these libraries/collections is a date/time picker. I know these are available via many separate projects, but it's nice if one picks a collection like that, that all inputs are homogeneous.

<comment><USER4> Our date picker is in progress right now actually. Should be available relatively soon. Date pickers are one of the most complicated components, especially due to internationalization/accessibility requirements.

<comment><USER5> Will it have moment.js as dependency like react-dates?

Do you also plan to make a DateRangePicker and a TimePicker?

<comment><USER4> No, moment is not a dependency. We're using the native Intl.DateTimeFormat APIs that are built into browsers now. This makes sure we support internationalization properly, but without the giant locale data needing to be downloaded.

And yes, we have a DateRangePicker and TimePicker as well.

</comment></comment></comment></comment><comment><USER4> hey everyone. I work on React Spectrum. Happy to answer any questions. :)

I'd also point to our introductory post where we discuss the architecture. I think the most interesting thing is that you can reuse most of the behavior, accessibility, etc. without our design in your own component library using our hooks. [https://react-spectrum.adobe.com/blog/introducing-react- spec...](https://react-spectrum.adobe.com/blog/introducing-react- spectrum.html)

<comment><USER6> Hello - I may be blind but I don't see any examples of what the components look like on actual screen. Is there a storybook or something?

<comment><USER4> Each component page has live examples. e.g. here's Button [https://react- spectrum.adobe.com/react-spectrum/Button.html](https://react- spectrum.adobe.com/react-spectrum/Button.html)

</comment></comment></comment><comment><USER7> There's also a cross-framework web components implementation for the Angular, Vue, Svelte, Ember users out there: [https://opensource.adobe.com/spectrum- web-components/](https://opensource.adobe.com/spectrum-web-components/)

</comment><comment><USER8> Why is there never a simple screenshot of anything? I just wanted to see and example of what Spectrum usually looks like

<comment><USER9> There are live demos on the individual component pages that should give you what you're looking for.

</comment></comment><comment><USER10> Regardless of the react aspect, Adobe could use some lessons on usability fundamentals. This design system's use of pervasive fade animations and low contrast are rather upsetting.

<comment><USER11> +1 on these shortcomings, though I think it's also worth celebrating what they do right. Namely, I'm glad the system has the concept of "desktop" and "mobile" scales, and doesn't use the same size components for every platform. They also differentiate between touch and cursor hit areas, which is neat [1].

[https://spectrum.adobe.com/page/platform- scale/](https://spectrum.adobe.com/page/platform-scale/)

</comment></comment><comment><USER12> Is it me / my environment or is the low contrast nature of that design just really hard to look at / read?

</comment><comment><USER13> Not sure if its because I've been using React for the last 6 years and I've "fallen out of love" or it is actually starting to show its age but...

React, which was once the greatest thing to happen to UI frameworks, now looks like a very leaky abstraction.

The prevalence of `useMemo` and `useCallback` to get around perf issues, `useEffect` to try to interact with event systems outside of React, and `useRef` to save things that don't quite work when persisted in the component's state.

I'm watching Svelte with interest these days. It seems like we're ~1 year away from Svelte, or a framework very much like it (one that moves concerns into the compiler), taking off and revolutionizing things the way React did 7 years ago.

<comment><USER14> I disagree. So far NO other UI library/framework than react offered the "interface as a function of state" paradigm. All others (Svelte, Vue partially) are based on templates with their ad-hoc syntax for ifs and maps/loops and so on. This is a non starter for me. I will consider other things than react, as long as they use this concept of interface as a function of state. This is non negociable for me at this point.

<comment><USER15> Can you clarify what you mean by "interface as a function of state"? All the templated-frameworks still fit this definition... they are reactive to the state of your component. In fact, they are more performant than React because their template syntax provides static analysis, so the app can be optimised at compile time.

</comment></comment></comment><comment><USER16> We should standarize these "UI themes" so that other frameworks don't get left out (e.g. easy for Angular/Vue to use this). In Java world, it's called SPI (Service Provide Interface), like API but the opposite.

<comment><USER17> It's called Web Components, a standard built into browsers for many years now which means it will be backwards-compatible in perpetuity.

<comment><USER18> Web Components only really covers half the picture here. Libraries like this provide integration with their chosen framework, including tying events into however the framework should do such things, and places where data flows without DOM nodes (e.g. if a widget renders based on some dynamic data source that isn't child elements). Often you _could_ do this with Web Components, but it would substantially harm expressivity and/or performance.

Also you can generally make the implementation lighter and faster if you implement it within the framework, especially if the way you make Web Components uses a different framework (so now you have n+1 frameworks on your page).

<comment><USER17> Web Components can be barebones, use no dependencies, do all DOM manipulations directly. That would give you vanillajs performance. It won't be easy to scale to big components this way--the use case is small components with minimal state, something like a time picker at most. Integrating the Web Component into React should not be much harder than integrating an <video> element. At best, do nothing or at worst, create a Ref and attach an event listener. The benefit is this would work across all other JS frameworks. Web Components are primitive, like the C ABI, but everyone can speak it, like the C ABI.

</comment></comment></comment></comment><comment><USER19> This is great!

It would be nice to make `react-primitives` compatible with this as well: [https://github.com/lelandrichardson/react- primitives](https://github.com/lelandrichardson/react-primitives).

I hope every UI platform gets a react-like library and becomes compatible with react-primitives. It would be really nice to write things once and make it compatible on every platform instantly.

</comment><comment><USER20> Very nice to look through. Does anyone have a list of React "design systems"? I was not familiar with this term.

Also, I am wondering: looks like there is [https://spectrum.adobe.com](https://spectrum.adobe.com). What is the purpose of Spectrum without an implementation like this? Why would Spectrum be a public published thing, considering that only Adobe makes Adobe products?

<comment><USER21> "design systems" in recent frontend parlance is generally colors + fonts + screen wids + methodology + components (usually) that all fit a certain visual style/philosophy. Material Design can be considered a "design" system.

While the pieces of design systems make sense in and of themselves (you can argue for a clearer, easier to read font), I think a lot of bullshit gets dragged in along with people wanting to embrace "design systems" for the sake of doing it, or because it looks good on a resume "X designer built a design system at Y company". If I were to think even more cynically than usual, you can think of design systems as bundles of components.

> What is the purpose of Spectrum without an implementation like this? > Why > would Spectrum be a public published thing, considering that only Adobe > makes Adobe products?

Cynically -- marketing for adobe, and some easy press, internally maybe a deliverable for the design/frontend teams that was on the roadmap for this quarter. Less cynically -- other companies can choose to use Adobe's design system instead of creating their own, also everyone benefits if Adobe has done stuff that goes above and beyond the usual bundle-of-components (ex. their React Aria[0] effort).

[0]: [https://react-spectrum.adobe.com/react-aria/index.html](https://react- spectrum.adobe.com/react-aria/index.html)

<comment><USER22> > What is the purpose of Spectrum without an implementation like this? > Why > would Spectrum be a public published thing, considering that only Adobe > makes Adobe products?

From what I've seen, design system teams at MegaCorps are usually at most 10 people, in an org of thousands of internal engineers and external contractors that may be consuming their product.

Discoverability is pretty important, otherwise engineers will try and get around the guard rails your system imposes.

Also yeah, it helps for recruiting frontend developers.

<comment><USER21> You might have responded to the wrong comment -- hopefully OP will see it here, but agreed.

In the ideal situation the team of 10 produces the components/style decisions and the resulting components that the whole company uses and then you never see a weirdly styled/non-standard part of their offerings every again. In practice, it can get really messy as that team can become a bottleneck for various parts of the org trying to move in very different directions and management gets difficult.

In the near future, once one of the design tools really nails generating (probably React) components that devs don't hate, I think it will be much easier for the teams of UX/Design and UI (devs putting react components on pages and dealing with technical feasibility) to work together. It feels like design has only recently started to receive the automation/tooling love that devs have (tools that intelligently manage iteration, sharing designs, "branches", etc), so once someone bridges that gap hopefully tooling gets rid of some back and forth.

</comment></comment></comment></comment><comment><USER23> Is there a listbox component similar to a pivot table slicer from excel? One which would always show the complete list (or part of it), be multi selectable with a drag functionality and one in which elements can be made semi- transparent to indicate that they're empty/missing. I'm looking for something like that since ages.

A native select is the closest thing I can find but it has many limitations irt styling...

</comment><comment><USER24> For those that rather not delve into React, there is also a CSS version, framework free implementation.

[https://opensource.adobe.com/spectrum- css/index.html](https://opensource.adobe.com/spectrum-css/index.html)

</comment><comment><USER25> The more competition there is in this space, the better, and this looks like a very nicely polished solution right from, the get-go. I would definitely give this a go for smaller projects, as an alternative to MaterialUI or ant.

</comment><comment><USER26> Devon, thanks for sharing and congratulations on the release! Nice to see Adobe push more open-source work, is that something we can expect more of (vs the proprietary software)?

</comment><comment><USER27> For someone who hears about Spectrum the first time...what is this stuff? It is not explained on the site either, like I was supposed to know.

</comment><comment><USER28> 417KB minified :|

<comment><USER9> That is for the full bundle - looking at the repo, the individual components are separated into packages.

</comment></comment><comment><USER29> They lost me at "css-loader". How about just import your components and they style themselves? The whole philosophy of React is JS-first and really, JS- only.</comment>


Sudoku as a Service with Julia - <AUTHOR> http://iaindunning.com/2013/sudoku-as-a-service.html

<comment><USER2> I've been using Julia a little while now for my scientific work, and I have to say, it is a very well-designed language. I remember reading a few days ago on HN another user commented that he thought it was the best-designed language after Clojure. Not to mention it's much easier for people used to conventional programming languages to pick up and get started with.

I was actually thinking this would be a great language to use for web development; it's just that no one's developed a really good framework for it yet.

<comment><AUTHOR> Theres been some work towards that: [https://github.com/hackerschool/Meddle.jl](https://github.com/hackerschool/Meddle.jl) is "middleware", and [https://github.com/hackerschool/Morsel.jl](https://github.com/hackerschool/Morsel.jl) is a framework. The main issue right now is that no one is particularly pushing/has a strong need for that kind of thing right now. I speculate that math-heavy services like the one described in this post will probably sit side-by-side with other services written in more traditional languages in the short to mid-term.

</comment></comment><comment><USER3> I remember some activities we did at junior high math courses regarding Sudokus. I was so disappointed to see the brute-force solving solution to work perfectly fine, no need to implement human solving-strategies. It was fun nevertheless :)

<comment><USER4> That's why I could never get into Sudoku. There is no creativity in the endeavor. It's like doing math homework for fun.

<comment><USER5> Brute-force strategies rarely work well in real life Sudoku.

<comment><USER6> Really? They tend to work pretty well for me.

I use Sudoku to exercise my memory.

</comment></comment></comment></comment><comment><USER7> I read through the Julia documentation and a couple tutorials last weekend, and I'm looking forward to building some things with it.

one note - this code could be better optimized by the compiler if you broke everything down into functions, especially the nested for loops (according to the optimization section of the docs).

<comment><AUTHOR> It is a lot of fun, quite addictive! Let us know what you cook up at the julia-users google group. Re: optimization, that is indeed usually true, although I imagine the actual sudoku solve time dominates the request time. From a code design perspective I'd probably pull the validation/change-to- matrix stuff entirely and stick it in a module which would achieve the same thing. The way I build the "pretty" table is also pretty inefficient, using an IOBuffer is probably the right way to go. Tried to go for clarity for new- comers to the language.

</comment></comment><comment><USER8> Excuse me, can anyone tell me why I may be seeing this? I have showdead turned on.

[http://cl.ly/RRQw](http://cl.ly/RRQw)

<comment><USER9> Duplicated comments are made dead. With showdead you can see the (dead) duplicate.</comment></comment>


The Antennas of Pine Gap - <AUTHOR> http://nautilus.org/napsnet/napsnet-special-reports/the-antennas-of-pine-gap/ <comment><USER2> JORN is also interesting [https://en.wikipedia.org/wiki/Jindalee_Operational_Radar_Net...](https://en.wikipedia.org/wiki/Jindalee_Operational_Radar_Network)

</comment><comment><AUTHOR> Shortcuts:

 _Full PDF (7 MB):_ [http://nautilus.org/wp-content/uploads/2016/02/PG- Antenna-sy...](http://nautilus.org/wp-content/uploads/2016/02/PG-Antenna- systems-18-February-2.pdf)

 _" Online-optimized" PDF (2.6 MB):_ [http://nautilus.org/wp- content/uploads/2016/02/PG-Antenna-sy...](http://nautilus.org/wp- content/uploads/2016/02/PG-Antenna-systems-18-February.pdf)

</comment><comment><USER3> I can't tell if the logo is supposed to remind of the debian logo or if it is the debian logo "tweaked" just enough so that it might represent a different entity.

<comment><USER4> it seems to be a shell like shape.which would make sense as a nautilus is a type of marine mollusk.

the Debian logo looks like i lock of hair to me.</comment></comment>


Data visualisation: 118 coins plotted over time - <AUTHOR> http://woobull.com/data-visualisation-118-coins-plotted-over-time-this-is-why-hodl-alt-coin-indexes-dont-work/ <comment><USER2> article is from Nov. 2016, so might be interesting to see what an updated perspective looks like.

</comment><comment><USER3> I would like to see the top10 or top20 coins plotted against each other</comment>


Virtual Reality Poses the Same Riddles as the Cosmic Multiverse - <AUTHOR> http://cosmos.nautil.us/short/132/virtual-reality-poses-the-same-riddles-as-the-cosmic-multiverse <comment><USER2> Wachowski Brothers really made an impact.

Jokes appart that nautil.us page messed around my ios safari browser history pushing state with each scroll event :/

<comment><USER3> Yeah, such a horrible implementation. What's that for?</comment></comment>


What Slack might learn from its Open Source alternative - <AUTHOR> https://www.mattermost.org/what-slack-might-learn-from-its-open-source-alternative/ <comment><USER2> Is this mattermost's hosted offering ? [https://about.mattermost.com/pricing/](https://about.mattermost.com/pricing/)

they need to fix their feature set for pricing. For example, Google Apps Signon is pretty basic - but it is only available at the "Enterprise E20" level... where you have to actually call for pricing.

<comment><USER3> Hi @sandGorgon, hi @gizmo

Mattermost team here. Thanks for your feedback,

While pricing is set that way for a purpose, we are always looking for ways to improve and we're keenly interested in what everyone has to say.

Our focus for Enterprise has been large organizations with sophisticated needs and it's important for us to have conversations and demonstrations with the people doing the evaluation so they fully understand what we're offering.

That said, there are people who use our free Team Edition or have read through our docs that just want a "buy" button for E20.

I'll bring this up and see what we can do.

PS: Regarding the word "fix", my personal view is that it's okay for a commercial product, because people are buying it as a customer. Enterprise Edition is a commercial product.

That said, many open source communities are adopting a principle of "kindness" and having feedback phrased positively where possible. People work hard to make open source software and give it away, and if conversations started on a positive note... well, why not?

<comment><USER2> hi, thanks for replying.

So at no point am I implying that you should release it for free. But I do believe there are some features that should ideally be in the 20$ tier rather than the "call-us" tier.

Now this may completely be how your demographic falls, but generally speaking a small company buying 2-10 licenses would usually not have LDAP... but most likely will have Google Apps. And that's pretty much the gist of my comment.

I'm not very sure why people have caught on to the word "fix" \- but IMHO i used it in the way that most people talk on these forums ("your website font needs to be fixed", "the copy needs to be fixed"). So I'm not sure if the word was offensive, but it was not intended to be.

Also wanted to mention that I was looking at your offering as a customer with a genuine interest to buy. We use Hipchat and their mobile app needs to be "fixed".. so I was in the market for alternatives.

P.S. also didnt realize you were YC. That usually doesnt happen.

<comment><USER3> Thanks @sandGorgon,

Definitely hear your feedback on the custom tier, we'll try to figure something out this next week.

<comment><USER4> I also agree about Google apps being a good choice in a self serve tier; custom LDAP is more a true enterprise feature. You might be able to put some limits into the self serve Google apps version, too. I'd just like a user with small numbers of users to be able to sign up directly and use the product. (I've been a fan of the product for a while and will probably contact you in a month for enterprise)

</comment></comment></comment></comment></comment><comment><USER5> Zulip is also open source and an alternative. It shares some of the same features as Mattermost. Mattermost seems to compete more directly with Slack; Zulip is more like IRC++. (For those from the MIT or CMU world, it's basically Zephyr with a web interface and a pile of features on top.)

Full disclosure: my company has been using Zulip since before it was F/OSS.

<comment><USER6> IRC die-hard here. Zulip is the only one of these Slack-like services I could ever see coming close to replacing IRC for me.

</comment></comment><comment><USER7> I would define it more as Source Open than Open Source. Their Source is under Afero License but they only use the Acronym followed by a printout of the Apache License trying to trick people into thinkink it's Apache. And their binary MIT License has the addition that you aren't allowed to hide modify any Product or Trademark indentifications. That contradicts the MIT License!

<comment><USER5> Admittedly, their licensing scheme is a bit strange, but it's very clearly F/OSS. Even in the most restrictive case, it's still the AGPL with additional exemptions.

<comment><USER8> I'm not sure that the portion under AGPL _actually_ has exemptions. They say in their LICENSE.txt file:

      We promise that we will not enforce the copyleft provisions
      in AGPL v3.0 against you if your application (a) does not
      link to the Mattermost Platform directly, but exclusively
      uses the Mattermost Admin Tools and Configuration Files, and
      (b) you have not modified, added to or adapted the source code
      of Mattermost in a way that results in the creation of a "modified
      version" or "work based on" Mattermost as these terms are defined
      in the AGPL v3.0 license.

Note that the two conditions necessary to receive the exemption are connected by "and", not "or". The second condition is that you not create a modified work or a work based upon the program as defined in AGPL v3.0.

But by the terms of AGPL itself its copyleft provisions are only applicable to modified versions, so it doesn't appear that there are any circumstances where Mattermost's exemption will actually exempt you from anything.

</comment></comment></comment><comment><USER9> Well, mattermost is not entirely open source. Last I checked their LDAP feature was enterprise only and we went with Rocket.Chat which had all features open source.

<comment><USER10> The project is open source, what you're complaining about is that the LDAP feature isn't free. You have to try to understand that they can't pour in thousands of hours across a development team without making money. How are their developers gonna get paid?

The golden nugget with these kind of projects, from these kind open source- minded companies, is that being a paying customer contributes greatly to a better and healthier product with regular feature additions. Compared to the more frequently found companies that is closed source, commerical-only and only provide bugfixes I think that it is perfectly fine that the LDAP-feature is behind a paywall.

<comment><USER11> > these kind open source-minded companies

Let's not fool ourselves, there is no such thing in these companies and products that appeared during the last few years. There is no free/open-source spirit, it's open-washing and the model usually get more closed and more closed year after year (going through an incredible variety of licenses, market segmentation and other marketing & sales tricks), following the evolution of the owners' greed.

It's a regular business that is freemium-minded, period.

</comment></comment></comment><comment><USER12> Of Slack clones, Mattermost tries to be feature complete but is actually incredibly buggy. Let's Chat is strong, but is simply lacking important features. RocketChat is the only one that does a reasonable job being feature complete and not being full of bugs. It's actually usable...

<comment><USER3> Hi @chriscappuccio,

Could you share an example of what you went wrong?

The Mattermost server has around 59% automated test coverage, our community does over 120 hours of manual testing prior to each monthly release, and we're constantly striving to improve.

Here's a recent review of Mattermost's quality levels, from someone who left Mattermost and then returned, concluding Mattermost was the leading solution: [http://www.akitaonrails.com/2016/08/13/choosing- mattermost-o...](http://www.akitaonrails.com/2016/08/13/choosing-mattermost- over-rocket-chat-and-slack)

If your experience is different, we're highly interested in knowing how we can improve.

</comment></comment><comment><USER13> We've been using a self-hosted version of Mattermost for several months and the only complaint is that you can't switch off conversion of smileys to emoji. There are few minor nitpicks around email notifications and peers status display, but otherwise it's a solid no-nonsense alternative to Slack. Well done, guys!

<comment><USER3> Thanks @eps! Glad to hear!

Did you want to turn off smiley-to-emoji conversion for your own view, or on how others view your messages, or as an admin feature for the server?

There's an upvote and discussion thread on this, would welcome your input: [https://mattermost.uservoice.com/forums/306457-general/sugge...](https://mattermost.uservoice.com/forums/306457-general/suggestions/12419022-way- to-turn-off-emoticons)

<comment><USER13> 2nd and 3rd, please.

We are 40+ years olds, coming from the text terminals era, so emojis is really just some cutesy-girly thing that teenagers use :)

</comment></comment></comment><comment><USER14> Mattermost is bundled with GitLab. We use both at our company and it works great.

<comment><USER15> That's cool. Are they integrated well?

<comment><USER16> Mattermost can use GitLab for authentication, which is nice. Other than that, you can configure webhooks in GitLab's git repositories to push messages to a Mattermost channel; for example, push every tag created so colleagues can see a new version of one of your libraries/products was released.

</comment></comment></comment><comment><USER17> Full markdown in messages is really useful, we make heavy use of it. Its integration with GitLab could use some polish though, images in tickets don't appear in channel notifications for example

</comment><comment><USER18> Again, a product that advertises being built on Go as if that's a feature. I have nothing against Go, but that's weird -- no one cares what Slack is written in.

<comment><USER19> Personally I care about the security of the server (is it written in a language that historically has a good or poor track record), and I care a great deal about the client.

The Slack client regularly pauses for me while I am typing, randomly refreshes, and generally feels sluggish. Those aren't things I associate with Go. That said, I think this particular implementation's client is also written in Javascript, so I don't know that it will have a particular advantage there. But an open source implementation at least won't block alternative clients (e.g. [https://www.kickstarter.com/projects/2137936555/taut-the- fas...](https://www.kickstarter.com/projects/2137936555/taut-the-fast- beautiful-macos-native-slack-app)), in a way that the Slack Terms of Service would seem to do.

<comment><USER20> I audited Mattermost 1.x through 3.x a while back. Had some issues but everything was fixed smoothly and from 3.x it is actually really good. Slides from my talk on it here: [https://speakerdeck.com/addelindh/hacking- mattermost-an-asse...](https://speakerdeck.com/addelindh/hacking-mattermost- an-assessment-of-an-open-source-messaging-platform-for-hipsters-security- fest-2016)

<comment><USER3> Thanks @addelindh! Really love your work. You helped us a ton, highly appreciated!

<comment><USER20> Thanks yourself, you and your team is a pleasure to work with.

</comment></comment></comment></comment></comment><comment><USER21> Me and my team are planning to move to mattermost, but their Slack import just isn't 100% yet, so we've been holding off on it. For example right now it doesn't import the chat logs of any bot account.

[https://mattermost.atlassian.net/browse/PLT-48](https://mattermost.atlassian.net/browse/PLT-48)

While we're not in the biggest rush to move to Mattermost, it does seem to offer more than Slack right now.

<comment><USER22> I'm concerned about the mobile-friendly options for MM. Slack has pretty good iOS apps (and others, but I've never tried them). Does MM have quality mobile apps?

<comment><USER3> I use the Mattermost iOS app daily, and it works well on a good connection.

The iOS app is a feature rich experience similar to web and desktop apps, so when I travel and am on a slow connection it doesn't perform as well.

Here are our current mobile performance benchmarks so you can decide for yourself: [https://docs.mattermost.com/deployment/push.html#mobile- perf...](https://docs.mattermost.com/deployment/push.html#mobile-performance- benchmarks)

There's work underway to get the mobile apps working better on slow connections.

<comment><USER23> You said it's feature rich, therefore has lower performance over slow connections.

This is not true. Mobile app performance over slow connections is determined by app/server architecture, payload efficiency, caching strategy, etc.

There are many examples of feature rich apps performing well on slow connections, and many simple apps performing poorly over a normal connection.

</comment></comment></comment></comment><comment><USER24> > _What if Slack had threaded messaging?_

Then it would be a recipe for endless sub-discussions diverting from the topic, and disaster...

<comment><USER25> We had this in flowdock before we switched to slack, on a team of probably 700 or so at the time. It made it far easier to filter out chatter when dealing with an urgent issue (no need to change rooms or remind people to be quiet for a while), and I haven't really noticed it encouraging pointless chatter. I seriously miss this feature in slack.

<comment><USER26> What was wrong with flowdock?

<comment><USER25> I'm not sure. I think with the benefit of hindsight, I liked it better on balance, but I wasn't involved in the decision. It was definitely a terrible resource hog, even more so than Slack, and the iOS client wasn't quite as polished IIRC.

</comment></comment></comment></comment><comment><USER27> Wouldn't that it is self hosted defeat the point of single sign in across teams? I mean I can see if the hosted instance has many teams you subscribe to, but in the Slack world I already manage sign ons across different company/project/team domains, so the advertised advantage here doesn't seem to apply?

<comment><USER28> if you need to connect to a team that is not on your hosted server, you can still do so via the web or the desktop client either in a separate tab in the browser, or in a separate tab in the desktop client.

</comment></comment><comment><USER29> I thought they were going to compare it to matrix/vector.im.

<comment><USER14> Mattermost is open-source alternative for slack, matrix is infrastructure for IoT using websockets.

</comment></comment><comment><USER30> I love that there are some other tools coming up to challenge Slack -- hopefully this will put pressure on Slack to up their game. Slack has been... very slow to fix bugs / add new features. They're starting to feel like Microsoft... like they don't move fast, aren't trying to improve anything, and don't care about customer feedback.

I love Slack, but some of my gripes with Slack:

* I can't spell check from a Post in Slack. Posts would be great for taking notes, but they lack order. It doesn't have to be full-on Confluence / Wiki style, but being able to add some classifications to Posts would be helpful. And in-line spell check... Every other tool everywhere supports this, but not Slack Posts.

* Posts and Chats use different formatting markup. Why not just use Markup for both?

* Channel names being forced into lower case and very short character counts... Why can't I use a longer name for a channel and just wrap the name in the display? Why does it have to be all lower-case without spaces? Why isn't there a folder structure to the channels to keep all my clients / focuses grouped?

* Slack forces me to put Bots and People in the same channel and it gives them both equal visibility. I should be able to add a #bot or something and have those messages be something I can search for, or something that shows up in the sidebar, but not something that talks over people. Their current work-around is to use two channels, one for people and one for bots... but making sure your team is added to every channel... it sucks. FlowDoc does a better job of this, and if it was built the way they do it I wouldn't have to search multiple channels to find the info I could just search one place.

* File storage in Slack is a nightmare. Try finding a file again a month later. If I upload the same file name why can't it just version the file like Box or RedPen does? Nope, it just uploads the same file again... tagging a user or # doesn't actually tag the the file the way you want it to... so I can't even really search by those things.

* When you click "Open" a file you have to log in again? That's so busted. I can download a file, but if I'm on a phone and I click "preview" it prompts me to sign in -- extra tedious for users who enable 2FA. Security doesn't have to be that tedious, just let me open files without a login -- if I can download them but I can't open them directly it's not security, it's just an annoyance.

* The default integrations in Slack kind of suck. I know that's not 100% Slack... but why can't I get updates when someone makes a change to a Google Drive file, or creates files in a Google Drive / Box / Dropbox folder?

* Hashtags are busted. Why don't # work like they do in Twitter where I can search for them after? Having # be rooms isn't good. Nobody gets that to start... I'd so much rather be able to tag a conversation (oh and have a threaded conversation) around a # and then have that # show up in the channel column...

* User management is lame. As the administrator, why can't I go into a user's profile and add them to multiple rooms at once? Or why can't I add a bunch of people to multiple rooms at once? Also why can't I lock down user names -- I don't want my users to change their user names to political statements or stupid handles, if I set it First.Last I want it to stay that way. The last thing I want is for one of my developers to rename himself @ZombieGoatMaster4DonaldTrump and have that be something that is shown to a client.

* Mobile isn't consistent with Desktop. Why don't the channel lists in Slack sort the same way on Desktop and Mobile? Why does the + sign mean join a channel on Mobile, but create a channel on desktop? It's so inconsistent it's like they don't even bother having their different product managers talk or work with the same UX team.

Anyway really glad people are producing alternatives to Slack. Going to check this out, thanks!

<comment><USER28> > Slack has been... very slow to fix bugs / add new features. They're starting > to feel like Microsoft... like they don't move fast, aren't trying to > improve anything, and don't care about customer feedback.

we're looking for a self-hosted alternative. tried hipchat, and it was worse than slack in the areas you mentioned. mattermost has been a ray of sunshine, so far, relatively speaking. still testing it out, but they are super responsive to their users and community, between github, their forum, their pre-release server ([https://pre-release.mattermost.com/core](https://pre- release.mattermost.com/core) ), etc... they also seem to be aggressively adding new features and fixing bugs.

I realize I probably sound like a shill, but it just has been that much of a positive experience so far.

<comment><USER30> I hijacked your post, sorry. Will give Mattermost a look!

EDIT:

Your site doesn't share correctly.

I went to share this on LinkedIn:

* What Slack might learn from its Open Source alternative | Mattermost || [https://www.mattermost.org/what-slack-might-learn-from-its-o...](https://www.mattermost.org/what-slack-might-learn-from-its-open-source-alternative/)

And I see this:

[http://imgur.com/a/evVZF](http://imgur.com/a/evVZF)

You're using WordPress so you can check out:

* Yoast SEO — WordPress Plugins || [https://wordpress.org/plugins/wordpress-seo/](https://wordpress.org/plugins/wordpress-seo/)

This will add the right meta tags to make the thumbnail and image and description show up through shares with minimal effort on the part of the content creator.

<comment><USER3> Yeesh, wow, thanks @dbg31415! Have mentioned our Wordpress person to help fix this, appreciated!

</comment></comment></comment></comment><comment><USER31> How about Discord?

<comment><USER10> Discord is great, but its primary purpose is for gamers, but can of course be used for similar purposes as Slack.

The problem with Slack & Discord that Mattermost addresses is the ability to host it yourself, which means that you're in control of the data. Not everyone _needs_ that, but there are companies and especially government-owned institutions/companies that do require that.

</comment></comment><comment><USER28> comment threading is kind of amazing (in mattermost).

<comment><USER3> Thanks!

Yeah, we love using threads to keep discussion on track.

It took a long time to design. We weren't able to find anything like it, and had to design through a lot of corner cases.

We're still working on making it more discoverable. Once you use it, it's hard to go back, but it takes a while for people to discover the "Reply" button on messages.</comment></comment>


Trolls Are Swarming Young Climate Activists Online - <AUTHOR> https://www.buzzfeednews.com/article/zahrahirji/greta-thunberg-climate-teen-activist-harassment <comment><USER2> It would be nice if there was some kind of scoring about the probability that something like this was organic or a coordinated campaign with sockpuppets.

It's also a glaring example of weak points in current law and Twitter specifically. First, Twitter really needs expand its privacy options. Someone should be able to publicly share an opinion without allowing anyone to reply to their timeline or DM them. On the legal point, sending graphic pictures to underaged girls is a sex crime, and underfunded law enforcement is not keeping up given physical crimes and multijurisdictional nature. Interpol or a related entity has to start chasing down criminals that send sexual material to young people. It is plainly child abuse regardless of politics.

</comment><comment><USER3> >mom of 8-year-old climate activist Havana Chapman-Edwards

Is it just me, or is there something disturbing about an 8 year old activist for anything? I cannot see anything good coming from turning young children into activists. Kids that age need love and stability, not the fear that the world is going to end unless they do something.

<comment><USER4> So they should just sit there and wait to die is what you're saying?

<comment><USER5> Imagine telling that to your young child every day and then wondering why your child has anxiety disorders and social problems. Part of being a responsible parent is _shielding_ your children from the horrors of the world, so that they can develop in a stable and sane environment.

<comment><USER6> It can go the other way as well. My parents were helicopter parents that thought they were doing their best by shielding me "from the horrors of the world" and I suffer from related anxiety orders and social problems. I would've rather been exposed to more and had the ability to form my own opinions

<comment><USER5> I'm sure we can agree there is middle ground. I don't think instilling in them that they are just "waiting to die" unless they skip school and march in the streets counts as that middle ground.

<comment><USER6> Yes I agree, going to the extreme in either direction is not healthy

</comment></comment></comment></comment></comment></comment><comment><USER7> Of course the trolls are wrong for trolling, but trolling is a fact of life on the web.

When I was a kid I was told to never link any online account with my real identity and to always regard every person encountered on the web as a potential bad actor. The article begins with the story of an 11-year-old whose identity is linked to a public Twitter account.

There is a distinct lack of recognition for the failures in parenting taking place here. Personal safety and privacy are necessities for a healthy childhood, a public soapbox is not.

<comment><USER8> We should be asking how we can make these better environments for children, because saying children can't use a public twitter account is not going to fly. Also attributing it to bad parenting is also a cop-out in my opinion. Not all of these concerns are immediately visible to parents. If they don't use twitter themselves they might not be aware of how it can be used.

<comment><USER9> Children shouldn't use twitter.

<comment><USER8> but they already do and no amount of saying they shouldn't is going to change that

</comment></comment></comment></comment><comment><USER10> Using children as political tools is disgusting. It's blatantly manipulative. Throwing them into the cess-pool of public politics and then acting as if you're shocked they're in a cess-pool, and using that shock to try to score political points, is one of the more reprehensible tactics in the modern play book.

<comment><USER11> Yeah, kids have no place in politics. They should stay quiet, play minecraft, impress their parents with fun science projects, but under no circumstances should they speak out, and anybody amplifying their voice is disgusting and reprehensible.

<comment><USER12> It's amazing to me this is actually a debate. The US Constitution forbids people under 25 from being in Congress because children are not expected to have reasonable political opinions. They're children! They've never paid tax, worked or truly made their own decisions or experienced the consequences.

In this case, do you think these children are being presented with any alternate views at all? Are any of them being presented with the arguments of climate change skeptics in a neutral forum? Of course not. Most adults are never presented with these arguments, let alone children. No, they're being told that for inexplicable reasons the world is filled with evil people who want everyone to die and they ... _children_ ... must fight them or _the world will end_! That'd have been like telling 8 year olds in the 1950s they had to fight communism. There's no way bringing children of that age into things can ever be a good idea.

<comment><USER13> Have you considered the possibility that these kids are actually just passionate about it? And what are these "alternate views" regarding climate change you mention? There is the truth and there is misinformation perpetuated by the oil/natural gas/plastic/etc companies and those getting paid by them.

Think about it. When you're a kid, you're not yet jaded by the harsh realities of the world. That corporations drive everything and we are basically just along for the ride.

The kids are looking at our dying planet and wondering "why is nobody doing anything?!?" I often feel the same way. The difference is, I have to go to work and focus on providing for my family. I also know that no amount of protesting or public speaking will change the path we are on in any significant way. Children still believe they can make a difference and I admire that passion. They are not worried about how old they are because they are watching the "adults" sit around and argue over even the smallest of corrective measures (carbon tax).

<comment><USER12> _Have you considered the possibility that these kids are actually just passionate about it?_

Yes, but so what? 8 year olds are passionate about eating endless amounts of ice cream. Doesn't mean that passion should be acted on.

 _There is the truth and there is misinformation perpetuated by the oil /natural gas/plastic/etc companies_

Plastic companies? That's a new one! I don't think I've heard Big Plastic be described as staffed by liars before.

You sound like you've never really listened to climate change skeptics. Some of them make valid points, worrying points about media exaggeration of genuine science, actual scientific malpractice and the frequency of failed predictions in the past. You should try it. It may prove mind expanding.

But do you really want to immerse yourself in ambiguity? Or do you want to see the world as a titanic struggle between good and evil? Children very much want the latter. Disney movies always depict a purely good hero/purely evil villain dichotomy because these are stories designed for children who can't/won't handle anything complex, and additionally in order to teach them a moral code.

When I see the rhetoric around climate science, it often reminds me of Disney movies. There's Good People like the speaker and then a dark, shadowy conspiracy of Evil People whose inexplicably malign and self-destructive motives are never explained ... and who certainly aren't allowed to explain themselves!

After all, are you the devil you decry?

 _The difference is, I have to go to work and focus on providing for my family._

Indeed. Or put a bit more harshly, "why is nobody doing anything" has a simple answer: because people like you have chosen to enjoy the benefits the world has to offer in its current form, benefits like having a family and a job that's based further than walking distance.

Children have never had to provide for anyone. How can they understand this decision, the tradeoffs that go into it? Why should any adults care what they think about the big issues of the day when they've spent their entire lives in carefully controlled environments, one in which to disagree with the opinions of "experts" (teachers) yields swift and immediate punishment? They can't even start to think for themselves until they're outside that environment, which for a few could take a couple more decades.

</comment></comment></comment></comment></comment><comment><USER14> Has anyone tried to do an analysis on these trolls? Who are they and why are they trolling? I'm concerned that these aren't normal people and instead people interested in maintaining the status quo are coordinating these activities.

<comment><USER15> My default assumption is that trolls attacking any sort of "leftist" activist are either alt-reich channers or corporate astroturfers. I don't assume good faith on the part of trolls, but instead always suspect an ulterior motive.

<comment><USER16> I don't believe they're channers, they're far to numerous and their commenting style tends towards boomerisms.

<comment><USER15> At this point I no longer care. If we're not mutuals, and you attempt to reach me on Twitter, you're just wasting your time because I send unsolicited interaction attempts by non-mutuals to /dev/null.

</comment></comment></comment></comment><comment><USER17> The media and activists are largely to blame here.

If a child wants to opine on climate change or abortion or whatever, that's fine. But activists and the media shouldn't push to elevate that child to the national stage to score political points.

Once you've set yourself up as a political activist, people will respond to your beliefs, and they won't always be kind.

<comment><USER18> Excellent. Blame the victim for having an opinion.

People are _not_ responding to their beliefs though - this is straight up abuse, racism, and crass insults. Presumably as they are _unable_ to engage with those beliefs at a rational level.

<comment><USER17> I did not blame the victim. I specifically blamed the many adults and organizations using her to try and score political points.

<comment><USER19> I'm not sure why you wouldn't blame the trolls? There are clear antagonists here.

<comment><USER20> I have no idea either... this train of thought is rampant in this thread and other forums. Condemn the use of props in politics without a single thought towards the disgusting behavior of everyone involved who attack children and their parents. Did everyone forget how every politician takes photo ops with babies? The token appearances at disasters? Props are not new to politics but direct harassment of individuals under the age of 18 is thanks to the double- edged sword of global connectedness.

</comment></comment></comment></comment></comment><comment><USER11> And the trolls managed to flag the story off the front page as well :(

<comment> 52-6F-62 It's not right, either. The thread had barely started and there seemed to be some interesting, civil comments among the blatant bait. I hope the mods can catch it. You can 'vouch' for flagged comments, but not posts, which usually helps poorly-flagged items.

<comment><USER18> Aye, it's becoming habitual on some topics.

Hopefully the mods will second-chance it, as despite the oh-so-predictable trash comments there's an important issue.

<comment> 52-6F-62 Agreed. And it seems as relevant as anything to this forum, though on more philosophical/ethical grounds than technical.

</comment></comment></comment></comment><comment><USER18> So many claiming it's adults pulling strings and getting their kids into politics or activism.

Just one point to make to that: For any kid protesting, or caring about climate, it's been an issue that's been constantly in the background _their whole damn life._ Longer than they've been able to read.

Things we've had longer than 18 years: Recycling bins; climate and associated environmental stories such as species loss on news, documentaries, in schools; politicians talking about, dismissing and greenwashing climate; climate related taxes; alternative lightbulbs, insulation and low-energy promotions from utility companies. [other countries may vary on details, and age of majority]

How can they possibly _not be_ forming strong opinions, and wanting to do something?

Remember CND and the peace movements? That was part of the kid's and youth culture of the sixties - for that generation _that_ was impossible to miss with the constant Cold War backdrop. This generation gets added trolling and conspiracy claims of it being adults pulling strings.

</comment><comment><USER21> Sad to see. Although, honestly, the parents shouldn't have allowed their kids to put themselves in these 'activist' positions to begin with. What did they expect? And also, a 16 year old girl speaking at the UN? Is that a joke?

I fully support protecting the environment but this is child exploitation for political purposes. These movements should be led by scientists, not children. Is it any wonder people are still skeptical?

<comment><USER22> The movement has been led by scientists for decades. They have been ignored.

If it's shameful that a 16 year old is being forced to lead a movement, the shame is on society and the older generations for not doing anything about climate change despite manifest urgency.

<comment><USER23> What makes you think that this child abuse is good for the cause? I see a lot of negative reactions

<comment><USER16> Climate change is a much more important issue than what can barely if at all be termed child abuse.

</comment></comment></comment></comment><comment><USER23> I cant help but think that those girls were selected specifically because they re underage. That they would attract trolls is an inevitability.

<comment><USER24> Is the solution to suppress their voices, rather than protect them from trolls and suppress the voices of the trolls?

<comment><USER23> No just dont amplify them so incredibly much. They are children in the end, they deserve protection

Trolling is a fundamental right , not being trolled is not

<comment><USER25> > Trolling is a fundamental right , not being trolled is not

This is hilariously wrong in most jurisdictions, probably including the one you're thinking of.

You may be parseing down 'trolling' to 'behaving argumentatively on the internets' but this is not the substance of what attacks are being brought against these young women, who are also minors.

Feel free to double down on "death threats aren't trolling" and so on, if you've missed the point. UDHR article 12 for further reading.

<comment><USER26> It's always illegal to make death threats.

</comment></comment></comment></comment></comment><comment><USER15> Why are children under 13 even being allowed to create social media accounts?

<comment><USER18> Facebook and Twitter never, ever restricted them from doing so. You don't need age verification or ID to sign up.

<comment><USER27> Then they should have a reporting option that goes something like "User is under 13" which requires a verification of parental consent to continue use of the account, otherwise it's just a blatant violation of COPPA.

</comment></comment></comment><comment><USER28> Cults of personality are always strange to behold, no matter who the central figure is, or what their message is (for good or ill), at least IMO & there's a lot about the coverage of young Greta that feels very cult of personality- ish

</comment><comment><USER29> The fact is that these young activists make great stories. The News Media loves it. It's very good for journalism and publicity. Everyone loves a story.

</comment><comment><USER30> Kids are simply used these days to deflect any criticism, HOW DARE YOU CRITICIZE A 16 YR OLD KID

The truth is most of these children are just that, children, they are being used by capitalistic parents as a walking billboard for whatever agenda or service is being promoted.

Awareness is great and all but not many people are looking to be more aware, we are looking for practical solutions, none of which are being offered with all the attention goes to idolizing a child.

</comment><comment><USER31> Better title:

Adults are bullying children

</comment><comment><USER32> It would be slightly less hypocritical if some of the same people that are wringing their hands about people being mean to Greta Thunberg weren't egging on awfulness against the Covington kids.

I'm not sympathetic to those who are moralizing about trolling this child they like, when they just put down the torches and pitchforks they had out for a different child they don't like.

<comment> 52-6F-62 I'm sorry, but I wouldn't equate a young person standing up for protecting our environment and actually making real changes to a young person who decided to take his trolling public and stare down an elder aboriginal man...

</comment></comment><comment><USER33> Sad state of discourse these days. Whatever happened to having civilized discussions?

<comment><USER23> Are you from the past?

<comment><USER34> We all are.</comment></comment></comment>


Digital Ad Ecosystem and the Impact of Data Privacy and Competition Policy - <AUTHOR> https://www.judiciary.senate.gov/meetings/understanding-the-digital-advertising-ecosystem-and-the-impact-of-data-privacy-and-competition-policy <comment><AUTHOR> Hearing starts at the 14' mark.</comment>


A reinvention of the cooler has broken $6 million on Kickstarter - <AUTHOR> https://www.kickstarter.com/projects/ryangrepper/coolest-cooler-21st-century-cooler-thats-actually?ref=nav_search

<comment><USER2> This looks like a really useful product, but there is still just one more little feature they could add -

[http://www.coolerscooterdirect.com/](http://www.coolerscooterdirect.com/)

(This company make a combination cooler/electric scooter)

</comment><comment><USER3> Thanks for posting this, I hadn't seen it before. Looks like an amazing product and long overdue.</comment>


Show HN: Hackedip.org – Get alerted if your IP appears on a security threat list - <AUTHOR> https://www.hackedip.org <comment><AUTHOR> After suffering through an adventure of trying to ingest threat lists, we built hackedip.org to make it easy to get an email alert if an ip address appears on a public threat intelligence list.

At this point, our lists cover 600M+ ip addresses listed as threats.

There is an API if you'd like to use in a DevOps context (i.e. periodically check if a your servers/containers are running on IP addresses appearing on threat lists, check if a website visitor is coming from a suspect IP).

Would love feedback you have to improve and make more useful.</comment>


Agency Spotter - resource makes it easy to find agencies - <AUTHOR> http://agencyspotter.com like that they are organizing the creative agency industry and making it easier for users... similar to behance but b2b for marketers and agencies, not just individuals. <comment><USER2> interesting. covers lots of creative agencies. wonder if they will add dev agencies.</comment>


Node.js and io.js will be merging - <AUTHOR> https://github.com/nodejs/node/issues/1664 <comment><USER2> This Github issue was news in May. If you're looking for a status update there's nothing to see here

</comment><comment><USER3> I'm stoked they are merging. I think it's not a great idea to rename the project.

Node has had trouble getting traction in some enterprise circles because it was "0.x.x" instead of "1.x.x" or seen as early technology, or JS is not strongly typed, etc etc. But at least it had name recognition.

Nobody outside the community has really heard of iojs. If they go forward with a rename, it's going to appear volatile - if outsiders even realize it's the same project.</comment>


An Introduction to Variable Fonts (2019) - <AUTHOR> https://24ways.org/2019/an-introduction-to-variable-fonts/ <comment><USER2> There's a wonderful, interactive playground of variable fonts up at [https://v-fonts.com](https://v-fonts.com). Most variable fonts let you interpolate font weight, width, or slant, but some go much further. See for instance, [http://variableemojis.com](http://variableemojis.com)

</comment><comment><USER3> FWIW - I worked on Google Fonts for the last 18 months. Happy to answer any questions.

In short: rather than having a single font file for every weight, variable fonts take in a variable (ie. weight, width, optical size, etc) and can render the fonts glyph at a specific design space. This means instead of having three files for thin, normal and bold, you can have one slightly large file that can render thin, bold, and everything better.

<comment><USER4> Is it good for web usage? 400,400i,700,700i fonts' file sizes combined is still less than one variable fonts'size. Isn't that true?

<comment><USER3> Its great for web usage but the context matters. It's not so black or white.

The font file that displays a weight is using a "master". Often an extreme expression of a font (thin/bold) is based on a master. The in between weights (normal/medium) can be interpolated without an explicit master. So you can get now just Roboto 200, but also Roboto 220, 250, 300, 315.

When the variable font file has many masters, then it has the possibility to be bigger than having individual fonts. This is why its not so straight forward.

In the case that you have an italic font, for example, you might need a specific master for the italic and the normal size.

The cases where it is smaller to use a variable font is when you have multiple weights that can be interpolated from less masters in the font file, than you would need font files. For example, having 300, 400, 600 font weight used in a variable file could be smaller if the 300/400/600 weights are all interpolated from the 400 weight master. This way the fonts thin/bold masters could be removed from the font.

Google Fonts team does some really cool stuff around this, where they minimize the size of the file being sent down the wire based on your browsers capability.

TLDR: Variable fonts can be faster. When it is, it's a lot faster. But its not black and white, so there isn't a straight forward way to know.

</comment></comment></comment><comment><USER5> [https://tidbits.com/1994/09/26/preliminary-practical- primer-...](https://tidbits.com/1994/09/26/preliminary-practical-primer-to- quickdraw-gx-part-iii/)

</comment><comment><USER6> It baffles me so few programs support these.

<comment><USER7> Adobe Illustrator does and I use the heck out of it, particularly with the Adobe Variable Acumin font. So useful.

<comment><USER6> I know the Adpbe suite does support them, but what about Microsoft Word or Apple Pages? I would say variable fonts are the future.

<comment><USER7> I just tested it out with MS Word and the variable fonts do not show up in the list of available fonts within Word.

Boo.

<comment><USER8> They should show up with their individual styles, but you can't variate them. They need to contain a STAT table to work on Windows though.

<comment><USER7> Hmm. Although it shows up in Illustrator, Photoshop and InDesign, it does not make an appearance in the MS Word font list, either as a master or as individual styles.

<comment><USER8> Adobe apps don't need a STAT afaik, Microsoft apps do.</comment></comment></comment></comment></comment></comment></comment>


CHIP-8 in Common Lisp - <AUTHOR> http://stevelosh.com/blog/2016/12/chip8-graphics/?m=1 <comment><USER2> Cool. I made a so called dynamically recompiling (dynarec) CHIP-8 emulator in Lisp myself, but never got around to implementing the actual graphics, input, and sound.

[https://github.com/flambard/chip-8-dynarec](https://github.com/flambard/chip-8-dynarec)

Perhaps my project will be completed after all.. :-)

</comment><comment><USER3> Very interesting read! But could somebody explain why the following piece of code is needed? And why is it defined inline?

      (defun-inline (setf vref) (new-value chip x y)
         (setf (aref (chip-video chip) (+ (* +screen-width+ y) x))
            new-value))

<comment><USER4> vref and (setf vref) define getter and setter functions for manipulating pixel arrays. Since these functions are used a lot, it makes sense to allow compiler to inline them for maximum speed.

Normally function must be accessed trough the symbol and it can be redefined on the fly.

<comment><USER3> I understand what they do, and I appreciate that it helps performance to inline them. What I don't understand is the (setf vref) syntax. I thought that after a defun statement you had to have a symbol, not an S-expression? Something like so:

        (defun-inline set-vref (new-value chip x y)
           ...)

And how would you actually call the original function to set a pixel? (I'm not very familiar with inlines, maybe that's my problem here.)

<comment><USER5> Common lisp has this universal setter-macro, SETF, which can be used to set values to all sorts of _places_.

In this case you would use

        (setf (vref chip x y) new-value)

to call the function (just like with AREF above). Using SETF has the advantage that you can define "modify macros" that read and write a _place_. For example,

        (incf (vref chip x y) delta)

would increment the place by DELTA. Or

        (rotatef (vref chip x1 y1)
                 (vref chip x2 y2))

would swap two pixels.

</comment></comment></comment></comment><comment><USER6> This is one of the coolest things i've ever seen!

It's a rare treat to see low level programming in Common Lisp!!

+100 for Steve Losh!

<comment><USER7> For more low-level Lisp see

[https://github.com/kingcons/cl-6502/blob/master/README.md](https://github.com/kingcons/cl-6502/blob/master/README.md)

And the corresponding book

[http://redlinernotes.com/docs/cl-6502.pdf](http://redlinernotes.com/docs/cl-6502.pdf)

</comment></comment><comment><USER8> > Also note that the program counter starts at address #x200, because that's > where the ROM data eventually gets loaded into the CHIP-8 memory.

If I understand correctly, that's because 0-1FF was ROM (including the interpreter itself) on the original machine, and you typed CHIP-8 programs into RAM.

<comment><USER9> Yes, traditionally the interpreter was located there. However, there is no "original machine". CHIP-8 was originally designed as a virtual machine for portability, similar to Java.

[https://en.wikipedia.org/wiki/CHIP-8](https://en.wikipedia.org/wiki/CHIP-8)

<comment><USER8> Yes; I mean the machines on which the original interpreter ran, not that CHIP-8 itself was originally released in a hardware implementation.

</comment></comment></comment><comment><USER10> So here, Steve Losh, one of the best Vimmers out there, is also an excellent Lisper! It would be interesting to hear his views on Emacs since he transitioned to Clojure. I am curious to know whether he uses Vim for Clojure/Lisp development.

<comment><USER11> I moved from Clojure to Common Lisp a few years ago.

I still use (Neo)Vim, using VLIME for Common Lisp interaction: [https://github.com/l04m33/vlime](https://github.com/l04m33/vlime) It works great.

<comment><USER10> I missed your response, really hard to see responses in comments on #HN. I'm now curious why you moved from clojure to CLISP! I thought most people move the other way around!</comment></comment></comment>


Database landscape map (June 2013) - <AUTHOR> http://blogs.the451group.com/information_management/2013/06/10/updated-database-landscape-map-june-2013/

<comment><AUTHOR> Everyone who ever though _" Hey, what the world needs is another database"_ should be forced to take a look at this before they start programming :)</comment>


Coding Camp and Mental Health Survey - <AUTHOR> https://www.surveymonkey.com/r/HYTLJG7 <comment><AUTHOR> Hi Everyone,

I am looking for people to take this survey for some research I am doing on mental health & developers. All inspiring or current developers are welcome to take it. Also looking for additional insight on how mental health has impacted you if anyone would like to connect on the side with me.

Any help is appreciated - thank you! K</comment>


Show HN: Links – easy shortcuts for developers - <AUTHOR> https://linksource.co/ <comment><AUTHOR> Hello author of Links here.

If website is not working, you can check a preview GIF here: [https://cloud.githubusercontent.com/assets/486818/11321149/e...](https://cloud.githubusercontent.com/assets/486818/11321149/e8a91b56-90bb-11e5-8ebb-b1cf7b57a25a.gif)

I made this project out of frustration, searching for download links on Google every time I wanted to download an editor, a language or anything else.

Some links are pages and some links are downloads (zip, exe, dmg), that's why in settings, site allows you to open links in a new tab or current tab. The reason for this is that some websites don't have dynamic links to download latest versions. (`example.com/download_latest_win`)

Source is on Github: [https://github.com/links- js/links](https://github.com/links-js/links)

If you have any questions, please ask away.</comment>


64% of Machines Report Multiple Cores -- Unity Web Player Q2 2010 - <AUTHOR> http://unity3d.com/webplayer/hwstats/pages/web-2010Q2-cores.html

<comment><USER2> This statistic is a bit skewed. They obtained the data from the users of their plugin. Unity makes a 3D graphics plugin for browsers, sorta like flash but higher performance. However, their users are 100% gamers. Show me any modern 3D gaming machine that isn't beefed up. Hardly a representative sample.

<comment><AUTHOR> Yeah, but the web player is largely used for casual games. So, these aren't typically people's hot-rodded over-clocked systems.

Also, we're looking at CPU cores, not GPUs, which (especially on the Mac side) are not a user-serviceable component.

So, I'd say this is at least representative of Mac casual gamers with default hardware.

</comment></comment><comment><USER3> This is sort of neat. If you look at the statistics, most of the people are still running with 2gb/1gb ram, =< 256meg vram, IE: an older system. I've got a 2007 imac with 4gig. and I'm slightly above the curve wrt ram.

So the takeaway seems to be target 2-3 year old computers. The fact that it comes from casual users (the mass audience) makes it even more potent.

</comment><comment><AUTHOR> It makes me sad that CPython is so broken for multi-core.</comment>


Ask HN: How to e-file Corp Income taxes for Delaware C-Corp without accountant? - <AUTHOR> Has anybody e-file their Corporate Income tax for their Delaware C-Corp Company on their own without an accountant?
If a company doesn't have any expenses or income yet and they just need to file for tax purposes?
What did you use? Thanks. <comment><USER2> I've used TaxAct Online to prepare and file simple S Corp and LLC returns, and they seem to support C Corps too: [https://www.taxact.com/business- taxes/online/c-corporation](https://www.taxact.com/business- taxes/online/c-corporation)

<comment><AUTHOR> Thanks Troy!</comment></comment>


An Illustrated Guide to SSH Agent Forwarding - <AUTHOR> http://www.unixwiz.net/techtips/ssh-agent-forwarding.html <comment><USER2> SSH agent forwarding is tremendously useful, but I'm glad the article points out how trivial it is for the root user on a remote system to hijack a user's agent and potentially connect to other systems. The moral of the story: Only forward your agent to trusted systems.

<comment><USER3> Exactly. Actually, I haven't yet seen a scenario where ssh agent forwarding is useful. It always increases the risks: the machine you're forwarding to may be compromised, and in case it is, your private key is not private anymore. And the attacker who gets your key gets instant access to _all_ other machines you access with that key. How is it worth it? Why would anyone bet the [server] farm on that when you can easily use "ssh -L" or something to forward your ssh connections without exposing your key? Beats me.

<comment><USER4> Why would _your_ private keys be lost? They're not transferred at any time. That's kind of the _point_ of private keys in an asymmetrical encryption scheme.

All the agent forwarding exposes you to is someone in the middle routing requests _they_ generate to authenticate against _your_ computer, which is automatically responded to by your using an agent. If you don't use an agent, it'll ask for your password to use your private key.

edit: using a _second_ agent on the middle computer _without_ agent forwarding exposes your private key, because the agent on that computer needs to be able to respond to its outbound connections. Agent forwarding prevents this from being necessary. It's specifically built to prevent what you described as the danger.

<comment><USER3> Duh. Where exactly did you get the idea that your private key would be _lost_? It's no longer private because the attacker can use your forwarded connection "to authenticate using the identities loaded into the agent". It's right there in ssh man page.

Neither did I ever suggest using the second agent on the middle computer -- sure, it's obviously stupid.

> It's specifically built to prevent what you described as the danger.

You're wrong. See "man ssh", it's documented right there in "-A" option description.

<comment><USER4> Because you mentioned:

> _your private key is not private anymore_

and:

> _the attacker who gets your key gets instant access to all other machines > you access with that key._

Which is wrong. They _don't_ get your key. They get the ability to authenticate _as_ you _while you are connected_ , and nothing else.

</comment></comment></comment></comment></comment><comment><USER5> I personally would like to see more informative articles like this on basics, its been really fun like seeing articles on netcat. You always pick up little juicy details

</comment><comment><USER6> Cygwin users may want to check out ssh-pageant or charade to access ssh keys from PuTTY's Pageant storage.

<http://github.com/cuviper/ssh-pageant>

<http://github.com/wesleyd/charade>

Disclaimer: I am the author of ssh-pageant. I found charade just recently and noticed that it takes a very similar approach.</comment>


Building Moments, a new photo sharing app - <AUTHOR> https://code.facebook.com/posts/498597036962415/under-the-hood-building-moments/

<comment><USER2> Facebook is probably the only platform who could solve "photo sharing" in the way it was used to be.

There was a time when we passed our usb-key (or even "worse", cds) to have all the photos of a trip or event. Now, moments, could be the solution.

Given the audience facebook has it could probably be interesting to see how it stacks up with competitors like Google Photos.

I don't see them being enemies, though. It seems clear to me that GPhotos is more aimed toward the "I want to track all of my moments" VS the "sharing moments with the group" of the FB app.

So, nice addition, let's see how it goes in the long term.

</comment><comment><USER3> This feature should have been part of Facebook a while ago when your platform has photo-sharing and friends in your DNA. Well, better late than never.

<comment><USER4> What's nice about it is that it has a save feature. So I can click Save and tell Google Photos to go ahead and start backing up that folder.

What sucks about that is that the photos have no location metadata. (Understandable).

What really sucks about that is that the photos HAVE NO DATE/TIME METADATA. WHAT THE FUCK.</comment></comment>


Does Culture Really Evolve Like Organisms Do? - <AUTHOR> http://nautil.us/blog/does-culture-really-evolve-like-organisms-do <comment><USER2> Evolution occurs when:

1) entities exist and replicate 2) changes occur during replication 3) selection processes pertain that mean some entities replicate more than others

If culture meets those criteria then it is evolving. That may not help you understand the details or make any useful predictions. You probably need all kinds of additional models and theories to get to grips with culture. There may be other non-evolution processes happening as well. But to decide if it is evolving, just determine if these criteria apply, and you are done.

<comment><USER3> That is natural selection - evolution can happen without natural selection.

<comment><USER2> Which of these things can be omitted and evolution remains?

</comment></comment></comment><comment><USER4> At points in human history there was almost certainly natural selection for certain behaviors and cultural practices.

Certainly the parallels with biological evolution aren't completely accurate, but throughout history, cultures have conquered and displaced others and were able to do so (in part at least) because they were doing something different (presumably "better" from survival standpoint). So from this perspective cultures have certainly "evolved" partially through a natural selection process.

</comment><comment><USER3> Organisms evolve through natural selection - culture evolves in a different way. Memes might be similar in some ways to genes - but there is no natural selection of cultures.

<comment><USER5> Isn't there? A culture, idea or a meme that doesn't spread from person to person in some way isn't going to exist after the people participating in it die. When you get down to it, "natural selection" is just a similar application of population dynamics.

The real differences are in the radically different composition of an organism and an idea/meme/culture/institution, with implications for the way these ideas are transmitted and transformed.

<comment><USER6> It's obvious this idea is crap if you think about fads. These are ideas that propagate rapidly until they become quite popular and then mysteriously vanish. This flies in the face of an inherent superiority driving the propagation of the idea.

As an evolutionary biologist and a student of cultural transmission this idea (memetics) has always annoyed me from both ends. It is a bad idea, and I wish it would die. It's even more annoying that it somehow manages to add to Dawkins' misplaced prestige.

<comment><USER7> A biological analog that pops into mind is fermentation. Bacteria produce alcohol in an environment until the alcohol reaches toxic levels and all the bacteria die.

I am not saying they are equivalent, just that the propagation of a fad has similarities to the propagation of alcohol-producing bacteria in a closed environment.

<comment><USER6> So now the analogy is to growth and dying off rather than selection, and the analog of the meme is the bacterial population, rather than a gene?

Why are we trying to make these ham-fisted analogies at all? Ideas do not behave anything like genes; they have almost no properties in common with genes.

</comment></comment></comment></comment></comment><comment> anti-shill yes, culture does evolve.

The question is to what degree has the overclass evolved our culture in ways that best suits the financial interests of the overclass (e.g., plutocrats, large corporations etc)?

Has our culture been domesticated by the overclass through overclass influence on educational curricula?

If so, this would seem to be a strong argument against common core.</comment>


College Perspectives: Hello World - spider-pig http://ladycoders.com/2013/02/19/college-perspectives-hello-world/

<comment><USER2> This title is a bit misleading. I read it and figured that she was "told" this (that she only got the interview because she's female) by someone who was in a position to know. Only after reading the article did I figure out that the intended meaning is closer to "Stanford CS freshman encouraged to believe she only got Twitter interview because she's female".

EDIT: For the record, I think the actual article is very interesting (much more so than the one I thought I was going to read), and it is this that motivated my comment.

EDIT 2: Aaand now it's been replaced by the article's own headline, which unfortunately tells us almost nothing when taken out of its original context. Sigh.

</comment><comment><USER3> I came into this article thinking that it was someone at Twitter, probably as part of the interview process, that told her this. Maybe it's just me, but I feel like the title is a bit misleading.

<comment><USER4> Its not just you. For the record, its some random person at Stanford that said it.

</comment></comment><comment><USER5> Aside from the obvious (and deplorable) sexism, I feel like there's some other flaws in this kid's thinking.

1\. Does everyone who gets an interview or gets hired at some recognizable name necessarily do so because they're good at what they do? This kid seems to think that if he got an interview somewhere, it must mean he's good; that only those who have reached his own idea of his own skills can reach it. He's not yet learned that incompetent programmers get hired all the time, even at the companies you might look up to as a college kid.

2\. While he's trying to justify his mental model of #1 above (if you got the interview, you must be worthy, or else ...), did he not think to ask questions like "maybe you just got that interview because of Stanford"? Not sure why he jumps straight to gender, when there are a bunch of other screwed up and not necessarily justified factors that can impact your ability to get your foot in the door.

</comment><comment><USER6> All the comments so far are about the title. But I am wondering something that may be related (but not directly about the OP): is it fair to point out when some individual did indeed get a large advantage in admissions/internships/scholarships because of gender/race?

For example, at the University of Michigan, native americans / blacks / hispanics gets a 20 points boost over whites / asians / indians. This is their published policy. I feel like we shouldn't have to pretend that everyone got in based on merit, when it is clear that some genders/races get a bonus.

Apologies if this is too sensitive of an issue to discuss openly. I am from outside the United States and we do not typically have these conversations.

<comment><USER7> It is absolutely not too sensitive of an issue to discuss openly. If we can't talk about it, it just festers and creates anger.

The problem with this kind of thing is the the people that got in solely on merit assume that people who fit into any of those categories got in without having _any_ merit. This is rarely true except in the case where it is extremely difficult to find that particular set of things.

When that assumption is there, people are treated differently. It's often not even on a conscious level. It's going over to help the new female that showed up at a meetup assuming she needs help getting started with Python - <AUTHOR> ignoring the 5 new males that came in before her. It's assuming that the black woman over there got her job because who ever heard of a black coder? She probably sucks at it.

Discussing it is different than dismissing someone's accomplishments because they _appear_ to be privileged.

</comment></comment><comment><USER8> If you say that the title of this post is misleading, you are trivializing the experience of this young woman. She is finding out that all her colleagues at Stanford in computer science are telling her that she is only getting job interviews at prestigious companies because she's female, and you think that the problem here is that there's a single word wrong in a post title on Hacker News? Priorities, people.

<comment><USER2> My apologies; I certainly didn't mean to trivialize it at all. My intention was exactly the opposite; I almost didn't follow the link because I figured the story at the other end was unlikely to be more than hearsay and/or mudslinging. But I did read it (mainly because I recognized the ladycoders.com domain name), and was surprised to find a brief but excellent observation about how easy it is for women to conspire against their own self-interests. That's the part that should be in the headline.

</comment></comment><comment><USER9> I fully agree that we need more women in technical fields and that the social stigmas that work against this should be slowly eliminated. (Slowly because it can't happen instantaneously, not because slower is better.)

However, I'm going to disagree with something with a little bit of the other stuff. Let's assume that "I knew I wasn't very good at CS..." is true, and that this isn't just modesty. Then work harder and learn more and practice more and code more and study more! Make yourself good at CS! Don't let yourself use your gender as a crutch or let it hinder you. Earn what you get because of what you know and can do. Don't accept the 'special treatment' you claim you are getting because you are a woman.

Perhaps I'm missing the main point the article's trying to make. If anyone wants to give a concise to the point couple sentence summary I'd appreciate it.

<comment><USER2> Women are stringently socialized to be modest, far more so than men, particularly in domains that are seen as "men's work". So your starting assumption isn't very safe. And while "work harder and learn more" is good advice, it's generic advice! Everyone should be doing that, all the time. Even if you're at the top of your CS class; you won't stay there if you rest on your laurels. Finally, there's no reason to think that she used her gender as a crutch.

It's very easy for anyone to feel that they're getting special treatment when they get their first professional job. Breaking into a field, any field, frequently requires pulling strings, taking advantage of connections, or just plain good luck. I know I certainly did when I got my first programming job. When that happened, my peers congratulated me and expressed confidence that I would quickly prove to my employer that they were right to hire me. Not one person speculated to my face that I probably got the job just because I was an upper-middle-class white male. Even though they would have been FAR more justified making that (obnoxious and unfounded) assumption than the one described in this article.</comment></comment>


NearbyNerd - cool Australian startup - <AUTHOR> http://nearbynerd.com.au

<comment><AUTHOR> Pretty cool has anyone seen anything like this?

<comment><USER2> This would have been quite handy back in Uni to make some money on the side</comment></comment>


Why you shouldn't ALWAYS quick return from a function - <AUTHOR> https://blog.benwinding.com/dont-always-quick-return-from-functions/ <comment><USER2> What about using scoped pointers ?

Also C would usually handle it with one exit point but using goto to jump to the cleanup/return part.</comment>


Should I Use Objective C or Swift for Writing iOS Apps? - <AUTHOR> https://h4labs.wordpress.com/2016/02/09/should-i-use-objective-c-or-swift-for-writing-ios-apps <comment><USER2> Yes, obviously Swift.

I am brand new to iOS development, and picked Swift for this exact reason. I figured that if it proved to be a bad choice, I'd find out quickly and learn Objective C. Here are my impressions so far.

\- The Apple documentation does a good job of covering both languages.

\- A lot of 3rd party documentation is being maintained to cover Swift, e.g. much of the material on raywenderlich.com.

\- There are good libraries. Objective C libraries for networking and JSON have Swift versions (alamofire, SwiftyJSON, Starscream).

\- While it isn't difficult to understand Objective C answers to questions, (e.g. on StackOverflow), there are often Swift answers too.

\- I haven't found anything that works in Objective C but not Swift, but then I haven't tried anything very advanced either. My app is very simple so far.

I think that Swift has some bizarre and ugly features, but it seems much nicer than Objective C.

One negative: XCode is not a great IDE for Swift. Refactoring just doesn't work. Renaming things tied to the UI via the storyboard is asking for trouble. I don't know whether this is true for Objective C also. In general XCode is just way, way behind Intellij, the IDE I use for Java.

<comment><AUTHOR> if you like IntelliJ, there's always AppCode:

[https://www.jetbrains.com/objc/](https://www.jetbrains.com/objc/)

<comment><USER2> Just started playing with it. Looks _very_ promising.</comment></comment></comment>


Fully Homomorphic Encryption Using Ideal Lattices (2009) [pdf] - <AUTHOR> https://www.cs.cmu.edu/~odonnell/hits09/gentry-homomorphic-encryption.pdf <comment><USER2> This came out of Gentry's PhD thesis under Dan Boneh, for which Gentry won the ACM Doctoral Dissertation and Grace Murray Hopper awards, and later the MacArthur Prize. It was the first demonstration of fully homomorphic encryption, and therefore resolved a very large open problem in theoretical cryptography.

</comment><comment><USER3> I would be interested how the performance of running a homomorphic circuit compares to running the same algorithm without encryption

<comment> caleb-allen I went down this rabbit hole a week or two ago. From my understanding, it is a few orders of magnitude slower.

<comment><USER4> More than a few. Also, all the benchmark algorithms I've seen in papers have been trivial so this is very much still an active area of research. The idea is tantalizing though, and I'm looking forward to new breakthroughs in this space.</comment></comment></comment>


Show HN: InstaPy Gets a Cross Platform GUI - <AUTHOR> https://github.com/ahmadudin/electron-instaPy-GUI <comment><USER2> Interesting, do you think this will change anything about InstaPy being pretty hard to set up for someone that is not into coding?

<comment><AUTHOR> Good question, I hope we will find some easy ways to get over these "problems" as well...

</comment></comment><comment><USER3> Finally</comment>


Youtube down in India for the past 10 minutes - <AUTHOR>

<comment><USER2> > Youtube down in India for the past 10 minutes

Oh, my God -- ten minutes without YouTube. How will they survive?</comment>


More on Google and Day Care (pricing out smaller providers) - <AUTHOR> http://executivesuite.blogs.nytimes.com/2008/07/11/more-on-google-and-day-care/

<comment><USER2> Paying higher rates to day-care teachers doesn't seem so evil to me.</comment>


Actuarial Mathematics - <AUTHOR> Which are the best books to fully understand the first year of Actuarial Mathematics degree? <comment><USER2> I like this one (a little dated but this is evergreen material). Actuarial Mathematics 2nd Edition ISBN-13: 978-0938959465 ISBN-10: 0938959468</comment>


How Zika virus infiltrates the placenta - <AUTHOR> https://cosmosmagazine.com/life-sciences/how-zika-virus-infiltrates-placenta <comment><USER2> Interesting content, but page does not display on Chrome with adblock. Renders OK on Opera without adblock.

<comment><AUTHOR> Works for me with Chrome and uBlock origin</comment></comment>


Tencent to offer 10TB of free cloud storage - <AUTHOR> http://www.techinasia.com/forget-box-skydrive-dropbox-tencents-10tb-free-cloud-storage-hands/

<comment><USER2> <irony>Infrastructure provided for free by MPS?</irony></comment>


DNA Data from California Newborn Blood Samples Stored, Sold to 3rd Parties - <AUTHOR> http://sanfrancisco.cbslocal.com/2015/11/09/dna-data-from-california-newborn-blood-samples-stored-sold-to-3rd-parties/ <comment><AUTHOR> "Turns out a non-descript office building in Richmond contains the DNA of every person born in California since 1983."

"But the California Department of Public Health (CDPH) is not the only agency using the blood spots. Law enforcement can request them. Private companies can buy them to do research – without your consent."</comment>


Ask HN: Why isn't there a vertical search engine for health? - <AUTHOR>

Why hasn't anything replaced Webmd for general health information? And why isn't there a vertical search engine for symptom/potential issue matching?<p>Seems like an opportunity, but I'm curious why there isn't a site that already exists for this. <comment><USER2> WebMD does it: <http://symptoms.webmd.com/>

</comment><comment><USER3> I suspect the answer is "liability".

<comment><USER4> Bingo. There's a reason why everyone advises you to 'consult a professional doctor' when dispensing medical advice.

</comment></comment><comment><USER5> could it be to do with heterogeneity of data? and multitude of sources, difficult to link in the absence of clear standards?</comment>


California Governor Signs Bill That Bans Bots from Pretending to Be Real People - <AUTHOR> https://news.slashdot.org/story/18/10/02/163220/california-governor-jerry-brown-signs-a-bill-that-bans-bots-from-pretending-to-be-real-people <comment><USER2> I mourn Serdar Argic.</comment>