Ask/Show HN: HNdex, lists to replace spreadsheets on HN - <AUTHOR>

http://hndex.imnotpete.com
Hacker News needs a secure way to create directories of our users and their ideas - "These spreadsheets are always vandalized, abandoned and then forgotten." [1] HNdex is that secure way: all lists and list items are identified by the HN user who submitted them. If pg or patio11 or jacquesm is listed as available to mentor a startup, you can be sure that user put himself there.
I plan to unveil HNdex early next week; I've worked on it for a couple of evenings and it's nearly done. I wanted to gauge interest in particular features for my MVP. Here is a list of features I am currently planning to have when I unveil it:
* Each user is tied to their HN login
* Any user can create a list
* Lists are marked as "people" and "not-people" (IE, offers or unused business ideas)
* Users can add their own profiles, once, to a "people" list
* Users can add to "not-people" N times
* Users can remove their submissions from any list
* Some form of flagging what vandalism does get through (manual review? auto-delete after N flags? not sure yet)
* A "submit to HN" link for each list
* Allow users to store more bio information if their HN profile is sparse.
I plan to continue improving this after I release, but are there any other features you think are needed for the app to be useful?
---
[1] http://news.ycombinator.com/item?id=1794416
edit: also, I am unable to post here from work, so I will be responding to feedback this evening. <comment><USER2> It sounds like you're starting off with a reasonable MVP feature set, but I'm mainly wondering what lists you will have at the start. It might go more smoothly if you pick a few important lists to feature, and maybe even scrape data from the Google Spreadsheets if it's current, than just leave it wide open for us to create lists.

Lists I'd suggest featuring:

\- Companies Hiring

\- Hackers seeking full-time jobs

\- Contractors available for hire

\- Seeking co-founder

There are certainly many other lists that come up on HN, but I'd strongly suggest focusing on a small set of proven ones to feature prominently on your site, with others available in a list sorted by last update time. Also, I'd suggest you work to ensure the featured lists capture enough information to discourage forking them -- for example, you should collect geographic data in the job-related lists, and at some point allow filtering by location. You don't need to support filtering in the first release, I think, but you want to avoid splintering attention from the featured lists due to e.g. "Boston jobs" and "Bay Area jobs" and "New York jobs".

TL;DR: this app will succeed if it has a couple of major lists that a large group of HNers use regularly; so it's more important to ensure the key lists have staying power than encourage the creation of lots of little lists.

<comment><AUTHOR> That's a great idea; I'll see what I can do towards that end. Will need a way for those users to claim their entries..

</comment></comment><comment><USER3> > Each user is tied to their HN login

How does that work, then?

Edit: not sure why this seems so controversial. Making this happen is a hack. This is Hacker News. I was interested in the details.

<comment><USER4> I don't know, but it would be easy to do. Give the user a long random string that they need to temporarily add to their HN profile about box.

<comment><AUTHOR> Bingo. That's how I am doing it.

<comment><USER5> Depending on how this thing is used (job threads?), you could also scrape comments off of a thread page that satisfy a certain format.

e.g. someone posts

      #HNdex
      Title: Rails developer
      Location: Montreal
      #End

in a thread, they don't have to mess with their profile and sign up for your site (I wouldn't), and they get visibility in comments to people who don't visit your site without having to post twice in different places. Meanwhile you get free authentication and advertising every time someone does this.

</comment></comment></comment></comment><comment><AUTHOR> Clickable: <http://hndex.imnotpete.com>

</comment><comment><USER6> This reminds me... I need to start making landing pages for my projects :)</comment>


Scaling Mastodon - <AUTHOR> https://medium.com/@Gargron/scaling-mastodon-1becde463090 <comment><USER2> I'd be very interested to see a discussion of scaling the entire Mastodon _network_ as well. I'm seeing OSocial admins starting to mention concerns with the connections and concurrencies between servers, as well as total network traffic.</comment>


Prototyping a 3D light field display video projector array - <AUTHOR> http://gl.ict.usc.edu/Research/lfd/

<comment><USER2> This is a surprisingly simple technique for multiscopic display, a back-to- basics approach that relies of the existence of extremely small or concentrated projectors. This research is from 2011, but like most multiscopy research, it's actually pretty far out into the future.

It's interesting to consider how such displays would require a different approach to video creation and viewing. Notably, how many viewers can share one display? A single viewer with a television-sized display will experience immersive stereoscopy. The video can be prepared as a window, and incite the viewer to lean left and right to get different perspectives. As you add more viewers, the display's multiscopy becomes less and less interesting, though I imagine it can remain so, in the same way that theater has more dimensionality than cinema.

Also a semantic nitpick: in the overview they call it "autostereoscopic" but I think "automultiscopic" is more explicit, and used in existing literature [1]. The reasoning is that, for example, a creature with more than two eyes would still get a different perspective for each eye, so there's nothing inherently "stereo" about the display.

