Diffusion Curves: A Vector Representation for Smooth-Shaded Images - <AUTHOR> http://maverick.inria.fr/Publications/2008/OBWBTS08/index.php

<comment><USER2> Vectorizing bitmaps has been done for a long time. Even Flash even had a built in feature for this (see "trace bitmap") (I think even Flash 5 had this feature).

The significance of this is that it introduces a new algorithm for doing it. The core of the algorithm is diffusion filters.

What would be VERY interesting is to see the vector size difference for photorealistic pictures using Diffusion curves vs a typical linear or gradient picture.

</comment><comment><USER3> Very impressive!

But ... Is it just me or is it just _really inappropriate_ for a video demonstration accompanying an academic paper like this to begin with an unrelated 20-second commercial advertisement? Can INRIA really not host the demonstration somewhere that doesn't attach advertisements to their videos?

</comment><comment><USER4> The link to the source code doesn't work. Did anyone figure out what the correct URL is? I'd love to play around with this.

Edit: Nevermind, I found it out myself: <http://www.henrykorol.net/DiffusionCurves.rar>

</comment><comment><USER5> This seems very cool, but I'd really love to see a better comparison with gradient meshes.

Because gradient meshes seem far more "intuitive" and exact, exactly matching the artist's "intentions".

Whereas diffusion curves look very cool, but produce great complexity of gradients based on very simple curves -- almost too complex/unpredictable, I'd be worried, if I were an artist.

Of course, this seems easier to deal with than gradient meshes, at least how they exist today. I'd love to hear from artists who have tried both. I also wonder what other languages/concepts might be developed in the future towards this same end!

<comment><USER6> The problem with gradient meshes is that they are 2D grids that run all the way through the shape. Thus you can't add control points on one side of your mesh without adding a bunch of useless ones across the whole length or width. Each mesh segment has to be a 4-sided bezier patch. If you try to gradient mesh a curved shape, the mesh lines run at very awkward angles, it's often better to start straight and bend it only after subdivision. Diffusion curves solve all of these problems, and seem to have no obvious downsides.

I don't see how they would match the artist's intention any less, quite the opposite. You can alter any small part of the image without compromising the overall structure, and you can control spline tension through the blur radius. The only thing I would say is missing is the ability to skew the blur to be more intense on one side of the diffusion curve, thus creating asymmetrical gradients.

In tools like Illustrator gradient meshes are flattened to images anyway when exported to PDF. So if a technique like this was implemented, it wouldn't change the workflow at all. In fact, I expect to see this in Illustrator in the next two versions.

<comment><USER7> I can't find a source but I think gradient meshes are only flattened to images to handle old or buggy postscript implementations. Postscript 3 can handle them natively.

</comment></comment></comment><comment><USER8> This is significant: it allows one programmatically to convert any raster image into a full-color vector drawing. (Think converting JPEGs into similar- looking but much smaller SVG-like files with one click.)

Designers would LOVE to have this functionality built into applications like Inkscape and Adobe Illustrator.

\--

Edit: changed "SVGs" to "SVG-like files" per vlasta2's comment (thanks vlasta2!). Also changed "equal-looking" to "similar-looking," because the automatically-generated color gradients may not precisely match the original.

<comment><USER9> I'm not sure that the resulting vector files will necessarily be "smaller". JPEG uses a decent compression algorithm, so its size is already pretty close to its actual information content (I'd wager within a factor of 2).

A while back I did some experimenting with compressing line graphics (handwritten music notation specifically) as both CCITTv4 (a bi-level raster compression algorithm) and SVG/PS via potrace (a tracer program), and the file sizes were similar (if anything favoring CCITTv4).

<comment><USER8> colanderman: I'm almost certain that the resulting vector files will be much smaller, because the algorithm substitutes subtle and complex color variations with _much simpler color gradients that are only approximately similar_ and therefore have much less actual information content.

PS. Note that the resulting vector files are not just smaller, but the drawing elements contained in them are by definition resolution-independent, so all curves, diagonal lines, and gradients will render beautifully and without artifacts at all image sizes.

PPS. Also, note that music notation has no color gradients.

<comment><USER9> Re: PS: Yes, I understand that, and I'm purposefully ignoring it because that information would only help my argument. Vector drawing elements are richer than raster drawing elements and hence tend to contain more information (e.g. "exactly _how_ sharp is that edge?).

And you _will_ get artifacts going from raster->vector->zoom, because the raster->vector algorithm necessarily infers information that is simply not present (i.e. beyond the Nyquist boundary). While typically not apparent at 100% zoom, inaccuracies in this inference will become apparent once you zoom in (e.g. "that pixel was meant to represent a perfect square, not a circle!").

Re: PPS: I never claimed it did? Music notation is bi-level and smooth edges that makes it well-suited for vector tracing with a bi-level tracer e.g. potrace (and therefore -- again -- aiding your argument). Comparing a CCITTv4 bitmap -- a bi-level format -- to vector output from potrace -- a bi-level tracer -- would make no sense with color gradients.

In case it's not clear, I'm making the analogy CCITTv4 : potrace :: JPEG : the diffusion curve algorithm.

<comment><USER8> colanderman: Yes, I understand the analogy you're making.

Your example of a pixel "meant to represent a perfect square, not a circle" is accurate: that is one type of information that gets discarded with this approach. Another type of information that gets discarded is complex/subtle color gradients/variations.

Taken to the extreme, yes, this approach can make photos look like stylized comic-book drawings; but with sensible defaults, it produces resolution- independent images that look great (such as the example with the dolphin) even if those images actually contain LESS information than a JPEG at the same file size.

We'll have to wait and see...

</comment></comment></comment></comment></comment><comment><AUTHOR> Found this in a discussion on SVG 2. The automatic generation of the curves from images is the killer feature !

</comment><comment><USER10> Damn, something exactly like this is one of the problems I've been playing with in my head for years, but never got very far on. Turns out it's been solved for four years. Very, very cool work.

</comment><comment><USER11> Here's an implementation in WebGL

<http://blog.calyptus.eu/seb/2010/11/webgl-not-just-for-3d/>

</comment><comment><USER12> Could this be used in image/video compression?

<comment><USER13> I'm not sure if it can be compressed in the time domain though.

<comment><USER14> Usually vector based formats compress very well in the time domain, since you only need to store the transformations. But without testing the code, I would be surprised if it is fast enough for something like 50 frames.

<comment><USER15> Convert the (x,y) curves to surfaces in the (x,y,time) domain and you should get a representation that is very fast to evaluate. With fast forward differencing, animating the curves would only need 6 adds per control point. If you are fine with "A Scanner Darkly"-style video it would work great!

BTW: Vector videos have been used to squeeze full-screen cinematics into a Super Nintendo: <http://fabiensanglard.net/anotherWorld_code_review/index.php>

</comment></comment></comment></comment><comment><USER16> This seems amazingly simple (on face value). Anyone else want to have a go at doing up a prototype as a weekend project?

