Robot smashes Rubik's Cube record with 0.38-second solve - <AUTHOR> https://arstechnica.com/gadgets/2018/03/homemade-robot-smashes-rubiks-cube-record-with-0-38-second-solve/ <comment><USER2> They discuss "tightening up the cube", but it also looks like it's been modified in other ways, most significantly; rounding the corners of individual pieces of the cube.

Has that rounding come naturally just due to use? Or did they round the corners intentionally?

<comment><USER3> It looks like its just a standard speed cube. Here's [1] a model that looks almost identical to the one they have.

There is an entire industry of Rubick's cube makers that make cubes specifically designed for people that like to try to solve them as fast as possible. They're typically much smoother to turn with a lot more flex in the joining mechanism before it all pops apart. The increased flex allows you to turn the cube along a different axis even if you haven't perfectly aligned the cube to neutral yet.

[1] [https://speedcubeshop.com/collections/3x3/products/cyclone-b...](https://speedcubeshop.com/collections/3x3/products/cyclone- boys-feijue-m-3x3)

<comment><USER2> Indeed that looks like the exact correct product. Interesting how cheap it is for a "precision" and niche product</comment></comment></comment>


Cloudera acquisition: It's a Myrrix(cle) - <AUTHOR> http://www.theregister.co.uk/2013/07/16/cloudera_myrrix/

<comment><AUTHOR> Wow, that was quick! Smart move by Cloudera. If any existing users are looking for an open-source alternative to Myrrix for a scalable recommender system build on Hadoop/Mahout check out [http://prediction.io](http://prediction.io)</comment>


Volunteer by filming election fraud problems and posting on YouTube - <AUTHOR> http://www.videothevote.org

<comment><USER2> What's the point? There's already video footage of the NH primary hand recount where the people in charge leave the boxes of unsealed ballots outside of the vault and go home for the night. When the people in charge are asked why they aren't following procedures, they respond evasively, stating that they don't feel like putting the ballots away, and that the ballots are safe because they said the ballots are safe.

Regardless of if there was actual tampering, the blatant disregard and even contempt for maintaining any sort of security means the whole election was fraudulent. But of course nothing has come from that, and I doubt anything will.

</comment><comment><USER3> I couldn't imagine standing around with a video camera... this is the United States not Russia or Iran.

</comment><comment><USER4> The biggest vote fraud issue is non-citizen voting. Since voters aren't required to use ID proving citizenship at the polls, video ain't gonna help.

<comment><USER5> [citation needed]

I think given the experiences of 2000, 2004, and some of the horror stories already emerging, "non-citizens" voting isn't on the radar compared with vote- suppression, and technology that appears custom-designed for fraud.

But please show examples, I would be interested in the scope of ""non-citizen" voting.

<comment><USER4> <http://www.heritage.org/Research/Legalissues/lm28.cfm>

<comment><AUTHOR> Oh pleeeeeeease, the Heritage Foundation???? What a surprise, blaming Latinos ("non-citizens") for everything.

<comment><USER4> Oh, so you think it's OK that tens of thousands of aliens will vote?

Sorry, I didn't realized that wasn't fraud.

<comment><USER6> The Bush administration spent five years and purged its own attorneys trying to dig up some cases of voter fraud they could prosecute. In that time, they convicted a grand total of 26 people. If there was the slightest evidence that 'thousands' of fraudulent votes were being cast, it would have emerged by now.

<comment><USER4> We're essentially talking about hispanics voting illegally. Bush and Rove seriously believed they could turn hispanics to vote Republican in significant numbers, hence the "ownership society" and all that. They never had any strategic interest in anti-immigrant actions.</comment></comment></comment></comment></comment></comment></comment>


Ask HN: Do Any 'Coding Paradigms' Influence the Structure of Your Thinking? - <AUTHOR> Are there any coding paradigms or principles anyone in the HN community applies to daily life, in terms of how you look at a situation, or solve a problem not directly-related to Computer Programming?
I am not a coder, (learning JavaScript) but want to improve at "Thinking like a programmer," & understanding the line of thought along which coders "think in terms of" which yields creative work.
Also, if you know any great books on thinking like a programmer, it'd be much appreciated.
Thanks for you time. <comment><USER2> I think getting good at debugging software problems is a skill much of which should transfer well to just about any technical problem. The key is to be clear about what you really know, what you only think, or assume, you know and what you don't know. Then to perform experiments which move elements from the latter two sets to the first until you find the source of the problem.

A second thing about programming that is somewhat unique and can influence one's learning style is that the computer can provide you instant feedback on what works and what doesn't. Very few other disciplines have that characteristic. For example I was never very good at proving theorems in math classes because it was always hard for me to be sure my reasoning was valid and I wasn't missing some loophole in my proof. Doing formal proofs in a proof assistant like Coq is much more like programming, the computer is always there to tell you what you've really shown to be true and what you haven't. I suspect that I might be a lot more effective at writing proofs that way, though it's not something I've yet had the time to explore to any great extent.

<comment><AUTHOR> Awesome, thanks for the examples. Debugging rings a bell for me, especially with respects to Troubleshooting.

When I for the first time put Linux on my chromebook I had to troubleshoot virtually everything that wasn't working in order to learn how to make Linux work. Debugging seems in the same vein, but for code.

And the instant feedback is a great point. I've been reading & watching JavaScript videos, but seems that diving in & getting that hands-on experience of trying things out will allow me to experience that instant-feedback the computer has to offer.

Thanks again for your thoughts!

</comment></comment><comment><USER3> Leo Brodie's book _Thinking Forth_ gives a powerful insight into ways to think. It's also about the RPN language Forth.

<comment><AUTHOR> Great, just checked it out & am reading it right now. Thanks for the book tip!!</comment></comment>


A Day in the Life of a Modern Shepherd - <AUTHOR> https://www.newyorker.com/news/letter-from-the-uk/the-tweeting-of-the-lambs-a-day-in-the-life-of-a-modern-shepherd <comment><USER2> I had the great privilege of spending a couple days on the Rebankses' farm during lambing season two years ago. If it hadn't been for the ATV and the plastic overalls I'd have sworn I'd traveled through time. James's family and their neighbors are carrying on traditions that have been part of the land there for well over a thousand years. (Some of the local language even comes directly from the Old Norse brought over by the Vikings—"fell," for example; compare with Icelandic "fjall.")

I have enormous respect for their way of life. It is backbreaking, never- ending work, especially during lambing season, and they wouldn't give it up for anything.

<comment><USER3> > "fell," for example; compare with Icelandic "fjall.

Or the Norwegian "fjell". Another term that stuck out to this Norwegian was "beck", as you find pretty much the same term, "bekk", in Norwegian.

</comment></comment><comment><USER4> An editorial about rural America and the global economy by James Rebanks, the subject of this piece: [https://www.nytimes.com/2017/03/01/opinion/an-english- sheep-...](https://www.nytimes.com/2017/03/01/opinion/an-english-sheep- farmers-view-of-rural-america.html)

<comment><USER5> "We have all become such suckers for a bargain that we take the low prices of our foodstuffs for granted..."

This is spot on, but it elides the arguable good that low food prices bring.

For full disclosure, I grew up on a working beef cattle farm, and my side hustle is to raise a flock of twenty sheep with my wife, who is a veterinarian, in the Maryland suburbs. So I'm sympathetic to small farmers and local agriculture. But the story is more nuanced than that.

American agriculture, like much of American industry, has optimised for the highest possible production at the lowest possible prices. This has a lot of side effects, some good, some bad. The good, of course, is that food is far less expensive than at any time in history, and real famine is almost nonexistent - true, there are local famines, and those are horrible, but they're cause more by politics and war than by farming practices. Historically, people who weren't farmers soent something like 40% of their income on food. That number is now closer to ten percent in industrialized countries. Don't overlook that fact when thinking about hunger in America. It exists, to be sure - but it would be a lot worse without industrialized agriculture.

The downsides, of course, are numerous. You have to have massive economies of scale to compete, which means more and more farm land is in the hands of fewer and fewer farmers - who, often, are working land owned by investors or corporations. It not only encourages massive use of pesticids and chemical fertilizer, it actually demands it. It degrades the soil. It contributes to the existence of plant diseases, both by its focus on planting monocultures and by the pesticide use, which breeds resistant parasites. And it reduces genetic diversity in crops.

Animal agriculture is also affected. Corporate farming produces poor quality of life for livestock, reduces genetic diversity in livestock, increases public health hazards through antibiotic overuse and zoonotic disease outbreaks, and encourages overconsumption of meat.

And both contribute significantly to global warming.

But, unfortunately, most people vote with their pocketbooks most of the time. What would you do if your grocery bill went from $150 a week to $300 or more?

<comment><USER4> > What would you do if your grocery bill went from $150 a week to $300 or > more?

It depends on why, and whether I could afford it. If one can afford a 100% bump in food expenses, and can effect it by choosing to buy better food, then it would be worth it in my opinion. The problem to me is that real, sustainable food is basically impossible to come by. I've tried farmers markets, etc, but those establishments aren't about "real" eating either. Americans shopping at all tiers of the food system experience commerce that is entirely catered to a post-seasonal shopping experience. You go to a grocery store and 90% of the shelves aren't food at all—in the sense that it's usually some kind of starch and palm oil packaged with salt—then the rest is confused about what time of year it is. If I could spend 200% more on food I would, but seasonal, real food is nowhere to be found. What I want is a real Whole Foods. Such a store would not have shelves of boxed garbage. It would sell dry foodstuffs, out of season produce that keep well in low oxygen chillers (apples, etc) and whatever was in season and is practical for eating. All the food would be highest quality. But such a store wouldn't exist because Americans must be able to buy rhubarb, salmon and kiwis any time of the year, and won't come back unless you have them.

Greetings from MD too. MD sheep and wool is coming up:)

<comment><USER5> You _can_ eat sustainably. It just takes a lot of work.

If you eat meat, buy half a cow or a pig (or a sheep!) from a local farmer. Have it butchered and store it in your freezer. This is actually cheaper than buying meat at the grocery store, if you can afford the upfront cost and have a chest freezer.

Buy your milk and other dairy from a local dairy. This is not cheaper, and will require either that you make a special trip to pick up the milk, or if you're lucky your dairy might have a delivery service.

Get your fruit from a local pick-your-own orchard. Can what you can't eat.

Get your vegetables from a farm stand. True, often this isn't actually local, but mainly that's because people want vegetables that aren't in season yet. So farm stands start stocking tomatoes in June, even though tomatoes don't ripen until July at the earliest. So do your homework and only buy what's in season and locally grown. Again, buy in bulk and can what you don't eat immediately. Supplement with a garden in your backyard. Ideally, have a small greenhouse as well so you can extend your growing season. Build a corn crib, buy a truckload of field corn from a local farmer and store it. When you need flour, seed the corn and run it through a grain mill.

In some places there are farm produce co-ops. If you have one locally, join it. They'll ship you a box of vegetables every week during the summer, whatever is in season.

Raise a small chicken flock in your backyard. Eat the eggs and feed them off the leftovers from your vegetables.

To be certain, this costs a significant amount of money and it's a ton of work. It also requires certain preconditions - that you live somewhere where there are local dairies and orchards and farm stands (although those are true in a lot of the world) and that you have enough land for a garden and chicken coop. And it will require wholesale changes to your diet. But it's what your great grandmother did.

<comment><USER4> Thank you for this very practical list of suggestions. Reading through them it's clear they go a long way. We do some of these things already. I'm going to keep this list around for more to practical things to do.

</comment></comment></comment></comment></comment><comment><USER6> The Herdwick Shepherd is one of my favourite twitter accounts. How different our perspectives on life must be. Him outside dealing with the ups and downs of life, death and weather on a daily basis. Me, sat in an office reading a flexbox cheat sheet for the hundredth time.

<comment><USER7> For a humorous take you can follow the 'Cat Shepherd', which is an Irish shepherd tweeting from the perspective of one of her farm cats.

[https://twitter.com/1CatShepherd](https://twitter.com/1CatShepherd)

</comment></comment><comment><USER8> Herdwick Shepherd @herdyshepherd1 4h "Mum, I'm in the @NewYorker" "Oh, that's nice" "Well er... sorry in advance for the swearing" Miss my dad, who wouldn't even have heard of it, and wouldn't give a F.</comment>


Ask HN: Legal rights to University project? - <AUTHOR>

Hi all,
I go to a University in Pennsylvania that requires Engineering students to complete a "Senior Design" project during your last term as a student. Generally students will do projects very academic in nature, along the lines of finding more effective RFID methodologies, different algorithm improvements, etc. (things that generally don't interest me greatly). The end purpose of these projects is to be a sort of "capstone" project that incorporates all the things you've learned in school.
I've managed to negotiate a special case where I will be able to essentially do an independent study to create my startup idea as my Senior Design, since it is, in essence, a culmination of all the skills that I've learned thus far. I will essentially need nothing from the University in order to complete this project, outside of their mandatory adviser to oversee the independent study.
My question is this, for those that may have some experience: Does the University legally retain rights to any work that is generated in this project (essentially, the whole company... if I eventually incorporate)? I've made it clear that this is intended to eventually be run as a business, though I am not yet incorporated. I have signed no papers other than a short form that described the project, and whatever I signed when I committed to coming to the University four years ago.
I'm in the process of trying to get to the bottom of the issue by talking to faculty, but I wanted to see what ideas everyone here has first. <comment><USER2> I'm an IP lawyer, but I'm not YOUR lawyer and so don't take this as legal advice about your particular situation; if you do consult a lawyer, this might give you some background info for use as a head start in your discussion.

1\. U.S. patent law says patents belong to the inventor(s), absent either (i) an agreement to assign the patent rights, or (ii) an implied-in-law duty to assign, such as arises when an employee is "hired to invent" or "set to experimenting."

If your university has some sort of written policy about undergraduate- or graduate work belonging to X, you might well be held to have agreed to it by applying and/or enrolling, either in the school or in your particular course. (pg has it exactly right on this point.)

2\. U.S. copyright law says that the copyright in original works of authorship (which might or might not include elements of your project) are owned by the author(s) UNLESS (i) there's an agreement to assign the copyright, or (ii) the author's authoring activities took place within the scope of his employment, or (iii) the work fits into one of a comparatively few specific categories -- translations, contributions to collective works, and some others -- AND the parties agreed in writing that the work would be a work made for hire.

3\. U.S. trade-secret law might be a little trickier, because it varies state by state. The pretty-much-universal rule, though, is that at least some degree of secrecy is a sine qua non of trade-secret rights.

<comment><USER3> Points 1 and 2 are sort of fascinating to me. As far as I'm aware, patents and copyrights are defined in the constitution as monopolies granted to "Authors and Inventors". Do you know how it is that the laws, which are supposed to build on the constitution, have extended ownership of copyrights and patents to corporate entities? It seems to be directly opposed to what the constitution allows.

<comment><USER4> The constitution grants them to inventors, who can assign them to others via contract. How is that unconstitutional?

<comment><USER3> I can see how inventors can grant _rights_ to their patents to other entities. I don't see how they can grant _ownership_ (whatever that really means) of their patents to third parties. The constitution allows the government to grant the monopoly to the inventor, and the inventor can license other entities to exploit the patent, but it seems like the ownership of the patent has to stay with the inventor. Perhaps it's just a semantic argument, but it's one that's been bothering me for a while.

<comment><USER4> Whatever definition of "ownership" you want to work with, you can come up with a grant of rights that equates to it, and a reasonable argument that people should be able to trade those rights for something more valuable to them.

So, in other words, I have no idea what your point is.

<comment><USER3> I don't think I've made any point yet; I'm mostly fishing for information from people who actually do know things, and trying to figure out if what's on my mind makes any sense. Two possible advantages (for people) of individual ownership of patents over corporate ownership:

Contracts require consideration. If I own something and sign a contract with you that allows you exclusive control over it, then I have to be getting something in return. I'm not a lawyer, but I believe that there's some restrictions on consideration that can render a contract void if it is incredibly lopsided. I don't know for sure, but I'm guessing that a contract exchanging an invention earning billions per year for a five figure salary and a position that can be terminated on a whim might not be a valid contract. I really don't know about that though.

The other nice thing about personal ownership of copyrights and patents is that it makes the whole retroactive copyright extension and post-mortem copyright assignment transparently illegal. If only the creator of a work gets the monopoly over its distribution, then the termination of the creator must entail the termination of the monopoly. I'm very much not a fan of eternal copyright, so that alone would make me a bit happier.

I think I've probably threadjacked this way too far, so I'll just shut up now. Maybe I'll start a blog somewhere where you can rip holes in my half-assed ideas without us bothering anybody else :)

<comment><USER2> Only extremely rarely does a billion-dollar invention arise. When an employee signs an invention-assignment agreement with his/her employer, the employer is on the hook (usually) for a known salary, benefits, etc., in exchange for which the inventor is giving up his rights in inventions of unpredictable number and -significance. That usually gives the employer the bargaining power.

It's not always that way: I once had a software-company client that paid commissions to its product architects; the architect of one of the company's flagship products ended up making a ton of money, as did its shareholders. Sadly, companies that can do this successfully are few and far between.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> Most universities have some kind of IP policy. E.g. Harvard says that software you write using their money or facilities belongs to them:

<http://otd.harvard.edu/resources/policies/IP/>

In practice I've never known IP to be an issue for undergrads. So I wouldn't annoy your professors by bugging them a lot about this.

You are many, many times more likely to lose because you built something people don't want than because your college sued you over IP. So if you're going to worry about something, worry that what you're building won't seem desirable to customers.

<comment><USER6> Bugging your profs will only show that you couldn't be bothered reading up on your university's by-laws and regulations. It could result in a down-mark.

It is really good to be confident, but in reality your undergrad work might be a lot less brilliant than you believe it to be. Some universities will actually co-venture with you if your work is patentable, etc and although you end up sharing revenue, they might foot the up-front legal costs (which can be rather substantial) - again, research what applies in your particular case.

Good Luck with your project and subsequent ventures.

</comment></comment><comment><USER7> When I turned a university project into an internship with them, we made it very explicit to everyone concerned exactly when the project started becoming "something other than class work" and what consequences that had for all parties involved.

I tend to think that 999 out of 1,000 legal worries people have are groundless. Want to sleep better at night? Draw up a simple letter of understanding between you and the University and ask for your professor to sign it. After doing so, take it to the university counsel or IP office (major research institutions have one) and ask them to sign off on it. If they do, congratulations. If they don't, consider your options.

<comment><USER8> This. Especially regarding your tech transfer office. Usually, you've signed something somewhere that says the university owns everything that you do that relates to them in some way. So you've gotta get them to either give you a release on the IP, or an exclusive license.

Thank the Bayh-Dole act.

<comment><USER9> Hm, I hadn't realized that the tech transfer office was now routinely dealing with undergraduates. Ouch.

<comment><USER7> They aren't. This is why I recommend not worrying about it. However, if you're the worrisome sort, "Look, you and I both know you don't really care about undergraduates. How about you sign this piece of paper? You aren't giving away anything you care about, and it gets me out of your office quickly!" works wonders.

<comment><USER8> Actually, most of us are undergraduates, and the project isn't affiliated directly with the university. However, we do get together and use thier lab for development, so they can still claim rights, since we used their stuff.

EDIT: Also, apparently I went to his school.

<comment><AUTHOR> Any tips then if I wanted to get around this? In my case I won't be using anything from the University for the project. To be honest, I might do work on it in the library from time to time or something, but I could even avoid this if absolutely necessary. I'd literally just be doing coding on my laptop and using my own hosting.

I'd just like to see the language behind the agreement I signed I guess.

<comment><AUTHOR> I found some documentation online about several policies surrounding this: <http://www.pitt.edu/~offres/policyu.html>

It's not really an easy read, but it seems that, by default, the University wants in on anything you do in their facilities. They make this condition for students, though:

"Students are exempt from this policy for cases in which University facilities are not used and where the invention or discovery is not made in the course of the students studies at the University."

So since it's sort of "in the course of the student's studies", I might have to go after the following conditions in the policy:

" If, however, the inventor or another institution believes that the circumstances surrounding the invention, including such factors as support provided by other than the University, place where discovery was made, or lack of relevance to the regular work of the member of the faculty or staff, warrant another distribution, the inventor or the institution may request the Office of Technology Management, in consultation with the Technology Transfer Committee, to review the circumstances. After review, and upon consultation with the Office of General Counsel and the Senior Vice Chancellors, the Office of Technology Management will make recommendations to the Chancellor on the distribution of proceeds.

          The University, as determined by the Technology Transfer Committee and the Office of Technology Management, may choose to waive all rights to file a patent on a particular invention or to pursue licensing of such invention, electing instead to grant the inventor permission to proceed on his or her own in whatever manner the inventor deemsappropriate."

Most of the language seems really targeted towards faculty and staff, however, so I think I can work around it. I'll try the person you suggested once I hear back from my department head.

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> For those curious, the response from my department head (who I worked with to set up the independent study):

" This is a complicated question.

Effectively, the University owns everything (all IP) that we do while we are here, faculty, staff, and students alike. However, they have very limited capability to effectively copyright, patent, and market everything that is created. If you were to go through the process of doing this through the University, they would return a portion of any income that they acquire. In return, they cover the legal, patent, and marketing costs to get the product to market, or to find some company that would want to market it. Given the number of things that are created in a university, the process of selecting which items to pursue is long and involved.

My suggestion is that you proceed on your own. If you are hugely successful, then you would deal with the university at that time. "

So it seems like most people here are right on. If I can't easily get any more information, I'll probably just go for it. I was just trying to see where I stand so I don't get myself in a ridiculous situation later where I say "Why didn't I think of this earlier?".

<comment><USER10> > In return, they cover the legal, patent, and marketing costs to get the > product to market, or to find some company that would want to market it. > __Given the number of things that are created in a university, the process > of selecting which items to pursue is long and involved. __

Translation: the university is where your IP goes to die. The professor in this article (sorry, couldn't find a complete one anywhere)<http://www.highbeam.com/doc/1G1-13985948.html> is a family friend, and his invention (violin bow made for <$10 in parts that beats >$1000 bows in blind tests) is 100% legit, but last I knew the University of South Florida was just sitting on it. He was still experimenting and building bows for himself and friends, but there was nothing he could do to actually get it to market.

</comment></comment><comment><USER11> Depends on the university as many have noted. Some universities have a technology transfer office or a commercialization director or something similar. I'd double check with them BEFORE you do anything for your project.

<comment><USER12> He's right. Find the Technology Transfer office today and tell them what you're working on. Likely they won't be interested and will be happy to give you something in writing that says they refuse all rights.

</comment></comment><comment><USER13> The University probably gets the copyright to your code.

There are several ways around that. One is to link to a GPL'd project. Now they own the copyright, but they have to keep the source code available for others to use for any purpose. Including your business. (If in doubt, you can always do something like cut-n-paste Emacs' malloc, link in libreadline, etc.)

Another option is to just rewrite the code. Copyright only covers verbatim redistribution of the literal program text, which is generally not too valuable. It is very easy to write a program a second time. Ideas and algorithms are not copyright-able, after all, nor is the experience in developing software you gained from writing it the first time. Those things are where the value is, and copyright does not protect them. (Software patents may, but the University will have to apply for one before that's even an issue. Then they will have to spend their own money to sue you, and then they will have to collect damages. Not going to happen unless you become the next Google, and if you do, you can afford to pay them off.

OTOH, software patents are almost dead. So this might not be worth worrying about.)

So anyway, to be extra safe, be open source, or just redo anything that you did with University resources. That is a lot faster than dealing with legal problems that may arise if you are successful.

(Then again, most startups fail pretty quickly, so perhaps it's not really worth your time to "care" this time around.)

</comment><comment><USER14> When I enrolled at York, it was required that I sign a contract which laid out the IP situation. IIRC, this was fairly lenient in my favour, although this was for an undergraduate degree. I gather that the situation was different for PhD programmes. You have probably signed something like that too when you signed up, in among the endless paperwork. Dig it up and read it. Chances are you're safe as long as you don't use their equipment and facilities.

If there's any remaining doubt I'd probably try to solve the problem in advance by drafting a plain-English document which declares that the university has no rights to the works and get the advisor, the departmental head, and a relevant person who oversees research across the entire university to sign it. In fact, you probably have a dedicated person who oversees such matters at the university, so it may be best to take the draft to them directly and see if they have an equivalent standardised contract that they'll be more willing to sign than your draft.

</comment><comment><USER9> Now that is an interesting question.

This advice may be so ill-informed that I'll put the disclaimer up front: I'm not a lawyer, let alone an IP lawyer. That said, if the university isn't paying you, and you don't use any university resources, and you don't assign them any rights, I don't see how they can assert any rights. Looking over your work and assigning it a grade doesn't make it theirs. Otherwise they would own everything.

Now, if you were an assistant professor using university offices and labs and a certain amount of public funding to conduct work that is nigh- indistinguishable from the work your side business is doing -- to the extent that many of your grad students can't tell from moment to moment if they're doing schoolwork or startup work -- that would be a more interesting question.

</comment><comment><USER15> > and whatever I signed when I committed to coming to the University four > years ago.

I think this "education contract" could state that the university has the rights to use your generated IP.

</comment><comment><USER16> That University wouldn't happen to start with a D would it? I know my university definitly says that anything you do while working on your Senior Project is technically theirs and makes you sign a waiver agreeing to it. However, you situation seems to be a little different if your saying you have some sort of agreement to not use their property to create it.

<comment><AUTHOR> My schools actually listed in my profile for the curious. But no, I haven't signed any kind of agreement saying that I won't use their property. The only agreement that would be standing currently is if I agreed in my acceptance letter to let them keep any IP I create as part of classwork, etc. That's something I need to look into... very soon.

</comment></comment><comment><USER17> I used to be a Manager at UNLV. I thought that Nevada was the only state that allowed IP to be retained by the individual instead of one's employer or school. In fact one of my staff created and patented 2 devices while working there.

</comment><comment><USER6> Why not just do something else that would meet the university's criteria for a good mark. Then after you leave, then you do the project as you envisage it. Free from any complications, etc.

</comment><comment><USER18> This isn't legal advice, but software written by undergrads and not funded by the University is usually owned by the student.

<comment><USER19> As a UK student in the last millennium we signed a form on matriculation that handed over copyright and patent rights to the Uni for any work done as part of our study there (or I expect using their facilities; but definitely the former).

I absolutely would bug the department about it.

</comment></comment><comment><USER20> If the issue is "copyright" the author retains all interest in the copyrighted work unless a specific form is signed; there is no other way to assign copyright.

You should be easily able to ask for and receive copies of anything you signed when you first came to University.

Personally I would not worry about it, just go ahead. Further don't bug faculty about it, it will only raise red flags.

<comment><USER21> The problem is that if the OP's startup is a success then the University _will_ come after him for what they perceive as his abuse of their property. Also if he has external investors unless he has disclosed this problem to them they could well sue him personally - I've been threated by legal action by an unhappy VC and that was also deeply unpleasant.

If I was the OP I would walk away from his code - don't even take a copy of it. I would check with an IP lawyer what measures I would have to take to produce a "clean" copy that the University has no claim over and base whatever I did on that recommendation. At least if you do things that way you have some comeback against the lawyers.

<comment><AUTHOR> I have no code written currently, and have only met with my adviser to have him sign off on his agreement to oversee the project. I'll probably go the route of getting the school to sign off on something saying, basically "I won't use your stuff, you don't have to do anything for me, just don't sue me later".

If they won't do that, I might have to change my project to use another web app-type idea that I consider less viable as a business but could teach me a lot about web development. I hope that's not the case, as currently I'd be earning 3 credits to build my dream project and if I can retain all IP I'd be golden.

<comment><USER21> It is a tricky one - a sensible organisation would wish you the best of luck and hope that your eventual success reflects well on them. However dealing with any large bureacracy means that finding someone who will sign off on such a thing can be tricky!

<comment><AUTHOR> Yeah, agreed. I've found the contact information for the person in charge of our tech transfer office (called the Office of Technology Management... I assume they're basically the same thing). I'll wait to hear back from my department head and probably contact someone in OTM (whoever is appropriate) afterward.

This might be history in the making, as I potentially might have to pitch why my idea is NOT viable enough for them to care (inverse VC pitch, lol).</comment></comment></comment></comment></comment>


My Opinion: Google wants Microsoft to buy Yahoo - <AUTHOR>

I mean when you think about it in terms of the mythical man month and the amount of entropy introduced with a merger its kind of interesting. Plus you have a bunch of processes going on here - consolidation, shift of resource etc. which generally dont win tech wars. <comment><USER2> I don't think it makes much difference, honestly. MSFT and Yahoo individually were a negligible threat. Combined they'd still be a negligible threat.

</comment><comment><USER3> Google has already publicly stated that they do not want the acquisition to take place. Maybe they wouldn't wish a "fate worse than death" on even their competitors. Maybe Google is waiting for Yahoo to sink to the point where Google could afford it.

Brings a whole new perspective on the phrase "Do no evil," doesn't it?

<comment><USER4> I am not sure google would be interested in buying Yahoo the same way intel wouldnt be interested in AMD. Always good to have an underperforming competitor to avoid being labelled as a bully or a monopoly!</comment></comment>


SILE Typesetting System - <AUTHOR> http://sile-typesetter.org/what-is/ <comment><USER2> Compared to TeX I miss two things: Math mode and TikZ.

One of the quality marks of TeX for me, is that the fonts match everywhere. For inline math, the x-height of normal and math font is the same. The font and text size used in plots is identical to the normal text.

<comment><USER3> No math is pretty much a dealbreaker for most people, I guess.

<comment><USER4> It depends on what world you operate in. For science-related work, then yes, I agree it's a dealbreaker. SILE is currently focused towards humanities publishing where not having math support is not really that big a deal. But I would like to see it added, and have been looking into how hard it would be to get MathJAX support.

</comment></comment></comment><comment><USER5> This was probably posted because it was discussed in the thread for the Patoline typesetting system yesterday: [https://news.ycombinator.com/item?id=13674879](https://news.ycombinator.com/item?id=13674879)

<comment><AUTHOR> Yes, it made me recall this, though I first saw it in FOSDEM '15 talks [1]. I thought it'd be nice to see what people think about this as I'm in the looks for a TeX alternative.

[1] [https://www.youtube.com/watch?v=5BIP_N9qQm4](https://www.youtube.com/watch?v=5BIP_N9qQm4)

<comment><USER6> SILE indeed looks great, promising to come on par with the typesetting quality we have come to expect since TeX: Knuth-Plass line breaking, Unicode and OpenType font features support, complete with contextual shaping, Cassowary constraint solver, parallel text, multiple apparati, foot and marginal notes, vertical typesetting… This is a typographer's dream!

But, like TeX and friends (LaTeX, ConTeXt, etc.), creating stylesheets and document templates still looks like a pain with SILE and alike. At least from the perspective of designers who have come to expect a strict separation of concerns between document structure/semantics and its styling, and who are used to work with a declarative stylesheet-based language like the prevalent CSS, as opposed to the macros of TeX, and its document model which conflates semantical markup with inline styling instructions.

Similar initiatives like SILE, which attempt to port TeX to newer languages while untangling macro spaghetti, like Cló¹ and Rinohtype², didn't consider CSS-based stylesheets either. Which is a pity, especially with highly developed W3C Working Draft open standard specifications³ for paged media being out quite some time now.

That's exactly what makes PDF formatters like Prince⁴, which accepts standard html and css as its input, so immensely attractive: users can continue to use the (Web) technologies they already know (html, javascript, css) and enjoy a strict separation of concerns between document contents, templates and make- up. Unfortunately, there exist no FLOSS alternatives.

Once in a while, people are coming up with the question whether there are TeX flavors which do support `.css` as an input.⁵ Peculiar too that no project exists to create a compiler to convert and map css style rules, selectors and properties to something which TeX does understand. (Except may this⁶ one.)

[1] [https://www.youtube.com/watch?v=824yVKUPFjU](https://www.youtube.com/watch?v=824yVKUPFjU) [2] [https://github.com/brechtm/rinohtype](https://github.com/brechtm/rinohtype) [3] [http://www.w3.org/TR/css3-page/](http://www.w3.org/TR/css3-page/) [4] [http://www.princexml.com/](http://www.princexml.com/) [5] e.g. [http://tex.stackexchange.com/questions/139067/i-have-a- dream...](http://tex.stackexchange.com/questions/139067/i-have-a-dream-using- css-to-style-a-tex-document) [6] [https://github.com/yannisl/phd/blob/master/phd.dtx](https://github.com/yannisl/phd/blob/master/phd.dtx)

<comment><USER7> As a lazy Debian user, I checked all of these and found none on Debian repositories, which due to Ubuntu and other direct or indirect derivatives is probably the best way of making such software widely available and known.

</comment></comment></comment></comment><comment><USER8> So I'm curious and click on the "Examples" link in the navigation, and there's just no justification for the first picture. ;)

<comment><USER2> And a glaring "overfull hbox" between the two columns "means".

And shouldn't the "grid layout" feature assure that the baselines of the two columns match?

And the kerning problem in "T able of Contents"

;)

<comment><USER8> Oh dear, yes. You just keep seeing more and more errors the longer you look.

This isn't meant to demean the people working on SILE. It just goes to show how complex typesetting is.

</comment></comment></comment><comment><USER9> What goes into writing a typesetting system like this? I know kerning is one thing that is needed but I'm assuming there's a lot more then just spacing letters.

I'd love for someone to write a full post about how it works.

Also this does look really good.

<comment><USER10> _TeX by Topic_ was a much clearer resource to me than _the TeXBook_ although one eventually has to go back and read that. TeX seems like a reasonable approximation of it, but it's definitely slanted towards text-heavy and mathematical stuff, which is pretty far from what something like InDesign is mostly about. I'm just an appreciator, not an implementer, but this is my overview of typesetting text:

First, you have to build words from letters; this is where kerning comes into it.

Second, you have to build lines. TeX calls this "horizontal mode" and this is where inter-word spacing and justification matter. TeX uses a "boxes-and-glue" model, so during line building it's essentially putting stretchable glue between each word, and then when the line is built, it spreads the space evenly between all the pieces of glue to achieve justification. Glue has a natural size as well as minimum and maximum values; this along with hyphenation has to do with calculating the line "badness."

Third, you have to build paragraphs. This is what TeX calls "vertical mode." Between each line of text, it inserts vertical glue that works similarly to the horizontal glue mentioned above. Another glue is used between paragraphs. TeX worries about widow and orphan lines here; other calculations are made to prevent or allow them. This is like badness but I think it has another name.

Finally, you have to build pages. With TeX, this happens periodically as it notices it has enough material (or you force it by calling the right kind of eject). By default, this invokes a page building macro which you can customize. This part of TeX feels pretty 1970s and hackish, but essentially, there is a variable that contains a box with the supposed contents of the page, your job is to assign a box to a certain location and remove some of the contents of the input box. LaTeX's "float" mechanism is actually built _on top of_ this mechanism, but as it's pretty procedural, you can certainly achieve other effects here.

So that's the birds-eye-view I acquired a few years ago when I did some in depth playing with TeX. First you build words, then lines, then paragraphs, then pages. There are different considerations at each stage of that but TeX attempts to subsume everything in that overall flow.

I think that process probably generalizes nicely for some things and is almost inadequate for others. I'm not sure how ConTeXt achieves the grid layout; I imagine they are relying on some complicated Lua code to pull it off, because TeX really doesn't care unless you make it.

<comment><USER11> There's also _TeX: The Program_ that is a literate code for TeX. It's in Pascal though and littered with literate macros, so it's rather hard to read.

</comment></comment></comment><comment><USER12> Do any of these work in HTML, or web browsers, where the page changes size and doesn't have fixed breaks? Where you can just scroll and scroll?

I'd love beautiful typesetting on the web, where I actually write and read. I don't use paper.

<comment><USER13> Note that I use paper, because I am an old person. They're very different problems.

In print, you have to deal with page breaks and positioning of figures, but you know everyone will see the same thing. Doing this right requires human attention, but you can produce beautiful layouts, even with multiple columns and oddly-shaped text boxes.

On the web, everyone sees a single "page," but those pages are all different. Even simple two-column justified text is mostly garbage on the web, and forget trying to float figures close to their references. Web designers have mostly given up, resorting to either huge margins, or an ugly wide wall of giant-font text. Print-quality layout and typesetting on the web is very far away.

<comment><USER14> Completely true, but for fairness the reason is that the web was not created as a tool for text layout. The goal was exactly the opposite, to make the text independent of layout and displayed differently in the different browsers. Doing good text layout on the web is practically an intractable problem. On the other hand, we already have software capable of doing this, such as PDF.

<comment><USER13> I don't know if Tim Berners-Lee thought about layout. SGML was text with semantic information, and HTML was text with cross-references. Back when displays were tiny low-resolution things little better than terminals, and most web pages were just text with a few images, layout didn't matter. It was all ugly. Now that displays are larger than books, and pages are heavy enough to contain the entire Gutenberg Bible, people are starting to care.

Maybe in 5-10 years, with enough server-side computing power and bandwidth, sites will ask for the client's screen size and desired font size, then serve an appropriate PDF.

</comment></comment></comment></comment><comment><USER15> Does this support arbitrarily nested environments?

One thing that always bugged me in LaTeX was exactly this. Nesting environments often gave me odd results, or errors.

<comment><USER3> Looking at the FOSDEM'15 talk linked above, it appears to support this.

</comment></comment><comment><USER15> It seems the latest release (0.9.4) is from August 2016.

Any idea when the 1.0.0 milestone will be reached?

<comment><USER4> 1.0.0 will be reached when, given an appropriate style sheet, SILE can perform unsupervised typesetting of an arbitrary USX file (XML-based Bible translation document) to publication standard.</comment></comment>


Writing a C Compiler, Part 2 - <AUTHOR> https://norasandler.com/2017/12/05/Write-a-Compiler-2.html <comment><USER2> Nice article and a good read! Just came in and read part 2, so please don't blame me if the following has been posted in a comment for part 1 already.

IMHO there are plenty of good books on compiler construction. One of the best ones I ever got my hands on was a book by Niklaus Wirth (a now-retired professor, among other things, he created Pascal, Oberon and other languages). He explains all the details of creating your own compiler from the ground up.

It's available only here: [https://www.inf.ethz.ch/personal/wirth/CompilerConstruction/...](https://www.inf.ethz.ch/personal/wirth/CompilerConstruction/index.html)

In that book, he is creating a compiler for Oberon, a language that was more or less used for didactic purposes only. The book is also pretty dated, so there is not much to take away in terms of practically usable compiler code. But I can still recommend it to everyone, because I think it's didactically very good, and provides all the necessary details that make compiler construction so worthwhile (and annoying).

<comment><USER3> I agree, Niklaus Wirth's compiler book is a good introduction to the topic.

To showcase Wirth's approach, I wrote a self hosted Oberon compiler for the JVM: [https://github.com/lboasso/oberonc](https://github.com/lboasso/oberonc)

The compiler can also be used to compile and run the source code of Oberon0 provided in the book, all you need is a JVM installed.

<comment><USER4> That is very impressive. Congratulations!

<comment><USER3> Thanks, my hope is that the Oberon language will not be forgotten.

The Oberon0 language, described in the compiler book, is just a toy to illustrate basic compiler techniques. The full Oberon language is a simple but powerful language, that inspired Go.

</comment></comment></comment></comment><comment><USER5> I feel like a good place to share some of the resources I've compiled from HN regarding compilers/interpreters construction:

MOOC/Courses:

\- [https://cseweb.ucsd.edu/classes/sp17/cse131-a/](https://cseweb.ucsd.edu/classes/sp17/cse131-a/)

\- [http://cs.brown.edu/courses/cs173/2016/index.html](http://cs.brown.edu/courses/cs173/2016/index.html)

\- [https://lagunita.stanford.edu/courses/Engineering/Compilers/...](https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about)

\- [http://www.craftinginterpreters.com/](http://www.craftinginterpreters.com/)

Blog posts:

\- An Intro to Compilers ([https://nicoleorchard.com/blog/compilers](https://nicoleorchard.com/blog/compilers)) and the accompanying Hacker news comments ([https://news.ycombinator.com/item?id=15005031](https://news.ycombinator.com/item?id=15005031))

\- Resources for Amateur Compiler Writers ([https://c9x.me/compile/bib/](https://c9x.me/compile/bib/))

Other resources:

\- Tweet ([https://twitter.com/munificentbob/status/901543375945388032](https://twitter.com/munificentbob/status/901543375945388032)) by Bob Nystrom (works on Dart VM and creator of Crafting Interpreters) -

\- Wren ([http://wren.io/](http://wren.io/)): another project by Bob Nystrom, a scripting language written in C with beautifully documented code (I recommend checking it out on GitHub ([https://github.com/munificent/wren)](https://github.com/munificent/wren\)))

\- Ask HN: Resources for building a programming language? ([https://news.ycombinator.com/item?id=15171238](https://news.ycombinator.com/item?id=15171238))

\- Mal – Make a Lisp, in 68 languages ([https://news.ycombinator.com/item?id=15226110](https://news.ycombinator.com/item?id=15226110))

<comment><USER6> Thank you! Very nice.

Your comment made me do a quick Google for "Awesome Compilers"

Sure enough: [https://github.com/aalhour/awesome- compilers](https://github.com/aalhour/awesome-compilers)

(I didn't check if the links posted here are in the awesome-compilers repo though.)

Edit: I also want to thank OP for continuing part 2. I didn't read part 1 completely because I figured it had a chance to be an abandoned blog post series. Keep it up OP!

</comment></comment><comment><USER2> A "tiny" (read: small) C compiler can also be found at: [https://bellard.org/tcc/](https://bellard.org/tcc/)

It has been unmaintained for a while now, but it's still good as a starting point.

Interestingly enough it's a spin-off of a code submission for winning the international obfuscated C code contest ([http://www.ioccc.org/](http://www.ioccc.org/)).

Original code (covering just a subset of C) can be found here: [https://bellard.org/otcc/](https://bellard.org/otcc/)

<comment><USER7> I think tcc is now community maintained, see "Savannah project page and git repository", and you can get there link to project git, which was last updated just few days ago. ([http://repo.or.cz/w/tinycc.git](http://repo.or.cz/w/tinycc.git)) so seems to be active.

<comment> dane-pgp Earlier this year, tcc (re)gained the ability to compile gcc 4.7:

[http://lists.nongnu.org/archive/html/tinycc- devel/2017-05/ms...](http://lists.nongnu.org/archive/html/tinycc- devel/2017-05/msg00102.html)

This is an important result for activities such as Diverse Double-Compiling (a response to the Trusting Trust attack), and as part of the exciting work being done towards bootstrapping a modern Linux environment from source and a hex/assembly base:

[http://bootstrappable.org/](http://bootstrappable.org/)

</comment></comment></comment><comment><USER8> _but you can actually implement ! in just three lines of assembly_

I was actually expecting the "classic" x86 idiom for !, which also happens to be 3 instructions, but is slightly shorter and likely faster than the sequence presented:

        neg eax
        sbb eax, eax
        inc eax

As a bonus, it also works in 16-bit mode (using the 16-bit registers) on everything back to the 8086, since SETcc is 386+, and given that I've seen it in early DOS compiler output, this neg/sbb/inc idiom has likely been known for a very long time. Figuring out how it works is left as an exercise for the reader ;-)

<comment><USER9> The code there is probably faster, because the

        mov eax, 0

will be handled during register renaming and not actually issued. It will also eliminate the partial dependency of SETE on the other bits of EAX.

</comment></comment><comment><USER10> Discussion for Part 1:

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

</comment><comment><USER11> I really feel it doesn't make much sense to generate assembly any longer. It's much more reasonable to generate IR (for example for llvm). Then you get free optimizations and at least some portability. It's probably easier as well to not keep track of registers.

<comment><USER12> If you're writing the compiler as an exercise, skipping codegen means you're missing out on a lot of really good stuff.

<comment><USER13> Code generation for me is more fun than the rest of it, as you are likely dealing with an NP complete problem.

</comment></comment></comment><comment><USER14> Shameless plug - I wrote my own self-hosting C toolchain (compiler + libc + assembler + linker): [https://github.com/orodley/naive](https://github.com/orodley/naive).

It was a really fun project, and I learned a lot from it.

</comment><comment><USER15> The explanation for bitwise complement ignores the word-size which matters a lot here. For example ~4 = 251 in uint8, not 3 like in the example.

<comment><USER16> This is a good point, thank you for bringing it up! I added a footnote about it: [https://norasandler.com/2017/12/05/Write-a- Compiler-2.html#f...](https://norasandler.com/2017/12/05/Write-a- Compiler-2.html#fn2)</comment></comment>


Ask HN: What have you always wanted to know about getting PR? - <AUTHOR>

I'm hosting a panel of journalists, agencies and founders who've had success in pitching their startups to press this upcoming Wednesday in NYC (http://plancast.com/p/2oyi) and I'm looking to hear from startups the parts of getting PR they always wanted to know. List your questions below and we'll answer them on Wednesday! <comment><USER2> How to reach your audience without one-at-a-timing.

Example: I'm trying to build an audience for my project weddingbudgetbuddy.com, I'm posting on wedding forums, I've been blogging to get some google juice and I plan to start emailing some related blogs for link exchanges etc.

But these all feel like I'm aiming for terribly small wins. Like, even if everyone I email puts a link up, what can I expect, ten links? a hundred? We're not talking about massive PR here are we really!?

So yeah, I have no money to spend at all and I want to get to number one on a google search for "wedding budget", how can I do that?

<comment><AUTHOR> Could clarify a bit more?

<comment><USER2> I feel like all my PR efforts are focused on sending one email to one person and hoping to get one link back from it, or writing one blog post and hoping google will pick it up.

Surely there are more efficient ways to promote myself than this one-at-a-time approach.

</comment></comment></comment><comment><USER3> Is it worth hiring a PR company? If so, how do you go about selecting the company that is best suited for your area of business, and what kinds of returns would be expected for their rates.

</comment><comment><USER4> how to write a pitch email?</comment>


Show HN: iPhone app to track your sales, customers and products - <AUTHOR> http://bottomlinehq.com

<comment><AUTHOR> Founder of Bottomline here. Happy to answer any questions about architecture, design or product. Love to hear any thoughts!</comment>


Blockchain in the browser, MetaMask - <AUTHOR> https://www.cryptocoinsnews.com/magic-internet-money-is-finally-a-reality-web3-0-is-here/ <comment><USER2> Consensys seem to be behind all the interesting projects, can't help but think that they could go and dominate the blockchain market over the coming decades. I look forward to the day when software isn't rolled out country by country - "I tried to go through the process. It asks me for an e-mail address, but I'm from UK so I can't proceed as it is currently limited to the U.S."</comment>


Show HN: HawkHire – Apply to European Startups with One Form - <AUTHOR> https://www.hawkhire.com/europe

<comment><AUTHOR> Hey everyone!

I am the cofounder of HawkHire. We currently offer positions in London, Berlin, Barcelona, Amsterdam, and Paris.

Happy to answer any questions!

</comment><comment><USER2> It would be nice to know which startup you already have in thoses cities !</comment>


Ask HN: Hardware Incubator/Accelerator - <AUTHOR>

There seems to be plenty startup incubators or accelerators aimed at web and software startups, but I haven't heard about any that are meant to launch hardware startups.<p>Has anyone here heard of any? I'm a hardware engineer, and I want to move from away from the large corporation I'm in now. However, most of the discussion you read on sites such as this are aimed at software. <comment><USER2> <http://www.ycombinator.com/ideas.html>

_27\. Hardware/software hybrids. Most hackers find hardware projects alarming. You have to deal with messy, expensive physical stuff. But Meraki shows what you can do if you're willing to venture even a little way into hardware. There's a lot of low-hanging fruit in hardware; you can often do dramatically new things by making comparatively small tweaks to existing stuff._

<comment><AUTHOR> Interesting. I guess I had always assumed YC was really aimed at more software startups, I'll take a closer look.

</comment></comment><comment><USER3> Have you heard about Willow Garage?

<http://www.willowgarage.com/>

<comment><AUTHOR> I hadn't heard of them. They align pretty closely with some of my goals as well. Thanks for the link!</comment></comment>