Show HN: Use-sound, a React hook for sound effects on the web - <AUTHOR> https://joshwcomeau.com/react/announcing-use-sound-react-hook/ <comment><USER2> I've been following your site for a few weeks, and I just love it. The design, the writing, the interactive examples, the little sounds... it's all so thoughtful!

I'm thinking of switching to Gatsby so I can have more fun with these kinds of things. I write electronic music in my spare time, so adding a few sound effects sounds like an ideal afternoon! :)

<comment><USER3> Why is switching to Gatsby a requirement to have fun with these types of things?

<comment><USER2> Oh, it's definitely not a requirement. But having MDX support, CSS modules, and React's componentization would make the development experience a lot nicer.

</comment></comment></comment><comment><USER4> This is cool but, oh boy, a mute button that makes a sound when you click it is user hostile.

<comment><USER5> I run all tabs muted by default - I find sound effects on the web to be rather frustrating. Especially combined with autoplay.

<comment><USER6> FF disables autoplay by default

</comment></comment></comment><comment><USER7> This is really cool & you have a great website! The one thing I don't quite understand is why this needs to be a React hook per se - couldn't it just be a normal library function that you call inside your component?

<comment><USER8> If you want to be able to keep a handle on a playing sound so that you can stop it or do other things, you've got state. So this is like an audio version of useState.

</comment></comment><comment><USER9> I am very glad this post starts by acknowledging that sound on the web is frequently annoying.

<comment><USER8> Yeah! And I love that we can explore every nook and cranny without a lot of "oh wow why would you ever want this?!" Stuff like this is super useful for the countless non-standard web tech usages, such as making a card game in react.

</comment></comment><comment><USER10> Not to nitpick, but I'm wondering about the tradeoffs of adjusting volume/playback rate in an effect ([https://github.com/joshwcomeau/use- sound/blob/master/src/ind...](https://github.com/joshwcomeau/use- sound/blob/master/src/index.ts#L75)). I'm kind of wondering how this works in a concurrent mode world when there are other, higher priority things React is deferring reconciliation/effects for.

<comment><USER11> You have control over the priority of things in concurrent mode. So long as your component doesn't suspend and it's not in a transition then it'll update as soon as possible (basically what happens in React now). [https://reactjs.org/docs/concurrent-mode- patterns.html#split...](https://reactjs.org/docs/concurrent-mode- patterns.html#splitting-high-and-low-priority-state)

</comment></comment><comment><USER12> Really cool. Also, the showcase website is made really well, kudos.

</comment><comment><USER13> I was hoping to see the source for the lib, but I can't find it in the npm package listing. Anyone manage to track it down?

<comment><USER14> It's linked in the article: [https://github.com/joshwcomeau/use- sound](https://github.com/joshwcomeau/use-sound)

</comment></comment><comment><USER15> Ok not working on iOS safari for me, but that's not your fault... I had a howler based app that seemed to work 6 months ago and after some update stopped working on iOS (no more sound!). I wonder if anyone knows why.

</comment><comment><USER16> Could some one clarify for me why the consts for the useSound() are declared inside an array?

const [play] = useSound()

<comment><AUTHOR> Other commenters beat me to it, but yeah, it's an ergonomics thing. If you have multiple sounds, you can do:

const [playBell, bellOptions] = useSound();

const [playBoom, boomOptions] = useSound();

It follows the convention of other React hooks, like useState.

</comment></comment><comment><USER17> When all you have is a hammer...

<comment><USER18> what?

<comment><USER15> When all you have is a hammer everything looks like a hook.

</comment></comment></comment><comment><USER19> Is there a way to do all of this with CSS only ?

<comment><USER15> Or emojis?

</comment></comment><comment><USER20> I wish I could think of a leveled way to speak my mind but gosh, there's something about all this that really makes me want to throw up.

The idea of adding a tiny little button that makes a sound is innocent. It's a single button after all, isn't it? The thing is, once you share this idea, it has a risk of going to all of the pages. Websites everywhere are already full of distractors that make them annoying to browse for people with limited attention. Once you also add sounds, you might hit several problems you might have not thought of:

1\. the tab is opened in the background and the user is trying to find the one that's using the speaker, 2\. the volume is mismanaged because some other tab is playing their sounds too silently and yours will make the user's ears explode, 3\. (probably some more that I hadn't thought of)

At first it just felt like a chunch, but then I saw another IMHO not-so-great idea coming from the user - the sticky navbar at the top is partially transparent, effectively taking even more screen estate. Probably looks shiny, but also makes your website hard to read. It really does feel like some hostile design.

It really looks like we're back to 90s', with a new generation of equivalents of <marquee> tags, annoying GIFs, mismatched colors and "still in development" signs. Thing is, this generation is sugar-coated and seems shiny at first, until you realize that every single web 4.0 page is making you nauseated. After all, it's legitimate to put on a GDPR consent overlay covering 90% of your smartphone and do other shitty moves other people do anyway, right? Though I have to admit I appreciate that this at least this one wasn't to be found on your website.

I mean, excuse the rant... as much as I appreciate open sourcing your work and hoping to improve something on the net, consider effects on users' sanity this change will bring. In the meantime, I wish I could anti-star your project, as an example of where I don't want the web to go.

<comment><USER21> It appears to me that you are very strongly projecting your fears based on past experience into the future.

This can already be managed at the browser layer (we didn't use to have a mute control on the tab before), and those controls will likely be tightened in the unlikely case that this still gets out of hand.

As mentioned by OP, please don't throw the baby out with the bathwater. Web experiences aren't designed like they were in the wild west of the nineties anymore. This is for very specific kinds of experiences - as you know, the web is an app platform nowadays, so certain experiences can clearly benefit from this without ruining anyone's day.

I actually agree with you about the sticky navbar - though also with caveats.

The core point of _all_ UX design is context. In some situations you have the real estate to play with and the sticky navbar can actually support more fluid navigation.

When there is less screen real estate, you should be responsible and detect it. Not everyone will. That's okay, they will pay the price every bad design pays in the market - loss of customers.</comment></comment>


Show HN: Automated thoughtfulness - forget about forgetting - <AUTHOR> http://www.thotfully.com

<comment><USER2> I can do the reminders part with my Google calendar. I can specify when to remind me (say 1 week before and 1 day before) and how (email, sms).

</comment><comment><USER3> For me it screams too much it's monetizing service.

Btw, WTF the Logo [1] !?

[1] [http://fontawesome.io/icon/check- square/](http://fontawesome.io/icon/check-square/)

</comment><comment><USER4> Might be a good idea to have a security section in the presentation, considering the sensitive info. Other than that, it's very nicely focused and consistent, makes it easy to remember (!).

<comment><AUTHOR> thank you! and good call -- i def will add that in.

</comment></comment><comment><USER5> You could have an option to import birthdays from Facebook. Obviously not everyone - only those that really matter to you.

<comment><AUTHOR> that's up there on my list (and a nice excuse to figure out to how to rank friends by closeness) -- thanks for the nudge!

</comment></comment><comment><USER6> something like this is very far from thoughtful. it's the thought that counts, and if the right is handled by a machine, it doesn't count. gifts are not just periodically spending money on someone, they're showing that you care about them and letting a machine do everything hardly shows that

<comment><AUTHOR> thanks for the feedback, adrusi. i hear your point about the gift feature. re: showing that you care, i hope the text reminders will help people remember to send their good wishes and prioritize special occasions that sneak up!

</comment></comment><comment><USER7> very cool, have often longed for something like this.

facebook fulfills this function now and doesn't work for me as i abhor going on there lately. would love to make a change!

</comment><comment><USER8> really cool!</comment>


Ask HN: Are we getting screwed? (No options) - <AUTHOR>

I work at a 100 man start-up.
Investors own 60% of the company.
Founders and Senior Execs own 30%.
8% is spent option pool on current employees. 2% unallocated.
They stopped issuing options to new employees over a year ago and will do so only "on merit".
With investor ownership so high, I just don't think there is any chance of increasing the option pool.
Salaries are average.  We can see the value we are creating, but we are getting no upside for the hard work and long hours.
Is this typical in most start-ups that grow beyond a few dozen employees? <comment><USER2> Not typical - most start-ups continue to give out options no matter how many employees they have. However, options at a hundred-person company are generally petite. You shouldn't think of it as 'missing out on a chance to get rich' or even 'missing out on a chance to make significant money', because it probably isn't.

That said, if your company's mature enough to employ a hundred people and you're working hard and putting in long hours, you're very likely getting screwed on your salary.</comment>


BMW Launches Its Answer to Tesla's Supercharger Network - <AUTHOR> http://www.wired.com/2014/08/bmw-i3-charger-network/ <comment><USER2> The standards war for car charging is going to be a big mess:

there is the standard which i3 is using [http://en.wikipedia.org/wiki/SAE_J1772](http://en.wikipedia.org/wiki/SAE_J1772) that in itself has (incompatible?) AC (2 levels) and DC (3 levels) variants

then there is this with a completely different plug [http://en.wikipedia.org/wiki/CHAdeMO](http://en.wikipedia.org/wiki/CHAdeMO)

and another standard [http://en.wikipedia.org/wiki/VDE-AR-E_2623-2-2#VDE-AR- E_2623...](http://en.wikipedia.org/wiki/VDE-AR-E_2623-2-2#VDE-AR-E_2623-2-2)

China will use yet another one [http://www.longtailpipe.com/2014/02/chinas- electric-car-fast...](http://www.longtailpipe.com/2014/02/chinas-electric-car- fast-charging-gbt.html)

Oh and then there's Tesla's supercharger network

<comment><USER3> Even when everyone's compatible, will you be able to charge on another company's charger? Or will it be like the ATM issues of the past? "You can only withdraw money from your own bank's ATMs"...

<comment><USER4> Maybe they'll add premiums for non-partnered manufacturers, or secretly charge them much more slowly, sort of like the Comcast and Verizon of the roads.

<comment><USER5> Wouldn't charging more slowly risk creating a line behind the charger, causing issues for drivers of the manufacturer's cars waiting in line?

</comment></comment></comment></comment><comment><USER6> Does anybody have an account of how unleaded/diesel fuel cars came to have a standard nozzle for filling up? It might give us an insight into how this particular standards battle will go down.

<comment><USER7> In the early 70's cars were being built with catalytic converters, which necessitated the use of unleaded gasoline because leaded gas would coat the catalytic material in the converter and ruin it.

Cars designed to use unleaded gas would have a fuel filler with a smaller hole in it, and unleaded pumps would have a nozzle that fit in the hole, while leaded and diesel nozzles wouldn't.

<comment><USER8> Was it catalytic converters or government pressure due to health concerns that forced the move? Certainly in the UK, cats came later.

</comment></comment></comment><comment><USER9> I do appreciate the fact they do not intend to limit which cars can use the chargers, that is a great first step in adoption.

Their choice of providing for on board range extenders is a probably a good bet as well. Myself, I could do fine with an i3 because when I need to take those few really long trips each year I won't have to adjust my route to do so.

</comment><comment><USER10> Of course these charge points should be created by the same people that run car parks. Its an additional profit opportunity and a customer draw.

If I owned a EV I would be parking in a car park that was 50% more per hour if I could also charge up. Or they just factor the cost of parking into the electricity cost.

<comment><USER8> Currently, the EV charging points in my area are all free to use, subject to a £10 annual registration fee. Having taken delivery of a PHEV last month, I'm very happy :)

The biggest problem is that many of the charging spots in car parks are often taken by non-electric cars.

</comment></comment><comment><USER11> > _The 24 kilowatt BMW i DC Fast Charger, developed with Bosch Automotive, can > charge the i3's battery up to 80 percent in 30 minutes._

It's more like 'up to 60%'. i3's battery is 18.8 kWh.

And Superchangers are 120kW. So they are just joking about that "the answer to Tesla's Supercharger Network" part I guess.

<comment><USER12> They talked about how small and light their charger is. If I were an owner, I'd care less about that and more about getting more charge in less time.

<comment><USER13> It is probably meant for European cities where there is no endless supply of parking lots to install if hardware.

</comment></comment></comment><comment><USER14> I guess they decided against doing a deal to license Tesla tech then: [http://insideevs.com/behind-scenes-teslas-secret-meeting- bmw...](http://insideevs.com/behind-scenes-teslas-secret-meeting-bmw/)

</comment><comment><USER15> I'm fine with this. Happy even.

There is more than one way to build our charging infrastructure and we don't yet know how it's going to work best. Tesla's require a lot of power, BMW's doesn't. Our electric grid can support different amounts of power in different locations. Our driving behaviors haven't yet dictated what's going to work best. Etc etc.

I think the cost of adapting charges to work with multiple models of car is low and the benefits of experimentation at this early stage is high.

</comment><comment><USER16> "... the range-handicapped i3 ..."

I approve of this phrase. We usually see the term "range anxiety" which would indicate some kind of emotional problem with the customer rather than a problem with the product.

</comment><comment><USER17> Maybe Europe will pass a law like they did for cellphone charger plugs and that will help standardize it internationally...

<comment><USER18> Well they standardized but the final connector on Apple hardware is still different.

[http://en.wikipedia.org/wiki/Common_external_power_supply#Re...](http://en.wikipedia.org/wiki/Common_external_power_supply#Reception)

<comment><USER17> I believe that there is only one bad apple among cellphone manufacturers that didn't bring this change to the USA. But I guess that is to be expected with Apple and they might have made millions inconveniencing their customers.

</comment></comment></comment><comment><USER19> I think this is the wrong way to approach this. So every car manufacturer is going to have its own charging network? Do they even realize how expensive that's going to be? Not to mention something their customers will hate. They all need to get together and create a standardized network that is both solar powered and can charge the cars very fast.

<comment><USER5> Did you read the article? BMW _is_ going to permit others to access its network.

<comment> vertex-four Assuming that they license the tech from BMW to use it, and agree that BMW's system is the best system. It's not a consortium approach.

</comment></comment></comment><comment><USER20> Woo! Who doesn't love fragmented standards?!

<comment><USER21> Imagine if you could only fill up your current vehicle at certain gas stations. If EVs don't come to a standard charger they will be severely hindering that market. There are a ton of obstacles why not put one more out there for arbitrary reasons.</comment></comment>


Launch HN: CoinTracker (YC W18) – Cryptocurrency portfolio and tax manager - <AUTHOR> Hi — we're Chandan and Jon, co-founders of CoinTracker (https://www.cointracker.io). CoinTracker is a cryptocurrency portfolio manager that automatically pulls balances and transactions from top exchanges and wallets, and delivers tax information to users.
We built CoinTracker because, as cryptocurrency investors, we were let down by the existing tools for basic performance tracking of our investments. We started by simply creating a spreadsheet that enabled manual entry of transactions, and eventually hacked away with Google Apps scripts to import prices from various exchanges. This quickly got out of hand, so we built our own tool. We casually told a few friends who are into cryptocurrency about it. They found it as useful as we did, and to our surprise started telling their friends about it. We started receiving a steady stream of feature requests, and since then we have been steadily improving CoinTracker.
One of CoinTracker's foundational aspects is that balances and transactions are automatically synced from exchanges and cryptocurrency wallets. Before CoinTracker, we hated the idea of manually entering every transaction into a tool. This approach also enables us to calculate cost basis, ROI, capital gains, and other tax-related information for you. There are technical challenges of ensuring that we correctly handle transfers between your wallets and transitively handle cost basis — something that a lot of other tools struggle to do correctly. We think this direction is enabling us to build the best cryptocurrency portfolio tracker with important services like taxes built on top.
We'd love to get feedback from the HN community on CoinTracker and how we can improve. Thank you! <comment><USER2> 1\. Cryptocurrencies as an asset class has a broad spectrum of "investors" \- tech-savvy millennials, high-net-worth individuals, family offices, financial advisors on behalf of clients, sophisticated hedge funds and a ton of "regular folks" (e.g. moms putting a bit of their savings). Any effort that builds tools to navigate this space is a good direction.

2\. Crypto bubble is unique because institutions are the last ones to get in. Retail was first. Consumer tools are an absolute necessity. Although, I wish these apps (incl CoinTracker) came with more warning (about scams) and helped people exercise more discretion (including a warning about too much exposure etc).

3\. Taxes are a nightmare. Having a great tool to help with taxes helps everyone sleep better

4\. Still in an early, immature, evolving [1] area. CoinTracker can be much more ambitious than their current version. Would love to learn more about the future roadmap.

Congrats on the launch. May the force be with you.

[1] [https://blog.ycombinator.com/the-decentralized-future- series...](https://blog.ycombinator.com/the-decentralized-future-series/)

<comment><AUTHOR> Great points & feedback — thank you!

#1 – agreed #2 – this is fair. We have some ideas on how we can help with these types of warnings appropriately and will work on integrating them #3 – agreed #4 – we are with you! Taxes are just the beginning :)

<comment><USER2> 2 follow-up questions:

On #1 - Have you done any work on which segment needs this the most? (just curious, what "talking to users" revealed).

On #4 - What are the future possibilities of this product (future vision of CoinTracker)? (again, just curious to learn)

Thanks.

<comment><AUTHOR> For #1 — there seems to be a strong need on both the retail side (folks who are day-trading or casually investing on the side) and on the institutional side (e.g. cryptocurrency hedge funds, etc.). So far we have focused on the retail use case

For #4 — there are a lot of possibilities here, and a lot of it will depend on where our users guide us. Some areas that we will start testing with soon though are around roboinvesting, trade aggregation, and auditing. Would really welcome your thoughts and ideas here as well!

<comment><USER2> >Would really welcome your thoughts and ideas here as well!

Will write to firstname.lastname@example.com

</comment></comment></comment></comment></comment><comment><USER3> For those on the opposite side of the privacy and tax spectrum, there is also a portfolio tracker (which I wrote) that is doing the opposite:

A static HTML Website where you save your portfolio via a bookmark.

\- No tracking (no cookies, no emails, no JS* )

\- Fast (~ 2 kB download)

\- Cross-Platform ;-)

[http://www.cryptoport.net](http://www.cryptoport.net)

* There is JS on the landing page to generate the link for your portfolio. The portfolio page itself is free of JS.

<comment><USER4> Nice idea, but you should support HTTPS. People are entering their balances and I for one wouldn't wanna be snooped!

<comment><USER3> I fully agree, will probably happen within the next few weeks.

<comment><USER5> It likely will only take you an hour at most with LetsEncrypt. Why wait that long?

<comment><USER3> It's done!

<comment><USER5> Awesome! I'd also recommend having all HTTP requests redirect to HTTPS, but I know that can be a little tricky if you're not too familiar with configuring your web server, and can be difficult to fix if something goes awry.

<comment><USER3> Haha, I didnt think you'd read it! Anyway, I want to wait a little to see if there are problems and if not, I'm gonna redirect. I use an nginx reverse proxy, everything seems pretty straightforward, so it's more a matter of taking things one step at a time.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> My use case is also tax reporting. Like others I'm getting numbers I suspect to be inaccurate.

I think the flaw may be this: I assume you're calculating cost basis and gains on a broad set of the cryptocurrencies (including Neo, Ripple, etc) that are traded on these exchanges. But when the coins leave the exchange you count it as a sale unless you can see the receiving end of that same transaction in one of the user's wallets. But you only support reading from wallets/blockchain for a subset of the coins (btc, eth, ltc). So you're counting fake gains anytime a user sends any of the non-btc|eth|ltc coins for storage.

Like others have said, you probably don't want to assume that any outbound transaction from an exchange is a sale that should be taxed.

Generally it may be difficult to get people to pay $150 with issues like this popping up.

You could consider some combination of:

-give a bit more info about the tax reporting before requesting payment, enough to convince users it's calculated correctly

\- clearly outline the scenarios where users will get flawed tax info in help docs

\- flag uncertain items for individual clarification by the user in your UI a la Turbotax ("we couldn't find a recipient for your Neo transaction on Aug 20– did you send this to another person or business?")

-offer the first year free to get help from folks ironing out these kinks, but try to establish lock in to get return business next year

<comment><USER7> This is great feedback, and you're totally right about your understanding of the problem. We do rely on having a full picture of all your exchanges and wallets for all the calculations to work correctly. For crypto wallets that we don't support, we recommend for now manually entering the transactions from those wallets. We plan to support more wallets in the near future. We have some more info on this issue in our FAQ: [https://www.cointracker.io/faq#cost- basis-wrong](https://www.cointracker.io/faq#cost-basis-wrong)

We will also make it clearer to the user when we see there are outgoing transactions that may indicate a missing wallet / exchange.

</comment></comment><comment><USER8> I'm a blockchain investor abi at ldgr.capital if you want to talk more. Initial thoughts:

-A solution in your space is badly needed. Fund administrators really need an option that is better than cointracking.info and coinigy. A lot of these folks are looking at partnering with Libra here in the near future. -your offering as is, is too limited. anyone investing seriously in the space owns a lot more than than the 4 coins available in your wallet option. -Most could probably get by with the exchanges you have listed so that's a a good thing

I know you're just getting started, so I'm excited to see how your offering progresses. Good luck, and happy to talk more offline. Would also be interested in investing. Thanks.

<comment><AUTHOR> Thanks for the kind words! We definitely have a long way to go and lots more features need to be added (and will be soon).

Re: wallets — for local wallets we currently support BTC, LTC, ETH, DOGE, and all ERC20 tokens. Additionally, from manual transactions and exchanges, we support over 2,000 coins and tokens. We'd love your feedback as to which additional features and coins you would find most useful to add to our platform.

<comment><USER9> Just of curiosity, why do specifically support and mention DOGE?

<comment><USER10> DOGE is a bitcoin derivative (fork of the software, not of the blockchain) that has a supportive community and is inexpensive for mainnet testing. Those are reasons I wouldn't be surprised to see it in any crypto project.

</comment></comment></comment></comment><comment><USER11> Interesting!. I have also developed a simpler and elegant cryptocurrency portfolio tracker app in last September 2017 with same name CoinTracker and available on Apple AppStore and Google Playstore (a version of the same app, which one of my friend did). You might also like to check it out and give a feedback [CoinTracker]([https://cointracker.cash](https://cointracker.cash)) But, the domain is .cash :-)

<comment><USER12> This is a totally different product. Your app looks very nice but it is similar to hodl, a mobile app where you have to manually input coins one by one.

The cointracker.io people import from exchanges, wallets via APIs and cab file import. Which allows you to track your positions without all the manual labor of inputting them one by one.

They are also selling a tax service for us customers.

Hopefully you guys can work something out about the whole naming thing.

<comment><USER11> Yes. It is slightly different in function, but basically the same main functionality in a different way probably. The name is fine anyway.

</comment></comment></comment><comment><USER13> What are we supposed to do for tax purposes, if we've mined altcoins for years, traded them in exchanges like cryptsy with no records, and now have no idea about where we got our current stash of bitcoins from? Ie, we've now got all this wealth which we can't touch because we don't know how much tax we have to pay / should have paid while trading over the years, and are also afraid of withdrawing to the bank with no proof of where it came from?

<comment><USER14> This is not tax advice - but couldn't you just hold them in one place for a year, convert them to dollars, and report them as long-term capital gains with a cost basis of $0? That might be wrong, but I don't think you could be penalized for _under_estimating your cost basis.

Note: I don't know this for sure, so if someone knows the right answer, would be good to know.

<comment><USER13> Yeah thanks, that's sort of what I'm thinking of doing. I got most of then when bitcoin was $80 - $900, so I don't mind over pay tax. Just don't want my bank accounts frozen, assets seized, and to have to prove I'm not a drug dealer or something.

<comment><USER12> Listen to this podcast that Tyson and Jason (2 tax cpas who do a lot crypto) did:

[https://www.breaker.audio/unchained-big-ideas-from-the- world...](https://www.breaker.audio/unchained-big-ideas-from-the-worlds-of- blockchain-and/e/30531723)

It talks about this scenario. I'd also consider just hiring one of them.

</comment></comment></comment></comment><comment><USER15> This is awesome! We built a version of this and had a similar idea, but props to you guys for figuring this out!! We got stuck on how to handle sends and receives as we would need manual input to understand cost basis.

Something for my specific case:

\- looks like you consider receives as a 1:1 cost basis. I haven't taken a look at how your calculations work for taxes, but in my case, my cost basis is incorrect due to your assumption that it was a market-equilibrium cost.

Also, I recommend you guys consider creating feaux-wallets for payment methods (I.e bank accounts, credit cards etc). That gave me 100% accuracy for my net gain calculation.

Happy to chat if this doesn't make sense or you're curious!! Good luck on the project. Will be monitoring you guys.

</comment><comment><USER16> You should treat transfers from one exchange to another as NOT a taxable event.

Also, you should give users the option to decide whether they want to consider crypto-to-crypto transactions as in-kind (and not a taxable event) for 2017 (US residents).

Finally - ask the user whether they are a US resident or not. A lot changes based on that.

Good job. Ping me if you want more detailed feedback (my HN username @ gmail).

<comment><USER17> "Also, you should give users the option to decide whether they want to consider crypto-to-crypto transactions as in-kind (and not a taxable event) for 2017 (US residents)."

Don't most official statements make it clear that crypto-to-crypto transactions are indeed taxable events in the United States?

</comment></comment><comment><USER18> If you're looking for investment advice, news updates, expert opinion tracking, etc.

(Essentially everything that doesn't touch money directly). I built a platform: [https://projectpiglet.com/](https://projectpiglet.com/)

Speaking of which, if anyone from the CoinTracker team is interested - I never want to touch money, so I don't feel we are competitors. I'd be happy to work with you to provide a "news feed" feature, and a lot of additional analytics (obviously, we'd work something out).

</comment><comment><USER19> Also just signed up with the Lite plan to play around with it. I'm in that scary spot where I have about 1200 transactions in the last year (small value bot trading) where I would gladly pay $150 for the tax report but $1000 dollars is pushing it.

Also I'm sure this is just a function of high traffic from posting, but I am getting a significant amount of application errors for almost all actions taken on the site. Refreshing seems to work sporadically. I'll check back in a day or two.

<comment><USER20> Yeah the pricing is absurd. It should be related to capital gains and not simply the amount of transactions. I have a very large number of transactions (algorithmic trading) with a tiny profit.

At this point just going to write a simple script to generate the 8949 from the exchange myself.

<comment><USER21> Even the pricing for transactions is so much higher than other offerings. Why pay $1k per year when I could have bought a lifetime "guaranteed" unlimited subscription to Cointracking for $1700 a few days ago.

</comment></comment></comment><comment><USER22> Just signed up and added an exchange. It looks like for balances, you are using just the "free" amount instead of "free" and "locked". The result is that any bids are not reflected in the balance on CoinTracker.

I have open orders out almost all the time. I'd recommend either using Free + Locked or at least making it an option.

Looks good though, I will definitely use it if it can keep track of all of my trades and accurately reflect my balance.

<comment><AUTHOR> Great point! We need to add support for trades that are in stop/limit orders. We'll work on adding support for this.

<comment><USER22> Great, thanks!

</comment></comment></comment><comment><USER23> The USA is taxing every trade. In Canada (according to my accountant, at least), cryptocurrency gains are only taxable when "realized" by selling into fiat (capital gains), or spending on goods and services (income). Until that point, they are considered intangible assets and not subject to tax. A USA/non-USA (or taxable trades vs only fiat trades) switch feature would be nice, to account for the different approach to taxation.

<comment> 52-6F-62 > _In Canada (according to my accountant, at least), cryptocurrency gains are > only taxable when "realized"_

I'm not 100% sure about this point. The issue was raised to me before when I was looking into it— crypto-currencies may fall under barter tax law.

[https://www.taxtips.ca/personaltax/barter.htm](https://www.taxtips.ca/personaltax/barter.htm)

[https://www.canada.ca/en/revenue- agency/news/newsroom/fact-s...](https://www.canada.ca/en/revenue- agency/news/newsroom/fact-sheets/fact-sheets-2013/what-you-should-know-about- digital-currency.html)

[https://www.canada.ca/en/financial-consumer- agency/services/...](https://www.canada.ca/en/financial-consumer- agency/services/payment/digital-currency.html)

<comment><USER23> I will trust my accountant; he is after all, on the hook for how it is reported.

Thanks for posting the links! Taxtips.ca is not an official source, and note they use a ton of "may" be this and "might" be that. I will ignore that page, since they clearly do not know and are not the CRA.

The Canada.ca link is consistent with what my accountant said -- when you use crypto to purchase goods or services, it is treated as income (just like bartering), taxable in equivalent CAD value at the time of the transaction. Trading crypto for other crypto is _not_ a goods or service, since crypto is treated as an intangible asset or commodity.

The third link is also consistent with this view:

"Buying and selling digital currency like a commodity

When you file your taxes you must report any gains or losses from selling or buying digital currencies.

Digital currencies are considered a commodity and are subject to the barter rules of the Income Tax Act. Not reporting income from such transactions is illegal."

In order to be considered a "gain" or a "loss", according to my accountant, the commodity must be realized into fiat money. "Selling or buying" means selling into fiat or buying with fiat. "Bartering" means trading for goods or services -- crypto is not considered to be goods or services.

<comment> 52-6F-62 I definitely wouldn't advise you do otherwise.

I just thought I'd pop that information out there because it's not clear to me whether or not the coin-to-coin trade falls under barter like making goods&services purchases does. Really, in case there are other Canadians like me who are doing their own taxes this year and have to include these kinds of items for the first time.

</comment></comment></comment></comment><comment><USER24> Good product, but still can't beat Cointracking in my opinion by number of features, supported APIs and looks less polished. The pricing ($1k? seriously?) is non competitive, either. Cointracking prices are quite ridiculous as well. It's good to see a competition, but overall I feel like the early adopters community so far is being screwed by startups like this. $1k for a glorified excel spreadsheet is a joke

</comment><comment><USER25> I plugged in Coinbase out of curiosity as I do need to figure out some taxes here. I don't understand how these calculations are being done however. Seems to be taking cryptocurrency transfers as "selling" events, even though I was just moving to a non-coinbase account. This basically makes this useless for me to track my capital gains. Am I missing something?

<comment><AUTHOR> You're right — if you move coins to a non-tracked wallet we treat this as if you used those coins to buy something because we really don't know. If you connect the wallet/exchange that the outgoing transfer went to, we will automatically pair them up and the gains will be calculated correctly. Does that make sense?

<comment><USER26> Is there a section within the transaction list that makes this explicit? I'm confused..

I'm seeing "Sent to bitcoin address" for some external transactions to private wallet, but don't see a realized gain.

Just want to be clear: is my final tax amount tainted by not including any external wallets that I've transferred __ALL __of my purchased bitcoin to? I only added coinbase and bittrex.. I need to add my wallets also?

<comment><AUTHOR> Yes, you'll need to add your full crypto trading history (e.g. fiat ---> crypto ---> crypto ---> fiat) across all wallets and exchanges in order to get accurate tax information. We have more information about how and why here:

www.cointracker.io/faq#section-cost-basis www.cointracker.io/faq#section-tax

</comment></comment></comment></comment><comment><USER27> Tax in the US works very different from most other places as far as I know. In my country (NL) you only report how much assets you have at the end of the year (wealth tax) as investing in crypto with a profit is not considered income.

My advice would be to separate the US tax stuff from the rest, so that the rest of the world can also use it.

</comment><comment><USER28> Congrats on getting into YC Chandan!

Love the logic built around pairing transactions to external wallets and tracking the cost basis, how has your experience been working with the various exchange APIs and getting those integrated?

<comment><AUTHOR> Thanks! Lots of variance. Some are really simple and easy to use, and others are a nightmare. At first it was really challenging for us to add each new exchange because there would be unique problems, custom formatting, different syntax, etc. for each one, however things have gotten a little easier at this point once we have done it a few times.

</comment></comment><comment><USER29> Do you support bulk imports from csv or some other format? I currently use cointracking, and would love to try this out, but I have a decent number of transactions stored in Cointracking that I'd like to bring over.

Also, I'm curious how you handle internal transactions for Ethereum contracts. Specifically I have a large number of transactions with Ethereum contracts that I had to write several hundred lines of code to correctly export to csv because none of the existing solutions support this properly.

<comment><AUTHOR> RE: CSV — we don't (yet) support general CSV upload though we are working on this feature and will add it soon

Re: SmartContracts — thanks for bringing this to our attention. Is there a public smart contract that you have done this for that you'd be willing to share so we can figure out how to incorporate these types of transactions?

<comment><USER29> ReRe SmartContracts: Feel free to shoot me an email (in profile) and I can provide more detail, an address with a ton of example transactions and some of the additional nuances I ran across when trying to solve this problem.

I signed up and the site looks really interesting - you are by far the cleanest solution I have seen. Not sure it is the most robust yet, but I'm sure you'll get there. Best of luck!

</comment></comment></comment><comment><USER30> Overall, timely and looks like solid product.

Requests --

* Stellar accounts

* Nano public accounts

Issues --

* Doesn't appear to be importing in all the data from Binance thought it says it is complete.

* It appears your business model is based on getting people to pay for tax reports (smart). That said, your cost basis is about 10% off compared to my records and snapshots of all relevant currencies at the moment of trade. Why is this? I'm sure this would dramatically impact the tax over time.

<comment><AUTHOR> Sorry about that! Drop us a line at email@example.com and we'll figure out what we did wrong here.

<comment><USER31> Just as an FYI - exporting from Binance doesn't always include everything (even though you're hitting export all). There's an obvious bug somewhere in their code that sometimes forgets pairs.

I found this after pulling my hair out for 4 hours a month ago.

</comment></comment></comment><comment><USER32> Why are you hiding the prices page for after sign up AND for after importing everything, and then why the _HELL_ are you hiding the credit card purchases behind a "Getting Started" button?

Possibly illegal in some countries (Germany comes to mind), the only thing "saving" you is that Stripe's purchase dialog says "Pay 29,00$".

</comment><comment><USER12> UX looks amazing guys, great job. Some feedback about the performance page:

1) It would be nice to see some information about what exchanges/wallets my coins are sitting on. i.e I use Binance/Bitterex, I could have purchased XMR on both.

2) I was prompted to import my trade history from Bitterex (I have worked with their API, it sucks so I feel for you having to work with it). I did that but I still get hit with this dialog on the performance page:

"We currently do not have the full deposit, withdrawal or trade history for some of your exchange accounts."

All of my coins are imported.

3) On mobile the Tax page has a bunch of CSS/layout errors on iOS (iPhone 6+). Lots of widgets are outside the margins.

</comment><comment><USER33> I wrote my own tool to basically do the same, but it can't handle certain advanced optimisations. Curious if you support the following:

Can you optimise the cost basis under the constraint of coins being in different wallets at different times? (e.g. I have an expensive tranche of coins that would minimise my tax when matched with a certain sell, but those coins were not in the exchange at the time, hence I can't argue that these were the coins I sold) Further, when moving funds between exchanges, can you pick the tranches so that the cost basis gets optimised from sales on that exchange on later trades?

</comment><comment><USER34> This looks good, I haven't yet selected a service for doing my crypto taxes this year, maybe I'll give it a try.

A couple of questions on top of your FAQ:

       * A list of what exchanges you support would be nice.

       * It's not really clear what sort of tax help you get in the free tier.

       * It would be nice to see pricing info without having to sign up.

Also, it's great that you provide a lightweight tracker with no ads ([https://www.cointracker.io/prices](https://www.cointracker.io/prices)).

<comment><AUTHOR> The list of exchanges we currently support (we will work on making this clearer): Binance, Bitfinex, Bitstamp, Bittrex, Coinbase, Cryptopia, GDAX, Gemini, HitBTC, Kraken, KuCoin, Liqui, Poloniex

Tax free tier & pricing: www.cointracker.io/tax/package

Let me know if anything else is unclear

<comment><USER34> Thanks for the reply. I suggest changing the "paid services" link under the "How do you make money?" to point to /tax/package. Currently it points to /tax which redirects to a sign-in page.

</comment></comment></comment><comment><USER35> I made something similar ( in about a week ) where all data you input is stored locally in your browser via localstorage. There's a websocket connection pushing down real-time market data every second.

[https://localcoinportfolio.com](https://localcoinportfolio.com)

It's free, open source and is about 12kb total. [https://https://github.com/59023g/local-crypto- wallet](https://https://github.com/59023g/local-crypto-wallet)

</comment><comment><USER36> I'd love to see more support for different wallets, It's generally bad practice to keep things on the exchanges as they aren't the most trustworthy bunch.

</comment><comment><USER12> Can you share any information about how people are using your product? I'd be curious to know the following:

1) Are most off your users from the USA or international?

2) What are the most popular exchanges people link with you? i.e is Coinbase number 1?

3) Do you disclose any data about your users to third parties?

4) What's the most surprising thing you have learnt so far building this?

5) Are their any laws around investing advise that you have to be wary of?

<comment><AUTHOR> 1/ Over 50% of our users are international for our free tracking service, though our tax product is US only right now 2/ Coinbase is #1 in terms of exchanges, however local wallets (e.g. ETH wallets) are the largest overall 3/ We do not sell user data to any third parties. We do use some analytics products such as mixpanel, Heap, Google Analytics, etc. but we are not giving user/trade information to any third parties (see our privacy policy at www.cointracker.io/privacy) 4/ Many things, but one that stands out is that most people in the crypto space (even huge funds/companies with hundreds of millions of assets under management) use a spreadsheet to keep track of their crypto (!!) 5/ Yes! We are not (yet) a registered investment advisor and therefore do not provide investment advice (see www.cointracker.io/disclosure for more details)

<comment><USER12> Great answer! This site is a real step function over hodl or any of the other manual trackers I have been using.

How are people buying alt coins? Specifically what is the top Alt exchanges on your platform? I.e is it binance, bitterex or another?

</comment></comment></comment><comment><USER37> I think this is the best tracker I've seen. Congratulations on the launch!

Will the tax manager be the main part of your business or are you planning to monetize on different set of features? Will cryptocurrency tracking always be free?

How do you aggregate the cryptocurrency prices across exchanges? Do you only calculate it based on the exchanges you support?

<comment><USER38> The tracker is awesome, however it's missing the real-time price updates.

Site like Cryptowatch or CryptoPrice ([https://cryptoprice.io/](https://cryptoprice.io/)) are nice for the real- time aggregate price updates across exchanges, however they are missing the portfolio tracking feature.

</comment></comment><comment><USER39> As a long term crypto miner, I hope to enjoy using this. Are you thinking of having an API that will let users add a few hundred wallets at once? That would be rather useful feature for a fair number of us I think. Also, loving the fact that you chose to launch this as a PWA. Congrats on getting things going!

<comment><AUTHOR> Thanks! I'd love to better understand the bulk wallet use case. Do you have them stored in a database or CSV file somewhere?

<comment><USER39> Yes, a MySQL database.

<comment><AUTHOR> Understood; if we offered a CSV upload option for your wallets would that solve the issue or do you need something that dynamically updates and syncs regularly?

<comment><USER39> That would do it. Basically, for anyone with a largish holding, this is a way to manage operational risk. In my particular use case, wallets are numerous, but not constantly changing.

</comment></comment></comment></comment></comment><comment><USER40> Hi Chandan, great to see you put the domain to a good use and making it to YC W18 :). Congrats on the launch.

</comment><comment><USER41> This is truly great! I was trying to do something similar with the Portfolio feature of livecoinwatch.com, but they don't let you enter crypto/crypto trades and are much harder to use. Good luck with the development of it, but as a user, I'm absolutely happy!

</comment><comment><USER42> What I would expect from a tool like this is data encryption using a client side generated private key. I understand this would complicate things like calculations/visualizations, but since you're dealing with pretty sensitive data I think it would be worthwhile.

<comment><USER7> That's a fair point. We are starting off with the centralized model, but in the longer run we are definitely thinking about if we can take a more decentralized approach to this problem too.

</comment></comment><comment><USER43> Great tool!! Good UX and this integrated view across exchanges is what I was looking for. Thanks guys!!

</comment><comment><USER44> Dang, those are some steep prices. I can't say I am surprised in the frothy crypto space. Your closest competitor cointracking.info has a similar structure.

If you are going to offer managed accounts as well then why not offer a free tier for taxes to draw users?

</comment><comment><USER45> How much of the motivation behind this service is to aggregate private crypto market data, and how much of it is to provide a great user experience? Please offer a response to this in a percentage format with supporting justification. Thank you.

<comment><AUTHOR> It's a fair question! It may sound ridiculous, but we are 100% motivated by improving UX in the crypto space, and not interested in building a business around aggregating and selling/trading on private crypto market data. This is core to our mission and built into our policies ([https://www.cointracker.io/security](https://www.cointracker.io/security)) and commitments that we will never sell user data.

In fact both Jon and I have backgrounds working on consumer-facing products at Google, and the huge pain point around UX in the cryptocurrency space is largely what drew us away from Google and into CoinTracker.

If we were interesting in monetizing user trade data, we would either build a cryptocurrency hedge fund or partner with those types of investing institutions. We explicitly haven't done that and are committed to not doing so.

Instead we have taken the route of building user-friendly consumer tools (starting with tax), with the hope that making the space slightly more accessible will help push the whole space forward.

<comment><USER46> How do you plan on monetizing? Even if you're not looking for a profit, how do you plan to offset development and infrastructure costs?

I've setup an account already, and this looks absolutely useful and helpful, but I'm somewhat wary of anything that's free if I don't know how you're planning on keeping the lights on?

<comment><AUTHOR> We have a paid tax service: www.cointracker.io/tax/package

</comment></comment></comment></comment><comment><USER47> Tax form generation isn't working, which sucks. But the UI and everything else is nice. Would be good to view gains by date ranges (Eg. month, prior year, etc.)

Would also be good to login in via method other than Coinbase after the fact.

</comment><comment><USER48> Why should I trust you with my data from Coinbase and or my google account and why?

<comment><AUTHOR> Fair question —

For signup, we have three options: get your email from Google, from Coinbase, or use whatever email you want manually. It's up to you whether to use Google/Coinbase or use your own bogus email. The point here is not to gather data about your accounts, but rather just have a way to communicate with you.

For tracking & tax, the hope is that we are providing you as a user with enough value (in the form of portfolio management and tax information) that it is worthwhile for you to track your exchanges/wallets/cryptocurrency on CoinTracker.

We take measures to protect your security: www.cointracker.io/security

If you don't see value in the service, that is useful feedback for us and we'd love to know

<comment><USER48> So you have a paid service to calculate a persons taxes. This is offered on [https://www.bitcoin.tax](https://www.bitcoin.tax) . They have a free version that someone can submit their taxes on and also they have a paid version. Also, they can refer you to tax professionals (they deal with happy tax). What advantage do you have over this?

<comment><USER12> I just used bitcoin.tax to calculate my 2017 returns, it has a terrible UX and also does not offer a real time portfolio monitoring service. They also have grander ambitions to offer a portfolio investment service.

</comment></comment></comment></comment><comment><USER49> I've been using cointracking.info up until now, but this is just amazing. Great work! Will you be supporting Huobi in the near future? And can you add a "When Lambo" indicator next to each crypto asset?

</comment><comment><USER50> This is exactly what is was trying to build for myself. I saw that no tracker was simple and still full of functions. Except for the tax part. I'm still building my own but you gave me allot of great ideas

</comment><comment><USER51> Looks absolutely amazing. Eagerly awaiting wallet monitoring for more currencies

</comment><comment><USER52> Great idea. Highly automatized work that is very hard to do by hand and provides a concrete service.

I admit I find it interesting that Sam Altman is outspoken against crypto yet YC funds these endeavors.

<comment><USER18> Should always hedge the bets. Just because someone doesn't think somethings a good idea wont keep people from making money.

For instance, I'm still trying to figure out how Docker is better than a full VM. And I personally question cryptocurrencies myself, but I still built a system to track them.

</comment></comment><comment><USER53> How are "air drops" like BCH handled in CoinTracker for tax management purposes, given the IRS has yet to issue any guidance on how they should be taxed?

</comment><comment><USER12> Love the concept. Do you guys have any plans for a mobile app?

Update: Oh I just read through your FAQ and you plan on launching one soon. Any ETA on that?

</comment><comment><USER54> This looks super useful, when are you planning on releasing a mobile app?

Need to be able to obsessively check the price when I'm out and about

</comment><comment><USER55> Cool. How does the read-only access work?

<comment><AUTHOR> For Coinbase we request the Read Permission from Coinbase Connect (OAuth2 flow). For the rest of the exchanges we request the user to add their API keys with restrictions for view only access (enforced by the exchanges). The instructions are listed for each exchange when you add them from the wallets page: www.cointracker.io/wallets

<comment><USER56> Mmmm, I've a similar product to yours (and the myriad of other products like this).

One thing pretty much everyone gets wrong is that many of these exchanges don't actually offer read-only keys, and saying so is wildly inaccurate. Case- in-point is Gemini, which anyone asking for the keys requests Trader level privileges. This simply blocks withdrawing; a malicious actor could still execute a trade if they got ahold of your keys, and due to the nature of it all that's very no bueno for you.

Each and every single one of these products should be badgering exchanges to support true read-only keys (or OAuth, as much as I hate the spec). I've personally emailed each one, and I dunno who else is doing so, but I'd encourage you to alter your documentation slightly and to badger the exchanges as well.

Otherwise, neat product. Congrats on launching. :)

</comment></comment></comment><comment><USER57> how do you differentiate from Libra tax that provides this service for free and others like bitcoin.tax ?

<comment><USER12> Well if you link via the API, they give you an overview of your portfolio.

</comment></comment><comment><USER58> Lack of support for XRP wallet address (like xrp on Ledger hardware wallet) is a big problem for me.

</comment><comment><USER59> Why does noone support BitMEX? Derivatives are expicially interesting when it comes to taxation.

</comment><comment><USER60> I could have really used this a few months ago. Definitely a market for this. Best of luck to you.

</comment><comment><USER61> Dumb question but is there a way to import the tax information this generates into TurboTax?

<comment><USER7> We plan to add an export option for TurboTax as soon as possible - we should have it in the next 1-2 weeks.

<comment><USER61> This literally makes my day! Thank you guys so much!

</comment></comment></comment><comment><USER62> Congrats on shipping.

Total footnote, but having built a product on a .io domain, I wouldn't do it again.

<comment><AUTHOR> Interesting; how come? We aren't necessarily tied to our domain name, just curious.

<comment><USER62> A history of poor ops practices and unreliability. In the last year there was one incident where somebody was able to register their root name servers as their own, and another where they stopped resolving requests for a large portion of the internet (mid-October sometime).

From a marketing point of view, I didn't appreciate it before talking to "regular sales prospects" but in our space at least there is a connotation to it. One quote I remember was that we were "a little expensive for a .io".

Ultimately we have stuck with it due to sunk cost.

</comment></comment></comment><comment><USER63> Finally I know if I'm making money or not. You guys will do great!

</comment><comment><USER64> Hello, congratulations on exposure. I would like to express a concern.

Being a cryptocurrency user is all about NOT paying taxes. As more people understand the systems of cryptoanarchy, more will the gateway business models fade-away(basically exchanges and add-ons like OP).

<comment><USER65> I actually think conflating cryptocurrency with not paying taxes may does not help anyone in the discussion.

Banking fees, sure. But taxes? That's a whole ideological discussion not even closely related to crypto.

<comment><USER64> The least we can say is satoshi's whitepaper lists eliminating financial intermediaries as the prime motive, in the first paragraph itself.

<comment><USER65> Well, my point still stands.

Taxes are not a financial intermediary. Taxes are something a government charges to fund a country, even though some of them may be charged when you move money around.

I understand that we can somewhat envision a self-governing crypto-nation, but even that doesn't imply lack of taxation.

</comment></comment></comment></comment><comment><USER66> Great tool!

It'd be very helpful to have Uphold available as an exchange.

</comment><comment><USER67> Feature Request: Tracking extended public keys.

<comment><USER68> Yes please. Cryptoport does that.

</comment></comment><comment><USER69> Great UI! Finally a competitor to altpocket :)

</comment><comment><USER70> Hey guys, is this open source? any chance I can send a PR to add another exchange you don't currently support (like CEX)?

</comment><comment><USER71> Nice!

</comment><comment><USER72> DM possible ?

<comment><AUTHOR> Feel free to reach out to us at firstname.lastname@example.com

</comment></comment><comment><USER73> Hi everyone, my name is David and I'm the founder of YaxReturns.com. Great job so far, CoinTracker team!

Yax also provides a tax solution for cryptocurrencies.

We launched yesterday on Product Hunt: [https://www.producthunt.com/posts/yaxreturns](https://www.producthunt.com/posts/yaxreturns).

And our video walkthrough: [https://www.youtube.com/watch?v=vViXhiMNufo](https://www.youtube.com/watch?v=vViXhiMNufo)

Website: [https://yaxreturns.com/](https://yaxreturns.com/)

We offer:

• Importing of transactions from major exchanges and wallets

• CSV uploads

• FIFO, LIFO, LIFO Perpetual, and Average Cost accounting methods

• PDF tax form downloads

• Editable transactions

• A unique interactive "Ledger Tool" for visualizing and editing your transaction data

• An emphasis on security, encryption, and user anonymity

So far the biggest challenge in building a comprehensive tax solution is that exchanges, wallets, and blockchains do not all provide API's into their data, and their data formatting is different across each one. I can tell that CoinTracker has experienced this issue as well from the comments on this thread. Integrating with all major exchanges is definitely going to be a possibility in the future, but for the foreseeable future, the priority will likely be making it as easy as possible for users to upload, edit, and review their transaction data as easily as possible before submitting to the IRS. After all, it's real money that you're reporting on.

That said, please do check out YaxReturns.com as you consider a crypto tax calculator this year. We have new tools being built as we speak that will help you manage your taxes easily on a daily basis instead of scrambling to gather data and file them every April =).

Once again, congrats to the CoinTracker team on their launch!

<comment><USER12> I 100% agree. I've been playing around with the APIs these exchanges offer. All of them have incredibly annoying issues and limitations.

I just did my tax with bitcoin.tax but I will have to check out yax and see how it compares. Bitcoin.tax has a very basic ux some I am looking forward to seeing some innovation in this space.

<comment><USER73> Absolutely. Agree with your agree! There's lots of UI improvements that can and should be made in the crypto space.

As one friend put it, 2017 was about crypto traders and developers being too busy making money to turn around and help newbs learn or onboard them with nice UI's. That's got to change. Too many people, including myself, have lost money screwing up wallet addresses or not knowing how an exchange works. In addition to improving exchange API's, simplifying user interfaces, and making it safer and error-forgiving to exchange currencies, I think infrastructure and regulatory clarification will go a long way in legitimizing and stabilizing the crypto world. I also think providing people with a tax- compliant way to trade is a great place to start creating that user-friendly version of crypto. More features coming from Yax soon! Be on the look out.

[https://yaxreturns.com](https://yaxreturns.com)

<comment><USER74> This looks nice. We are developing another alternative focused on nice ui and starting with a free premium package for all beta users...

[https://www.coinapse.io](https://www.coinapse.io)

</comment></comment></comment></comment><comment><USER75> There are no cryptocurrency investors, because cryptocurrencies are not an investment, they are speculation.

You have started a company to help people lose money.

In the future, kindly use your enthusiasm and skills for something more useful.

<comment><USER76> This is a shockingly dismissive comment for the space.

I understand that cryptocurrencies are a divisive topic, particularly on HN. Dismissing the hard work of a startup showing off what i believe to be a well- executed marketing page and tool is not only shortsighted, but goes against the very philosophies of Hacker News in general.

<comment><USER75> Well-executed marketing in the service of helping people lose their savings.

<comment><USER77> I hope no one is investing all of their savings in any one type of asset, let alone cryptocurrency. Generally people diversify their investments according to their risk-tolerance. I am fairly young and not that risk-averse but still only have a tiny fraction of my investment portfolio in cryptocurrency.</comment></comment></comment></comment>


Ask HN: As a programmer how would you download such an image file? - <AUTHOR> I want to download the following image to local disk for using as wall paper, it's really beautiful:
https://static-christiesrealestate-cms-production.gtsstatic.net/resources/v_4_19_0_67/_responsive/images/common/nophoto/listing.jpg
Using an online URL decoder (www.urldecoder.org)  I got:
https://static-christiesrealestate-cms-production.gtsstatic.net/resources/v_4_19_0_67/_responsive/images/common/nophoto/listing.jpg
But obvious it's the not the same picture I want.
How would you download an image like that? <comment><USER2> Mate, I think you copied the second URL twice by mistake.

</comment><comment><USER3> You copied "nophoto" ..</comment>


Euro2016 live streams/highlights/stats from Terminal (Mac) - <AUTHOR> https://github.com/jctissier/Euro2016_TerminalApp <comment><USER2> If it meets the guidelines, this might make a good "Show HN". Show HN Guidelines: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

I am curious how long it took to develop and what challenges there were.</comment>


This ViewSonic ViewPad Thing Just Keeps Getting Funnier - <AUTHOR> http://daringfireball.net/linked/2011/03/08/viewsonic-viewpad <comment><USER2> Tells a lot about the agency / customer relationship, or the corporate culture (in case this was an internal job) that such an fauxpass could even happen. I'd say it is difficult to find a more apt example that displays 'I/We don`t care' in such honesty.</comment>


The best timer for Google Chrome - <AUTHOR> https://chrome.google.com/webstore/detail/1-click-timer/igloknlllonknnbkfgggfkigmeegmakf/reviews

<comment><AUTHOR> This is really cool! The feedback is very positive and it is super simple.</comment>


The Open-Plan Office Is Dead - <AUTHOR> https://www.inc.com/geoffrey-james/the-open-plan-office-is-dead.html <comment><USER2> This is the cheapest and most cheaply changeable arrangement for an office, and still have an office with seats and a desk. It's never going away, it's the bottom. Just like airline seats are never getting bigger and more distanced.

Our economy as structured depends on the cheapest product and maximized profit. Unless that changes, we will always be living at the bottom of possibility. With luxurious exceptions for the few and "deserving."</comment>


Show HN: Greypad – App for Reading Sensitive Documents in Public - <AUTHOR> https://itunes.apple.com/app/id1450783054 <comment><AUTHOR> Hi everyone,

We just released Greynote[1], so we are making Greypad free for this weekend (normally $10). Greypad is completely ad-free, so I hope that you get a chance to try it. Any feedback would be very much appreciated.

If you are interested in having your organization participate in our beta/pilot program for Greynote, please drop me a line at firstname.lastname@example.com

Have a great weekend!

[1] Greynote: [https://itunes.apple.com/app/id1441767538](https://itunes.apple.com/app/id1441767538)

</comment><comment><USER2> Not sure if i get it. So instead of home screening, locking phone, putting down the phone... you're going to use AI to solve it?

<comment><AUTHOR> Hi infinitone,

Putting my phone away is the first thing I would do if someone were trying to look at my screen while I reviewed a confidential document.

Greypad is designed for situations where you might not be aware that other people are looking at your screen at all, i.e.: someone standing behind you in a line, sitting behind you on a train, etc.

<comment><AUTHOR> Follow up: We've also noticed that a lot of our downloads this weekend came from countries with high degrees of censorship.</comment></comment></comment>


Ask HN: What are the best resources for learning PostgreSQL? - <AUTHOR> <comment><USER2> Here's a number which are all some shameless plugs:

\- Personal blog - [http://www.craigkerstiens.com/categories/postgres/](http://www.craigkerstiens.com/categories/postgres/)

\- Postgres guide - [http://www.postgresguide.com/](http://www.postgresguide.com/)

\- Postgres Weekly - [http://www.postgresweekly.com](http://www.postgresweekly.com)

Beyond that there's this which has a number of resources [https://github.com/dhamaniasad/awesome- postgres](https://github.com/dhamaniasad/awesome-postgres) and finally in terms of reference documentation the Postgres docs themselves are great ([http://www.postgresql.org/docs/9.4/static/](http://www.postgresql.org/docs/9.4/static/)). Though a word of caution the Postgres docs aren't the best on the tutorial, but for reference docs they're great.

</comment><comment><USER3> I've always found the best way to learn a new technology in general is to have a problem to solve with it.

Instead of trying to learn Postgres itself, try to do the following:

1) Get it installed and running

2) Write a schema for _something_ (blog, billing system). Look through Postgres's documentation on types.

3) Get a role created for accessing the schema and update the hba config file to let your user access the schema from whatever servers you need to.

Postgres is pretty well documented, google "Postgres Whatever" will usually bring you to a postgres documentation page, for instance to understand the types 'Postgres data types' first result is: [http://www.postgresql.org/docs/9.4/static/datatype.html](http://www.postgresql.org/docs/9.4/static/datatype.html)</comment>


Using the Edwards-Curve Digital Signature Algorithm (EdDSA) in IKEv2 - <AUTHOR> https://tools.ietf.org/html/rfc8420 <comment><USER2> When it's standardized, and implemented in the servers, and said software part of mainstream and enterprise distributions, and all major desktop and phone OSs have implemented it (I am looking at you Apple!), and all of your clients updated their OS and all people updated to the latest version, then you can disable all other key exchanges and finally get rid of some part of the old crypto in IPSec. Or you use an appliance for IPSec, then you're screwed.</comment>


Los Angeles to become 2nd best in public transportation by 2028 Olympics - <AUTHOR> https://la.curbed.com/2017/8/4/16098474/olympics-transit-future-subway-rail <comment><AUTHOR> This is an analogy to what happened to Skytrain in Vancouver for the 2010 Olympics.</comment>


Dictionary Lookups in JavaScript - <AUTHOR> http://ejohn.org/blog/dictionary-lookups-in-javascript/

<comment><USER2> Great explanation and practical sample of javascript features + HTML5's local storage.

The only thing missing was converting the dictionary data into a trie. ;-)

<comment><USER3> _The only thing missing was converting the dictionary data into a trie. ;-)_

That's what I was thinking. I wonder what the memory and download footprint for that would be in practice. Considering characters are represented by string objects in JavaScript, it could get expensive, unless the runtime interns short strings. If not, you could represent single letters with integers, which are almost certainly interned or even use a non-pointer representation. All those objects at each tree level might be a bit much though.

<comment><USER4> In this situation, I'd seriously consider throwing down a binary blob as a string that directly represents this data as whatever fancy structure you want and writing the small handful of functions it would take to traverse that "string" to do the lookup. Then you can do whatever optimal thing you want and memory usage is very predictable.

Technically this is what his final solution converged on, it's just the least fancy "fancy structure" there is.

It's a last resort, certainly, but in certain cases it's the simplest answer. Be aware of encoding issues, though; UTF-8 technically can't carry arbitrary binaries and you may have to work around some things a bit.

<comment><USER5> I'd recommend sending base64'd data down. Use this to encode/decode from javascript strings of 1-byte-per-character data:

[https://github.com/mcarter/js.io/blob/master/packages/std/ba...](https://github.com/mcarter/js.io/blob/master/packages/std/base64.js)

<comment><USER6> FYI, many browsers offer (native) 'atob()' and 'btoa()' functions for Base64 encode/decode that will outperform that JS code.

<comment><USER7> For what it's worth, the linked code on github appears to be specific to node.js. Last I checked, there was no native function to convert strings to and from base64, only buffers.

If you're writing this for client side, it would indeed be preferable to use the native functions.

</comment></comment></comment></comment></comment></comment><comment><USER8> I would have probably stored all the words as keys in a Redis DB, and then never would have discovered the neat ideas he did about having the dictionary client-side.

<comment><USER9> That's funny because I got something very similar as a job interview question the other day, and my first response was basically, "Put it in Redis. Next question."

Yeah... I didn't get that job.

</comment></comment><comment><USER10> Instead of shoving the whole dictionary onto the client side (as clever as that is), he could also look up all the anagrams & subanagrams given a set of letters and then match against that subset of words.

Check out [http://stackoverflow.com/questions/396005/word-anagram- hashi...](http://stackoverflow.com/questions/396005/word-anagram-hashing- algorithm/396077#396077) for an example

</comment><comment><USER11> Very interesting. The is a good solution for lots of things

</comment><comment><USER12> Jresig needs to take a data structures 101 course.

<comment><USER13> Elaborate?</comment></comment>


Disneyland and California Adventure Will Be Closed Starting Saturday - <AUTHOR> https://www.nbclosangeles.com/news/coronavirus/disneyland-and-california-adventure-will-be-closed-starting-saturday-due-to-coronavirus/2327917/ <comment><AUTHOR> I went to Disneyland this past weekend expecting people to have already cancelled their trips, and it was as crowded as I had ever seen it.

With events with much fewer people shutting down, I was wondering when Disneyland would - they see upwards of 50k people per day, many international travelers. It makes sense for the park to be crowded as most folks plan these trips months in advance, so a cancellation is not something folks will do unless under huge duress.

That Disney is making this move, and not a federal or state agency is impressive, but also depressing.</comment>


Infinity is Not a number - <AUTHOR> http://scienceblogs.com/goodmath/2008/10/infinity_is_not_a_number.php

<comment><USER2> People used to think 0 wasn't a number. Then that the square root of 2 wasn't a number. Then that -1 wasn't a number. Then that 'i' wasn't a number.

There just isn't one official list of "what is a number". Real mathematicians will consider anything a number temporarily if it's convenient for them.

For anyone who cares, I recommend David Foster Wallace's book "Everything and More" for a great history of mathematicians' thoughts about infinity.

</comment><comment><USER3> it's used as a number to simplify conversations. instead of saying the limit of the expression 1/x as it tends to zero is infinity, we simplify that statement and say 1/0 = inf. it's nothing to get mad and write a scathing dissertation over. if you want to delve into it you can if necessary.

there are infinite stars in the heavens. decidedly untrue if you actually were able to make a count of them. but by the limits of our ability, it is understandably true.

it's about context i think

<comment><USER4> Of course you can always use Conway's surreal numbers (<http://en.wikipedia.org/wiki/Surreal_number>).

I can only recommend reading his book 'On Numbers and Games':

"On Numbers and Games is a mathematics book by John Horton Conway. The book is a serious mathematics book, written by a preeminent mathematician, and is directed at other mathematicians. The material is, however, developed in a most playful and unpretentious manner and many chapters are accessible to non- mathematicians." (<http://en.wikipedia.org/wiki/On_Numbers_and_Games>)</comment></comment>


I'm a boring programmer (and proud of it) - <AUTHOR> https://m.signalvnoise.com/i-m-a-boring-programmer-and-proud-of-it-d4ac3dd2defe <comment> nommm-nommm "But what if, like me, you don't relate to these labels at all?"

My personal hypothesis is I think these labels are just meant to attract and appeal to a certain demographic. The demographic that skews young, male, and single. The demographic that prioritizes work above all other pursuits. The demographic that is naive and easy to manipulate into seeking life fulfillment by staying at the office from 7am-9pm.

This is the sort of employee they are seeking so they do what they can to attract them. They aren't looking for people who "coder ninja" doesn't appeal to. It's by design.

I think it actually works since I'm totally turned off by those job ads.

<comment><USER2> Well exactly. The concepts of 10x programmer, ninja, rockstar, etc... appeal to narcissistic people that really believe they're above average or at the top.

I know I am not Donald Knuth or Linus Torvalds or John Carmack or Woz. I am not a rockstar.

<comment> V-2 Certain degree of narcissist traits can be beneficial if it translates into taking pride in your work.

"We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris" (Larry Wall)

You don't need to be Donald Knuth - or Larry Wall - to be above average :)

<comment><USER2> Well, laziness in terms of typing more, probably. Laziness in terms of thinking less, definitively no.

<comment> V-2 LAZINESS: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer.

IMPATIENCE: The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer.

HUBRIS: Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about. Hence, the third great virtue of a programmer.

[http://c2.com/cgi/wiki?LazinessImpatienceHubris](http://c2.com/cgi/wiki?LazinessImpatienceHubris)

</comment></comment></comment></comment></comment><comment><USER3> Maybe it's just my luck but my feeling is that terms like 'ninja' or 'rockstar' are these days mostly if not exclusively used by recruiters.

<comment><USER4> You know what would be an awesome title? "Professional". I'd rather work with adults instead of people that think they can trick 22 year olds into working overtime by feeding into their narcissistic fantasies.

<comment><USER5> I like "creative problem solver"; honestly I don't even enjoy coding that much, it's just the most powerful tool for solving problems (along with math) I've come across. Since HR drones don't grok "creative problem solver", I usually sell myself as a software architect and data scientist - that pretty much sums it up.

<comment><USER6> "Creative problem solver" is only a valuable label if you are well-read and understand existing solutions to problems. Which is not creative. In fact, most problems can be solved perfectly adequately by applying tried-and-true boring, uncreative methods.

<comment><USER5> That's not really true. The creativity comes in seeing the parallels between disparate areas, and being able to use things in unintended ways to good effect.

As a random example, I was able to take a road pollution model that was meticulously optimized, written in Fortran, and approximate its results in Javascript, with almost an order of magnitude performance INCREASE, to the point that pollution models can be computed in near realtime in the browser (road network density permitting).

I did this by using optimization to approximate the model's pollution distribution about road segments using Bezier surfaces, which are fast to compute and have the nice property of being completely contained within the convex hull of their control points. That containment property let me leverage an R*-Tree to quickly determine which sources could contribute an appreciable amount of pollution to a given pixel, and only compute those.

None of the algorithms or data structures I used were original, but the circumstances where I applied them are somewhat novel and the results are fantastic.

</comment></comment></comment></comment></comment><comment><USER7> Moreover, we should avoid the general attitude of 'cleverness' in programming. We've all spent hours dealing with a needlessly intricate piece of code someone else, or a younger us, wrote in a moment of meta-programming / monadic delusion. To me it's telling, that I'm sometimes even more frustrated after I fully comprehend the mental model. Especially if it's apparent, that the person employing the complexities is a junior, or a superficial expert. Be a boring programmer. It won't exactly make your peers 'adore you', but you'll save yourself and your team a lot of time and effort.

<comment><USER8> _Pretensions_ of cleverness, sure---but sometimes there really are free lunches. Just as a change in perspective is worth about 80 IQ points, using the right abstraction can make coder cleaner, shorter, more efficient, _and_ more understandable. No, typing `defmacro` doesn't make that automatically happen, but it is, sometimes, necessary.

<comment><USER7> Pretensions of cleverness sounds more accurate, the correct implementations are often intrinsically clever, I agree.

</comment></comment></comment><comment><USER9> In my experience I also met the following types of S/W engs:

\- 'Pioneers' \- hackers that pave the way, create amazing prototypes and whose code you can't use in production

\- 'Architects' \- who see the work of pioneers and see the bigger picture and build the structure that is needed

\- 'dogmatists' \- who see beauty in the art and educate their peers and don't create much code, and act as cult(ural) leaders

\- 'Workers' \- who implement, work 9 to 5 and go home and implement solidly and don't need passion, but have lots of discipline.

The last group is really important and is rarely talked about.

<comment><USER10> I think a lot of the cause of talking about "rockstars" is that in America, we idealize pioneers. This tendency isn't all good or all bad (at least, until you apply it to a particular context), But sometimes it falls on its face because life is not a Walt Whitman poem.

</comment></comment><comment><USER11> The author describes how he feels that hacker/ninja/wizard descriptions are arrogant, then says that he prefers more "humble" terms for himself, like scientist and artist.

Sorry, but ninja and wizard probably advertise that you watched too much tv when younger, or played RPG. A scientist on the other hand is someone who worked hard to get a degree and tries to advance his/her science. An artist is someone who puts his/her art before anything. They aren't humble roles at all.

<comment><USER12> It's interesting how programmers want to be called anything but "programmer". Whether it's "ninja", "scientist", "artisan", or "craftsman" IMO all are BS—what's wrong with just being a programmer?

You don't see a scientist say he's a "science artisan" or an artist saying he's a "canvas ninja".

<comment><USER11> It is a complex issue and there are a few different reasons for this.

In the old days, there were analysts (the people who wrote programs) and programmers (the people who translated these programs to punchcards). We kept only the programmer title.

Our field is vast, yet everyone is a programmer as far as people outside our field are concerned. Scientists could be physicists or astronomers, artists could be painters or actors, doctors may be pathologists or heart surgeons for example.

A programmer can be self-tought, thus the title programmer doesn't imply any kind of official degree or a discipline. You could have a MIT diploma or just be a high schooler.

I think the field developed (and keeps at it) too quickly and the social adjustments that should take place can't catch up. A job not only provides for you, but gives you a place in society. The title "programmer" is as generic as it gets.

<comment><USER13> To me, programmer is equivalent to writer.

</comment></comment></comment></comment><comment><USER14> Am I the only one bothered by the implication that "prying your way into an unauthorized system" is a thing that "hackers" do? Call me sceptical, but I don't think that the author really understands hacker culture.

</comment><comment><USER15> I think terms like "DevOps" and "full stack" are as meaningless if you've been programming for more than 3-4 years, as you likely fulfilled those roles before they had a cool label.

</comment><comment> V-2 Isn't this an American, or at least Anglosaxon thing? In my country noone advertises programming positions with hype phrases like "rockstar" etc.

<comment><USER12> It's not even "American", it's a Valley startup culture thing.

</comment></comment><comment><USER16> "Debugging is twice as hard as writing the code in the first place.

Therefore, if you write the code as cleverly as possible, you are,

by definition, not smart enough to debug it."

-Brian Kernighan

</comment><comment><USER17> Much as I hate the rockstar and ninja tags, this article itself is pretty arrogant. It makes some fairly unfounded assumptions about other professions like librarianship, while really doing them down a bit.

<comment> V-2 What do you mean?

The only assumption about librarians is that they "enjoy quiet and order". While this may be an oversimplification (although if you didn't, wouldn't this affect your chances of becoming a librarian?), but what's so arrogant about it?

This oversimplification, or stererotypization, is justified by the context anyway; obviously it doesn't refer to real-life librarians. It's metaphorical language, just as the ninja analogy has nothing to do with actual ninjas, only their image in (pop)culture

<comment><USER17> Basically it seems to say "I'm not a ninja, but I'm all these other things". It still seems to have the attitude of programmers as being better generalists than anybody else is a specialist without spending any time trying to understand their jobs. The librarian reference particularly annoyed me because it just plays into the cheap stereotype of librarians as little old ladies who put the books away and tell you to shush.

</comment></comment></comment><comment><USER18> I love that someone came out and admitted this. I'm in the same boat. Not a rockstar ninja code shepherd wizard. I'm just a developer who enjoys getting stuff done. At 38 years old if I were a Torvalds, Woz, or Knuth I'd know it, and you'd already know my name. I'm not, and I'm ok with that. I've stayed in this industry through tenacity, passion, and the ability to get stuff done.

I do like to call myself a "hacker" because I feel I fit that definition like so many in our field. But to me hacker defines someone with a strong passion for discovery and curiosity, breaking the rules and learning new things. It's not a magician, genius, or hot shot that others should bow to when we enter a room. A hacker could be anything from Woz to a five year old kid who figured out how to build something different with Legos. It's not a resume bullet point.

I too am growing a little tired of these labels in job ads, asking for some "ninja" who's fresh out of school willing to work 90 hours a week for founder bros because profitability is "just around the corner". At this point in my career I'm looking for fast paced, exciting work but I'm not going to drink 10 red bulls a day to get your platform as a service app finished while drinking IPAs and coding between ping pong rounds. I'm not going to sacrifice 99% of my free time for your baby just to be thrown to the street when you sell out to a bigger company or (more likely) run out of funding. That's the image that those keywords conjure up for me.

I'm the boring middle aged programmer that will work his butt off to get stuff done. I'll exercise due diligence to build things to the best of my abilities and work hard to make sure my skills get better and better as time progresses. I'll get stuff done. I'll ship, and ship good stuff. That's what the kind of companies I seek out are looking for anyway.

</comment><comment><USER15> Eschews certain labels, then proceeds to compare himself to a scientist, artist, and carpenter.

<comment><USER6> Those are actual trades. Nobody is a professional ninja, and rockstars are really just performers and musicians.

The labels are rejected because they are wrong, not because they are labels.

</comment></comment><comment><USER19> "Boring" it's just another label, like "ninja" or "full-stack developer". Wouldn't it be better to avoid labels at all?

<comment><USER2> "Full-stack" is very vague and very rarely means working on the full stack.

Also, if someone cannot answer the question: "what happens when you type 'google.com' in your browser" then you are definitively NOT full stack.

<comment><USER3> Ah, the Google interview question. Should we start at keyboard interrupts? ;)

<comment><USER2> Should we start at the motor cortex?

<comment><USER3> Only if we're recruiting a neurosurgeon.

</comment></comment></comment></comment></comment><comment><USER20> I've never actually heard those terms before. In my circles, you're either good or you aren't.

</comment><comment><USER21> There are only two productive behaviors: minimizing risk, maximizing reward. Three if you include the Buddhist solution, roughly "learn not to car about risk and reward." This post is by a risk minimizer expressing incomprehension at the reward maximizers.

Such is life.

</comment><comment><USER22> How to Become a 10x Boring Developer</comment>


Show HN: Coronavirus News Knowledge Graph - <AUTHOR> https://coronavirus.loomi.ai/ <comment><AUTHOR> Side project we did with BBC as a free research tool for Coronavirus related topics built as a Knowledge Graph. Currently, it processes all current and historic news from BBC, CNN, Fox, and DW published on the pandemic but we will add others soon. Any comments are very welcome. this is new and not shared yet.</comment>


The geometry of Islamic art becomes a game - <AUTHOR> https://arstechnica.com/gaming/2017/10/engare-review-spirographs-math-and-islamic-art-blend-for-quite-the-game/ <comment><USER2> For anyone interested, Iran has some amazing examples of mind bending mosque decoration. If you're a fan of maths, tesselation, art or architecture, it's all there.

They have a style that I can only describe as 3D honeycomb stalactites.. they when viewed from a specific angle all align perfectly to make repeating patterns.

Ie: [https://i.pinimg.com/originals/eb/3b/5a/eb3b5a6ad5751fa0276a...](https://i.pinimg.com/originals/eb/3b/5a/eb3b5a6ad5751fa0276a10633b82541a.jpg)

Truly staggering works.

<comment><USER3> Too bad they are all bad people and need to be banned from entering the USA... jk! jk! When I hear something positive around Islam in the US, it makes my mind spin and I have to check if I have been suddenly teleported to an alternate reality where people have an actual interest in appreciating the rich cultures and their nuances and history.

<comment><USER4> In case it's unclear, I believe people are down-voting you because you speak as though everyone in the US is anti-Islam. The Trump government and their supporters may well be, but more broadly the anti-Islam sentiment is a fiction, especially among the intellectually curious and doing-our-best-to-be- welcoming HN audience. I know you probably meant well with your comment, it just feels bad because this is such a sore spot.

<comment><USER5> I've never understood the Iran hate. Iranian culture is very distinct from Arab culture. It is truly one of the oldest and greatest human cultures, and it's a shame that more people don't get to experience it because of this irrational hatred and suspicion

<comment><USER6> >It is truly one of the oldest and greatest human cultures.

Very little of that Iranian culture has survived the Islamic 'revolution'.

<comment><USER7> There is some of it India.

[https://en.wikipedia.org/wiki/Parsi#History](https://en.wikipedia.org/wiki/Parsi#History)

[https://en.wikipedia.org/wiki/Irani_(India)](https://en.wikipedia.org/wiki/Irani_\(India\))

[https://en.wikipedia.org/wiki/Parsi#Prominent_Parsis](https://en.wikipedia.org/wiki/Parsi#Prominent_Parsis)

</comment></comment></comment></comment></comment></comment><comment><USER8> I've always been fascinated by Islamic Art and curious how such complex shapes could be drawn from simple tools. The video looks really cool.

edit: Link to the actual game site, hard to find on the article page - [http://www.engare.design/](http://www.engare.design/) Sound composer for trailer: [https://soundcloud.com/mimrasouli](https://soundcloud.com/mimrasouli)

<comment><USER9> It appears Mahdi hasn't updated the site with it, so here's the link to the game on steam: [http://store.steampowered.com/app/415170/Engare/](http://store.steampowered.com/app/415170/Engare/)

</comment></comment><comment><USER10> Totally adding it to [https://github.com/stared/science-based-games- list](https://github.com/stared/science-based-games-list), in mathematics / geometry.

</comment><comment><USER11> Everyone should check out Tandis by the same game designer - "A game where mathematical functions are used as modelling tool"

[https://www.youtube.com/watch?v=dxTOY1-jYro](https://www.youtube.com/watch?v=dxTOY1-jYro)

</comment><comment><USER12> But can it also do quasi-periodic patterns? [http://physicsworld.com/cws/article/news/2012/jan/31/ancient...](http://physicsworld.com/cws/article/news/2012/jan/31/ancient- islamic-architects-created-perfect-quasicrystals)

</comment><comment><AUTHOR> Here's an interesting 2014 article on the game's creator, Mahdi Bahrami [1]

[1] [https://iq.intel.com/irans-gaming-pioneer-brings-the-east- to...](https://iq.intel.com/irans-gaming-pioneer-brings-the-east-to-west/)

</comment><comment><USER13> Steam link: [http://store.steampowered.com/app/415170/Engare/](http://store.steampowered.com/app/415170/Engare/) Save 15% right now.

</comment><comment><USER14> For some reason, Raymond Lully ([https://en.wikipedia.org/wiki/Ramon_Llull](https://en.wikipedia.org/wiki/Ramon_Llull)) comes to mind.

<comment><USER15> his mnemotechnic devices and 'art of memory' (later to influence modern computation) derive from devices from the preceding islamic tradition in andalusia (see [https://en.wikipedia.org/wiki/Zairja](https://en.wikipedia.org/wiki/Zairja))

There are deep connections between the _functions_ of geometry and geometry influenced aesthetics, the zairja tradition, and several other things.

</comment></comment><comment><USER16> If you are interested in a more mathematical method of generating Islamic patterns based on tilings, be sure to look at the work of Craig Kaplan, especially his Ph.D. thesis and related software tools, but perhaps start here:

[http://archive.bridgesmathart.org/2000/bridges2000-105.pdf](http://archive.bridgesmathart.org/2000/bridges2000-105.pdf)

</comment><comment><USER17> Just as a heads up, if you try to run this program with your monitor in portrait mode, the program defaults to full screen mode, but assumes a landscape monitor. The parts that are cut off are critical to getting the program to do anything at all, since you have to start by clicking on a green window that is off the side of the screen. Nice music though...

</comment><comment><USER18> I'm delighted to see some of the algs behind making these are strikingly accessible!

Dumb question though: Even though many of the operations appear to be composed of 2-3 superimposed harmonically-related sinusoidal functions, how come they don't appear to resemble the set of figures in spirographs? Is it due to specific sets of constants? The shading?

</comment><comment><USER19> I had my nephew play it yesterday and he loved it.

<comment><USER20> how old?

<comment><USER19> 7

</comment></comment></comment><comment><USER21> Spirograph Simulator?

</comment><comment><USER22> Looks great; just bought it for the hope that I can pull the soundtrack into my phone.

</comment><comment><USER23> Knowledge is carried through generations and by interrupting that, you cause irreversible harm. That's effectively what the mongols did to the Islamic empire.

The mongol invasion of the Islamic empire had as an objective made an example out of any nation that did not agree to pay tribute to the mongols. They did this by razing the cities to the ground.

[https://en.wikipedia.org/wiki/Siege_of_Baghdad_(1258)#Destru...](https://en.wikipedia.org/wiki/Siege_of_Baghdad_\(1258\)#Destruction)

The Siege of Baghdad resulted in the death of many scholars, the destruction of the Great Library of Baghdad, etc.

Curiously enough, their most important cultural achievements have survived in our own culture, after the Spanish reconquista and the Latin translations of the 12th century in Toledo.

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

The European Reinassance was essentially the assimilation of the cultural wealth amassed by the Islamic empire. Once the Roman Catholic church was influenced by philosophy (e.g: Saint Thomas Aquinas, who studied from translated material), they stopped prosecuting science so severely.

<comment><USER24> > The European Reinassance was essentially the assimilation of the > achievements of the Islamic empire.

Not really true. The Greek were much more influential - which the Arabs helped spread from their military conquests.

<comment><USER25> The "Greeks" (Hellenistic scholars) were actually from Egypt, Asia Minor, Palestine, Cyprus, Crete, Sicily, Italy, Macedonia, etc. in addition to Greece.

There was a 1000 year period where Greek was the lingua franca of math/astronomy/engineering in the Mediterranean, from about 500 BCE to 500 CE. There was a lot of contemporaneous science done in Persia, with knowledge shared back and forth. But calling these "Greeks" is sort of like calling anyone publishing science in English in 1990 (including Chinese, Russians, Brazilians, ...) "Americans".

Many of those "Greek" ideas were originally developed during the 3000 years prior, when the centers of mathematics and technical culture were Egypt and Mesopotamia, written in Egyptian, Sumerian, or Akkadian.

Then from about 500 CE to 1500 CE, the centers of scholarship were in India and throughout the Islamic World (Persia, Mesopotamia, Asia Minor, North Africa, Spain, ...). The first couple hundred years of Western European mathematics is basically republication of stuff that had been developed by the Arabs hundreds of years earlier.

At some point about 500 years ago Christian Western Europeans (Germans, French, English, Dutch, Italians, ..) got their mathematical shit together, and dominated science for about 400 years. More recently, science and technology happen around the world.

<comment><USER26> Minor correction: a lot, if not most, of Arab innovations in science and mathematics were republications of ideas developed in India.

<comment><USER27> You mean India _and_ Persia I suppose :-)

</comment></comment></comment></comment></comment><comment><USER28> Islamic art? Surely you mean the Christian art that was appropriated by the Ottoman Empire...

<comment><USER29> Religious flamewar is not allowed on HN. We ban accounts that do this, so please don't do this.</comment></comment>