</comment><comment><USER17> The moment the video was over, I was hitting up Adobe's bug/feature request form. Hell yeah.

</comment><comment><USER18> This paper is from 2008. Where is this being used?</comment>


Clock with simulated Game of Life around numbers - daniel-cussen http://www.youtube.com/watch?v=pYNxNkEAIPw <comment><AUTHOR> The background Game of Life is too faint.

I would have liked to see it set up so at the head of each minute/15 minute/hour, the numbers themselves briefly enter the CA.

Or, perhaps for ubergeekishness, a vertically-scrolling binary clock in which each second, the previous configuration (above the current one) enters the CA.</comment>


Ask HN: Are you happier with your day to day life after starting to freelance? - <AUTHOR> Recently I have been reading[1][2][3][4] about more and more people freelancing and I'm wondering if that has been a conscious decision towards personal liberation from 9 to 5, or rather a side effect of the 2008 crisis and the shortage of jobs thereafter.
In short for those who made the switch either voluntarily or involuntarily do you feel that you are getting more personal fulfillment from your work and would you go back to a 9 to 5 job if you had the opportunity?<p>[1] https://www.fastcompany.com/3049532/the-future-of-work/heres-why-the-freelancer-economy-is-on-the-rise [2] https://www.upwork.com/press/2015/10/01/freelancers-union-and-upwork-release-new-study-revealing-insights-into-the-almost-54-million-people-freelancing-in-america/ [3] http://www.businessinsider.com/americans-want-to-work-for-themselves-intuit-2013-3 [4] http://time.com/3268440/americans-freelance/ <comment><USER2> I have not yet properly begun freelancing (however I am working quite hard on side projects).

I was getting - more - overweight but since I quite the 9 to 5 I have lost 6kgs and it's only going down.

I'm not sleep deprived I sleep when I feel like it and wake up when it feels natural. I no longer get depressed on a Sunday night thinking about how I'm going to tolerate another week until I get a good chunk of time to myself again in the weekend.

I do what feels natural I work hard then take a nice quick shower, then lie down for a while, do more work whatever, I'm only accountable to myself. I can go take a walk around the park while thinking about how to solve a problem and that's a win win. I don't have to worry about the "perception" like you do when you are clocking in and out.

I was a bit afraid that I'm going to feel lonely however that hasn't happened at all. I'm saving my commute time and public transport cost.

I hope I can sustain this because I can really hardly imagine myself going back to an office 9 to 5.

And hell my job wasn't even a bad one by all standards.

I think my personality is deeply incompatible with the 9 to 5 life so I just with I never have to go back to it again.</comment>


Ask HN: How to vet dev candidates to make sure they can code at desired level? - <AUTHOR> The following seem to be popular methods used to determine if developer candidates can perform the coding aspects of the job you're interviewing them for:<p>* Public source code profiles (Github, etc.) * At-home coding assignments * Code katas * Live coding * References<p>I know at-home assignments, while commonplace, and even live coding are sometimes looked upon badly, but which of these methods above are best? What about other methods that I'm missing? Are there any good online resources/services that help make this part of the hiring process easier and better for all involved? <comment><USER2> You can never be sure. If you do know coding (and I mean, are in the "senior- to-expert" category), there's a chance you'll be able to get a feel of what a guy can do by asking a lot of questions and by looking at public source code (such as github). That won't actually guarantee the candidate will perform as you wish, since in real life, there are so many things that you missed/can go wrong. Case in point: a few years ago, I had an project that I simply didn't have time to handle, so I sub-contracted it to a former boss of mine (a guy I deeply respect to this day). I would have never guessed he would not be able to handle it -- I wanted him to work on it 15-20 hours/week, and be up to speed in 2-3 days. This is far from what happened, so I ended up doing the project myself (I have no idea how I found the time). But long story short, even though he's a very very good programmer, he still couldn't handle the pressure. That says a lot about "regular joes" that can say all the right things, answer questions right, and still not perform well in the long term.

Having said that, the best bet (assuming you are in this category -- senior- to-expert), I would recommend hiring someone as a 3-6 months trial, and then see how it goes.

If you don't know coding, my take is you'll NEVER be able to know how a candidate can actually code -- don't even attempt hiring in this case.

<comment><USER3> Who wants to get hired on a 3-6 month trial basis?

Not established competent programmers is the answer, unless you're paying at least FAANG salaries.

<comment><USER2> I would say - if you're truly competent, you won't be afraid. If you're incompentent, that's a different story

<comment><USER4> There's a subjective term if I've ever heard one. Who decided I'm truly competent? What happens if I'm truly competent but I outshine someone who's influential enough that doesn't want me around? What if I'm truly competent, but I wasn't setup for success? What if I'm truly competent but...you get the idea.

If you want a contract resource, hire a contract resource and if they perform well ask them to stay after. These are people who've decided for whatever reason they are happy to contract. Don't offer a person looking for a full time gig a 3 month contract in the hopes of being hired.

Be upfront and honest with people.

<comment><USER2> i never said to be dishonest - maybe I wasn't clear enough. What I meant was this "You specify from the get-go you want to hire the guy, but he'll start on a 3-6 month trial basis. If all goes well, you'll continue and give him a full contract".

</comment></comment></comment></comment></comment><comment><USER4> First and foremost, have you asked yourself and your team the ever important question:

What is the REAL "level" of programming required to be successful at this job? Please don't keep the trend going of asking whiteboard questions to a person who will be coding CRUD apps all day.

A junior developer is a person who's looking to learn and make an impact in what it means to develop a system. I find it best to interview for potential. Ask them to solve the same problems you'd ask a senior to solve, but with a different bar and more focused on seeing how they think through them.

A senior developer should be a person who's technically competent, experienced, knows how to make technical decisions, and understands the basic idea of value proposition. They get why they're building what they're buidling. Sure you can sit there and ask them a crap ton of coding trivia, but that's not what you actually need from them. A senior should be able to tell you the differences between languages they've used, the challenges they've faced and how they over came them, and clearly highlight key aspects of their technical decision making capabilities.

A lead and manager should be more people oriented.

Asking someone to do coding tests is fun, but it's a really bad signal. Asking someone to work with you on a problem is a lot more interesting and can help you gather much more valuable information. Do your best to setup a test environment that is as close as possible to your real environment. Respect candidates, allow them to highlight their strengths, make them comfortable enough to admit their short comings honestly, and think carefully through what "level" you need.

</comment><comment><USER5> I think all of those processes work fine for different people.

I love days long coding assignments and hate live coding. I especially hate giving my code samples - most of the code I've written are proprietary, and everything public is some kind of messy experiment. Code samples also feel like some violation, like stripping down while applying for a modelling job; I understand why it's there, but there are probably better options, and it feels creepy and judgemental.

But other people also have strong opinions on this, and they're not wrong. Everyone values different things and the filters are often right for them. Interview is a part of company culture.

