Show HN: Dropbase 2.0 – Turn offline files into live databases - <AUTHOR> https://www.dropbase.io/ <comment><USER3> Hey HN,

We're happy to introduce Dropbase 2.0! It's a tool that helps you bring offline files, such as CSV, Excel, and JSON files, into Postgres database. You can also process your data before uploading it using a spreadsheet-like interface or by writing a custom Python script. Once your data is in the database, you can query it using any third party tool (credentials will be provided). You can also access your data via REST API (powered by PostgREST) or create custom endpoints to serve a more specific use case.

A bit about the tech:

Currently, we support .csv, .json, .xls, .xlsx files. For data processing, we use Pandas, so if you are comfortable using Python, you can write your own custom functions to process the data. We also give you a free shared Postgres database to test the tool with (your data is isolated and hidden from others). Each one of these databases come with an instance of PostgREST preinstalled, so you can query your database using REST API ([[http://postgrest.org/en/v7.0.0/](http://postgrest.org/en/v7....](http://postgrest.org/en/v7.0.0/\]\(http://postgrest.org/en/v7.0.0/\))). You can also generate an access token with an expiry date to share your data with others.

There are many more features that we baked into the product. Come check it out, it's open for HN community.

<comment><USER4> Question about the TOS:

"However, by posting Content using Service you grant us the right and license to use, modify, publicly perform, publicly display, reproduce, and distribute such Content on and through Service. You agree that this license includes the right for us to make your Content available to other users of Service, who may also use your Content subject to these Terms"

Does this mean I should have no expectation of privacy or control over anything I upload?

<comment><AUTHOR> Your data is private and you own all of your data. We do not and will not share your data with anybody else unless you share it yourself through the sharing of projects, pipelines, endpoints, or exports. We do however store and process your data. We also let you generate endpoints so we need some wording to cover these cases. We'll double check our terms to make this point clearer, but we added this because you can generate live endpoints and you can share those.

<comment><USER5> Unfortunately IANAL and the formulation of the ToS/PP in your, and that of most other online service providers, always give me that naggy feeling that the legalese leaves so many loopholes, texts open to different interpretation, that effectively - even though it may seem so - I have no privacy guarantees whatsoever. That might be entirely unwarranted of me, but the feeling is there. Unease.

<comment><USER6> > even though it may seem so - I have no privacy guarantees whatsoever.

I mean, fundamentally, _really consistent_ security is hard; and the best you can reasonably expect from someone you're not paying is "best effort". For them to make real promises about security opens them up to being sued if they fail; it's not really reasonable to ask someone to do that unless you're paying them a reasonable chunk of cash to offset that risk.

<comment><USER5> Sorry, but this almost feels like a GPT-3 response to me.

I don't see what security, paid vs. free or best-effort has got to do with my argument, which is that the loopholes in legalese are so hard to spot for anyone but a lawyer, that effectively my data _might_ still be used in any way and possibly against my wishes or expectations (but which becomes legal when I consent to the PP and ToC).

</comment></comment></comment></comment></comment></comment><comment><USER7> On a somewhat unrelated note, the design of this landing page is fantastic. It is exactly how I like to have new tools presented to me. All the fundamental competencies of the tool displayed on one page, with sufficient, but not verbose, technical detail. Kudos.

<comment><USER8> Yeah, although in my case it would have been nice to have a 'light' version, as I have some trouble reading the dark grey text on a black background in broad daylight.

<comment><AUTHOR> Working on this.

</comment></comment></comment><comment><USER9> Is there a light mode option for the site? Or is iOS just not selecting it for some reason?

My astigmatism makes reading dark UIs migraine inducing, so as cool as this sounds I unfortunately can't read more about it without triggering a migraine. x_x

(Maybe still default to the dark UI, but if the user has light mode enabled it uses a light UI?)

<comment><USER10> Oh, so that's what makes dark themes so hard to read for me. Unfortunately there's no easy way out for me, since my eyes are photosensitive due to a separate complication. Between a rock and a hard place :p

<comment><AUTHOR> I'm with you in the sense that I just learned through these posts that astigmatism and website dark modes don't go well together.

I wonder if lighter colors and soft grey palettes would work for your case. have you experimented with colors that are easier on your eyes, given your complications?

<comment><USER10> I haven't actually. I always just used dark mode and assumed the additional difficulty was a drawback everyone experienced and learned to live with it. Now that I know that's not the case I'll see if I can find a color scheme that works well, like you suggested :)

</comment></comment></comment></comment><comment><USER11> This is very cool. I think there's a lot of room to grow this space: local "folders" that do some "magic" in the cloud.

Obviously, sync (Dropbox) is just the beginning, and Dropbase takes it a step further. There's been times where I had a (big-ish) CSV and wanted to run a few tests/queries on it. Auto-importing it into some database and being able to run SQL/Python on the dataset (without bootstrapping that locally) would've been a godsend.

Good luck with this!

<comment><USER12> Perl's DBD::CSV can do this. I would be surprised if Python didn't have something similar.

<comment><USER11> This reminds me of @BrandonM's famous reply to Drew Houston[1] :) Of course there are _ways of doing it_. But sticking something in a folder and stuff just automagically "working" is a much more pleasant workflow -- and more importantly, how you create value. Jimmy, I'd say you're in good company!

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

<comment><AUTHOR> Thank you. That comment is legendary!

<comment><USER13> Please don't forget about BrandonM's follow up comment though!

I've seen the thread linked as a 'tech people don't appreciate simplicity' but he actually acknowledges Dropbox could be very useful and wishes success.

The other criticisms were also very valid at the time, and were acted upon.

</comment></comment></comment></comment></comment><comment><USER14> Gitlab has a similar project that will load google sheets as a dataframe.[1]

At my current company, we load google sheets into s3, then mount those files as external tables. There has not been a commit in years, meaning it has worked out well for us.

What seems to be missing in these solutions, and what Dropbase provides, is a UI to guide users through the process.

[1] [https://gitlab.com/gitlab- data/analytics/tree/master/extract...](https://gitlab.com/gitlab- data/analytics/tree/master/extract/sheetload)

<comment><AUTHOR> Thanks. That's a useful project! And yes, we aim to make data processing easy (through UI, low code) and easy to reuse/export (by converting UI steps 1:1 to code)

</comment></comment><comment><USER15> My favorite incarnation of this idea is probably Datasette.

[https://github.com/simonw/datasette](https://github.com/simonw/datasette)

<comment><AUTHOR> I just had a friend mention this too. I just checked it out and it's really cool! What's your favorite thing about it?

<comment><USER15> I tend to think of software in terms of composable units, so Unix-like utilities are very attractive in my workflow, and Datasette just fits right into that model. Datasette is easy to deploy and does one thing well. I can use it on my little single-board computer I use for hobby projects and allow other machines on my network to have an API to view a database a daemon is populating there. But it works just as well to share larger, static data sets on the internet. It's just a tool that fits right into its niche in the stack and does its job really well (much like sqlite).

<comment><AUTHOR> Thanks, that's a good point.

As engineers, we also tend to think in terms of modularity and control - <USER2> this "tool flexibility."

With Dropbase, we're balancing flexibility with the goal of creating an experience that allows users who can't directly work with these composable units.

How we balance experience vs flexibility is that we give users full control of the database and the processing steps (we even allow you to export Python code you can run anywhere else).

We found this is the right balance for the uses cases we're targeting, although, we're still doing a lot of research to figure out the right balance and that balance might also evolve over time.

</comment></comment></comment></comment><comment><USER16> Good job. Channeling patio11: increase your prices, e.g. $49/$250/CALL US. Your customers are businesses, these numbers will be perfectly reasonable.

<comment><AUTHOR> Thank you. Good point, we actually just had a few agencies/consultancies ask about self-hosted / enterprise options.

We are offering our current pricing to early adopters on HN. We'll likely increase prices once we do a general public launch.

<comment><USER17> If you do this, please offer nonprofit and student/academic plans! Many people in social sciences and the nonprofit world don't have the engineering resources to build data pipelines, nor the budgets for a $250/mo plan. But they're spending every day slicing Excel files of surveys and risk assessments and potential donors and the now-departed intern's messy list of average flight speeds of unladen swallows.

In all seriousness, this product could bring leverage to those in society who could have the most impact. Design is brilliant, the pipeline idea is brilliant, I can see this really gaining traction.

<comment><USER3> Thank you so much!

Yes, we will offer non-profit and academic plans.

</comment></comment></comment></comment><comment><USER18> I really like this. I could see myself using this in the future for some personal projects or for prototyping.

What I would really love though is something a little more similar to Dropbox, with tight integration to the user's filesystem, and keeping the spreadsheet as the source of the data.

<comment><USER3> Spreadsheet view for all your data is on our roadmap. Integrating into user's file system is something we'll definately explore, it sounds quite interesting. These are great suggestions, thank you!

</comment></comment><comment><USER19> This is just just excellent. I do a lot of ETL work and need to build custom workflows for it, this is exactly what I have been looking for. Good job, team!

<comment><USER20> Since you brought up ETL, you may also be interested in Meltano ([https://meltano.com](https://meltano.com)), an open source ETL tool we've been working on at GitLab for a few years now!

I shared some thoughts on how it compares to DropBase in another comment: [https://news.ycombinator.com/edit?id=24194916](https://news.ycombinator.com/edit?id=24194916)

If you end up giving it a try, I'd love to hear what you think :)

<comment><USER19> Thank you! Will look into it.

</comment></comment></comment><comment><USER21> Congrats! Looks like it could be very useful!

Just a tiny thing I noticed. The free plan is usually mentioned on the left of the page. ( [https://www.dropbase.io/pricing](https://www.dropbase.io/pricing) )

Or was the page layout put intentionally that way?

<comment><AUTHOR> Updated the page. Free plan on the left! Thanks!

</comment></comment><comment><USER22> I would love to be able to import more than one json file or multiple URLs. This would allow me to migrate legacy databases through apis.

<comment><USER3> it's on our roadmap and will try to add support for multiple files and zip in the upcoming release

</comment></comment><comment><USER23> Some of the ideas are good but it's more interesting if it processes files like RDS Spectrum does vs loading first to Postgres. I know you are targeting smallish datasets but eventually data size will go up and loading everything in PG could become a scaling problem.

<comment><AUTHOR> Thanks! This is a neat idea! It would allow users to upload unstructured data. We'll explore this.

</comment></comment><comment><USER24> This reminds me of [https://www.visidata.org/](https://www.visidata.org/) which is a terminal based application with similar purpose - loading tabular data from various sources, and exploring and processing it in a visual way.

<comment><USER25> Woah. I need this, but then with Vim bindings ... that would be my ultimate data browser

</comment></comment><comment><USER26> Looks useful, and the landing page is excellent.

Minor grammar fix: "See how your data looks like as you process it." -> "See what your data looks like as you process it."

(could be "how it looks" or "what it looks like", not "how it looks like")

<comment><AUTHOR> Thank you for this! I appreciate it.

Update it to: "Spreadsheet view. See how your data looks as you process it". Went for this suggestion to keep everything to 2 lines.

</comment></comment><comment><USER27> I've been looking at a spreadsheet to API like GUI interface for quite a while now. Mainly for small projects around the house NOT company sized work.

Does anyone know of a self-hosted interface like Dropbase or Airtable?

</comment><comment><USER28> This looks useful, I'd prefer self-hosted for some use cases though.

<comment><AUTHOR> Thanks. Yes, in some cases where you're working with regulated data you'd need a self-hosted version. We're working on an enterprise version that allows this.

Would you be able to describe your use case and the kind of data you're using?

<comment><USER28> Sorry, what I have in mind is mostly just personal productivity stuff, relatively small data, but private.

<comment><AUTHOR> Our BYODB plan lets you connect to 1 of your own databases. It's not quite self-hosted but you are in full control of your DB.

</comment></comment></comment></comment><comment><AUTHOR> Thanks for all the support, comments and feedback HN! It's been a really long day. I will respond to more comments in the morning!

</comment><comment><USER29> This is very cool! I was building something similar but with a different crowd in mind, basically inbetween business and ops people as a "data sanity gatekeeper".

I was debating going with a similar stack (postgres(t)) but am currently playing around with sqlitebiter. Cool to see a similar product like this!

<comment><AUTHOR> Thanks! sqlitebiter looks interesting!

</comment></comment><comment><USER30> How does it work for deep JSON? Does it import it as JSON and keep the depth inside each row? Or is there an option to flatten the data, or spread across related tables?

<comment><USER31> Hey, I'm one of the engineers behind Dropbase. Currently all imported data needs to be structured, which means that the data needs to be formatted in either values, records, index, or column orientations (see [https://pandas.pydata.org/pandas- docs/stable/reference/api/p...](https://pandas.pydata.org/pandas- docs/stable/reference/api/pandas.DataFrame.to_json.html)). Right now we can only auto-detect between those formats, but in the future we're looking to accept unstructured data as well.

</comment></comment><comment><USER32> Reading the headline I clicked this thinking it might give you an API for your file system and I had thoughts of managing / viewing my files via an API.

<comment><AUTHOR> We could work on the wording. Let me know if you have any suggestions.

We don't let you manage your file system through API but we offer access to your database tables through REST APIs. It's not the same but you could hack it to work that way.

<comment><USER32> Perhaps changing offline files to offline data (files) as just "offline files" is pretty ambiguous of what is supported (and how I arrived at file system)

</comment></comment></comment><comment><USER33> Why not build a filesystem API without the need for importing first, so you can do queries on the file system?

<comment><AUTHOR> That's a great suggestion. We were considering something like this for business or enterprise versions. It would also allow you to connect Dropbase pipelines to multiple files or entire folders in local or cloud storage.

</comment></comment><comment><USER34> tried to import csv from file, failed. there was CORS error shown in the dev console.

<comment><AUTHOR> Are you still getting this issue? Could you check your file encoding and make sure it's UTF-8?

<comment><USER34> yes, just tried again, same issue. stuck at "Importing..." forever. I looked at the dev console.

Access to XMLHttpRequest at '[https://api.dropbase.io/v1/pipeline/HhNFQmZnnFkjrqK6Lptr3w/l...](https://api.dropbase.io/v1/pipeline/HhNFQmZnnFkjrqK6Lptr3w/load_csv_dd/done') from origin '[https://app.dropbase.io'](https://app.dropbase.io') has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

The csv file is UTF-8 encoding.

<comment><USER3> Yes, there is a bug with error messages, we'll push an update with a fix later today.

If you want, you can also share the csv with us and we'll troubleshoot it on our end. just email us at firstname.lastname@example.com

</comment></comment></comment></comment><comment><USER35> Xlsx sheets with more than one sheets, only first sheet gets imported?

<comment><AUTHOR> Yes, we'll add multi-sheet import soon.

</comment></comment><comment><USER36> > Your password must be between 6 and 32 characters (inclusive) long.

Really?

<comment><AUTHOR> Good point. We just added code to allow for up to 256 characters. We're testing this now and will push to prod end of day.

</comment></comment><comment><USER37> Is there a way to automate the data updating using JSON file?

<comment><AUTHOR> If you mean automating data ingestion on a schedule, then yes, it's something we're building.

If not, could you clarify what you mean?

</comment></comment><comment><USER38> Would be amazing if you supported parquet :)

<comment><USER3> I agree, parquet cannot be ignored and we're planning to support it.

What would you be interested more in: loading data from parquet files or converting and storing your data in parquet?

</comment></comment><comment><USER39> Can it do joins/group by/etc.?

<comment><USER3> yes, you can run regular sql queries on your database where you can join/group tables.

if you want to join/group static files (like csv/excel), then you'd need import your files into dropbase DB first and then run sql query on that DB.

let me know if this answered your questions.

<comment><USER39> no, it didn't. you should add a feature where you have 2,3,4,5 tables represented as CSV and you can do joins on them

</comment></comment></comment><comment><USER40> Any plans for sqlite?

<comment><AUTHOR> Yes, we have more database types in our roadmap. At the moment we are starting out with Postgres. Are you trying to get data to a new sqlite or an existing one?

</comment></comment><comment><USER41> [http://postgrest.org/en/v7.0.0/](http://postgrest.org/en/v7.0.0/)</comment>


Good bank account for a startup? - <AUTHOR> Does anyone know a good bank to have a business account with? I have a some websites that pay for themselves with ad revenue, but they don't make a lot of money. Currently they are attached to my personal account, but I would prefer to have them in a separate account with my LLC's name on it.<p>I had a business account with Bank of America, but they charged me $13/month for having too low a balance. <comment><USER2> I spent a lot of time researching this and chose the HSBC Business Direct account: [http://www.us.hsbc.com/1/2/3/business/checking/direct- checki...](http://www.us.hsbc.com/1/2/3/business/checking/direct-checking)

For savings, ING has a new business savings account that I'm looking at: [http://business.ingdirect.com/products/ofb_savings.asp?s=Sav...](http://business.ingdirect.com/products/ofb_savings.asp?s=Savings)

Hope it helps!

</comment><comment><USER3> Wells Fargo is the best for merchant services (next day deposit) and also have a great service stack for things like payroll. I had a company that used them for both and they were great. We also had a savings account with a regional bank (WCB). The small guys work harder for your business and will pay a better % (even in liquid accounts) and you may need the relationship someday for a line of credit.

</comment><comment><USER4> I live in PA. I have a DE registered LLC.

You don't mention the number of transactions you do per month or your typical account balance. These will determine which business checking product you need.

I went with PNC Bank's Free Business Checking. <http://tr.im/pncbizcheck>

\- No monthly fee \- No minimum balance \- Max free transactions: 200/month \- Max free cash deposit: $5,000/month

Here is why I chose PNC:

1: PNC Business Checking has RemoteDeposit: A scanner that you can use to scan checks at home and deposit online yourself. (Optional: extra service fee of $50/month)

2: The application over the phone was painless, took 5 minutes, then 15 minutes at my local PNC branch. Walked out with working bank account and starter checks.

3: Good Merchant services for when you want to accept credit cards online

4: 800+ locations/branches (Eastern USA mainly)

So far (two months in) PNC gets 5/5 from me.

EDIT: added optional

</comment><comment><USER5> I'm in a similar situation and I just wanted to share the little hangup I ran into:

I have a Delaware LLC and I live in California. When I tried applying for a Wells Fargo account in California they said I need a Foreign Qualification, which also means I would have to pay the California minimum franchise tax of $800/year.

I'm sure there's an easy way around this but I just set it aside because it's not a priority for me.

<comment><USER6> IANAA: I think you owe that $800 to California if you're operating any business inside California, regardless of whether it's registered in California or not.

<comment><USER5> If I'm running a website and I just happen to live in California, does that count as operating a business in California?

<comment><USER7> Probably -- you're the owner and only employee, and you're in California.

</comment></comment></comment></comment><comment><USER8> Getting hit with low balance fees and caring about $13 a month both suggest to me that this is a color-of-the-bike-shed decision until you get bigger.

<comment><AUTHOR> This is mostly a hobby business that I want to run lean without much plan for growth. I'm looking for more efficient business accounts that better match my uses.

<comment><USER9> A hobby business is not a business, it's a hobby and hobbies cost money.

If you plan on this being a business you have to figure out first how much turnover you have to make to make a go of it, and if $13 / month for a bank is a make-or-break decision then I would suggest you look long and hard at whether or not this is a feasible endeavor.

For sure it is possible that you'll be doing this expense out-of-pocket for a while, but then you just put all these expenses against your future revenues.

A typical small business, including all overhead, such as administration, tax filings, equipment and so on will cost you at least $200 / month, so if your projected profits when this thing is up and running are lower than that you really should reconsider your plans.

This is not meant to demoralize you, I just think that if you doubt about spending $13/month that you have other issues than choosing the right bank.

I chose mine for reliability, easy access to international banking, the fact that my balance is insured to a serious amount and so on, the 'costs per transaction' and 'monthly fees' were the least of the considerations.

The recent crisis has born out the wisdom of that decision, by going with a large but cooperative bank they were hit very little by the affairs that caused their main competitor to now be mostly state property.

</comment></comment></comment><comment><USER10> As with most things in life bank fees like this are more often then not are negotiable. Make an appointment with the branch manager or business specialist at your BoA branch and voice your concerns about fees like these, and how they would make it difficult for you to continue banking with them.

For anyone thinking of opening a separate account for business the first place to start would be the bank you use for your checking/savings account. Not only do you have an established relationship (if only in paper form) but the will work harder to please you if there's a chance they'd lose your non-business accounts too.

<comment><AUTHOR> The whole thing was sketchy. They told me there wouldnt be fees, so when fees showed up, I complained and they said they would remove them. When the fees didnt go away, I asked to be refunded. They said they could only refund the last 3 months of fees since they had "no record" past that, even though I had the account for a year.

Anyway, I just didn't want to deal with them anymore so I closed the account.

</comment></comment><comment><USER11> I use wells fargo but they hit you with similar things if your account is low. There are things you can do to get around it if you want to spend some time talking to the teller. (something about setting up a monthly automatic transfer, etc...)

I'm not recommending wells fargo or anything, but I don't think it matters that much. you are talking less than $20 a month in most cases, and with wells fargo, and I believe most banks, that includes the ability to send checks from a web interface, so I don't think it's that unreasonable.

<comment><USER12> I use Wells Fargo, Business Account. When I started the account I asked them to waive the account minimum fee and that's the only way they were going to get my business and they waived it. There have been times when I had a low account balance and they didn't charge me anything. When you are opening the account it pays to understands these charges and negotiate with them they usually listen.

</comment></comment><comment><USER13> Can't provide a good suggestion yet, but I'll try to make your pool of options smaller: don't go with Chase.

I've been a personal customer for 7 years and a business customer for 3. A little over a year ago I opened another business account for my startup. Last month I went to them for a line of credit (or even a credit card), and even though the branch manager attached a recommendation to my credit application, it was still denied.

Perhaps this is the case with any large bank, but the bureaucracy is endlessly frustrating. I'd go straight to a small-town credit union if we weren't planning to move the business out of state in a few months, so instead I'm negotiating with Wells Fargo.

</comment><comment><USER14> I slipped in before the change to Chase and got a free Wamu business checking account. I use this account

[https://www.wamu.com/business/checking_account/free_checking...](https://www.wamu.com/business/checking_account/free_checking/default.asp)

No monthly fee or minimum balance, up to 250 checks per month.

Large bank and getting larger with Chase acquiring, I didn't see a similar Chase plan so I think I should be grandfathered in as they move to Chase.

This is the closest I found to a "personal account for business"

Works great for me, sounds very similar to the PNC deal also mentioned.

</comment><comment><USER15> I use a local/regional bank. They charge no monthly fees even if you have a $0 balance. Most banks have fees on checking accounts for corporations. The bank is Amegy Bank (only serves Texas).

</comment><comment><USER16> Find a regional credit union. They tend to give better customer service and lots of free extras for the account.

</comment><comment><USER17> SunTrust Business Checking- No minimum, No monthly fee, I use them.

</comment><comment><USER18> google "free small business checking"

Hopefully, there is a bank in your area among those results. If not, $156 a year is a trivial expense: just forget it and focus on building your businesses.</comment>


We Solved Blockchain Application User Experience - <AUTHOR> https://hackernoon.com/how-we-solved-blockchain-application-user-experience-1b422acb1346 <comment><USER2> Brought back centralization and generate private keys based on email+password.

How is this an improvement?

I would look the other way when someone claims to have "solved" anything blockchain related</comment>


Billions of dollars of unsold diamonds are piling up around the world - <AUTHOR> https://markets.businessinsider.com/news/stocks/diamond-sales-miners-stuck-gems-worth-billions-dollars-coronavirus-2020-6-1029300342 <comment><USER2> Interesting read concerning that topic: [https://www.theatlantic.com/magazine/archive/1982/02/have- yo...](https://www.theatlantic.com/magazine/archive/1982/02/have-you-ever- tried-to-sell-a-diamond/304575/)

Its quite old (from 1982), but some things might still be relevant today. The article leaves you with the strong impression that the market is highly controlled by a few players, and a diamond is not really an asset you would like to invest in.

<comment><USER3> This is all true today still. Just as OPEC controls oil supply, De Beers Group controls the diamond supply.

<comment><USER4> Equally true, all right. The US is the world's biggest oil producer, and numbers 3, 4 and 5 on the list are non-OPEC members Russia, China and Canada [0]. Similarly, Wikipedia attributes to De Beers a 36% market share in rough diamonds [1]

[0] [https://www.worldometers.info/oil/oil-production-by- country/](https://www.worldometers.info/oil/oil-production-by-country/)

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

</comment></comment></comment><comment><USER5> I guess if you ask the question, "why are diamonds not traded as a commodity like gold, silver, platinum, etc", you start to think they're not quite the same value as people want you to believe?

<comment><USER6> It's not a perfect analogy; gold, silver, and platinum can all be melted, reconstituted, combined, and separated without being damaged. Diamonds are more unique than that.

They could be more commodified than they are, but they can never achieve the commodification of a metal or a simple gas like e.g. nitrogen.

</comment></comment><comment><USER7> The diamond market is a farce, there's no scarcity, they have almost no real use and sinthetic diamonds are a thing for ages, the only reason it didn't plummet is because the only artificial diamond manufacturer reached an agreement with the sellers to mark them as fake

<comment><USER8> Why would sellers and manufacturers agree to something only deBeers wants?

<comment><USER7> Well at the moment they were already selling everything for industrial use, now looks like there are more manufacturers of synthetic diamonds and they are indeed selling them, only they tell people... [https://www.reuters.com/article/us-diamonds-debeers- syntheti...](https://www.reuters.com/article/us-diamonds-debeers-synthetic- analysis/lab-grown-diamond-prices-slide-as-de-beers-fights-back-idUSKCN1OK0MQ)

</comment></comment></comment><comment><USER9> So, serious question: if I was going to buy a ring for my girlfriend, would this be a good time to buy?

<comment><USER10> Moissanite my friend. Save money for things that you enjoy (travelling, hobbies, concerts) and avoid funding a dirty industry (dirty in every sense of the word).

<comment><USER11> Explain that to his girlfriend, or any girl you've ever been with.

It just represents way too much in their heads.

<comment><USER10> Bold statement to make about 3,500,000,000 people. That thinking rationally is impossible for _their_ heads.

For what's worth my girlfriend already made it clear that she would be very upset if I ever bought her such expensive jewellery, precisely because of lost opportunity cost in things like enjoyable trips through Europe, attending concerts/plays and that sort of actually meaningful experiences. So hey, there goes your theory?

<comment><USER11> I guess I was being a little tongue in cheek, but I'm mostly implying the discussion is not as simple as 'hey this is really expensive, what about this cheaper alternative'. It's a delicate thing because for many people it's one of four things they probably dreamt about their whole life - marriage, ring, baby, house. There's a lot of emotion behind all of it.

I'd love to be able to convince her that the ring money would do great in a Vanguard fund instead :p.

Edit: Looks like I have to put this disclaimer, for many people the things I listed above are milestones (not for all).

<comment><USER12> It's pretty offensive to assume that women just want "marriage, ring, baby, house"

<comment><USER13> Yes! There is money too

<comment><USER14> Let's leave the misogyny somewhere else. Ideally nowhere, but definitely not here.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Diamonds can wait forever too.

I wonder if the excess supply of diamonds would lower the price, since they're such a valuable and rare commodity.

</comment><comment><USER16> If ever there were a moment for tiny violins.

<comment><USER17> I saw one estimate there is one million people employed in diamond mining in Africa.

What now happens to their families?

In India where diamonds are cut they also employ a million people.

What now happens to their families?

<comment><USER18> What exactly is your point? That no evil enterprise is that bad so long as it employs people? You will find yourself defending some pretty bad shit with that argument.

<comment><USER17> How about some respect is shown for the 2 million human beings I mentioned working in developing counties who's jobs are at risk during what could be the largest economic downtime in 100 years.

How about violins are not pulled out and instead we think about the million (an estimate from a NGO) Africans who work in artisan diamond mines, their work is horrific and vital to their families.

And something really hard, don't just ignore the fact their lives are ruined because we hate De Beers and think about what happens now and how can we fix this?

If you don't want to fix this, at least don't jump around with glee about the fact lives are ruined.

<comment><USER8> It's interesting that people are downvoting (from their computers made from Blood Rare-Earth Minerals) you but no one is posting links to relief efforts they've donated to or paid taxes for.

It's easy to martyr _other people_.

<comment><USER19> Ah yes, because you aren't allowed to criticize something unless you yourself are perfect morally clean.

</comment></comment></comment></comment></comment></comment><comment><USER20> If they're piling up they're not worth billions anymore.

</comment><comment><USER21> Sounds like they aren't worth billions of dollars anymore.

<comment><USER22> Well, if a single company manages to own all the piles of diamonds, they could artificially limit supply to keep prices high.

<comment><USER23> The company was De Beers and they no longer have a monopoly: [https://www.diamondportfolio.com.au/investor- centre/market-i...](https://www.diamondportfolio.com.au/investor- centre/market-information/de-beers-monopoly-broken/)

<comment><USER24> No, but the sharing "partners" might as well be part of De Beers as diamonds are still sold at prices way way above what they are worth. Like "selling iron for gold prices" expensive.

<comment><USER8> How can an optional* non-functional luxury good be sold for more than it's worth?

*Worth to your lady, not to you Economically, the diamond is a token of wastefulness that serves only to destroy value as part of the human mating ritual. Bitcoin for women, but even less liquid.

<comment><USER23> A bitcoin for women analogy might be generous; one diamond isn't fungible for another one. There's sentimental value.

</comment></comment></comment></comment></comment></comment><comment><USER25> The main take away for me was that 4.5 billion dollars is just 2/3rd of the annual worth of diamonds produced. Somehow I didn't expect that large a number of diamonds to be even created let alone sold. People still buy a lot of diamonds than needed (at least in my head).</comment>


$1000 for Each Broken Bone in the Face - <AUTHOR> http://motherjones.com/politics/2010/11/vigilante-justice-oklahoma-indian-reservations <comment><USER2> Sounds like a good backdrop for one of (the late) Tony Hillerman's novels.

It never ceases to amaze me at how brazenly we've screwed the native population of this country, and continue to do so. As a born US citizen, things like this always make me feel such shame.</comment>


Why Concepts didn't make C++17 - <AUTHOR> http://honermann.net/blog/2016/03/06/why-concepts-didnt-make-cxx17/ <comment><USER3> "Concepts have been _widely expected_ to produce better error messages than are currently produced when template instantiation fails. ... Unfortunately, it turns out not to be so simple and use of concepts sometimes results in _worse_ error messages. Constraint failures frequently manifest as overload resolution failures resulting in a potentially long list of candidates, each with its own list of reasons for rejection. Identifying the candidate that was intended for a given use and then figuring out why the constraint failure occurred, can be a worse experience than navigating a template instantiation stack."

Perhaps someone indeed has been "widely expecting" a huge new source of complexity in C++'s already very complex static binding rules to help produce better error messages. I personally have never met that someone.

<comment><USER4> I'm not that into c++ but I thought better error messages was one of the main if not the main point of concepts.

Basically the problem with templates is that there is no check for whether a thing can be satisfy a function/operation till it's fully expanded and it's hard to figure out where the "error" occurred during the template expansion. I thought concepts were meant to be like type classes (and type class limits to generics) in other languages so that the template writer could say that a template parameter has to implement x,y,and z and if the type passed in doesn't put the error at that expansion.

An optional constraint on a feature(templates) otherwise too powerful for good error messages.

<comment><USER3> Well, they didn't stop at concepts as contracts to be checked, instead they let you have a different oveload called depending on what concepts your argument types implement. Hence the problem with having to sift through potential overloads and reasons for rejection.

</comment></comment></comment><comment><USER5> Good. C++ still badly needs to go through a phase of tuning, deprecation and removal before adding much more.

As I have said before, there have been shockingly poor design decisions in some of the oldest and most fundamental standard libraries. Little to no work has been done to introduce replacement APIs (or even replacement classes) that would allow the deprecation of stupid features to begin.

<comment><USER6> It's extremely hard to take something away once you've given it. Once it's out there, someone's using it and not everyone can afford to rewrite/re-test/re- deploy just because you changed how iostreams work.

The C++ std. lib. is one of the worst abominations of over-engineered disasters that I have ever seen in my life - how people even deal with stdout/stdin without tearing their hair out is beyond me. I just go back to printf and friends.

The fact that they had to have no fewer than 6 (or is it 8 now?) string types before they got Unicode right... it's truly a sad state of affairs.

How can anyone look at that and not feel embarrassment to have been part of those design decisions...

<comment><USER7> > It's extremely hard to take something away once you've given it

I would agree, but I look at c# and every time they introduce a new feature the revamp the standard library just fine.. so C++ really has no excuse. C# went from ArrayList -> List<T> -> IEnumerable<T>, and when async/await was introduced they upgraded the methods that used plain old threads before or just introduced new '{name}Async' methods. C++ is so bogged down in legacy at this point that I would never use it given the alternatives of Rust/D.

<comment><USER8> .NET is a closed platform that is controlled by Microsoft. When MS upgrades the API, developers working there rejoice because now they can charge a lot of money to upgrade the same systems. This is completely different from the mindset of people using C++. There is no company controlling the language, and code is written in C++ because of it is well known to be a language that maintains backward compatibility.

</comment></comment></comment></comment><comment><USER7> Google Cached Page here [1] as the link is Down. The summary:

 _the committee failed to achieve consensus that Concepts, as specified in the TS, has attained sufficient implementation and usage experience to be confident in the current design. Basically, the committee did not say "no" to concepts, it said "not yet."_

[1] [http://webcache.googleusercontent.com/search?q=cache:SurLIow...](http://webcache.googleusercontent.com/search?q=cache:SurLIowej1oJ:honermann.net/blog/%3Fp%3D3+&cd=3&hl=en&ct=clnk&gl=uk)

</comment><comment><USER9> It's such a tease to see a headline I'm really interested in, only to wait for the excitement to die down so the guy's web server is accessible again!

That's okay, I can wait -- concepts are something I really want to learn more about and understand how they work, what they do, and every new article helps.

<comment><USER10> [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://honermann.net/blog/2016/03/06/why- concepts-didnt-make-cxx17/)

<comment><USER9> Even this won't load for me. The browser still says it is waiting on the source webserver.

<comment><USER11> Worked for me, but try the text-only version, that usually helps.

</comment></comment></comment></comment><comment><USER12> I desperately, desperately want this feature, but I am glad that the committee is determined to implement it _correctly_. C++ already has a convoluted, complex syntax, it doesn't need to be made any more complicated.

<comment><USER13> A large portion of my dissertation revolved around the original C++0x concepts proposal. There are some amazing things you can do with concepts; I think the most important part of '0x concepts were 'concept_map's. However, I don't think they're anywhere near as important as truly lightweight coroutines, modules, etc. Mostly, they added a great deal of complexity to both the compiler implementation and, more importantly, day-to-day coding. One thing I don't see discussed is that if you don't want concepts without ugly & nonintuitive "holes" (backdoors), they tend to leak _everywhere_ \---especially into code you'd never expect to find them in.

<comment><USER14> Sounds like your dissertation would be interesting to a lot of people on HN. Mind sharing a link?

<comment><USER13>
       http://oaktrust.library.tamu.edu/bitstream/handle/1969.1/ETD-TAMU-2010-05-7823/SMITH-DISSERTATION.pdf?sequence=2&isAllowed=y

As always, if something is correct, it's probably due to the good auspices of my advisor; if something's wrong, I've lost all sense of shame, long since.

<comment><USER15> I've seen the name of Gabriel Dos Reis in the committee member list. I wonder if he gave up "the Pivot" (and Stroustrup too)...

</comment></comment></comment></comment></comment><comment><USER16> Even though I hardly use C++ nowadays, concepts and modules were two features I was looking forward to see in C++17, as a language geek.

However if it wasn't for my goal to write portable native code across mobile OSes or the occasional weekend dive into LLVM, I would hardly touch C++ nowadays.

Waiting until C++20 for them, will mean 4 more years for alternatives to slowly erode C++'s usage where its features aren't really that critical for fulfilling the customer's use case.

On the other hand, people are still writing new Fortran code everyday, so maybe those 4 years won't make a difference to those highly invested into C++.

<comment><USER17> So... I'm not a C++ person. I think what I'm going to say next will sound like someone who speaks English as a second language.

I don't like templates at all, I think it's just an even greater hack than how the preprocessor might be used in C. The only place I have liked macros [essentially] is in Lisp.

Something that bothers me about C++ is when a program might instantiate a template like this: std::vector<int>

I'm sure vectors of ints is quite common. I wish C++ could share that generated object code (not the instantiated template at compile-time). I've heard of `extern template` but I don't think it gets used. Even then I wish you didn't have to tell the compiler to look for external versions of the template instance. I wish the compiler could aggressively look for and link to instances that have the same binary representation - even if they have disparate type information. That kind of analysis would probably be easier if C++ had a defined ABI.

I am not a C++ person, so I am sure I'm wrong more than a few times in this post. I wish C++ had a standard class to represent classes, so then we could construct a very generic object heirarchy like Ruby. I don't just mean support for reflection. I also want partially-defined classes for monkeypatching, but people tend to disagree with that for ethical and performance reasons.

I've been happy to see a lot of languages enable expressiveness/freedom to do whatever the hell you want in the last 10 years - instead of people forcing their mentality of how you should code and think about problems.

</ramble-ramble>

I am happy concepts were not added. The preprocessor &and& templates should die.

<comment><USER18> I'm not sure what purpose your desire would serve, or even if it makes sense. For example, this is a contradiction: "I wish the compiler could aggressively look for and link to instances that have the same binary representation - <USER2> if they have disparate type information."

The generated object code for thing<int> and thing<double> are likely to _not_ be identical, except for where the types are manipulated. Because thing<int> and thing<double> generate entirely different classes, they can actually be radically different. First, C++'s resolution rules allow them to be actually different C++ code. But even if it reuses the C++ code, because that code then goes through the optimization phases, what comes out the other side may not have the kind of trivial relationship you're thinking of.

I don't think this is unique to C++; it should be true of any language that has non-type erased generics that generates native code. I'm thinking of Haskell, OCaml and Rust - but if people who know those languages and compiler chain better think I'm wrong, please speak up.

Personally, I find C++'s templates to be extremely useful and powerful. I also think they are demonstrably not as nearly as hackish as the C preprocessor, as evidenced by the fact that they actually have knowledge of types. The C preprocessor is just textual substitution, while C++'s templates are far, far from that.

<comment><USER17> I mean to say, the compiler might see std::vector<a> and std::vector<b> as strictly separate types, but at their base/binary might be code that is identical (effectively std::vector<int>). I am imagining that the compiler would generate code for both, and not see the opportunity to deduplicate identical object code. Again, I suspect I am naive here.

<comment><USER18> I think you're saying that a and b are actually typedefs to the same type. Yes, in that case I believe C++ compilers are smart enough to share code.

<comment><USER17> That is not what I'm saying.

Example: You can have 2 struct types that each only contain an int with the same member name. They would [likely] have the same binary representation. You could then create 2 vector types specialized for each struct type. The code for both vectors would handle the data in the same way - but the compiler would view the vector types as _STRICTLY_ separate types.

I do not think this code would be uniquely shared - the compiler would generate code for both vector types.

<comment><USER18> Now I get what you're saying. I think it's possible for a C++ compiler to be smart about this. But why is this such a big deal to you? Have you seen it become an issue in projects you've worked on?

<comment><USER17> Full disclosure: I have not had a problem with this.

It's just a theory I have that this is low-hanging fruit to reduce C++ binary size.

You're less likely to define the same structure and methods of a type in exactly the same way as someone else in C because we don't have the STL (ofc). So it's probably a worse issue in C having a hundred different implementations of a linked list or some array type across your system in each program.

I just think there's an opportunity to aggressively dedupe object code for "representation-identical" types in C++.

<comment><USER18> We've had optimizing C++ compilers for a long time - decades. I think it's safe to assume that the low-hanging fruit was picked a long time ago.

<comment><USER17> Forgive me here if I'm being argumentative, but I think we're both speculating.

Someone further up the chain mentioned this sort of deduplication might be done by the linker, but the code for the duplicated type would still exist in the binary before linking.. An old but probably negligible complaint about C++ is that it creates larger binaries than if one were writing C. I think this is something overlooked because C++ has a focus on type strictness - perhaps the linker has a better way of seeing through abstractions..

I've identified where I think a problem lies.. now I just have to find proof it :3

Unrelated: I wonder if identical libraries that exist in separate filesystem trees (like in Docker) are deduped in memory, or if it's done by inode.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> At this point, I don't really care any more about having concepts for better error messages. I can usually figure out what the compiler is telling me after skimming through the first 7 pages of template errors ;).

The reason I really want some sort of concept support is because the jumps you have to go through to define a generic function that, for example, takes only a range of some specific Ts are getting ridiculous. Especially if you have multiple overloads.

Also, some of the syntactic sugar of the proposal is nice (implicit templates, concept names instead of auto).

</comment><comment><USER20> I want C++ to have a built in SMT solver expressive enough that it can do concepts and a whole lot more. Maybe a new keyword constrain?

<comment><USER21> Surely you could just write the SMT solver in templates, right? ;)

</comment></comment><comment><USER22> Is there a Rust equivalent for Concepts?

<comment><USER23> Trait bounds, in my understanding.</comment></comment>


Stallman Quits MIT - <AUTHOR> https://www.npr.org/2019/09/17/761718975/free-software-pioneer-quits-mit-over-his-comments-on-epstein-sex-trafficking-cas <comment><USER2> "quits" vs. "asked to resign" \- these two carry very different interpretations.</comment>


Researcher calls the human brain freakishly efficient as a computer - <AUTHOR> http://www.chron.com/disp/story.mpl/health/4282040.html

<comment><USER2> Here's the freakishly quote: _"...Garry Kasparov's brain is freakishly efficient, it's running on about 23 watts while Deep Blue doesn't know how to use energy that efficiently. So, one of the problems that biological computers have solved is how to take in energy and turn it almost into, magically, freakishly efficient computation."_

The analogy should work both ways, though. I'm pretty sure Kasparov couldn't add 100 billion numbers together inside of a second, either. Nor is there any amortization of the cost of his currently 23-watt brain; how about the energy expended during years of development of his brain, whereas the computer could be produced with relatively low energy cost?

It should be of no surprise that humans are efficient at calculating things of survival importance, like emotion, decisions, etc. Over the span of billions of years, across tens of millions of square kilometers, under an algorithm where failure means permanent termination, our brains have evolved out of necessity to be that efficient. To me, it is far more freakish how efficient computers are at doing what they do. In under a second, _billions_ of computations can occur in my several year old machine, all in some exact order, and without error. With that in mind, it's even more freakish that it often takes so much time to open Firefox.

<comment><USER3> The time it takes to open Firefox is dominated not by computation but by waiting for the correct chunks of data to rotate past your hard disk's read head. Even with an SSD I/O bandwidth and latency are probably still the bottlenecks. Even assuming disk I/O took zero time, it's likely that loading Firefox would still dominated by waiting, this time for cache misses.

</comment></comment><comment><USER4> IMO, title should have been "Researcher calls the human brain, described as a computer, freakishly efficient". The original title makes it look like the author meant the brain is as much efficient as a computer.</comment>


Harvard Business Review: Why Spotify will kill iTunes - <AUTHOR> http://s.hbr.org/q1oTwa

<comment><USER2> Spotify won't kill iTunes because like it or not, having music locally and accessing it through a superb user interface is just irreplaceable.</comment>


Ask HN: For Slack, do you use the web or macOS app? - <AUTHOR> Thinking of building a slack bot but it could also be a chrome extension to be used in other chat tools. Wondering if a bot makes more sense. <comment><USER2> I use Franz: [http://meetfranz.com/](http://meetfranz.com/), which in turn uses the webapp.

</comment><comment><USER3> Mac OS X app, because i get a dedicated task switch icon.</comment>


Ask HN: What shared spreadsheet or doc at your company should be a product? - <AUTHOR> <comment><USER2> Probably the shift planner.

We have people working on shift rotation for 24/7 coverage.

Given that we're always tight on people, it's always a mess to re-arrange things.

I've looked into this and the so-called "nurse scheduling problem" is not trivial at all.

Then if you also take into account preference of the shift workers in terms of other shift workers, some absences here there (PTO and/or sick leave), various arbitrary non-technical constraints (we have a couple of "peculiar" human cases)... It gets messy.

Quite hard to automate, but feasible by hand.</comment>


RedMonk Programming Language Rankings: January 2017 - <AUTHOR> https://redmonk.com/sogrady/2017/03/17/language-rankings-1-17/ <comment><USER2> The data looks reliable. Especially that it mostly overlap with other similar stats like this one:

# Language | Popularity | Avg. Salary global

\</comment><comment></comment><comment>----+</comment><comment></comment><comment>+</comment><comment></comment><comment>

1\. Javascript | 30.13% | $60,186

2\. Java | 27.5% | $61,741

3\. Python | 15.58% | $66,353

4\. C# | 12.8% | $66,470

5\. SQL | 10.97% | $54,139

6\. C++ | 9.95% | $69,092

7\. Php | 8.74% | $53,420

8\. Node.js | 8.45% | $64,818

9\. C | 6.28% | $67,720

10.Ruby | 5.08% | $68,478

More stats and details [https://jobsquery.it/stats/language/group](https://jobsquery.it/stats/language/group)

<comment><USER3> Why is node.js in a separate category of its own? It's not a language, it's a framework written in Javascript. If anything, shouldn't it have its number added to the Javascript category?

</comment></comment><comment><USER4> Key things I noticed:

Rust jumped from #47 to #26

Swift jumped from #24 to #16

There is word 'embiggen' before that I knew only 'enlarge'.

<comment><USER5> "A noble spirit embiggens the smallest man." (Springfield town motto)

</comment></comment><comment> m-j-fox Interesting that Emacs Lisp is way below the line and VimL is way, way, way below the line.

Is it really that people don't have questions, or maybe they have better forums for accessing help -- from emacs.stackexchange.com to emacsWiki to IRC.

Not sure if its a sign of a highly usable language, great community outside stackoverflow or frustration with lack of response from stackoverflow.

<comment><USER6> Because people use those languages for configuration, and Github is hugely popular for storing dotfiles. Configs are forked, tweaked, and reuploaded a lot more than "actual" programs, because popular starter packs and so on get huge followings, and there is a much smaller barrier to getting started playing around with them. Meanwhile, they're not really _that_ complex, and most have other sources of question resolution (inbuilt docs, online communities often inside GH issues), so not much need to go to S/O.

<comment> m-j-fox I want to agree, but look where shell and perl are.

</comment></comment></comment><comment><USER7> What insight do people derive from these rankings?

What can such a "language ranking" be used for?

Why is XML listed as a programming language?

<comment><USER8> People: What to study, what to choose for personal projects, what to put on your resume.

Companies: What languages to standardize on

<comment><USER9> I would be wary of basing those choices on these data. If I just learned about the concept of programming languages for the first time, I might refer to this for a vague understanding of which languages are popular--I might not opt to learn Coq over JavaScript, but it's not obvious from these data that picking JavaScript will be of greater benefit to my career, interests, or organization than Scala. This seems like one metric to consider, and not even a very good one. In particular, popularity on StackOverflow should probably count against a language, but these rankings consider it a virtue.

<comment><USER7> SO popularity is neither clearly positive, neither clearly negative.

Why not positive: because if there are lots of questions about something, it must be very hard, with lots of gotchas, unclear points.

Why not negative: because if there are lots of questions about something, it must be very popular, so many newcomers have their trivial questions, which do not necessarily indicate problems about the language.

<comment><USER9> Right, the SO value is approximately the product of popularity and difficulty; the GH value is approximately popularity, so if you difficulty is approximately SO/GH.

<comment><USER7> If this would be true, then "XML" and ASP would be the hardest languages. Also this would suggest that TeX for example is simpler to use than Python or Ruby.

I do not think this stands.

<comment><USER9> Hence, "approximation". In particular, XML isn't a programming language, so questions about it are more likely to pertain to writing parsers and the like. TeX users may well have other sources for answering their questions. The approximation is very rough, but there is clearly a signal in the noise.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Thank you. This is going to help settle a debate here in the office about whether to standardize on Ruby or Python. (The correct answer being Python, of course.) /s

</comment><comment><USER10> Comforting to see Scala up in there. Makes me feel better about the time I've been pouring in.

<comment><USER11> no idea why you are being downvoted for expressing a valid opinion

<comment><USER12> Probably downvoted by someone who has to use sbt daily?

</comment></comment></comment><comment><USER13> Interesting how 'Arduino' and 'Bitbake' are considered programming languages in this list.

</comment><comment><USER14> How in the world is "—me Maker Language" in the top 30 by SO rank? I assume Game Maker Language? But [http://stackoverflow.com/tags/gml/info](http://stackoverflow.com/tags/gml/info) only has 190 tags...

</comment><comment><USER15> Its a well known fact that languages are not detected correctly on GitHub (linguist). One example is Perl.

So I would say this data is not 100% reliable, perhaps even very unreliable for some languages.

</comment><comment><USER16> Has anybody managed to customize powershell for interactive usability?

I'd love to switch from zsh to posh.

<comment><USER17> What do you mean with _interactive usability_ exactly? I use PS daily and though I'm still learning I haven't got mcuh complaints so far, on the contrary, object pipeline vs text pipeline is a win imo for what I use it for. Depending on what version you use, make sure you run it in ConEmu (better terminal), have PSReadLine (readline, visual tab completion, ...) and Jump- Location (like z). VSCode integration is good (debugging etc just works), Visual Studio integration as well probably but haven't tried that, yet.</comment></comment>


The regulatory future of algorithms - <AUTHOR> http://blogs.lse.ac.uk/mediapolicyproject/2017/08/15/the-regulatory-future-of-algorithms/ <comment><USER2> This is very sad to see. Humans are a thousand times worse than algorithms. Look at judges that give much harsher sentences just before lunch when they are hungry. Or how attractive people are much more likely to get a lesser sentence or do well in a job interview. Human experts are _usual_ significantly worse than even simple linear regression at making predictions about things. Ban humans, not algorithms.</comment>


We've found 4000 exoplanets but almost zero are right for life - <AUTHOR> https://www.newscientist.com/article/2197406-weve-found-4000-exoplanets-but-almost-zero-are-right-for-life/ <comment><USER2> This is great news, according to Nick Bostrom: [https://www.youtube.com/watch?v=UjtOGPJ0URM](https://www.youtube.com/watch?v=UjtOGPJ0URM)</comment>


Boolean short circuiting is not guaranteed in SQL - <AUTHOR> http://morningcoffee.io/boolean-short-circuiting-is-not-guaranteed-in-sql.html <comment><USER2> It's much better to think of SQL like math, as in sets and commutative operations than as a procedural language. And always use EXPLAIN to spot check performance assumptions, realizing that even then that can vary with data or usage.

I usually find the opposite surprising, when I write an expression and the query planner _hasn 't_ re-arranged what I wrote into whatever it thought was best based on available indexes and gathered statistics.

</comment><comment><USER3> Indeed, SQL is a declarative language. It'd be quite shocking if short circuiting were happening.</comment>


I am looking for a Hacker. - <AUTHOR>

I am starting a new start up and the domain is YouYap.com. I post it here and people break into it. So I am looking to find someone to joint me in this project. How do I find the best hacker? I want to do something like this website. <comment><USER2> I've written this before in response to some of your earlier questions, but I really think you will get better quality answers to your questions if you explain a little more clearly what it is you are asking.

I looked at the YouYap.com web site when it was up, but I haven't been able to really figure out what your idea is. You say it is "something like this website", but how does it intend on differentiating itself?

If you have a cool enough concept, you shouldn't have too much trouble finding a hacker who wants to help you bring your vision into reality.

But first, you need to express the vision clearly enough that somebody somewhere sees the "wow".

</comment><comment><USER3> I'm not sure if you've read any of the content on this site, but it's not really a "hacker" site of the meaning you're implying. Hacker News is more like a digg.com for people with more than a handful of neurons.

</comment><comment><AUTHOR> it going to be combination on hacker news geared towards local users. So it will be whats going on locally. The site is just alpha now until it finished. Now I am outsourcing the project to oversea guys but I dont think there are as good as USA hackers. I prefer people here but I cannot afford it. So if someone want to be part of it as volunteer. I want to run it as non profit whereby people can donate only if they wish.

Just someone to help program little things here and there and support the site.

I change the logo too. Hope this one is nicer.

</comment><comment><USER4> It really depends what you are looking for. You really need to clarify what you want.

<comment><AUTHOR> i want to do something like this hacker site.

</comment></comment><comment><USER4> The site is down.</comment>


Zed Shaw on Modern Literate Programming - <AUTHOR> http://www.zedshaw.com/blog/2008-04-26.html

<comment><USER3> He seems to have a habit of always telling us how long it took him to do something, as though the amount of time it took makes it more or less impressive...

I remember people doing this when I was 13 and hung out in graphic design forums - "This took me about 35 minutes...what do you think?" - it wasn't cool then, either.

</comment><comment><USER4> the only thing "fucking awesome" about zed is that he reminds me of maddox. what a poseur.

</comment><comment><USER5> 1) Read intro about how fucking awesome some document is.

2) Find link to the document; click link.

3) Error detected -- surely this loathesome-looking PDF isn't the fucking awesome document in question!

4) Hit back, re-parse intro looking for link to _real_ document.

</comment><comment><USER6> I'm not sure why he thinks literate programming source code is hard to parse. I would just implement it like this; normal text is normal text, program text is indented two spaces. Example:

This is a super-fun algorithm. It is a function of super-fun-arguments, a list.

      (defun super-fun-algorithm (&rest super-fun-arguments)

We start by parsing the super-fun-arguments into lists of foobars. See page 1234 for the parse-into-foobars utility function.

        (let ((foobars (parse-into-foobars super-fun-arguments)))

OK, I'm bored now. But this is only tedious because I'm writing about irrelevant details (we all know what _defun_ does, after all).

</comment><comment><USER7> Does anyone know how hard it is to write a code highlighting mode for vim where it uses normally uses latex highlighting, and then switches to C or Python or whatever programming highlighting inside special delimiters, like "\code{}"? Then I can just write a perl script to mimic tangle and weave, creating code-only and latex-only text files.

</comment><comment><USER8> If more than a few people with print design experience would say that the leading in his PDF is good, I'll eat my hat. Admittedly, the document is good; the leading is poor.

</comment><comment><USER9> Don't get suckered in by the comments - they can be terribly misleading. Debug only the code.

Dave Storer

Cedar Rapids, Iowa

<comment><USER10> Ahh, but if the code doesn't work, you can read the comments to figure out what it was _supposed_ to do, and then fix it.

<comment><USER11> 'If the comments and code disagree, then they are both probably wrong!' - <USER2> think that's from Code Complete by Steve McConnell, I'll check tomorrow. BTW, does anyone here rate Code Complete? I heard great things about it, but by the time I got round to reading it I found most of it was either out-of-date, blindingly obvious, or stuff I'd already been taught or worked out for myself.

</comment></comment></comment><comment><USER12> bottom line :

\- tex / latex rocks

\- lp not so much

<comment><USER13> Frankly, I wouldn't want to argue with Knuth on very many things. While I don't get literate programming, I suspect he understands something that the rest of us don't (yet).

And, I share his suspicion of most XP techniques.

<comment><USER6> > I share his suspicion of most XP techniques.

Well, he is suspicious because he assumes people using XP are programmers. That's not correct.

The idea behind XP is to get somewhat usable code out of non-programmers. Why companies don't just fire people that can't program, I'll never know... but XP does seem to work. Instead of getting unmaintainable, untested, half-working garbage, you get unmaintainable, tested, two-thirds working garbage.

Oh yeah, now I remember why these programmers exist. Companies seem to value quantity over quality of programmers. That way people can be sick or go on vacation and you'll still get your two-thirds-working code. BRILLANT!

<comment><USER13> I'm not sure I buy this logic either. Programming is right in the name, and some proponents of XP are good programmers. And, I really don't see how horrible programmers would be made better by poor techniques (which I believe some aspects of XP are).

<comment><USER6> XP makes programming less like a creative art and more like checking off items on a to do list. You can't teach art, but you can sort of get people to do stuff on a list. Hence XP.</comment></comment></comment></comment></comment>


Fulfill: Safer, more cosmopolitan string interpolation - <AUTHOR> https://github.com/douglascrockford/fulfill <comment><USER2> This is a tiny bit of code, that offers a lot of functionality, including claims of safety. It does not have a single automated test to prove anything. =(

Sure, douglas is an amazing engineer, but how about teaching kids these days about the importance of testing?

<comment><USER3> Also no demo of typical localisation gotchas like different suffixes for different numbers in different languages.

</comment></comment><comment><USER4> More cosmopolitan?

<comment><USER5> _"a safer and more internationalizationable alternative to template string interprepolation. […] It is more internationalizationable because the string can come from a source other than a string literal in the same file. For example, the string could come from a JSON bundle translation service."_</comment></comment>


Tinted Glass Spectacles c. 1830 - <AUTHOR> http://twonerdyhistorygirls.blogspot.com/2011/12/tinted-glass-spectacles-c-1830.html

<comment><USER2> This is a really interesting blog. Follow the links to past articles :)</comment>


Show HN: Bt – 0-hassle BitTorrent for Java 8 - <AUTHOR> https://github.com/atomashpolskiy/bt <comment><USER2> Just the other day, I was looking for a BT-implementing library in Java. This one uses modern Java 8 idioms and seems great for integration/embedded use. So far, so good.

Hopefully BEP-5 (DHT) and BEP-19 (url_list seeds) support arrives soon, to reflect how torrents are often used in the wild, but also to enable interesting uses of the DHT, like the ones discussed here [1]

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

<comment><AUTHOR> Thanks! DHT support is number one priority right now, and I was also very excited when I saw that post yesterday. Still need to check out the BEP-19.

By the way, do you know any decent DHT implementations that can be embedded into this with minimum trouble?

<comment><USER2> BEP-19 is one of the two ways of doing "webseeds", the other one is BEP-17.

BEP-19 has pretty much won out because you can use it with an unmodified HTTP server, while BEP-17 was an intricate scheme that required a custom server- side implementation, so you couldn't just point it at an arbitrary URL.

For DHT, I know about [https://github.com/the8472/mldht](https://github.com/the8472/mldht), and also [https://github.com/JoshuaKissoon/Kademlia](https://github.com/JoshuaKissoon/Kademlia)

But I haven't looked into either of them in detail, tbh.</comment></comment></comment>


Greenwald, Snowden, Assange, and Kim.Com in NZ (reopened) - <AUTHOR> http://www.youtube.com/watch?v=A6ZbGi-J6Rk

<comment><AUTHOR> The original submission has disappeared: [https://news.ycombinator.com/item?id=8317617](https://news.ycombinator.com/item?id=8317617) Maybe because it's not LIVE anymore. Also now on youtube, without kim.com ads/nonsense.</comment>