[1]: [http://web.media.mit.edu/~mhirsch/hr3d/taxonomy.png](http://web.media.mit.edu/~mhirsch/hr3d/taxonomy.png) (from [http://web.media.mit.edu/~mhirsch/hr3d/](http://web.media.mit.edu/~mhirsch/hr3d/))

<comment><USER3> I'm not really familiar with this field at all, but does this basically give the effect of an in-air 3d display?

<comment><USER2> You mean Star Wars style? In which case the answer is no, not really. Multiscopic displays have never been properly represented in SF movies, as far as I'm aware. A perfect automultiscopic display would be very much like a window, with the video being able to show any kind of dynamic perspective on the other side of the window. Actually it's more than a window, since elements can give the impression of being in front of the window, but such elements would clip at the edge of the window if the viewer leaned too far out. So the 3D could only be "in-air" as long as the screen is behind it.

<comment><USER3> Yeah basically. It may not actually be hanging in the air, but would it more or less look like it?

Or would it look more like a 3d TV, a window on the wall that has the appearance of volume, except with this research you can also move around a bit and the object changes as expected?

<comment><USER4> The difference with current 3D TVs is that you only get two angles, one for each eye. Everyone who looks at the TV from any angle gets the same two views. With this tech, the view each eye gets depends on where it is physically, so you can move your head around to get a different angle, and multiple people can get different angles all at once.

Edit2 (ignore previous edit): Another advantage is that you gain the ability to focus your eyes (each eye) at the correct depth for the object that you're looking at. With 3D TVs, each eye has to focus at the depth of the display all the time. The only depth cue is the angle between your eyes.

</comment></comment></comment></comment></comment><comment><USER5> If you're interested in that you may also like Matt Hirsch and Gordon Wetzstein's more recent work from the MIT Media Lab (they cite this paper):

[http://web.media.mit.edu/~gordonw/CompressiveLightFieldProje...](http://web.media.mit.edu/~gordonw/CompressiveLightFieldProjector/)

Similar concept optically (as far as I can tell, it's not really my field) but solves some of the practical implementation issues (particularly the one- projector-per-pixel problem).

</comment><comment><USER6> Wow this seems expensive and bulky compared to a headset with a hi resolution screen a few inches away from the eyes.

<comment><USER7> It does, except that this technique can, in theory create a holodeck like experience for a group not wearing headsets. That would be better for training and simulation.

For a while I was looking at building a basement with a "picture window" which was really just a view from the floor above ground. "Normal" displays don't simulate a good window experience, a curved display can give a decent simulation if you don't move (and that is what they do in flight sims as you are constrained to your seat), but a light field simulation would really give you the feeling you were looking out of the window directly, even when moving around your point of view.</comment></comment>


When NSLs have been challenged in court, the government has withdrawn - <AUTHOR> https://www.aclunc.org/issues/government_surveillance/national_security_letters.shtml

<comment><USER2> I have wondered about this. The gag orders are somewhat problematic but can they mandate that one actively lies about having received a NSL?

Suppose I put up on my startup's web page (<http://www.efficito.com>), "we have not received any NSL's and pledge to fight any we get." Suppose we always end press releases with such a promise.

Suppose we get one one day, so when we do, we change "We have not received" to "we cannot confirm or deny whether we have received." Close observers will note the shift and note we have moved from a flat denial to a refusal to disclose.

I have trouble imagining that such could be prohibited because if it is, it either ends up being a _mandatory lie_ and _compelled speech_ or it ends up being _prior restraint even before the NSL is issued._ Not sure I would risk my business on it though.

<comment><USER3> We have been operating such a "warrant canary" since 2006:

<http://www.rsync.net/resources/notices/canary.txt>

Some additional details - we update the document weekly, and include a non- vague news item from the financial press that we could not have known about - this proves that these are not being pre-populated, or published automatically, etc.

Further, we replicate these to our non-US (Zurich, Hong Kong) locations so that multiple court jurisdictions are required to coerce them to be created falsely.

I wonder how the canton of Zurich would rule in such a case ?

<comment><USER4> It is a great effort. But AFAIK -- actually putting it to use -- would put you in danger of whatever punishment there would be for not complying. I suppose, in the most extreme of cases, death (presumably for "treason"). More likely some form of "aiding and abetting" or "profiting from" (or even "conspiring to commit...").

As Zurich's interest's align more closely with the US than Hong Kong, I think you'd stand a better chance of Hong Kong refusing, than Zurich.

The most likely scenario would be to put pressure on one or several members with access to "put back" the warranty canaries, if at all feasible (or just putting pressure on the only one's that were told of the warrant in the first place, effectively forcing them to lie to their colleagues as well. A national intelligence organisation can be a very scary thing disobey).

I still respect your willingness to have such a canary in place -- but in the event that is truly needed, I doubt it's effectiveness (I would love to be proven wrong, though).

<comment><USER2> The point though is:

Ordering you to update the canary is in effect, ordering you to make affirmative, untrue statements about your products, namely that they are secure against government surveillance. Do I think they'd threaten you with obstruction? Yes. Do I think they'd threaten to send you to jail? Yes.

But do I think they'd arrest you and try you? I am not sure. They might. But once they do that, they are in a bind. They lose the leverage against you revealing the _specifics_ of the warrant (other than that there was one somewhere), _and_ they go past the point of no return, where you have to fight back and challenge the Constitutionality of the order to lie. I won't give advice (IANAL, etc) but I think the most likely outcome would be a game of chicken. It would be a public fight (you have a right to a free and public trial with all evidence submitted in open, public court, obviously including the NSL or warrant!), and they'd risk an adverse judgement handing a tool to everyone to resist this.

So if they are willing to try you and admit the NSL or warrant as evidence, they are then revealing more than you have, and this undercuts their case.

<comment><USER5> In theory you have a right to a public trial, but it seems to me that the government has been ignoring more and more rights lately (of course, a lot of this is just better coverage than we had 30 years ago).

<comment><USER2> I don't know about more courage. Look at how many people in Washington State lost their jobs due to being accused of Communist involvement in the Canwell hearings in the 1940's. The mere accusation was enough to cause people to be fired and blacklisted, setbacks from which they would never recover fully.

I think less things change than everyone likes to think. We were just living in a more protected time after the McCarthy approach was deemed to be Un- American. The cycle is swinging back the other way, and it will be perhaps a few decades before it recovers (if it does).

The real danger from where I sit is actually that for things to recover we need a vibrant middle class. We need people like John Caughlan (my mother's uncle) who went to Harvard but then dedicated his life to fighting for the politically persecuted to an extent he was even kicked out of the ACLU for defending the unpopular (the ACLU later apologized and gave him their William O Douglas Award). You can't have that if everyone comes out of college with crushing student debt and you can't have that if small businesses and self- employment becomes prohibitively regulated. The economic and political realities are unfortunately intertwined in a way that makes me pessimistic sometimes.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> This article is likely not updated with the fourth company: Google, who recently lost their initial challenge.

[http://news.cnet.com/8301-13578_3-57587003-38/judge- orders-g...](http://news.cnet.com/8301-13578_3-57587003-38/judge-orders- google-to-comply-with-fbis-secret-nsl-demands/)

However,

> It wasn't a complete win for the Justice Department, however: Illston all > but invited Google to try again, stressing that the company has only raised > broad arguments, not ones "specific to the 19 NSLs at issue." She also > reserved judgment on two of the 19 NSLs, saying she wanted the government to > "provide further information" prior to making a decision.

and

> Illston, who is stepping down from her post in July, said another reason for > her decision is her desire not to interfere while the Ninth Circuit Court of > Appeals is reviewing the constitutionality of NSLs in an unrelated case that > she also oversaw.

So it seems that we'll have to wait for the Ninth Circuit to declare NSLs unconstitutional before deciding if Google's case counts as a loss.

<comment><USER6> OT: There should be some rule about publishing articles without date on them.

<comment><USER7> For what it's worth, I was able to track down the date via one of their RSS feeds:

[https://www.aclunc.org/home/features_aclu_of_northern_califo...](https://www.aclunc.org/home/features_aclu_of_northern_california.xml)

National Security Letters

05/06/2008 03:05 PM

</comment></comment></comment><comment><USER8> I think the ACLU's article was correct when it was written, probably a few years ago. It is no longer correct. In fact, DOJ initiated the second NSL lawsuit. That's the opposite of "withdraw[ing]."

(By way of background, I disclosed the existence of the SF NSL court order last week and also disclosed the existence of the NYC NSL lawsuit.)

</comment><comment><USER9> Well, of course the gov't withdraws. Even if the NSL is legit, the gov't should probably withdraw for the simple reason of protecting their program and their investigation from scrutiny. They already have the information they need. And, they can simply re-file the NSL later if that becomes necessary.

Now, consider the gov't's probable reaction when the NSL isn't legit, and they know it (I suspect this is the case for the majority of NSL's). The best strategy is still to withdraw the NSL, and evade scrutiny as much as possible.

</comment><comment><USER10> SHARE THIS ON FACEBOOK</comment>


Ask HN: Review our (reviews) Startup - <AUTHOR>

http://www.rateitall.com
Hi, I've learned a lot on HN and would love to get some feedback.
We are a six person team out of San Francisco and just launched a new UI today.
Four features in particular we are proud of:
1) News feed format - build out a custom reviews feed by subscribing to keywords, categories, or people
2) Global add button - add anything to our database for instant review by our users ("write a review" link in header)
3) Compatibility quizzes - rate stuff in different categories (movies, beer, music) and get matched with folks that share your tastes
4) Read / Write API - full access to our millions of user opinions (api.rateitall.com)
Thanks,
Lawrence Co-Founder, RateItAll <comment><USER2> * no password confirmation box on register form? ballsy! :>

I really like this, I tried to be clever and rate a mac app - but it pulled it out of Techcrunchs Crunchbase. Colour me impressed ;)

Where do you get your data from? Really slick. Even got "Spaced" as a british sit com.

I don't like the "please wait a moment" that seems to appear on every page, whenever I do anything. Especially when I click a rating star when writing a review.

Always make sure the stars of ratings are clickable for users. If they're not logged in let them rate it, and push them to a register form.

"If you don't see your favorite McDonalds menu item, please make sure to add it by clicking on the lightbulb icon. " If you have to tell the user where to click - your UI is wrong :)

How do I add photos? can I tag my photos on flickr with a rateitall tag and it'll be aggregated?

I really don't get the quizes, how are they review related?

How do I setup a news feed? great idea.

<comment><AUTHOR> Thanks pclark.

We pull data from a bunch of different publicly available APIs.

We are getting serious push back on the "please wait a moment" thing :)

Good call on the lightbulb icon wording - that's from the old site, and no longer makes any sense. We've made "add" buttons very prominent now, so no wording should be necessary.

Did you try our "Add Anything" feature? It's via the "write a review" link in the header.

Currently, you can only add photos to pages and lists that you create. We're working on a more open approach to this.

The quizzes are our attempt to make consumer reviews fun - rate ten mexican beers and we'll tell you how "mexican beer" compatible you are with others on the site.

The gear icon on the logged home page allows you to configure a feed.

Thanks again for the feedback.

</comment></comment><comment><AUTHOR> Not much feedback to be had - I guess everyone's busy.

<comment><USER2> <http://news.ycombinator.com/item?id=433465>

</comment></comment><comment><USER3> Might be a little too clever. So many options in the UI it's a little confusing to figure it out without signing up - which I am reluctant to do until I have figured out how it works.

How will this site make money?

<comment><AUTHOR> Out of curiousity, would Facebook Connect help get you over the sign up hurdle?

There's no email confirmation step, so you could sign up with placeholder info until you get it.

We make money off of advertising and affiliate. Until we raised money in June, we were profitable. Reviews pages do pretty good CPM, and good affiliate conversion.

We also share revenue with our members via the Google AdSense API:

[http://code.google.com/apis/adsense/docs/casestudies/rateita...](http://code.google.com/apis/adsense/docs/casestudies/rateitall.html)

<comment><USER3> I would want to know what the Facebook functionality would add to my experience besides the login ease. Signup is not really a major hurdle for me such that I would feel more comfortable with FC in place. In fact I would be less at ease because of my Facebook privacy concerns. My issue is more about the complexity of the site but perhaps its just my prolbem - just wanted to let you know my gut reaction. I visited, looked around, got confused and frustrated and left. It seems like you're trying to accomplish a lot - maybe a tour video would help. Or paring down the features/UI.

Take it with a grain of salt. I'm probably just an idiot.

<comment><AUTHOR> Thanks for the feedback.

It's just so...damn... hard to lose features.</comment></comment></comment></comment>


Show HN: Monoscopic panoramas to 3D using AI - <AUTHOR> http://www.holokilo.com <comment><USER2> Demoing stereoscopic image pairs stacked one on top of the other is a peculiar choice. How exactly is one supposed to evaluate that? Cross their eyes up and down?

<comment><AUTHOR> Top down is the usual way to format 3D equirectangular photos. You need a 360 photo viewer to view them properly.

</comment></comment><comment><USER3> A thought: if you take as input a video or stills instead of an already stitched panorama, you could take advantage of the parallax between frames to get 3D info. Especially if the user deliberately captures the images on a large arc (hold the camera at arms length and swing around rather than pivoting the camera in place).

</comment><comment><AUTHOR> This build has been quickly put together (UI, etc) after working mostly on the core functionality for a long time. I've done quite some experimenting too with support for videos, but haven't gotten it to work yet (productionwise) due to constraints of CPU and GPU (Cuda). You'd need a beefy PC but it's possible.

</comment><comment><USER4> Turning the output into a point cloud and changing the point of view is a better way to display the results. Often, methods that look good with the 2D depth-heatmap give pretty bad point clouds.

</comment><comment><USER5> I see it only works on Windows :( Are you planning on compiling it for other systems, or even as a webapp?

By the way, does the computer running it requires CUDA?</comment>


A Conversation with Jess Lee, Partner at Sequoia Capital - <AUTHOR> https://leap.ycombinator.com/all/posts/2qh0e1e9/hi-i-m-jess-lee-i-m-a-partner-at-sequoia-capital-ask-me-anything <comment><AUTHOR> Hi HN! This is part of a series of conversations we're having on Leap with experts from the community. While conversations on Leap are usually private, we're experimenting with the concept of some publicly available conversations. Hope you enjoy!</comment>


Tesla's Autopilot software head leaves the company after joining from Apple - <AUTHOR> https://www.theverge.com/2017/6/20/15844280/tesla-autopilot-software-chris-lattner-ai-quit <comment><USER2> dupe: [https://news.ycombinator.com/item?id=14600073](https://news.ycombinator.com/item?id=14600073)

</comment><comment><AUTHOR> Come back to the fruit company and MAKE SWIFT GREAT AGAIN.</comment>


Deutsche Bank makes source code publicly available for the first time - <AUTHOR> https://www.db.com/newsroom_news/2017/deutsche-bank-makes-its-computer-code-publicly-available-for-the-first-time-en-11674.htm <comment><USER2> This is mostly a PR move. I currently work at DB, I can say that they make it look nice from the outside, but when you get here what you find is a large mess. It's a big difference between a bank and a company that actually ships software. Most of the work here is done in interfacing systems together, and moving data from one place to another. There is no focus on quality, just patching things together and making them work. This is no surprise when a lot of work is done by contractors hired for 6-12 months. Software and tools are old , but I guess this is a know fact. There is a lot of duplication, there are usually 3-4 systems that can do the same thing, when a high level executive decides that then need to create a new one from scratch. Sure there are exceptions, there are people who work on trading algorithms, but these are rare occasions.

These are some of my impressions after some time spent at DB, sorry if it sounds too negativistic.

<comment><USER3> This is not only a DB specific, a whole banking industry works like that. Systems that have <10 years are considered new ones. To keep things working, just produce 5x more services created solely to move data from one place to another. No focus on programming discipline or sense of purpose and constant fear to change anything, because that could break things and we have not enough tests or monitoring infrastructure to even detect that. But in finances, IT is not on a focus. After all, we're just a "cost center" ;)

<comment><USER4> It's a fact that you can't ever have enough tests, because, for one, the tests are not tested.

<comment><USER5> Of course the tests are tested – by the code they're covering, which is also covered by other tests.

</comment></comment></comment></comment><comment><USER6> Get ready for a data dump of 40 year old COBOL code /s

But in all seriousness, this is a great step forward in institutional software. Open up software to further progress towards standardizing an industry's software interface.

<comment><USER7> I would love for a few banks to dump all their old COBOL code on to GitHub. Not because it would necessarily be useful for anything, but simply because it would be fascinating to read... There is actually very little open source COBOL code available, of the massive quantities of COBOL code written over the decades the vast, vast majority of it remains closed source.

Sadly I think a lot of it is just going to be lost to history... at an old employer of mine, I remember we had a store room full of old 9 track mainframe backup tapes – the mainframe had been retired and we no longer had a 9 track tape drive to read them with – I wonder if they are still there now – ideally they'd be sent to some sort of archive – they couldn't be released now without vetting because they would have contained confidential information (e.g. employee payroll information, customer data), but a century from now when all of us are dead who cares if our confidential info gets released to the public then?

<comment><USER8> > a century from now when all of us are dead who cares if our confidential > info gets released to the public then?

I'm reminded of Vernor Vinge's far-future scifi "A Deepness in the Sky," where "programmer-archaeologist" is one of the occupations. (along with "programmer- at-arms")

<comment><USER9> As I keep saying. Some people chuckle about Warhammer 40k Techno Priests. The only people in the warhammer universe with some chance to understand the centuries old compuer systems and machines. Other people work with legacy systems.

<comment><USER10> It's pretty genius how they've turned ancient maintenance routines into prayers and rituals in order to preserve the knowledge and scale out the work force

<comment><USER4> it might lead to cargo culting though, already hoards of programmers are chanting refrains of "_ considered harmful" and "_ is the root of all evil" ... ;)

<comment><USER11> It's deliberately _worse_ than cargo culting in Warhammer 40k. That universe is deliberately set up to be as bleak and cynical as possible. Partly just for fun, partly to serve the game a justification why any faction would get into a skirmish with any other faction (including itself).

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Great move. I really believe in the "free software, free society" idea of the FSF. After this batch, I'm sure there will still be a lot left to open source, but it's definitely a big step! If we're fortunate, others will follow suit.

Germany is a great country for stuff like this. They have a relatively high share of Linux users, OpenStreetMap usage, etc. I feel like they're very critical towards their own country and don't take things for granted (not the "we're so proud of our country" idea). As a Dutchman, I like Germany.

<comment><USER13> > Germany is a great country for stuff like this. They have a relatively high > share of Linux users, OpenStreetMap usage, etc. I feel like they're very > critical towards their own country and don't take things for granted (not > the "we're so proud of our country" idea).

This is especially also the case, because of the post-WWII history of East Germany. The Stasi managed to subdue the entire population, mainly with surveillance methods.

And this was before the internet. When they still had to actually go out and infiltrate people's homes in order to place down bugs (microphones).

The worst part about this for me, is that this is not just an unfortunate fate that Germans in particular have to be worrisome about. The only reason other nations are less worried, is because they're collectively less aware of this having happened, of it being entirely possible for this to happen, again.

<comment><USER14> tbh i think that germany is lagging in digital, its a shift that if they dont take right now could cost them long term. something that event merkel commented recently.

mobile internet is very expensive, 20 eur for 5gb, there is almost no street view, blocking content on youtube. high percentage of german startups are just copying ( famous rocket internet ). that are just some examples, that are not so great starting point to become leader in digital.

<comment><USER15> I have to agree. Add a lot of stock listed large companies which have not invested in IT and infrastructure for the past two decades apart from compliance enforced maintenance and Germany is basically 3rd world... startups also are lacking value. Looking at Berlin you kind of say "oh this is a copy of ..." most of the time.

</comment></comment></comment></comment><comment><USER16> I went to a Deutsche Bank Hackathon last year in Berlin where they announced opening up their apis. [https://developer.db.com/](https://developer.db.com/)

They touted it as being innovative and open but in the end all Banks are required to open up when PSD2 comes into effect next year. Seeing this release, maybe they have honest intentions for being more open, but it being Deutsche i still have my doubts.

<comment><USER17> I used to walk around other countries bragging about German online banking, given that we have a standard that has been iterated upon (HBCI/FinTS) over decades and you can pretty use any online banking software with any bank.

A few years have passed since then and most germans banks are still the same. Meanwhile you get instant wire transfers in a few countries.

When I think Deutsche Bank and innovation, I think of my phone calls with Deutsche Bank about disappearing money and them telling me that I shouldn't be surprised if the online banking doesn't actually reflect my real balance and 3 day same country wire transfers. A friend of mine has a consulting company that claims that theyre trying to change their internal structures though.

I think of shitty support and paper faxes because of "security". The latter might actually be a prevalent problem in german society though.

I work in Gvt. Healthcare. They've been spending 1 year trying to define an API for activating the new healthcare smartcards. It has 3 API calls, it's not done yet, and it's SOAP only. And then the leadership has been trying to get government support to mandate by law the forced usage of their crappy APIs.

Germany is a digital dinosaur, no matter how much these old tycoons come to the bay area with their newly appointed chief of innovations for a week they won't get it, because they never had to compete on anything to get it.

User experience is a completely foreign concept to them.

<comment><USER18> Having just moved to Germany the obsession with physical paperwork for various reasons is somewhat astounding.

<comment><USER19> Germany requires a lot of high-touch interaction to get anything official done, but in Hungary I have to sign seven (seven!) pages in order to send a DHL letter. So it can be much worse. :-)

<comment><USER18> When receiving packages from outside of the EU, you'll have the pleasure of going to the Zollamt in Germany.

At the Zollamt you'll get to enjoy standing in at least 3 separate and consecutive lines. Only to pay import taxes. Something that could have been done faster, cheaper and more conveniently by sending an invoice.

<comment><USER20> _> Something that could have been done faster, cheaper and more conveniently by sending an invoice._

This is how it works if the seller fills out CN22 properly and the customs officials believe the declared contents/value.

I have several times received packages with duties that I paid on delivery. No need to travel to the Zollamt.

I have also been to the Zollamt when they suspect the package contains something else than what is on the shipping manifest. They're always quite giddy to catch you doing something not allowed and always end up terribly disappointed and grumpy when it's exactly as described and then you just pay VAT.

</comment></comment></comment></comment></comment></comment><comment><USER21> Link to code: [https://github.com/symphonyoss/plexus- interop](https://github.com/symphonyoss/plexus-interop)

<comment><USER22> I don't know C#. Should I assume this is the way to write comments? That's just terrible.

      /// <summary>
      /// Log a message with the specified <paramref name="logLevel"/>.
      /// </summary>
      /// <param name="logLevel">The level of log entry.</param>
      /// <param name="exception">The exception to log.</param>
      /// <param name="message">The format of the message object to log.<see cref="string.Format(string,object[])"/> </param>
      /// <param name="arg1">The first argument for message formatting.</param>
      [StringFormatMethod("format")]
      void Log<T1>(LogLevel logLevel, [CanBeNull] Exception exception, string message, T1 arg1);

<comment><USER23> Yeah, that's the standard way to write comments. It looks terrible but it's not bad to write because Visual Studio auto-generates the comment skeleton for you.

<comment><USER22> Embedding XML inside a C-comment (as a standard) is just fucked up. Do you have correct syntax highlighting with that? (I don't. But even if emacs would understand this, it's still wrong)

<comment><USER24> C++ with Doxygen and Java with Javadoc are much saner formats for this purpose.

What's even worse is that Visual Studio 2015 just vomits out that the XML is malformed when I have C++ headers with Doxygen style comments in them. It detects the three slashes and tries to apply C# XML docs parsing to them and that of course fails. Meanwhile NetBeans can handle them no problem and display parsed docs in pop ups.

</comment></comment></comment></comment></comment><comment><USER25> On a side note, I find the design of their website to functional but tasteful.

Their promoted research-paper is also more engaging (and less bloviating) than I was expecting:

[https://www.dbresearch.com/PROD/RPS_EN- PROD/PROD000000000045...](https://www.dbresearch.com/PROD/RPS_EN- PROD/PROD0000000000452422/Can_markets_withstand_the_removal_of_QE%3F.pdf)

>Ironically, the political compulsions imposed by the aging population are one reason for this. For starters, 56 per cent of Germany's voting population is above 50 years of age. The members of the major political parties are on average 60 years old. This has led to an implicit consensus between the government and the people, to maintain the cosy status quo for as long as possible, hoping the day of reckoning might only affect following generations. A literal endorsement of Keynes' maxim, "in the long run we are all dead"

I'll have to read through all of it before I can tease out its agenda.

</comment><comment><USER26> What a misleading title, instead ...

DB is releasing a small program for interop into the public domain to encourage others to use it too.

</comment><comment><USER27> One of their competitors, Dresdner Bank, did something similar in 2001 when the open sourced their messaging middleware code as Openadapter. [https://github.com/openadaptor/openadaptor](https://github.com/openadaptor/openadaptor) It's pretty good and I actually used it at a commodity trader, but this kind of integration is pretty niche and while Openadapter is still around it never caught on in a big way. I expect that this will be similar - hardly anybody else will have the same mix of systems to connect to and it's unlikely to have a very big impact.

<comment><USER28> Flashback! I worked for Commerzbank back in the day (which ended up absorbing Dresdner). Anyway, I had to work on plugging various CB systems into the Dresdner openadaptor. I met the guys behind it (they were on the floor below me) Really nice chaps. If memory serves they ended up leaving essentially due to the merger but they were really helpful in the time before they left.

</comment></comment><comment><USER29> Even the largest banks are hurting maintaining proprietary software across the compete range of businesses - there is a multiplier effect as one proprietary piece demands another close to it, and eventually devs get sick of seeing the OSS world acclerate Away.

</comment><comment> c-smile "Computer code of Deutsche Bank" sounds so German and so cool :)

<comment><USER30> The bank has the distinction of being mentioned in Kraftwerk's 1983 song _Computer World_ :

"Interpol, Deutsche Bank, FBI, Scotland Yard, Flensburg und das BKA, haben unsere Daten da."

<comment><USER31> The rest I understand but why Flensburg?

<comment><USER32> [https://en.wikipedia.org/wiki/Point_system_(driving)#Germany](https://en.wikipedia.org/wiki/Point_system_\(driving\)#Germany)

<comment><USER31> Thanks!

</comment></comment></comment></comment></comment><comment><USER33> ProtobufTransportProtocolSerializationProvider

Enterprise OO Garbage is alive and well.

<comment><USER34> How would we prevent this? Asking for a friend.

<comment><USER33> Just refuse to play the insane Java/C# Enterprise OO game. Kotlin would be a good alternative but my preference would be Clojure where brevity and simplicity are valued.

<comment><USER35> Or just don't be redundant in any language. Unless there are multiple types of a "SerializationProvider", the name could be shortened to "ProtobufSerializationProvider"

And if there are multiple types of "SerializationProvider" (ie. there's an unrelated "CachingSerializationProvider ") then the name is unfortunately long, but accurate

<comment><USER36> I think the main problem is not in the name of that class, the name is just a side effect of a bigger deeper problem.

<comment><USER35> What problem? DI is really useful if you're pragmatic about it, misuse is not really a property of a particular language

</comment></comment></comment></comment></comment></comment><comment><USER37> Can someone please give a few specific examples of what this software does?

<comment><USER38> Autobahn is a realtime platform to buy and sell currencies.

<comment><USER37> Thank you, but I did read that summary in their press release.

For example, what features does it have that would let me buy and sell securities?

</comment></comment></comment><comment><USER39> Looks like Plexus Interop is yet another middleware abstraction layer. Dresdner did something similar 15 years ago when they open sourced Open Adaptor. There's no special source here - no interesting pricing, risk management, quoting, order management or hedging functionality. The source code to Autobahn should be more interesting if it ever gets released since it's DB's single dealer platform across all asset classes. It should include some interesting trading logic.

</comment><comment><USER40> I can tell you that this is probably in response to the massive law suits banks are dealing with because of how they have cheated using their software.

[article]([https://www.law360.com/articles/943847](https://www.law360.com/articles/943847))

</comment><comment><USER41> Well, I was trying to submit an issue, but got this:

```

We're writing to let you know that the group you tried to contact (plexus- interop) may not exist, or you may not have permission to post messages to the group. A few more details on why you weren't able to post:

* You might have spelled or formatted the group name incorrectly. * The owner of the group may have removed this group. * You may need to join the group before receiving permission to post. * This group may not be open to posting.

If you have questions related to this or any other Google Group, visit the Help Center at [https://support.google.com/a/symphony.foundation/bin/topic.p...](https://support.google.com/a/symphony.foundation/bin/topic.py?topic=25838).

Thanks,

symphony.foundation admins

```

<comment><USER42> Folks,

Thanks for raising the issue - we have fixed the mailing list (google groups) so now posting is allowed even for users that haven't yet joined the list.

For completeness:

\- This is the mailing list archive [https://groups.google.com/a/symphony.foundation/forum/#!foru...](https://groups.google.com/a/symphony.foundation/forum/#!forum/plexus- interop) (fairly new, but we can't wait to see your traffic) \- To subscribe to the list just email firstname.lastname@example.com

We will follow up with a much more comprehensive set of technical information, but in the meanwhile all docs are hosted at [https://symphonyoss.github.io/plexus- interop/](https://symphonyoss.github.io/plexus-interop/).

</comment></comment><comment><USER43> Worth noting this part:

> The bank will put over 150,000 lines of code from its award-winning > electronic platform Autobahn into the public domain

If this is indeed correct, there's no licensing BS, no control of what you can do with it like most free software. This is pure and simple public domain.

<comment><USER44> Not exactly. Public Domain doesn't exist under German Law, so they did the next best thing: Apache2.

</comment></comment><comment><USER45> As someone who works in what I believe is one of the more progressive software development teams here at DB, there's definitely a desire to open source more of the work that happens here. The issues are inherent to any company employing ~100k people, however: bureaucracy, regulation, and general internal conflict.

There some higher-ups that seem to understand the benefits of a more progressive approach, so I do think you will see more of this sort of activity, however, it'll take time before this becomes widespread within the company.

<comment><USER42> It's a massive challenge but one that finally the industry is waking up to. It's not easy but having a massive support from the industry ([http://symphony.foundation/#members](http://symphony.foundation/#members)) definitely tells me we are on the right path.

Said that, we need all the help we can get, so we'd love to see such passion consolidate in the Community we are trying to build.

We'd love to hear from you in any of our lists [https://groups.google.com/a/symphony.foundation/forum/#!over...](https://groups.google.com/a/symphony.foundation/forum/#!overview) and even better we'd love to see your issues / patches / comments at github.com/symphonyoss.

</comment></comment><comment><USER46> Heh. [https://imgur.com/TlyTwXG](https://imgur.com/TlyTwXG)

I love bank "security".

</comment><comment><USER47> Now we can seen how to implement a atomic transaction which is bank-safe

</comment><comment> d--b Sorry, if I don't share the general enthusiasm... Making it opensource mostly helps DB and malevolent people. DB can get bug fixes for free, and malevolent people can now make fake versions of Autobahn that MITM every orders that the traders make. There is no benefit whatsoever for clients...

<comment><USER42> I completely disagree, but that's you would expect as the Executive Director of the Foundation ([http://symphony.foundation](http://symphony.foundation)) that is trying to drive these banks in embracing open source and open collaboration as a better way to build technology.

I do believe that end users will benefit by these firms not reinventing the wheel and building innovative, more interoperable and ultimately better technology.

I, my team and I know I speak on behalf of our Community are committed to this level of transparency.

Finally the beauty of open source is that you don't have to trust a PR article, just go look at the code at [https://github.com/symphonyoss/plexus- interop](https://github.com/symphonyoss/plexus-interop) and decide for yourself.

And if unsure reach out to the firstname.lastname@example.com mailing list, it's all in the open!

</comment></comment><comment><USER48> Does anyone know what license they plan to use? That could make a big difference.

<comment><USER42> Apache v2 - see [https://github.com/symphonyoss/plexus- interop/blob/master/LI...](https://github.com/symphonyoss/plexus- interop/blob/master/LICENSE)

</comment></comment><comment><USER49> This is their foreign exchange trading platform. It is very high volume.

</comment><comment><USER50> I did bother to read the 7 paragraphs.

My question is basically that - OSS existed for decades; why only now in big finance?

That their clients wanted such a trading platform... is that the reason you are saying was plainly stated?

</comment><comment><USER51> Where is the code?

</comment><comment><USER50> I wonder if the openness of cryptocurrency and blockchain tech prompted this in any way.

edit: can someone explain why I'm getting downvoted?

<comment><USER52> That + bloomberg hate + symphony's ridiculously good reception in the markets. Symphony's starting look like it could be finance's heroku/slack.

<comment><USER53> Bloomberg hate is really only the management level. At the user level, it's mostly love. Of course, by and large, the user does not directly foot the $20K/year bill.

<comment><USER52> truth (and Stockholm syndrome).

</comment></comment></comment></comment><comment><USER54> Aren't banks allready shifting over in larger scale to quntum computing? Would also explain the openess from a bank. Though national banks and nation state backed banks are imo often quite a few steps better than the rest - then again at times even though publically supported f __ks up like Nordea.

<comment><USER55> I have not seen any evidence that banks are shifting over to quantum computing. As far as I can see, quantum computing itsself is far from useable in any production setting -- it is mostly in early R&D stage.

<comment><USER56> It's not exactly "computing", but you can buy some quantum crypto systems for doing key distribution: [https://en.wikipedia.org/wiki/Quantum_key_distribution#Comme...](https://en.wikipedia.org/wiki/Quantum_key_distribution#Commercial)</comment></comment></comment>


Show HN: draughtsman, a webserver for front-end devs - <AUTHOR> https://github.com/stdbrouw/draughtsman <comment><AUTHOR> Creator here. For the past couple of months, I've been using a tiny webserver I've dubbed draughtsman to kick up my productivity while doing HTML prototypes. It's a node.js app that provides you with transparent compilation of CoffeeScript, Stylus, Jade, HAML et cetera. And directory listings (yeah, baby!) Probably more useful for designers than for devs. It's sort of like Apache/mod_php... but for people who know better than to use PHP (I kid, I kid). MIT licensed.

I do a lot of front-end prototypes for apps and websites I may or may not want to keep on building, and because of the throwaway quality of those things I don't want to be bothered with keeping all sorts of autocompiling scripts running for CoffeeScript, SASS et cetera, and I also don't want to start a Rails or Django project (yes, I use both) just for the sake of having transparent precompilation of those assets, and I also don't want to limit myself to writing plain HTML and CSS.

A bit more information over here: <http://stdout.be/2011/10/25/draughtsman/>

It's maybe a couple hundred lines of code, so easy to read through if that's your thing.

Just scratching my own itch here, but I'm curious to see what you guys think.

<comment><USER2> It's a great idea, I hope I can find it in my bookmarks again when I can swing around to it. :)

</comment></comment><comment><USER3> Very similar to a tool I created a while back: <https://github.com/ashleyw/convey>

It's <100 lines of code, and really quite primitive; if you request hello.css, and that file exists, it serves that. If it doesn't exist, but hello.sass does, it'll compile and serve that instead. Same goes for .haml and .coffee files requested with .html and .js respectively. No configuration, no required file structure — just prototype as you would with just HTML/CSS…except using the compiled templates you love!

<comment><AUTHOR> Word. Convey may be easier to get running for some people, as it's Ruby instead of node.js. Thanks for sharing.

Three things draughtsman adds on top of Convey:

* No need for projects: works in any directory.

* The ability to use JSON / YAML to populate templates; especially useful if you already have some JSON sample data you can use.

* Offline resources: makes jQuery and underscore.js available at the root, regardless of whether they're actually in that directory.

The one thing it misses that Convey has:

* The ability to save the compiled files to a directory.

<comment><USER3> Convey works in any directory too, you just run `convey` within it. The `init` command just creates a skeleton file structure to get you started.

Like the idea of using JSON to populate templates though, that's neat!

</comment></comment></comment><comment><USER4> I wrote something very similar, thought not as advanced, srvr <https://github.com/MatthewCallis/srvr> but this looks much more complex with the awesome plugin system.

<comment><AUTHOR> You're right, you can use it just like `srvr` and quickly get any directory up at localhost from the command line.

I figure most people will want to use it more like Apache though: set & forget & loads at startup.

Don't know if I'd call draughtsman advanced: it's too small for that. Or maybe its diminutive size is a testament to node.js its power for anything related to servers and proxies; I probably wouldn't have bothered if I had had to write a server like this in any other language.

</comment></comment><comment><USER5> Similar to something I have: <https://github.com/charliesome/here>

You just run it like `here` and optionally pass a port (uses 8080 by default) or directory (uses current directory by default)

It's written in C and has support for modules. I was planning to write a PHP module for it, but that idea never got off the ground.

</comment><comment><USER6> It seems that everybody's written something similar. My entry is Slinky (<http://github.com/mwylde/slinky>) which in addition to an auto-compiling web/proxy server also includes a build tool with dependency resolution and minification for scripts and css.

It's in Ruby instead of Node and is a bit less opinionated about how a project should look like. I wrote it when I became frustrated with the options for writing rich client apps in compiled languages (HAML/SASS/CoffeeScript). It's so convenient to be able to cd to a directory and do "slinky start" and have a static file server running.

<comment><AUTHOR> Well, I'm certainly glad of it — developing something you think nobody's ever done before always feels a bit insane, so these replies are a welcome sanity check.

</comment></comment><comment><USER7> We've been working on something which attempts to resolve a similar issue, but written as an XPath based implementation based on Django's template inheritance model. It's written in PHP but the idea is that as the frontend guy you never see any "logic" - the sole purpose of this is just to provide the ability to fragment out common parts of your interface.

<https://github.com/iaindooley/Fragmentify>

EDIT: sorry the doco is so lame at the moment - just threw it online the other day and haven't had the chance to flesh it out at all.

</comment><comment><USER8> Another to add to the list of alternatives (this one has been serving me nicely as of late): <http://middlemanapp.com> / <https://github.com/tdreyno/middleman>

<comment><AUTHOR> Best one in the list thus far, I must say, in terms of both features and adoption.

I like how Middleman handles layout templates, YAML front matter, dynamic pages and livereload. Dislike the idea of including Sprockets for asset management though, seems too much cruft for just prototyping. Suppose it makes sense if you want a tool that doubles as a static site generator.

</comment></comment><comment><USER9> Also similar: I've been using Serve for this. <http://getserve.com/>

<comment><AUTHOR> <http://get-serve.com/> probably. What disappoints me about Serve and some of these other tools is that they make no attempt to be agnostic about what filetypes they process: it's ERB, HAML, SASS, period. (Well, usually a few other formats too, but you get my point.) These are infrastructure tools and it's too bad that every community has to reinvent the wheel.

</comment></comment><comment><USER10> In the same spirit, StaticMatic2[1] is a gem for building static websites. It has a preview server, supports many many templates via Tilt, and can upload your compiled website to Amazon S3 in a single command.

[1] <https://github.com/mindeavor/staticmatic2>

</comment><comment><USER11> This would be much better as Connect middleware.

<comment><AUTHOR> You mean for the compilation? Hm, dunno, I'd rather use something like connect-assetmanager (<https://github.com/mape/connect-assetmanager>) for that. This is geared more at development, hence e.g. the fact that it runs at startup (by default anyway), provides listing pages and pulls in JSON data. YMMV, but would be too much magic for me in production.

</comment></comment><comment><USER12> So much awesome. This looks like an absolutely great example of why node.js rocks.</comment>


Who first calculated the distance between the sun and earth and when? - <AUTHOR> How did they calculate it? <comment><USER2> There's a table on [https://en.wikipedia.org/wiki/Astronomical_unit#History](https://en.wikipedia.org/wiki/Astronomical_unit#History) "1 AU" is roughly defined as the distance earth-sun.

</comment><comment><USER3> Perhaps someday there will be a simple mechanism for looking up such things on one's own.</comment>


Follow Stanford's iPhone Programming Class For Free - <AUTHOR> http://www.stanford.edu/class/cs193p/cgi-bin/index.php <comment><USER2> Whaat? My undergrad CS department didn't have anything this focused on a single technology or programming environment. The most specific was the software engineering course where you learned how to use Java and C++ and XML, but the point of that course was not even to teach those things but to teach you how to learn the tools for doing professonal software development (and to help you figure out how to actually build the projects in later courses).

I noticed this was part of stanford's Professional Development course series, but I still am surprised they would offer such a short-term focused course.

<comment><USER3> 193 series are normal undergrad courses. None of them were required (and probably still are not) for a CS degree, but they are an acceptable choice, along with many others. I think I took u (Unix programming), d (C++) and i (Internet programming) back in the day. 193 series is explicitly industry oriented, but the whole point of Stanford CS education is to get the practical experience at the same time you learn the fundamentals. The two are complimentary.

<comment><USER4> Not only are the 193's not required, they don't count towards the major at all.

<comment><USER5> I'm taking a Comp Sci class in flash animation and graphic design. Not only does it not count towards the major, but nor for any elective, either (of the ones I have remaining to fulfill). But I wanted to take it... and it's been worth it.

<comment><USER6> I'm starting to think that this is a universal truth that the best classes never count towards your major. If the only people in there want to be there, including the prof, everyone learns more.

</comment></comment></comment></comment></comment><comment><USER7> Just looked through a few -- these presentations are excellent. I'd recommend them to anyone looking to learn iPhone development. (Not too surprising. Both lecturers work on iPhone development at Apple, and Paul Marcos has been teaching Cocoa at Stanford for a while.)

<comment><USER5> Patrick, any other resources you'd recommend?

<comment><AUTHOR> Sorry I'm not Patrick, but we're trying to keep up to date with iPhone developer news (as well as tutorials) at <http://www.mobileorchard.com/> \- we're trying to become a bit of a "go to" for iPhone development news and the like - high level stuff mostly.

</comment></comment></comment><comment><AUTHOR> FWIW, I posted the direct link to HN, but I also wrote a blog post about it that might fill in some of the missing gaps for some:

[http://www.mobileorchard.com/take-stanfords-iphone- programmi...](http://www.mobileorchard.com/take-stanfords-iphone-programming- class-for-free/)

</comment><comment><USER8> These slides are fantastic! They also contain little bits of insights for general Cocoa or ObjC development, which are very welcome.

</comment><comment><USER9> I've been following the slides up through the 4th class - they are excellent. Makes me wonder why I'd bother buying any books at all about this.

</comment><comment><USER10> looking at the course number 193P, it's probably a seminar or special course. maybe just once.

are there more tutorials or videos available?

<comment><USER11> From the FAQ in [http://www.stanford.edu/class/cs193p/downloads/Handout-0-Ove...](http://www.stanford.edu/class/cs193p/downloads/Handout-0-Overview.pdf) :

Q: Will the class be televised? A: Yes. This year's class will be offered via SCPD and will be available online. There is no broadcast on campus cable, it will only be available online.

However it doesn't look like its posted yet, there's no videos on [http://scpd.stanford.edu/search/publicCourseSearchDetails.do...](http://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=1270571) \- without knowing anything whatsoever about Stanford's policy on SCPD, I'd guess that they'll be posted once the course is over.

<comment><USER4> SCPD videos are generally only available to students. If you're not an actual Stanford student, they want your money. The videos show up at <https://myvideosu.stanford.edu>, but you need a valid SUNetID.

</comment></comment></comment><comment><USER12> thanks for posting. Will keep my eyes on this.

</comment><comment><USER13> thanks for the link</comment>


Adventures in Lisp application deployment - <AUTHOR> http://ahefner.livejournal.com/15783.html

<comment><USER2> One advantage of environments like C, C++, Java, is that the default end- product of the development process is _deployment_.

With Smalltalk, you have to strip the development and other unused stuff out of the image, which is a messy business that can lead to exceptions showing up in front of the customer if you don't do it right. Many places just leave all that stuff in the image. It's unnecessary overhead, but Moore's law and the similar increase in disk capacity has made that into a rounding error.

(This is also why debugging and development are so magical in environments like Smalltalk. It's the _default case_. Debugging is often so painless, people use it to document!)

<comment><USER3> It's true that SBCL doesn't make the binary delivery process easy.

However, both Allegro CL and Lispworks put a lot of effort into it and succeed quite well. For example, Allegro CL will automatically copy all loaded shared libraries that are not from /lib or /usr/lib to the delivery directory, which nicely solves the CFFI wrapper issue.

[http://www.lispworks.com/documentation/lw51/DV/html/deluser....](http://www.lispworks.com/documentation/lw51/DV/html/deluser.htm)

[http://www.franz.com/support/documentation/current/doc/deliv...](http://www.franz.com/support/documentation/current/doc/delivery.htm)

</comment></comment><comment><USER4> I had tried using SBCL to generate excutables before myself, using SDL as an external lib. Worked, but they were ENORMOUS (20mb). Not sure what I did wrong.

<comment><USER5> Well, it's basically a memory dump. Disk space is cheap.

</comment></comment><comment><USER6> > renamed lib _mixalot_ -mpg123, with these changes. The 64-bit binary doesn't > have any of these problems, and should Just Work, _but_ you have to provide > your own libmpg123 as before.

I don't think he can lie. That's a big but.

<comment><USER5> What?

<comment><USER7> An attempt at humor, perhaps: [http://www.google.com/search?hl=en&q=mixalot+%22big+butt...](http://www.google.com/search?hl=en&q=mixalot+%22big+butts%22)</comment></comment></comment>


Show HN: Permafrost Engine – OpenGL 3.3 Real Time Strategy Engine in C - <AUTHOR> https://github.com/eduard-permyakov/permafrost-engine <comment><USER2> This appears to be a copy left attempt to build an engine capable of both Age of Empires (especially the 3d ones), Command & Conquer, and Warcraft 3 style games. Interested to see if it ever gets tot he point of running Warcraft 3 custom maps (multiplayer maps with custom code) perhaps through an import script.

</comment><comment><USER3> This looks cool, I read a little of the code and it seems like good C code written by a sensible person in the current decade.

One suggestion: I noticed your nav.c depends on render.h - selfishly, as an AI researcher, I want more games/simulations where it's possible to run the core simulation without expecting to render to a screen or to read input from the real keyboard/mouse. So, if you can structure the engine such that it can run "headless" like this, that would be nice :)

</comment><comment><USER4> OP also shared this on r/gamedev, but with a bit more context: [https://www.reddit.com/r/gamedev/comments/9bsd4n/11_months_o...](https://www.reddit.com/r/gamedev/comments/9bsd4n/11_months_of_real_time_strategy_game_engine/)

</comment><comment><USER5> I'd love engines like this :) Are there more? This one doesn't run on OSX & has no multiplayer.

I already tried OpenRA's engine (slow) and SpringRTS (poor OSX support)

<comment><USER6> MOAI can do it.

[http://github.com/moai/moai-dev/](http://github.com/moai/moai-dev/)

</comment></comment><comment><USER7> Awesome!!!! I've slowly been working on my own engine in OpenGL. There's something so magical about it. Congrats!

</comment><comment><USER8> The readme says the license is:

> Permafrost Engine is licensed under the GPLv3, with a special linking > exception.

Does anyone know what the "special linking exception" is? I've heard of a linking exception before with GPL essentially making it LGPL. But I wonder how this "special" exception is related.

</comment><comment><USER9> Awesome! But why rare to see game development in plain C comparison to the other languages like C++?

</comment><comment><USER10> Legal warning: the name is pretty close to Frostbite, which is an EA DICE graphics engine.

</comment><comment><USER11> this is nice work! really nice too browse around and see how you did things =)

</comment><comment><USER12> Looks cool, but why python 2.7? That's a big disappointment.

<comment><USER13> Python is a very odd choice. I'm sure it could trivially replaced with Lua if one were so inclined.

<comment><USER12> I like python, but 2.7 is going to be dead in a year and 3 months. It's time to start implementing your migration to 3.x, not creating new projects running 2.7; that's madness.

<comment><USER14> You're mistaken. Python 2.7 will still be here in a decade, and people might even still write code against it.

I don't think zealotry or being pushy is productive. Software doesn't rust, and 2.7 is a perfectly fine choice.

<comment><USER12> Sure. You're also free to pick COBOL as your side project's scripting language, if you want to make absolutely certain no one ever uses it.

<comment><USER14> More pushiness. This is a Show HN. We're supposed to be offering positive and helpful feedback.

<comment><USER12> Yes. "Not supporting the current version of python means some people who like and want to use your software will not do so" is constructive actionable feedback.

<comment><USER15> If only you had posted that and left it at that.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> The maps look worse than the ones in Transport Tycoon released in 1994.

<comment><USER17> This breaks the site guidelines, especially the ones for Show HN. Please follow the rules when posting here.

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

[https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)</comment></comment>


What Happens To Code From Failed Projects? - <AUTHOR> http://ask.slashdot.org/article.pl?sid=08%2F12%2F06%2F1431227&from=rss <comment><USER2> It's always good to keep old code around. You never know when it'll be useful.

A while back (~2006-07) some developers wrote an H.264 encoder and submitted it to the ffmpeg project (code can be found at <http://research.edm.uhasselt.be/h264/>) as a native encoder under LGPL. However, the code never made it in for many reasons: it was very slow, very limited, and most importantly it reminded people of the Vorbis catastrophe a few years back, when ffmpeg added a very basic (and crappy) but functional Vorbis encoder and people began complaining because it was simply so bad that it was useless (and thus there was no point in having it at all). Nobody volunteered to bring the H.264 encoder code up to spec and make it useful, so it was never accepted.

A few days ago, I went back and read through the code and noticed a rather interesting idea involving their method of variable-length coding. So I took it, made it better, and adapted it to fit my project (x264). I'll probably commit it this week or next.

Good thing the old, "useless" code's still around, isn't it?

(That's actually one of the primary ways I get ideas for optimizations and improvements: look at other peoples' code and see if they have any good ideas.)

</comment><comment><USER3> When it became clear that my first startup wasn't going to get off the ground, I sold the source to one of the contacts I had made when doing my research. My assumption is that he used it for his own products or something.

The second startup I was working on hit a wall and I ended up keeping the source code to that one in order to use for future projects.

</comment><comment><USER4> From /. comments:

"Doh! It gets patched every second Tuesday of the month."

</comment><comment><USER5> I burn on CDs/DVDs and keep them. These stuff are important as most of the time I end up customizing snippets for my use. So the next time I need it I have it!</comment>


Improving compression at scale with Zstandard - <AUTHOR> https://code.fb.com/core-data/zstandard/ <comment><USER2> > Two years ago, Facebook open-sourced Zstandard v1.0...

Bullshit, Zstd was open-source from the very beginning, they just hired Yann and moved the project under facebook org. How do I know? I have written the JVM bindings [1] since v0.1 that are now used by Spark, Kafka, etc.

EDIT: Actually, my initial bindings were against v0.0.2 [2]

Kudos to FB for hiring him and helping Zstd getting production ready. This is just a PR false claim.

[1] [https://github.com/luben/zstd-jni](https://github.com/luben/zstd-jni)

[2] [https://github.com/luben/zstd- jni/commit/3dfe760cbb8cc46da32...](https://github.com/luben/zstd- jni/commit/3dfe760cbb8cc46da3268af6aa73dce6014298ef)

<comment><AUTHOR> Given that it was Yann himself who wrote that sentence, I think that's a needlessly uncharitable interpretation. Maybe a better wording would have been "Two years ago, we released Zstandard v1.0, an open source ...". But I don't think we anticipated anyone would read that much into it.

<comment><USER3> Blog posts from companies are always reviewed by the marketing team, that frequently changes what the author initially wrote, or adds random stuff to make it sound more like a company effort.

<comment><USER4> This also seemed to me like one of those "team effort", "good job, guys" surreptitious edits.

</comment></comment></comment></comment><comment><USER5> My browser loaded that website with a header: accept-encoding: gzip, deflate, br ("br" means Brotli by Google)

The response had a header: content-encoding: gzip

Zstandard looks like an improvement of DEFLATE (= gzip = zlib) and its specification is only 3x longer (even though it is introduced 22 years later): [https://tools.ietf.org/html/rfc8478](https://tools.ietf.org/html/rfc8478)

Since Zstandard is so simple and efficient, I thought it would get into browsers very quickly. Then, it could make sense to compress even PNG or JPG images, which are usually impossible to compress with DEFLATE.

<comment><USER6> With internet speed significantly above the decompression speeds zstd is favorable. With internet speeds below the decompression speeds brotli is favorable because less bytes need to be transmitted.

Usual users have internet speeds of a 10 MB/s or so, and brotli is more favorable up to around 200 MB/s (2 gbps) internet speeds. It is also not just about speed, but mobile users need to pay less with brotli as less bytes are transferred.

Further (I'm not an expert on this, somewhat speculative) but likely the streaming properties of brotli are slightly better, i.e., less bytes are needed to hide in a buffer to be able to decode bytes. This may allow the browser to issue new fetches for urls in an html document earlier with brotli than with zstd.

<comment><USER5> From what you say, it sounds like you think, that Brotli has a better compression ratio, than Zstdandard.

According to this chart, Zstandard has a better compression ratio, while compressing and decompressing faster than Brotli: [https://facebook.github.io/zstd/](https://facebook.github.io/zstd/)

<comment><USER6> It is a cherry picked data point, and not representative for brotli. There, facebook shows numbers with quality 0. However, when they compress for the web, they use brotli with quality 5 for dynamic content and quality 9 (or 11?) for static content.

At higher quality settings brotli wins in compression density, and particularly so with quality 11 or with short files.

Quality 0 is an irrelevant corner case of maximal compression speed, and is completely impractical for most uses.

If you plot the whole curve, brotli's density is above that of zstd's for compression speed/density -- when both algos are used with same backward reference window size.

</comment></comment></comment></comment><comment><USER7> I'd really like to thank Cyan for their contributions. `zstd` and `lz4` are great. I'm pretty much exclusively using `zstd` for my tarball needs in the present day as it beats the pants off `gzip` and for plane text code (most of what I compress) it performs amazingly. (shameless self promotion) I wrote my own tar clone to make usage of it [1].

It is nice to have disk IO be the limiting factor on decompression even when you are using NVMe drives.

[1] [https://github.com/valarauca/car](https://github.com/valarauca/car)

</comment><comment><USER8> The best thing about zstd is its zlibWrapper, which lets you write code as if you're consuming zlib-compressed files while transparently working with zlib-, zstd-, or uncompressed files. I build several of my tools with zstd for this reason.

<comment><USER9> zlibWrapper seems useful if you're specifically using the low level zlib APIs already and don't want to change your code very much. But if you just use zopen() or similar, or are willing to make minor changes, I don't see much benefit. (Especially given the performance gap vs native zstd APIs).

I have seen some fopencookie(3)-based zstd/zlib/xz/etc FILE-object wrappers floating around that make it pretty easy to work with any compression library's streaming APIs.

<comment><USER8> zlib is standard in my field, so being compatible is a big plus. I should do some testing with the zstd API, though. Thanks for the performance discrepancy heads-up!

</comment></comment></comment><comment><USER10> I used zstandard to compress mesages in P2P multiplayer game engine, and, taught on our real-life packets, it got us 2x-5x improvement. Awesome library, will use it in any similar project from now on.

</comment><comment><USER11> How does zstd compare with brotli? Would it be a better compression standard for http responses?

<comment><AUTHOR> They compare pretty closely. The squash benchmark is a nice interactive comparison tool that usually agrees with my own benchmarks. See for example [1]. (Note that you should experiment with different input texts to get a sense for the variability in relative performance.)

I am working on that very question! Zstd's support for creating and using custom dictionaries opens the door to significant efficiencies. As described in the post though, dictionaries make compression a more complicated thing to use, and so there are lots of questions about how to apply that to the public internet in a way that's cross-compatible and secure. In short: it's something we're actively exploring.

[1] [http://quixdb.github.io/squash- benchmark/unstable/?dataset=e...](http://quixdb.github.io/squash- benchmark/unstable/?dataset=enwik8&machine=s-desktop&speed- scale=logarithmic&visible-plugins=zstd,brotli,lz4,lzma,zlib)

<comment><USER12> Browsers could cache dictionaries per MIME type per domain which are provided by the server. Would be super cool, if a bit more complicated.

<comment><AUTHOR> Yep, that's in the vicinity of the solutions we're thinking about. There are a few proposals out there, and prior art like SDCH [1].

The hard part is that compression is already an attack vector for the web (e.g., CRIME [2], BREACH [3], et al.). We want to make sure that we're not eroding or unduly complicating that situation [4].

[1] [https://tools.ietf.org/html/draft-lee-sdch- spec-00](https://tools.ietf.org/html/draft-lee-sdch-spec-00) [2] [https://en.wikipedia.org/wiki/CRIME](https://en.wikipedia.org/wiki/CRIME) [3] [https://en.wikipedia.org/wiki/BREACH](https://en.wikipedia.org/wiki/BREACH) [4] [https://tools.ietf.org/html/draft-kucherawy-httpbis-dict- sec...](https://tools.ietf.org/html/draft-kucherawy-httpbis-dict-sec-00)

</comment></comment></comment></comment><comment><USER13> > And the zstd binary itself includes a dictionary trainer (zstd --train). > Building a pipeline for handling compression dictionaries can therefore be > reduced to being a matter of gluing these building blocks together in > relatively straightforward ways.

What happens if your user data trained dictionary ends up storing user data and you receive a GPDR destruction request?

<comment><USER14> _standard GDPR cop out disclaimer that 's something about needing to keep the data for technical reasons_

I wish I knew more about it, but that's what I keep hearing.

<comment><USER2> The dictionary data in not personally identifiable, so no need to do anything. At least this is my understanding of GDRP, I am not a loyer.

</comment></comment></comment><comment><USER15> I find the first chart so hard to understand. The axes need labels, and the color scheme is not ideal. They should use different line styles, and add a caption below summarizing the findings. There's a reason journals often require graphs to be formatted this way.

This is a resource I've found helpful: [https://www3.nd.edu/~pkamat/pdf/graphs.pdf](https://www3.nd.edu/~pkamat/pdf/graphs.pdf)

"Consider readers with color blindness or deficiencies"

"Avoid colors that are difficult to distinguish"

<comment><USER15> That being said, can anyone able to decode this share some cases in which this would be better suited than zlib?

<comment><USER16> The x axis is compression speed, and the y axis is compression ratio.

Zstandard outperforms zlib in compression ratio, compression speed, and decompression speed (not shown). The only reason to stick with zlib is for compatibility with systems that expect zlib.

<comment><USER15> That sounds fantastic. What is the porting process generally like? Are there any possibilities to create an API compatible wrapper to make it a drop in replacement for zlib?

<comment><USER16> Porting is generally very easy.

* If you already have the compression algorithm tagged, through a file extension, or a field, then you can use that to dispatch to the right decompression algorithm.

* Zlib, gzip, xz, zstd, ... all have headers. If you are using zlib, and switching to zstd, you simply have to check the first 4 bytes for the zstd header using ZSTD_isFrame() [0], or attempting to decompress with zstd and if it fails fall back to the previous decompression algorithm.

* The zstd CLI can decompress both zstd and zlib/gzip if compiled with zlib support.

* Zstd provides a wrapper around the zlib API so you could transparently switch to zstd. [1]

[0] [https://github.com/facebook/zstd/blob/dev/lib/zstd.h#L1409](https://github.com/facebook/zstd/blob/dev/lib/zstd.h#L1409) [1] [https://github.com/facebook/zstd/tree/dev/zlibWrapper](https://github.com/facebook/zstd/tree/dev/zlibWrapper)

<comment><USER15> Great, thanks! Last question.

On the blog you mention you are underway porting the internal code to replace Zlib with Zstd. Is there a reason you decided not to use the wrapper as a first pass to migrate all uses of Zlib to Zstd across the entire codebase?

<comment><USER16> There are a few reasons we haven't used the wrapper.

* The larger services require tuning to get the best performance out of zstd, and we use some advanced options.

* We have a "Managed Compression" library which does zstd dictionary compression, which doesn't work with the wrapper.

* We have our own automatic decompression framework that handles many algorithms [0].

* A lot of use cases switched over from other algorithms than zlib.

* A lot of use cases switched over to zstd organically, without our involvement, since it was such a clear win.

[0] [https://github.com/facebook/folly/blob/master/folly/compress...](https://github.com/facebook/folly/blob/master/folly/compression/Compression.h#L522)

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I hope they pay greater attention to the low and high end of their compression ratio spectrum. On the low end, it'd be great if it could exceed lz4 in terms of speed and memory savings. On the high end it'd be great to exceed XZ/LZMA.

Right now it's impressive "in the middle", but I find myself in a lot of situations where I care about the extremes. I.e. for something that will be transferred a lot, or cold-stored, I want maximum compression, CPU/RAM usage be damned, within reason. So I tend to use LZMA there if files aren't too large. For realtime/network RPC scenarios I want minimum RAM/CPU usage and Pareto-optimality on multi-GbE networks. This is where I use LZ4 (and used to use Snappy/Zippy).

At their scale, though, FB is surely saving many millions of dollars thanks to deploying this, both in human/machine time savings and storage savings.

<comment><USER16> We recently added negative compression levels that extends the fast end of the spectrum significantly. We are also working on incrementally improving the strong end of the compression ratio spectrum. We don't expect plain zstd to compress stronger than xz, but we hope to close the gap some.

<comment><USER17> Ah, I didn't know, thanks! I'll have to re-test.

<comment><USER6> With zstd you end up on average 5-6 % worse than LZMA in density on a variety of large test corpora, but decodes 8x faster. Brotli with --large_window 30 can get within 0.6 % of LZMA, and decodes 5x faster than LZMA.

[https://encode.ru/threads/2947-large-window-brotli- results-a...](https://encode.ru/threads/2947-large-window-brotli-results- available-for-a-several-corpora)

</comment></comment></comment></comment><comment><USER18> Am I the only one getting sick of "at scale"?

<comment><USER19> It's Enterprise slang for "we are big, so we assume everything we do works better at big scale, but please don't check if it's true, just trust us". (in this thread it might be true, usually it isn't though)</comment></comment>


Ask HN: What active research areas or technologies will have the most impact? - <AUTHOR> I'm fairly bullish on Synthetic Biology and Neuroscience Inspired Machine Learning, but I'm curious to hear what others think? <comment><USER2> Anything to do with a global internet will be game-changer, for better or for worse (I think better, but could potentially be a large monopoly)

Self-driving cars will completely change our society.

Personalised medicine might be amazing, but I don't know much about it. Could just be hype.

<comment><AUTHOR> I've actually been thinking about using the strategy comma.ai employed to try and build some interesting open source predictive health models. Like, get a bunch of enthusiasts to share biometric data, build some cool preliminary completely open source models that tie those bio markers to interesting health results, then go from there. I don't know if it would get big, but it would be a fresh stab at personalized medicine imo</comment></comment>


The Norwegian Tech Industry is All at Sea - <AUTHOR> http://www.thenordicweb.com/2014/05/01/the-norwegian-tech-industry-is-all-at-sea/ <comment><USER2> Norway has quite a bit of hardware startups, which are otherwise rare in Europe. It's not all about Oil. Notable examples are:

\- Nordic VLSI: Wireless ICs like nRF24L01, Basically responsible for the Blue Tooth Low Energy standard.

\- AVR: Well known 8-Bit microprocessors. Sold to Atmel

\- Energy Micro: Low Power ARM Microcontrollers. Sold to Silicon Labs.

\- Phalanx: GPU Cores. Sold to ARM.

<comment><USER3> Also, Chipcon, sold to TI [1].

[1] [http://en.m.wikipedia.org/wiki/Chipcon](http://en.m.wikipedia.org/wiki/Chipcon)

</comment></comment><comment><USER4> Submitters: please read the articles you post and make sure they aren't lifted from a more original source. If they are, submit that one instead. HN strongly prefers original sources.

We changed the url from [http://www.geektime.com/2014/05/03/the-norwegian- tech-indust...](http://www.geektime.com/2014/05/03/the-norwegian-tech- industry-is-all-at-sea/)

<comment><USER5> Thank you. I'm strongly in favor of link disambiguation.

</comment></comment><comment><USER6> Finally something I know about. Feel free to ask and I will try to answer :-)

<comment><USER7> Do you think other nations can replicate Norway's success in avoiding the resource curse? If so, how?

<comment><USER8> If their tech sector really has tilted strongly towards resource extraction it might be a sign that Norway isn't avoiding 'resource curse'.

Helping other countries extract fossil fuels more quickly might well exacerbate the planet's upcoming crises. So, from my perspective this is part of the problem.

<comment><USER9> The resource curse seems to be mitigated the more the local population is involved in the engineering and science of the various resource exploratin/extraction processes. Norway having a tech-sector to "tilt" towards resource extraction is itself highly unusual.</comment></comment></comment></comment>


Fully Electric Car Complete With GPS And Onboard Computer - <AUTHOR> http://howtosplitanatom.com/news/thinking-green/

<comment><USER2> I find it depressing how little attention, and possibly investment, is on the supply side of the energy problem (and its not just environmental).

</comment><comment><USER3> I often decry how so much technology hasn't really added much value and miss the good old simple days.

This is a big exception. I can't wait until our roads are filled with these. It seems like the electric car is taking forever; I guess those with a lot to lose are fighting it every step of the way.</comment>


AIs have replaced aliens as our greatest world-destroying fear - <AUTHOR> https://qz.com/1201846/ais-have-replaced-aliens-as-our-greatest-world-destroying-fear/ <comment><USER2> I was thinking about this today. The idea of a super-intelligent AI adversary draws my concern for only one reason.

The biggest threat to humans from AI is that machines will learn all about us from the very data we store about ourselves. Facebook, Google, amd countless other banks of data can form a patchwork quilt of facts, photos, friends and locations that characterize everything from our preferences and habits to our fears and motivations.

</comment><comment><USER3> At least the fear of a world destroying AI is based upon a real and rational risk. The toxicity of interstellar space is so extreme and the distances so vast that the energy needed to travel is basically unrealistic for most advanced civilizations. At least AI is a rational risk and people are facing rational fears.

</comment><comment><USER4> Don't use Facebook or Gmail. It's not that hard.</comment>