I still think that the best thing to interview for is to find someone who is smart and gets things done: [https://www.joelonsoftware.com/2006/10/25/the- guerrilla-guid...](https://www.joelonsoftware.com/2006/10/25/the-guerrilla- guide-to-interviewing-version-30/)

</comment><comment><USER6> Easiest way to cut through the noise is to give candidates some whiteboard questions. This will invariably filter out some good candidates that aren't good at these problems, but you'll be left with a bunch that have some baseline competency.

<comment><USER5> Downside of this is that you still might not get, say, someone who can hack a security watermark feature into a react native camera app. Being able to solve hardest questions might not necessarily mean they can solve easier ones, or that they can get work done.</comment></comment>


EFF Plugs the Senate's USA Freedom Act, Loses More Credibility - <AUTHOR> http://belowgotham.com/index.htm#2014-11-11 <comment><USER2> If the EFF is not worthy of my support, then I don't know who is. I've been a donor and supporter for a while now and no other organization has aligned more with my ideals than they have.

Sure, the bill they support might not be perfect but I trust the EFF to put their weight behind practical measures and laws that are at least a step in the right direction.

<comment><USER3> I've followed the EFF since the 1990s (and once had an @eff.org mailing address) so I may have some insight. Seth, one of their technologists who posts here, would have more: [https://news.ycombinator.com/threads?id=schoen](https://news.ycombinator.com/threads?id=schoen)

The danger when dealing with advocacy organizations and DC is that they "go native." It's a variant of the principal-agent problem: advocacy groups cease to act in the best interest of their members/funders. They become enamored of their own press releases, their own ability to have a "seat at the table," or better yet to convene everyone around their table to draft a backroom deal-- even if the resulting law is better than no law at all.

The late Paul Weyrich, founder of the Heritage Foundation and ALEC, talked about this a lot in the context of conservative groups and GOP politicians. Whatever you think of his politics, Weyrich's insight was correct. I wrote about this in the CISPA context in 2012 here: [http://www.cnet.com/news/advocacy-group-flip-flops-twice- ove...](http://www.cnet.com/news/advocacy-group-flip-flops-twice-over-cispa- surveillance-bill/)

Now back to EFF: post-CALEA the group moved from its DC lobbyist row offices (which I remember fondly) to SF to avoid being part of that DC deal-cutting swamp. They intentionally haven't reopened a DC policy office--I think only David Sobel is in DC and he does FOIA not policy--though they easily could have.

So I'd say your faith in EFF is well-placed. EFF is working in your interests and the interests of its other members, the snide aside in the linked article notwithstanding.

Now even honorable organizations make mistakes, and I believe EFF is being too enthusiastic about a deeply flawed bill. I would side with the Sunlight Foundation and other groups opposing it. But no organization is going to agree with all of its members 100% of the time, and if you like everything else they do, there's no reason to cease your support now.

</comment></comment><comment><USER4> In case anyone was looking for the actual text of the bill:

[https://www.leahy.senate.gov/download/usa-freedom-act_- intro...](https://www.leahy.senate.gov/download/usa-freedom-act_- introduced-10-29-131)

I'd honestly say this being said so close to the election is playing politics rather than "lose credibility". Republicans taking control of both houses of Congress. The Freedom Act is likely better than whatever a Republican controlled legislative branch will pass.

<comment><USER3> > The Freedom Act is likely better than whatever a Republican controlled > legislative branch will pass

In terms of passing new legislative initiatives (modulo some appropriations stuff), the legislative branch is _already_ effectively Republican-controlled because of the GOP House.

The big Senate changes are probably Udall's departure and Feinstein and Leahy losing their committee chairs. Udall's successor is also pro-reform but without the seniority. As for Leahy, there's a reason why the Sunlight Foundation and the other groups have been critical of his bill.

For background I wrote this last year:

[http://www.cnet.com/news/nsa-senate-oversight-bill-may- handc...](http://www.cnet.com/news/nsa-senate-oversight-bill-may-handcuff-u-s- companies/) ...the Vermont Democrat also authored the 1994 Communications Assistance for Law Enforcement Act, which is now looming over Web companies, as well as the deeply unpopular Protect IP Act. Leahy had introduced significant portions of the Patriot Act under the name Enhancement of Privacy and Public Safety in Cyberspace Act (PDF) more than a year before the September 11 attacks happened...

<comment><USER4> > The big Senate changes are probably Udall's departure and Feinstein and > Leahy losing their committee chairs.

Which is a side effect of them losing control of the Senate and falls under "Republican control" creating the change.

[http://www.washingtonpost.com/blogs/federal- eye/wp/2014/11/0...](http://www.washingtonpost.com/blogs/federal- eye/wp/2014/11/05/what-does-the-gop-senate-takeover-mean-for-committee- leadership/)

If you'd like, I could list out the side effects of Republican senate control such as the impact on appointments as well if you'd like? I just assumed it was common knowledge.

<comment><USER3> That's why I said "new legislative initiatives" and not "appointments."

<comment><USER4> I think you completely missed the point of why I pointed out an example of another side effect. :/

I'm going to drop it.

</comment></comment></comment></comment></comment><comment><USER5> Yeah, no.

Reading the Sunlight Foundation opposition to the same bill, it's clear that they see benefits in the bill, but think the problems are bigger than the benefits. The EFF goes the other way.

That doesn't make them less credible, it mens their priorities are different.

(And it's completely unclear what Google funding of EFF has to do with anything discussed there)

<comment><USER6> > (And it's completely unclear what Google funding of EFF has to do with > anything discussed there)

"grants broad immunity to corporations that are undercutting our right to privacy"

</comment></comment><comment><USER7> The ACLU is also supporting it.</comment>


Tell HN: Daeken Discount Program - <AUTHOR> http://daeken.com/daeken-discount-program

<comment><USER2> _I think that people will see that I build cool things, and it's a small enough amount of money that everyone that buys into it will eventually at least break even._

This will sound harsh but it seems like you are asking me to pay $50-$200 so that just to break even with my investment I need to commit to spend a further $600-$950 on an unnamed product based on a blog post with your only business credential being a failure. Based on your writings about Renraku, I am ready to believe that you are a great hacker but that doesn't mean you make great products too.

This would be a lot more credible and successful if you were selling something (anything!) _today_ and offering a lifetime discount to go with it.

</comment><comment><USER3> What have you made so far? This could work really well if you had other projects out there that people could see to get a feel for what sort of work you do.

Although, I think your prices are too high; and I think you should increase the discount you give with the amount of money people give you.

You're basically giving 5% off for every $50 up to $250; I don't think that encourages people to give you larger amounts.

<comment><AUTHOR> Point well taken, thanks. I'm going to update it to include a list of what I've worked on and what I'm going to be working on in the future.

Edit: Done. Thanks again.

Edit #2: I considered changing the pricing, but I'm not certain of how I should go about it. Perhaps 5% at $50, 10% at $90, 25% at $200? That'd give a good benefit to going higher.

Edit #3: Decided to change over to that pricing; what the hell, why not.

</comment></comment><comment><USER4> You should probably make some restrictions, as this model assumes you can sell additional products at little/no cost to yourself. What if somebody contracts you for a $20.000 project and whips up a 25% discount card?

<comment><USER5> They pay $15,000 for it, as far as I can tell from the blog post.

</comment></comment><comment><USER6> Please report back with how many of these you actually sell.

</comment><comment><AUTHOR> I decided to launch this experiment today. Don't know if it'll be successful or not, but I think you guys will be interested in it.

<comment><USER7> i think it's cool. you might want to check out kickstarter as well.

</comment></comment><comment><USER8> Interesting experiment.

How much for a lifetime of free?

Additional factors you could play with: 1\. Let people name their own price and % discount (0-100) and reject or accept their offer. 2\. Let those who invested in you contribute to what you build next. Perhaps assign voting share based on $ invested.

</comment><comment><USER9> huh. my concern would be 'what if I don't sell enough to make it worth putting in the discount codes in every product' - e.g. you're going to have to modify your billing system (and more importantly work it out with your partners) every time you put a product out. If you only come up with a few hundred dollars in discounts, that might not be worth it.

</comment><comment><USER10> I think you need to be a bit more firm on the rules for it. Maybe even give people a contract...

<comment><AUTHOR> Assuming you mean in terms of protecting the users, I tend to believe that the people who would buy into this are those who have faith in me building cool things anyway, and will take me at my word. I don't think many people who don't believe me would buy into this, with or without a contract.

If you mean protecting myself, I don't think the people who would buy into this are going to scam me. If I were going to be selling some low-margin items, I'd probably be more concerned, but I just don't see it as an issue honestly.

<comment><USER11> I would take you at your word, but right now your word says literally "I'll do my best to give you the discount" (edit: if certain scenarios come to pass, such as you starting a company). That's pretty weak.

Interesting experiment. The danger is you get a handful of takers, then you have to live forever with the admin overhead of keeping track of them (as they change email addresses, etc. over the years), all for a little temporary pocket money. I guess that's why you need to say things like "I'll do my best." Maybe you could add a condition, saying the deal will kick in once X number of people sign up, otherwise everyone gets refunded.

<comment><AUTHOR> Perhaps I need to fix some wording, but what it comes down to is: You will get a lifetime discount on any product I build, period. In the unlikely case I end up working a day-job for the rest of my life, I'll do everything in my power to ensure you get the discount, even if I have to pay the difference myself.

I'm going to look over my post and see how I can improve the message. Thanks.

<comment><USER12> >In the unlikely case I end up working a day-job for the rest of my life

Statistically, that's an incorrect statement despite the best wishes of all present.

You also failed to present anything remotely resembling a sane value equation. The only product of yours that the mass market would've been interested in, you managed to crash and burn.

You're not exactly offering anything in return for the money at the moment, and you don't have _that_ large of an audience either.

Not even Joel would have had the gall to try something like this.

</comment></comment></comment></comment></comment><comment><USER13> My number 1 FAQ would be -- What if you end up starting the next Microsoft. How would I reasonably expect to get a discount on my copy of Daeken Vista from Best Buy?

<comment><AUTHOR> If I end up making boxed software, I'll allow people to send in proof of purchase for the difference. That said, I don't see too many people buying this who still buy boxed software ;)</comment></comment>


China to use Ubuntu Linux as reference architecture for operating systems - <AUTHOR> http://www.canonical.com/content/canonical-and-chinese-standards-body-announce-ubuntu-collaboration

<comment><USER2> What excites me most is "Future releases will include integration with ... payment processing for Chinese banks", because this will make shopping on Linux a reality, which I have been waiting for for a long time, and when I want to buy an Amazon.cn kindle book, I can use the online bank accounts I have with me, without the necessity to change to Windows anymore.</comment>


Neuroscientists say multitasking literally drains energy reserves of your brain - <AUTHOR> http://qz.com/722661/neuroscientists-say-multitasking-literally-drains-the-energy-reserves-of-your-brain/ <comment><USER2> Honestly, it just sounds like an argument for practice to build up your stamina.

</comment><comment><USER3> I should stop keep checking HN all the time then.:)</comment>


Yahoo Sale 'Book' Reveals Financial Meltdown and Big Bet on Mobile Voice Search - <AUTHOR> http://recode.net/2016/04/06/yahoo-sale-book-financial-meltdown/ <comment><USER2> IMHO, Yahoo Finance is a wildly undervalued asset. It has the deepest and highest quality data integration of any publicly available site. I use it every day.

It has also been largely ignored for better part of a decade. Three areas where Yahoo just fumbled the ball: 1) Portfolio tracking, 2) Message boards and 3) Monetization. None of these have been upgraded in years.

Portfolio tracking is an exercise in good UI & UX. Yahoo could and should have bought any number of good teams over the years that have built portfolio trackers.

Yahoo finance message boards have very low signal to noise ratio. They should have either gone the reddit model of comments or even better, Yahoo should have bought Seeking Alpha a long time ago. Alternatively, when Seeking Alpha began to grow, Yahoo should have built a competitive product. Instead Yahoo let their message boards turn into a low value destination.

Monetization - this is just comically inept. Visitors to finance sites have and care about their money. They also tend to be older. Some of the highest paid ads target these people: Credit cards, mortgages, health, travel, banking, personal loans, autos, etc.

Yahoo finance should have been the center of a massive business unit at Yahoo generating a substantial percentage of their revenue.

What went wrong?

<comment><USER3> I agree. I would think that the problem of yahoo finance is an engineering problem: in fact, Yahoo finance was built on a solid technology that was good 10 years ago, but has basically been kept under maintenance ever since. Several attempts have been made to modernize it and they have almost all failed. In addition to this, yahoo finance has been an interim property within yahoo for many years, the kind of place where middle managers would find shelter before their next career move, hence the lack of risk taking. So far, it remains the best finance website in my opinion, but it's sad when you think about how much better it could be.

</comment></comment><comment><USER4> The most relevant portion is buried at the very end:

> While some are scared by the numbers, everyone I spoke to plans to make a > bid of some sort, largely because even as financially precarious as it has > become, Yahoo remains one of the biggest properties on the Web and it is > hard to be able to buy that kind scale easily.

> "It's like a dilapidated house in Silicon Valley — you walk in and are > overwhelmed by the work that needs to be done and how bad it has gotten," > said one potential buyer. "But then it's in a good neighborhood, the market > is nuts and there's not many like it anymore, so you have to hope you can > fix it."

<comment><USER5> the most likely explanation is that Yahoo is being mismanaged to drive price down.

there's a saying that translates roughly to "you bad-mouthing things you want to buy".

<comment><USER6> nokia

<comment><USER7> Yes because that was an incredible purchase for Microsoft!

<comment><USER8> Well, yes and no. I think the plan was to stop mismanagement after the purchase, but someone forgot to execute that part.

<comment><USER7> I think it was more Ballmer not having a clue about mobile. When I first saw his idiotic response to the initial iPhone I knew he would fail hard in the mobile space. Even today I think his idea of a smart phone is a Windows Mobile 6 device.

</comment></comment></comment></comment></comment></comment><comment><USER9> I am having a hard time recognising any kind of strategy on Yahoo's part. Does anybody even know what the core of their business is? Are they a search engine? Are they some kind of media company? An ad agency? What is that they do? Meyer is seemingly done very little in her four years as CEO. She has shifted things around internally, fired a lot of people and acquired some things. But none of this seems to really go anywhere. The Tumblr acquisition was already a complete bust and has resulted mostly in write-offs. No technology company has ever dug itself out from a hole like this - no company except for Apple, that is, and it took Steve Jobs to do it.

<comment><USER10> I'll never not be able to think of how they spent $30 million on a text summarizing phone app created by a 15-year old. How humiliating that must be for Yahoo engineers, who have put out great technology and frameworks (such as Pure, in the case of the latter) and could've easily developed this in- house...but few people ever think of Yahoo engineers in nearly the same light as Google or Microsoft engineers, and yet Yahoo is spending millions to _further_ the perceived impotency of their engineers.

[https://en.m.wikipedia.org/wiki/Nick_D%27Aloisio#Summly](https://en.m.wikipedia.org/wiki/Nick_D%27Aloisio#Summly)

Though on a nicer note, great to see that that 15-year old, who was already well-off before becoming a Yahoo millionaire, ended up quitting to go to school to study computer science.

<comment><USER11> I remember reading a theory that this was a way to launder investment recovery to Li Ka-Shing while disguised as an acquisition and PR move involving a 15 year old wonderkid (with well connected parents)

<comment><USER12> > a way to launder investment recovery to Li Ka-Shing

Even if you hypothesize that he got all of the $30 million...does Li Ka-Shing care? That's less than .1% of his net worth.

<comment><USER13> His financial advisors might, even if he's unaware.

</comment></comment></comment></comment></comment><comment><USER14> Yahoo had/has a cool products, mail, groups, pipes, boss, Flickr ...

Instead of improving these products, Mayer went on a shopping spree and bought useless things , like Tumblr (I'm sorry but Tumblr is a complete failure under Yahoo), Sumly and basically let them rot, just like the previous products. And she want to stay 3 more years ? without a serious plan ?

Ultimately, MSFT will buy Yahoo, so I'm sure Mayer will get a good bonus, but what a fiasco she was.

<comment><USER15> I disagree, tumblr as a social site has fluorished under Yahoo. If twitter, facebook, and pinterest have shown anything, you can build the community and pivot into profitability.

If you want to see failures, look at flickr or delicious.

<comment><USER14> > I disagree, tumblr as a social site has fluorished under Yahoo

Tumblr is a commercial failure under Yahoo. It didn't make money then, it won't make money now.

> twitter, facebook, and pinterest have shown anything

Neither of them have been acquired by another company... let alone Yahoo.

> look at flickr

Flickr has actual paid users and is one of the only service at yahoo that is still relevant.

</comment></comment></comment><comment><USER16> Maybe Yahoo! should build a smartphone. That'll solve all their problems. Hey, I'm just trying to help.

</comment><comment><USER17> Don't understand why Yahoo is in such free fall. It is easy a top 10 website. Ads on the site probably sell for millions. Their content / engineers/tech can't be that expensive. What are they spending all that cash on.

<comment><USER18> Problem is they don't just focus on few products/sites, instead they make like random products(eg : livetext) and acquisitions(quite a few which were shutdown later). Focus is the key. Apart from flickr & Tumblr, there is no other product they own is very attractive.

<comment><USER19> So, is the problem just that Yahoo doesn't have a good narrative about itself?

<comment><USER18> Kind of! As a normal guy, i can only speculate. But, it's pretty obvious that they don't have a strong product line. The products like Tumblr,finance,fantasy sports,Flickr are good, but none of them has a monopoly over certain area. Also, the ad network media.net which is in collaboration with bing is no where a hit. Yahoo hires really good engineers(some friends work there), but i guess the people in the management clearly doesn't have a strategic vision.

</comment></comment></comment></comment><comment><USER20> I am not going to use mobile voice <anything>. Not unless we have local AI processing natural speech on my own device. No cloud voice fingerprinting for me, ever.

I imagine there must be companies already buying voice prints and cross referencing them with voiced heard in stores to identify/target customers somehow.

</comment><comment><USER21> > Yahoo Japan switched to Google many years ago

What _is_ Yahoo Japan? A completely different company or something?

<comment><USER22> Yes. It's a joint venture with Softbank.

</comment></comment><comment><USER23> I'm currently writing off Yahoo. No matter what happens, it's been managed to badly I just can't see how they can make a comeback.

Years ago they had a chance to claw their way back, but not any more.

<comment><USER24> What would be considered a come back for them? Is it even possible to define that?

Over the years they've had decent income, they have great traffic numbers, they have all these things that seem to indicate success inside the echo chamber. Now they've got a shit brand, the brand is right there with AOL. They aren't going to have google or facebook numbers though, I don't know that I'd expect any other company to match those though.

It's just a game now, tons of people are envious of their traffic. they've probably got some great properties as well, sports, finance and fantasy sports seem to be universally enjoyed. Someone just wants to steal it for as cheap as possible.

<comment><USER23> Split the properties off into seperate companies, with their own management with little interference from the parent company.

And remove Marissa Mayer, who has made some absolutely dreadful business decisions and continues to make them. Sorry this is harsh, but she's had many years to prove herself now, and she has shown that she's not the leader that Yahoo needs to restore its past glories.

Unfortunately Yahoo is a shell of its former self, so I can't see how else they can resolve their problems except by giving different business more autonomy and zero interference. It's rather Darwinian, but those who will succeed will survive, and those who were never viable (of which there were _many_ companies who were purchased for Mayer who would have ultimately folded eventually) will wither and die on the vine.

</comment></comment></comment><comment><USER25> "stock-based compensation remains steady. At well over $400 million annually now, that's double what it was only a few years previously and means CEO Marissa Mayer is loading up valued employees with outsize share grants to get them to stay."

That's the cargo cult she follows from her days at Google: valuable employees like herself get lotza stock, and _therefore_ the company magically prospers.

<comment><USER26> Isn't that true of basically every modern company? A term like "cargo cult" is way too strident for a practice which is so widespread – we don't even know whether that's a few executives getting a big payout or a bunch of key lower- level employees being convinced not to bail.

<comment><USER27> Yep. Giving a total dollar value is meaningless because at most places, the top execs get inundated with stock--millions and millions of dollars worth-- and the rank and file get nothing or close to nothing. Would love to see the distribution.

<comment><USER28> Under Marissa, engineers stopped receiving options and instead were being offered $40,000 in "stock replacement" over 4 years - worth about 3% - 5% of what a Google engineer would expect (unless they were hiring somebody away, and then they would match the previous company.)

So, cab fare for most new engineering hires.

</comment></comment></comment></comment><comment><USER29> They keep switching courses, now the new thing is a Siri "competitor" apparently. Except Amazon and Apple aren't even trying to make money on that, they're adjuncts to actual products. There is definitely room to improve on Siri (haven't used Alexa) but it's nonetheless markedly better than when it started. It seems like not only a tough thing to get right, but again, there is the issue of monetizing it. Just seems like a weird thing to go after.

</comment><comment><USER30> The question is simple:

You have deep learning, what would you build with Yahoo's data?

</comment><comment><USER31> So, they are doing a good job of selling an overvalued asset? Seems like the sales acumen exists somewhere in Yahoo!, just not in anything that is truly going to help the company succeed.

</comment><comment><USER32> Ya who?</comment>


Ask HN: Advice for my first day as a developer tomorrow - <AUTHOR> It's my first day in my first job as a developer tomorrow. What are some useful things to know and do to be prepared? <comment><USER2> Don't send an embarrassing company-wide email about how someone ate your lunch. I'm still working there after 6 years, but I get reminded about it now and then.

But seriously, focus on learning from your peers as much as possible. Don't worry about what others think of you or your code. You shouldn't take code reviews personally. Seek objectively simple solutions to problems.

Good luck and may you find fulfillment in your new job!

<comment><USER3> Embarrassment? That's your lunch! At some point you have to take a stand and defend yourself against these animals that knowingly eat another persons lunch. What's next? First it's lunch, then it's your car, your identity, then your 3pm snack!?

</comment></comment><comment><USER4> * Don't be smart ass or know it all type - even if you're indeed the smartest in the room.

* Sit back and learn the culture before you start stepping on toes.

* Value mentorship - learning why things are the way they're will give you insights into the evolution of the company.

</comment><comment><USER5> Don't forget to have fun! You probably like being a programmer, so don't let this job change that. Treat yourself well. Personalize your work tools to your liking as much as possible. Bring a cup you like to the office and use that. Be alert in case your chair is uncomfortable.

</comment><comment><USER6> Do a little more than expected. That's where the magic happens. That's how you grow and improve. That's how you build connections, and get freelance work or meet that cool guy who starts an exciting startup, or get recommended for that job at whatever corporate you want to join.

Improve a little bit every day. Honestly this has given me the most returns. It doesn't have to be much at all - find a nicer IDE theme, memorize one shortcut, read up documentation on that command you use a lot but never understood.

Explore things that interest you, not necessarily the one that seems like the next career step. When you're young, your hacker instinct is probably more accurate than most of the data and buzzwords going around.

</comment><comment><USER3> Find your go-to rotation of music and podcasts so you can immediately plug in when you want to get in the zone. I highly recommend checking out [https://brain.fm](https://brain.fm). I pay like $6.99/mo (about same as my Spotify subscription) and it has been an absolute gamechanger for me. Piano music, lo-fi, classical music are also great places to start if you have Spotify.

For podcasts, which aren't always great since they can be distracting, I've been enjoying Bill Burr's Monday Morning Podcast lately. It's absolutely hysterical hearing him rant for a few hours every week.

<comment><USER7> I'd recommend the complete opposite - _don 't_ wear headphones for the first few weeks. The micro interactions that you get in the work place can make or break your relationships with your new colleagues.

<comment><USER3> That's actually a fair counterpoint. Take my advice once you're settled in for those times you do just want to be heads down and focus.

</comment></comment></comment><comment><USER8> Don't try to prove yourself or worth by "over programming". Learn the culture and abide by it. Don't try to change everything as soon as you start working. Control your ego.

<comment><USER9> I'd chime in that most places there is a 'big picture' and what people think is the 'big picture' OP should try to learn what those two are. Because you want to work with and not haplessly against them.

</comment></comment><comment><USER10> Congrats on the job!

First day you aren't going to be doing any coding.

You are likely to be doing a lot of admin nonsense, getting your dev environment set up and learning how their source control works / is structured.

After that you will be told to pull something from source control and will probably spend next couple of weeks familiarising yourself with the particular code base you are going to be working on. Don't treat this as an easy slacking off period. Take it seriously. If you are going into a code bases in the 100K+, 1M LOC size then this is a fairly hefty task on it's own to try and understand the architecture / structure.

Ideally they will pair you with someone senior for a few weeks if you are a junior developer.

Do you know what source control they use? If so it's worth getting to know it before you start.

If you are a junior developer, develop a thick skin, you will likely get lots and lots of comments on your code and potentialy a lot of them negative. This is fine, this is expected. Learn from it. Don't end up in your feelings or take it personally.

Be prepared to ask lots of questions, again if you are a junior developer this is totally expected.

What would be nice is to get included in code reviews from the start, look at the comments on other peoples code reviews and learn from them! This will help you pick up the expected style as well, if they have one (and it's not enforced by some auto-formatting).

</comment><comment><USER11> Don't eat lunch alone. Build rapport with your colleagues.

</comment><comment><USER12> Hey, just want to say good luck and hope it goes well! There will be a lot to learn but take it one day at a time. It's a long journey but a fun one. Try to absorb as much information as you can from your coworkers.

Shameless plug: I'm starting a newsletter focused on offering career advice for programmers. You'll learn plenty of technical skills in your new role, but my hope is I can teach some younger devs what kind of soft-skills are needed to navigate your career.

Feel free to subscribe here: [https://juniortosenior.substack.com/](https://juniortosenior.substack.com/)

</comment><comment><USER13> \- continually challenge yourself

\- once you are there for a few months, take ownership of something (a part of the product, some piece of tooling, an area of support, etc) and become the go-to guy for that. You will be rewarded for it

\- ask a lot of questions and don't be afraid to look stupid. People are often relieved when you ask the "dumb" question because they didn't know the answer either

\- along the lines of don't be afraid to look stupid, if something is going poorly or isn't going to meet a deadline you have set, ask for help as soon as possible

\- take ownership of your own career. no one will give you a raise or a promotion without you asking. Occasionally someone who is an absolute standout will get recognition like this, but it's rare

Good luck

</comment><comment><USER14> \- Read some recent PR's on an area of the codebase you'll be in. See if you can come up with some questions if you can't figure out why something was done. It would impress me if someone came to me with great questions or was just interested in learning.

\- Be aware of your time. Sometimes, devs can be pulled in many different directions that distract them from what matters.

\- Learn and research your company's tools and practices, i.e. Github/Bitbucket, Trello/Asana, scrum/okr's, etc.

\- Get your dev environment running. If there are bugs or issues in the documentation, see if you can make a PR and fix it for the next person.

edit: PR stands for "pull request." Adding, since I would not have known this just out of college.

</comment><comment><USER15> You will screw up at some point. It's ok. It happens, we all took a website offline or merged the wrong branch. It's part of the learning process.

Learn from everyone, there are many different ways of doing everything, don't just follow blindly one person, observe what everyone is doing and choose whatever works for you.

Be always open to improving, learning and becoming a better dev. This is a job that is ever evolving.

Read the error and understand it. Don't click blindly "ok" or "close" on error messages, they might contain essential clues that are too easily dismissed. Error messages are often done poorly but are also one of the main tools we have.

Don't overdo it. It's soooo easy to burn out, be conscious of your health.

Have a great first day!

<comment><USER16> I remember my first big screw up, at my first start-up I worked at.

I mounted production server webdir as an sftp mount remotely. Then I remember doing chown -R at some higher level directory locally thinking it surely won't affect NTFS remote system, but boy was I wrong. It caused a one whole day of downtime. Thankfully easy to fix once I figured it out.

My boss couldn't live it down for a week or two, but eventually it dissipated and I earned a lifetime lesson, and nothing really was lost.

<comment><USER17> Almost 7 years in since my first job as a developer and I did a 7k£ worth of damage at my current company after merging an enormous PR which among others, messed with the production DB. It was so huge none approved it but I got written confirmation from my manager to merge and "see what happens in production". :P Shit happens. It's never your fault, well, unless when it actually is.

</comment></comment></comment><comment><USER18> If you have the opportunity to socialize with your coworkers, especially if alcohol is involved, be more careful than you would with friends.

Avoid obscene language or crude humor. Most people tend to smile and laugh even when they feel uncomfortable.

</comment><comment><USER19> Get a good engineer notebook or any notebook and take notes when someone is teaching/training you.

It looks really bad if you have to go ask them something they have already told you.

</comment><comment><USER20> everybody is equal but some are more equal. try to identify people with ties to hr/ management and try not to step on their toes. no need to be overly friendly, just be careful around them

two people you need to be always friendly with are the facility manager/ janitor and the reception person. they run the place. thats how you get a better chair or get your amazon packages accepted

dont try to suppress your personality for too long, forget about stuff "yeah i would have liked to speak up about <issue> but im just here for a week, i better wait couple month then ill allow myself that" people notice changes in behaviour (mostly as negative), and in two month you will have an established position in the social hierarchy. if you are a loudmouth, be loudmouth from day one. "the new guy is a loudmouth" will get easier pass than "you noticed? bob is turning really arrogant lately/ since his promotion"

some sitting places are vacant for a reason: smelly colleague or malfunctioning ventilation unit blowing cold air at you. choose wisely before you get stuck in there

dont take shit from others, dont overwork yourself or you will be the "he works an hour more anyway" guy

take your time to learn and read and research twice. take notes of everything you are shown and taught about the thing you work on. be it stuff like "you need to kick the server here to keep UPS from failing" or "dont change spaces to tabs in this file, it will break the build" passing remarks like this are the most valuable insider knowledge there is

remember that you are a social animal and so are others. spending an extra half hour joking with colleagues after lunch is done, instead of leaving the table immediately, makes quite the difference

</comment><comment><USER21> Don't get stuck on a problem for too long. Ask for help. On the other hand, don't immediately ask for help but try to figure it out by yourself first.

</comment><comment><USER22> Your first job pretty much determines in what direction your career it's going to go. If you work with tech you like then good for you. If you don't make sure you move within a team that does because your next job will be just an upgrade of what you are doing now, and you better choose the right thing.

<comment><USER23> > Your first job pretty much determines in what direction your career it's > going to go.

This is untrue. Your first job shows you what all the variations in roles actually are in this industry. It isn't just coding. Do the work, take note of what everyone does. And if there is something that you like more than coding, try to learn that.

You have flexibility - nothing is set in stone. Many people change gears numerous times as their career progresses. Don't stress over it.

<comment><USER22> if he is willing to start again as a junior on a lower salary when changing fields then yeah

</comment></comment></comment><comment><USER24> Do your best, focus in the tasks, and mind the networking you create at the beginning, is very important.

Over all don't burn out, put your time in work and learning but also put time in joy and rest.

Programming is addictive and will you a workaholic. Mind your times well.

</comment><comment><USER25> \- don't worry about code

\- be friendly and focus on getting to know your coworkers a bit

\- get all of your account credentials (tools, apps, etc)

\- ask about benefits/hr stuff/etc

\- set up your local environment (just setup)

\- again, don't worry about code yet (no reason you should be dropping code - even tests - on day1)

</comment><comment><USER26> Feel free to ask questions. As much as possible. Then it will not be so comfortable

</comment><comment><USER27> Don't be afraid of asking (what you think might be) stupid questions.

</comment><comment><USER28> Remember to learn something everyday. There are people with 20 years of experience who have only learned 1 year repeated 20 times.

</comment><comment><USER29> Get:

1\. Headphones

2\. Water Bottle

3\. Coffee mug

(You may want to wait on these, they might provide them)

Be:

1\. Friendly

2\. Open to learning new things

3\. Humble

4\. Open to asking for guidance

5\. But self sufficient when you can.

Good luck!

</comment><comment><USER30> Find out where the bathrooms are.

<comment><USER20> even better: find that one forgotten single stall bathroom on the third floor where you can poop in peace

</comment></comment><comment><USER31> LOL, Just hope no one from your new office sees this post

</comment><comment><USER32> Listen. Talk very little. Good luck!

</comment><comment><USER33> measure twice, cut once.

day-to-day programming is a lot more like carpentry than science...</comment>


Show HN: Reading the 'typed.js' way.Suggestions,ideas? - <AUTHOR> http://alpha.blinkr.io/s/christopher-columbus-fools-the-jamaicans <comment><USER2> Co-founder here! This was a simple idea that occurred to us a couple of months back.

We realised that most people nowadays, due to a shorter and smaller attention span, tend to skip words, lines while reading any form and content. This has led to a lack of comprehension.

Blinkr helps you read better, while simultaneously creating an aura of suspense while reading an unfinished document :D

Looking for any sort of feedback :)</comment>


Getting started with OpenWrt - <AUTHOR> http://www.cambus.net/getting-started-with-openwrt/

<comment><USER2> I looked around and couldn't find any real good information on OpenWRT support on the Ubiquiti UniFi UAP-AC[0]?

In a previous thread, when I asked about the best devices to use with open router firmware, Ubiquiti was the most upvoted solution [1], but when checking out the OpenWRT wiki there is very little information on using them with OpenWRT and none that I could find on the AC model specifically.

Does anyone heavily involved in OpenWRT have any advice on how to figure out whether the Ubiquiti UAP-AC is going to work with OpenWRT before I drop money on it?

[0] [http://www.ubnt.com/unifi#apac](http://www.ubnt.com/unifi#apac) [1] [https://news.ycombinator.com/item?id=6828699](https://news.ycombinator.com/item?id=6828699)</comment>


My Thoughts on the Datomic License - <AUTHOR> http://blog.goodstuff.im/datomic_license <comment><USER2> In a presentsrion by Rich Hickey, one of the answers in the Q&A section afterwards about this was along the lines of "I want to put my kids in college"

I too am very interested in diatomic, but I find the no benchmarking clause to be absolutely ridiculous in this environment. sure, some technologies are harder to compare because the specialization differs, but surely with something like the yahoo cloud data test or whatever could be helpful for someone considering the trade offs they get with Datomic.

<comment><USER3> > I find the no benchmarking clause to be absolutely ridiculous in this > environment

That's called a DeWitt Clause and most database ELUAs have it.

[http://en.wikipedia.org/wiki/David_DeWitt](http://en.wikipedia.org/wiki/David_DeWitt)

<comment><USER4>
        The original DeWitt Clause was established by Oracle at
        the behest of Larry Ellison. Ellison was displeased with
        a benchmark study done by David DeWitt in 1982, then
        just an assistant professor, using his new Wisconsin
        Benchmark, which showed that Oracle's system had poor
        performance.

It takes a special kind of sicko to take someone you don't like, create a fairly dickish policy to basically restrict free speech/fair comparison of products, then _name said dickish policy after the person who was trying to encourage the exact opposite._

See, if it were just "the ellison clause" it would need no further explanation.

</comment></comment></comment><comment><USER5> I have considered and purchased a number of commercial libraries and development tools over the years (in particular, some Lisp implementations/compilers and databases, and some libraries), so I'll drop in a few notes on the subject:

* Price does not necessarily correspond to quality/capabilities. I have seen very expensive software that was disappointing, and very cheap (or free) software that was impressive.

* Paying a lot for software does not mean you will get the support you expect. You _will_ get the attention, but your problems will not necessarily get fixed. This is just a business reality: some problems are too expensive to fix.

* A commercial licensing agreement you enter into is usually a huge problem that crops up later. It's baggage that you will carry along and will need to look into regularly: when you make a huge new sale, when you sign an escrow agreement with a customer, when you go through due diligence, or when you sell your company.

* A licensing agreement with revenue sharing is an even bigger problem. Setting apart the management costs, it is something that not all of your investors/partners/buyers will approve of.

* Commercial software, in general, has fewer users than free software. Which means you are more likely to end up the first or the _only_ user of certain functionality. Not a good place to be in when you have systems to ship.

* If a company does not have a clear pricing structure, the negotiations might take too long to be worthwile. Just hearing a price is sometimes difficult and requires exchanging multiple E-mails ("let us assess your needs so that we can provide you with a custom quote").

* If you build your product on top of a commercial library, take into account that you are now dependent on the company you bought it from. Unless you have the source code and the rights to modify it — but even then, if the company goes under or gets bought, you might end up holding the bag and having to develop and support the code you bought.

Put another way, when I make a decision to use a commercial library, in general I will avoid it, unless:

* the pricing is transparent and immediately available,

* there is no revenue sharing, quarterly reporting, etc,

* there are few licensing restrictions,

* there are enough users I know of that I can assume the library has been used and tested,

* I get the source code,

* I get the rights to use the code after the company goes under or gets sold.

</comment><comment><USER6> I was confused by, or the author is confused by the free community edition license.

The JAR files and runtime of the free community edition can be redistributed in other open source projects. Right? Haas something changed?

Edit: the author probably wanted to purchase the commercial version. If this is the case he could still package the runtime assets for docker, etc.

</comment><comment><USER7> As a developer of commercial software, this strikes me as a lot of paranoia, although I do agree with one or two points.

These types of agreements have to be somewhat broadly written so that if someone acts like a jerk and e.g. resells Datomic as a cloud service, the license has a way to stop that. It has nothing to do with preventing you from privately installing your Datomic instance on AWS, or otherwise being a reasonable customer.

Companies generally have a strong interest in being fair to their customers. Taking the most paranoid reading of the license text like it is constitutional law and tyranny is right around the corner is simply incorrect and unfair.

I invite comment on my own license: [https://wukix.com/mocl-license- agreement](https://wukix.com/mocl-license-agreement) (for [https://wukix.com/mocl](https://wukix.com/mocl))

<comment><USER8> Which parts specifically would you consider paranoid? Issues similar to those pointed to by DPP (e.g. those found in the License Grant and Restrictions sections) have been used many times by software vendors to extort fees from licensees. And before you say that this would surely take such vendors out of business in short order, please know that this approach has been used by some of the worlds most successful software companies who are still very much around and well (at least financially).

<comment><USER7> For starters, objecting to the anti-criminality clauses seems paranoid. Granted, if you're a human rights organization under a hostile government, maybe you need to worry about this. But otherwise, what is the problem? Does one really need the ability to write viruses with Datomic? WTF?

Can you point to any specific examples of the extortionate behavior you describe? I imagine some companies cry extortion when they get nailed for genuine infringement (e.g., lots of unlicensed installs), but I would like to see an example where a software vendor went truly tyrannical on a customer that was actually using the software as agreed and intended.

</comment></comment></comment><comment><USER9> > I'll use PostgreSQL 9.3 with JSON support. Yeah, it's technically not as > good, but I know what my rights are.

What makes Datomic better than pg?

<comment><USER10> Depends on what you are after I guess. Datomic puts the query engine in your application, so you're querying over a built-in cache. This means Datomic could be rediculusly fast for often requested data (should always be in cache). Datomic allows you to "travel back in time" as it has built in time management. Writes never blocks reads. All writes are atomic. Datomic supports functions (Java or Clojure) in queries and transactions. There is more, but this was a list of my most liked features.

Of course, Datomic has some drawbacks as well. Like storage space. Datomic never deletes anything, and isn't exactly conservative on storage either. For instance, a timestamp is saved for every value in the database. This allows you to view the database the way it was at any point in time, or tell you exactly when a user changed his password, username or email, but it does have a storage cost. Since Datomic is distributed, you also need a bigger setup (more machines) than with traditional databases.

<comment><USER11> I know you're not contrasting against PG here, but just to add: writes never block reads in PG either, all writes are atomic, and you can create functions for use in queries.

The main USP for Datomic is the way it distributes data, which if you've got the right use case (i.e. you're generally querying over a subset of the data) is really nice.

</comment></comment></comment><comment><USER12> He does make good points about the legalese. Quite worrisome.

</comment><comment><USER13> It seems to be that this post is just not happy with the fact that Datomic guys are selling their software :)

<comment><USER14> From the article,

"I will also gladly pay Cognitect for Datomic if I get it into production for a non-trivial site."

<comment><USER13> "I will also gladly pay" \+ look there are guys who give their product for free + I don't agree with your pretty much standard EULA = I will never pay but I would use it if it were free.

<comment><USER15> Your words, not his.</comment></comment></comment></comment>