How to "get out of the building" while working full time? - <AUTHOR> Traditional lean startup advice says to keep your full time job while working on your statup on the side, at least until you gain traction...most of all you need to talk to real prospective customers about your product to gauge real market interest, lest you build something nobody wants.
But how are you supposed to do that with a full time gig that has you technically under an inventions assignment agreement?
Those agreements, arguably, would own anything you create while employed, at least if it's somewhat related to your full time job. Granted, their enforceability is questionable in a lot of cases (especially in California)...
But even forgetting legalities for a second, that'd be a hell of an awkward conversation if your boss/team realized that you've been building/pitching your own products on the side without telling anyone. Reactions could range from firing to, most likely, just a general distrust, like you're trying to sneak one foot out the door on the sly.
Maybe some folks are really lucky and could just openly lay it all out on the table, but I don't think that's practical for everyone, especially those in large Bay Area companies.
I know personally if I asked my boss for permission, the 95% most likely result would be for her to put me in touch with legal...and the legal department is by-the-book, so of course they'd never give me any sort of permission or interpret anything remotely in my favor. I may as well just skip that route.
So any advice about the tactics of how to approach this? How to get real potential-customer feedback without risking your full time job? <comment><USER2> You've discovered the reason many go freelance while building their own products. It is much easier to base agreements on a project level rather than the ol' full-time we own everything you do end all contract that is a full contract or full time employment agreement.

I try to only sign agreements that match the type of job, i.e. I might agree on a non-compete for 6 months if it is a 3-6 month contract with a paid non- compete period, but not a 6 month non compete on a 2 week job. Outside of a full time job businesses have to pay for their anti-competitive ways if they want you to sign a non-compete/work-for-hire that is not an acceptable timeline. NDAs, work-for-hire when fulfilled with payment are not a problem usually.

Non-competes are destroying innovation and force people to go indie.

In the game industry, contracts there (old school ones) also sign you on to own ALL of your on time and off time products. So you will always see people in the game industry break out on their own when looking to publish otherwise it is owned by the employer or could be.

I would do what you need to do though, no matter what they won't like a worker's time/focus being consumed with another project. Better to keep this one to yourself and do not work with anyone from that job on it, that could get you into trouble. You have one foot out the door now if you are doing this. If you do get big enough for them to notice and it is a problem then you can continue with that path. I wouldn't even worry about them caring about it unless you are directly competing or working with a client of theirs, both of those reasons will be problematic and wrong. And again, do not work with other employees there on this venture. That is where it becomes a very problematic and wrong.

</comment><comment><USER3> I would suggest that you start with "customer development" in the Steve Blank sense of the word. See [http://steveblank.com/category/customer- development/](http://steveblank.com/category/customer-development/)

In my experience you can get very far with not building anything. Just talking to people, in your chosen domain, about the pains they experience daily is a great start. In a way you could use your situation to your advantage. If you can't easily build things that you "own", it prevents you from putting building ahead of learning.

At the start of a new venture, talking to people about problems they face has almost always been more valuable to me than building things for them. However inevitably I focused on building rather than talking, and most of the real learning was an accidental sideshow to my building effort. If you're a coder it takes great discipline to put learning ahead of building. So you've got a distinct advantage in your current situation. No-one's going to fire you for talking to people about their pain points.

<comment><USER4> This probably applies more to business focused startups than consumer ones. I know so many people who ridiculed twitter and ipads when they came out and now use both on a daily basis.

<comment><USER5> That's less relevant, because that's Apple now as a major, global force in business.

Going back to the old days, Apple certainly understood their customers. The best example I can think of is when Woz was asked how many they could sell and he immediately said, "A million!" When pressed how he could be so sure, he replied "Because there are at least a million ham radio operators" Obviously it isn't a radio, but he understood that nerds into ham radio would be the same ones wanting a personal Apple computer in their basement. In that sense, really what getting out of the building means is a deep, deep connection and understanding with your customers.

<comment><USER4> It's true that market understanding and research are important for all businesses, what I mean is asking for specific requirements from your customers and designing around those is less useful.

That's probably less true however if you're selling something to a market of serious hobbyists who treat the hobby like a second job because they have probably spent a lot of time thinking about the problems with current products. On the other hand, if you asked me which features are important for a dishwasher I'd be unlikely to give you useful answers because I don't spend much time thinking about dishwashers.

Another factor is that fashion is a bigger deal in the consumer space, if your product is associated with "cool" people will buy it regardless of whether it solves a real problem.

<comment><USER6> Doing something in the B2C space tends to involve a lot of luck, particularly when it comes to generating that "cool" image. That's the main reason I've always been drawn to B2B, where the customers tend to understand their needs a lot better.

</comment></comment></comment></comment></comment><comment><USER7> If you're technically under an inventions assignment agreement, then you're acting in bad faith by doing this in the first place. It's not being caught that results in distrust, it's being untrustworthy.

I'm not saying that the company is right in taking any work you do outside of office hours (I think that's total crap), I'm saying that you've made an agreement and now you're trying to work around it.

In an ideal world, you'd get permission - or work for a company that understands. Of course, the world isn't ideal :)

<comment><USER8> That depends on the agreement. Some claim rights over everything, others only over things related to the company's business, or to what you personally work on. Also, various states limit such things, and if the employer overreached it could be unenforceable. I don't think it's bad faith to ignore a contract that the state says is too unfair to enforce.

My suggestion: read the contract carefully, make a list of specific questions, and spend an hour talking with a lawyer.

<comment><USER9> > Some claim rights over everything, others only over things related to the > company's business

Mine was limited to the company's primary business. Then I asked the founder (of Linode) what "the company's primary business" entailed. He smugly replied "computers."

<comment><USER10> Vague, all-encompassing definitions like that generally don't hold up in court.

</comment></comment></comment></comment><comment><USER11> It may sound obvious, but I would (besides the customer development which has already been mentioned), begin looking for a job at a place which gives you more latitude. There are some companies who get it, and some companies who don't.

<comment><USER12> So now put a job hunt on top of trying to create a startup idea and keep a roof over your head? Doesn't seem very practical unfortunately.

<comment><USER11> No, OP will have to focus on one thing at a time. So it's going to take longer to begin, but sometimes these things can't be helped.

</comment></comment></comment><comment><USER13> i would start on my project and i would convert to a 1099 contractor and run it through your startup's paper (LLC or S-Corp). your current employer can be your first customer.

in fact that's exactly what we did and it worked fine. you might even end up getting a raise. i know one thing for damn sure though: there's no way in hell a full time job and a making progress on startup are compatible. it's just too much work. if someone came to me for advice or money and they wanted to do this, i'd laugh in their face, in the nicest way possible. it's a pipe dream. the only cases i've heard of in which this was possible are jobs in dysfunctional orgs where you don't actually have to do any work - which are out there, so if you've got one of those, maybe you've got a shot.

this path requires you to quit. it's a way of solving the problem you describe through another mechanism. as an added bonus, it protects you legally in a number of ways. at the cost of some management overhead, but if you can't deal with management overhead, just forget about the idea of running a business.

there's two ways of doing this:

1\. notifying your boss that you will quit, and that they can retain you as a contractor for $x/hr, or

2\. just quitting, and then giving them the option.

either way, you don't ask permission in a situation like this. you have to do it for reals.

the most important thing in starting a business is getting into the mindset that you are in this for yourself, on your own, and this is for real, no bullshit. having a full time gig is extremely detrimental to adopting that mindset. most startups die because never being truly started. they just fizzle out with nary a whimper.

also, look at it like a test - if you can't even accomplish this minor task in the execution of your world changing startup, you probably don't have what it takes to do the next step either. this convert-to-contractor trick is extremely common and i've seen it done 3 or 4 times myself. if you are valuable, the current organization is going to want to retain you as long as possible and you can dictate terms to a certain degree.

<comment><AUTHOR> Just to clarify, I'm not on a mission to start a "world changing startup"...I'm a mission to create a nice little lifestyle SaaS business that will generate 3-5K in MRR.

Maybe I'm naive, but it seems completely realistic to get to that point with a full time gig. Beyond that, sure, you probably have to quit to grow, but quitting at that point isn't risky because you've already proven you've got traction.

</comment></comment><comment><USER14> This is an area that I have sought legal counsel over in the past. I'm not a lawyer but I believe California and 8 other states have laws that protect employees intellectual property that they create on their own time with their own resources ([http://www.leginfo.ca.gov/cgi- bin/displaycode?section=lab&gr...](http://www.leginfo.ca.gov/cgi- bin/displaycode?section=lab&group=02001-03000&file=2870-2872)).

As far as it being ethical, is it ethical for an employer to have a monopoly on your time on and off hours?

As a general rule I will never sign anything that requires I disclose all my "inventions" up front. Most of these agreements will usually claim all of your intellectual property well beyond your termination date. The attorney I spoke to said that even a love letter to my wife is covered under the agreement that I had sought counsel over.

The market is really good right now for software engineers. If more candidates would turn down job offers that stipulate these agreements maybe companies would get the hint.

</comment><comment><USER15> If you are in a customer-facing role or in constant conversation with customers there should be no issue with you tacking-on a question or two related to potential enhancements. You have plausible deniability, and you also have the option at any stage of not running with this yourself and actually doing it via the company (which is what your employer is most likely expecting).

One guy in a previous team of mine brazenly and proficiently used Socratic Method on the phone with clients to direct the conversation, getting clients to come up with answers to the questions he was looking to answer. This was genius not only because he covertly gauged market interest but also because having the client come up with the answer themselves makes them more inclined to buy.

It's a massive grey area and you have a lot of scope as long as no-one can pin anything on you (and as you mention, you want to avoid coming across as dishonest).

Regarding being honest and laying it all out on the table, I strongly advise against this route. Nothing good will come of it.

</comment><comment><USER16> First and foremost, reconsider signing any of these assignment agreements ever. If you're talented and the company wants you, you have plenty of room to negotiate. And since this isn't a compensation or revenue impacting deal point you'll should find leeway. If they say its our way or nothing, its some quick insight into the organizational structure and culture. Consider if you wish to aid and abet that organization and management.

It should be a point of personal principal to never sign an NDA or an assignment agreement or even employment agreement. Of course the any of these that come with 9 figure checks attached are worth thinking about. If you're trustable and upstanding with who you're working for and they are with you, that will be enough.

</comment><comment><USER17> Its a matter of risk. You will regret the things that you don't do more than the things you do. So just go for it.

</comment><comment><USER18> Man, the nerve of some people.

You're working at a company, where you willingly signed a work contract, which included things like "when you're at work you will work" and "since we're paying you we'd like your full attention when you're at work". They're paying you to produce work according to said contract. You're also probably in tech, which means that your employer isn't Walmart or McDonald's or an Indonesian sweat shop and you're generously compensated in money and benefits.

And now you're asking the internet for tips on how to break that contract without getting caught. Really? Even the 11th graders I teach have more common sense than that.

Your non-immoral options are:

1) try to change your current position to part time so you can deal with your other business on the side.

2) quit your job, and find another job that will let you work on your side business during work hours (improbable)

3) quit your job, and go freelance to fund your venture (or wait tables, make coffee at Starbucks, whatever it is you need to do to pay your rent).

4) quit your job, go all in using your savings.

No matter what, sneaking around and knowingly breaking your work contract and inventions agreement won't end well for you. At best you'll get fired, at worst you'll get sued.

PS: since you're trying to start a company, what would you think if down the line you found out that one of your employees posted exactly this on HN?

<comment><USER19> The questioner wrote:

"But how are you supposed to do that with a full time gig that has you technically under an inventions assignment agreement?

Those agreements, arguably, would own anything you create while employed, at least if it's somewhat related to your full time job. Granted, their enforceability is questionable in a lot of cases (especially in California)..."

Which means, his employer put a stipulation in the contract which means they own everything done while at work, or anything done outside of work (even if it's not related to the job).

I would guess those stipulations are not really enforceable, but I don't know.

You wrote: "since you're trying to start a company, what would you think if down the line you found out that one of your employees posted exactly this on HN?"

I'm not the OP, but in my case I encourage my employees to have side projects. Even projects that could turn into businesses. I don't own them, and having those outlets often makes them better employees. They obviously have non- competes in their contract, which cover our area of business, but not unrelated side-projects.

As a side note, I don't understand why your comment is so aggressive. You're probably right, in that if the contract is really as the poster states the safest thing is to find another job. However overall I think the moral fault lies with the employer, you shouldn't be able to restrict your employees in this way.

<comment><USER20> >As a side note, I don't understand why your comment is so aggressive.

The cult of the "sanctity of contracts" is alive and well in America among some so-called libertarians (I think some like to call themselves voluntarists or something like that).

I suspect they wouldn't mind having debt contracts with default clauses leading to 'voluntary' slavery much like occurred during the Roman empire.

</comment></comment></comment><comment><USER21> If you lived in Minnesota, an inventions assignment agreement is unenforceable. Employers cannot legally condition employment based on an assignment of inventions unrelated to the employee's work, or made on the employee's own time, or not based on the employer's trade secrets, equipment, or resources. The MN statute 181.78 lays this out clearly.

MN is a great place for you to work on your lean startup no matter what kind of work you do to pay the bills.

</comment><comment><USER22> Well I'm a self employed house painter even though I could probably get a job tomorrow doing either Drupal or Angular and never have to crawl around another toilet ever again.

You gotta take some risks.

<comment><USER10> So why do you paint bathrooms instead of doing Drupal or Angular work?

<comment><USER22> Because I have time to invent shit.

</comment></comment></comment><comment><USER23> The answer is very simple,offer your company first right of refusal. You will find that in most cases they do. And if they don't and do use your idea make sure you are in charge. This is the high road approach. Other suggestions are just dishonest if you ask me.

<comment><USER15> Fair call, but I don't think this is realistic. How do you mitigate the risk of 1) having your reputation tarred with the "dishonest" brush, and 2) being sent to Legal to be shut down?

</comment></comment><comment><USER24> I would keep everything above board in cases like this. Be open with your company and let them know exactly what you intend to do. If they are upset by it then you should probably question what it is you're doing.

</comment><comment><USER25> damn near everybody is intrigued by that guy that's got one foot out the door.

say you're a double-agent. the only thing that matters is if you're working against the common good. if you're totally on another level, you really have nothing to worry about.

the contracts you signed when you were new and stupid are an entirely different beast. get a good lawyer; you should be fine 9 times out of 10 as long as you're not violating a typical no-compete clause... or that no-compete clause over-steps its boundaries.

</comment><comment><USER25> having read through a good majority of the peanut gallery, i'm compelled to say that your contract is your duty.

having said that, ... get a good lawyer. the original contract might be vague enough that the lawyer has had experience with similarly worded crap in the past.

any company that tries to steal your personal development for the entire time you're employed is not some company that you want to work with. a good fight is just a good american spirit. fight that crap that junk corporate throws at you.

tl;dr - fuck 'em. let the lawyers fight it out, but get a good lawyer. dollar- for-dollar, they're worth it. no matter, your education is worth the lawyer dollars regardless.

</comment><comment><USER26> I would suggest asking for things and just let the people say no if they want to rather than rejecting yourself on their behalf without them even knowing you want something from them.

</comment><comment><USER27> What if you have not signed any agreement?</comment>


JetBrains Toolbox–Release and Versioning Changes - <AUTHOR> http://blog.jetbrains.com/blog/2016/03/09/jetbrains-toolbox-release-and-versioning-changes/ <comment><USER2> I like the yyyy.r.n versioning scheme, as it does tell you unequivocally how "new" a release is. No wondering if product version 7 was released in 2012 or 2014. I've never been able to convince an employer to switch to it though.

<comment><USER3> > I've never been able to convince an employer to switch to it though.

And there's no point now. Just get them to switch to Visual Studio 2015 and you'll gain most of the key features, and less of the lag/bugs/memory usage.

Between VS having Resharper's features built in, and Microsoft making it easier than ever to find and install VS extensions, Resharper's days are numbered (in particular as they've said they have no plans to reform their extension to use Roslyn).

I'm moving away from Resharper after my current update subscription expires.

<comment><USER4> > And there's no point now. Just get them to switch to Visual Studio 2015 and > you'll gain most of the key features, and less of the lag/bugs/memory usage.

There's always a point. I don't suppose that VS integrates well with JBoss or other J2EE appservers, for example, or does run on OSX or Linux machines.

<comment><USER5> Visual Studio Code is a breath of fresh air. It is cross platform, support lots of languages (including Java) and it's very extensible with plugins.

Whilst IDE's and editors are very much a bike shed topic, I've stopped using WebStorm for VSCode because it's got so much going for it.

It would be interesting to hear from any Java developers that have tried VSCode.

</comment></comment></comment></comment><comment><USER6> While it won't change anything to me since I have an old perpetual license (that I will upgrade to subscription), but it does indeed make more sense with the subscription model, the updates look more like rolling updates than versions.

</comment><comment><USER7> The only confusing part for me is now we won't know which upgrades are major revisions and which are minor. How will I get all excited for a whole new release of Pycharm instead of a minor bug fix?

</comment><comment><USER8> Perforce have done this for a long time.

</comment><comment><USER9> Sounds good to me.</comment>


Stop Trusting Viral Videos - <AUTHOR> https://www.theatlantic.com/technology/archive/2019/01/viral-clash-students-and-native-americans-explained/580906/ <comment><USER2> It would be good if the Atlantic at large followed this advice.

Except, they've already painted the whole town of Covington as racists [1], I doubt they will encourage their contributors to follow these principles. And when the next viral video to rolls around, they will join in the outrage mob and gladly vilify children if it means they get clicks.

[1] [https://www.theatlantic.com/notes/2019/01/mayor-covington- ke...](https://www.theatlantic.com/notes/2019/01/mayor-covington-kentucky- explains-what-his-city-stands/580876/)

<comment><AUTHOR> The fact that they are children is what upset me the most about the coverage discussed in this article even before the broader narrative started to unfold. Media should be held to higher standards, IMO

</comment></comment><comment><AUTHOR> The authors point about people generally trusting video as truth even though there is tons of nuance in all of the various ways the video is captured and produced is a good one.

I feel like a lot of the points in the article can apply more broadly to almost all polarizing viral content. In the information economy it often pays off to be unobjectibe and manipulative

<comment><USER3> > polarizing viral content

I feel like the points in the article can apply even more broadly to all content, especially the ones that with more "professional" language and good typography, which people naturally tends to trust more, like the Atlantic.

edit: formatting

</comment></comment><comment><USER4> Stop trusting the newspaper full stop. They are a dying people, we should let them pass.

But seriously, it's entirely predictable that now the wokeology adherents have revealed themselves for the frothing, enraged mob they claim to hate, that now the thinkpieces come out calling for moderation and that nobody really knows what happened.

We already know what happened, and I don't mean what is or isn't in the video. I mean how it got to this point. Widespread indoctrination with collective guilt, then subsequently laser focused on scapegoats.</comment>


Ask HN: How do I find meaningful things to work on if programming is a hobby? - <AUTHOR> I studied a business degree but taught myself Ruby at some point. I loved it so much that at some point I joined a company and became a full-time Rails developer, but because of my background, I moved into a product owner (customer-facing) role after a year.
Currently, I'm working as a scrum master at a different company in a different country. While I enjoy this, I get this crazy and fleeting desire about once a month to just jump back into full-time development. When I then seriously consider this, my partner tells me to just do it as a hobby (which is sound advice for a variety of reasons).
The problem with "just programming as a hobby" is that I lack a good goal (I'm not the kind of person who can't just program for the sake of programming - I want to actually make something).
So, how do I find meaningful things to work on if programming is a hobby? <comment><USER2> 1\. Find a real life non-work thing you care about. For instance, Dungeons & Dragons. Or alternatively, PTSD. It can be silly or serious, just has to be something you care about.

2\. Find a way to apply programming to help. Make an open database of data from the game, or volunteer to make websites to connect those struggling with PTSD with support animals.

3\. Start small and work up, but always build to finish. One of my greatest projects by stars is a tiny JSON file of the open spells from a game. Avoid being mired down in building "the perfect solution", because any solution is an improvement over no solution. "Perfect is the enemy of good."

</comment><comment><USER3> I have a couple of suggestions:

1\. Find parts of your life you want to automate and do less of. An example, I used to budget my money using an excel spreadsheet. I would copy my income and expenses direct from my bank account at the end of each month and categorize it per hand. Now I have a tool that can just download the CSV files from my bank, my PDF bills, and automatically pour all that into a database. I then have a relatively simple webpage where I can view this all, or throw an SQL query at that database.

Find things in your life that you do regularly, and find ways to simplify it through code.

2\. Have you considered finding a non-profit and offering your skills there? Non-profits will usually have a website they need developed, or tasks that could be made a hell of a lot simpler through a for loop or two.

<comment><USER4> Mind sharing the excel?

<comment><USER3> Ahhh sorry I didn't see this. I don't have a blank copy of it that I can find. Only one with a lot of private info in it. It was based on one I found by googling "excel budget templates", "excel financial planning templates" etc if that helps any.

</comment></comment></comment><comment><USER5> If you mean meaningful as in you want to do good meaningful work, I'd suggest taking a look at Ruby for Good. Offhand I know of a couple projects that could use some assistance:

1) Diaperbase - This is an inventory management program for diaper banks. The software is currently being beta tested by 6 diaper banks before opening to all diaper banks. ([https://github.com/rubyforgood/diaper](https://github.com/rubyforgood/diaper))

2) Playtime Project Wishlist - This is an app for the Homeless Children's Playtime Project to facilitate the donation of toys for homeless kids. ([https://github.com/rubyforgood/playtime](https://github.com/rubyforgood/playtime))

Or just jump in our slack and offer to help, we have a lot of meaningful projects to work on! Grab an invite to our slack here: [https://rubyforgood.herokuapp.com](https://rubyforgood.herokuapp.com)

</comment><comment><USER6> As a hobbyist, you have a freedom to work on meaningful problems that most companies and engineers don't.

I suggest you look for problems that it's valuable to the world to solve even though they may not be profitable. Solve problems for homeless people or people in third-world countries who can't afford to pay for software or services.

Create tools for NGOs to use. Write open source libraries for other people to build software on top of so we don't have to use the Googles and Facebooks of the world.

Or solve a problem that's too small to be profitable. Create a community tool or a babysitting bulletin board for your homeowner's association or co-op board. Write a transit app for a small town.

</comment><comment><USER7> Implement a Dynamic Relational database: [https://stackoverflow.com/questions/66385/dynamic- database-s...](https://stackoverflow.com/questions/66385/dynamic-database- schema#46202802) We have plenty of dynamic languages, but no viable dynamic relational databases. There are dynamic databases, but they are either not relational, or use a query language nobody is familiar with. Dynamic Relational can use SQL with only minor modifications from "static" SQL. It only adjusts RDBMS conventions just enough to get dynamism, but keeps enough the same to reduce the learning curve.

<comment><USER8> Have you looked at pgsql JSONB datatype and functions[0]? A lot of the "dynamic database" ideas can be implemented using the datatype, and then you have "dynamic sql" available on a already robust rdbms.

[0]: [https://www.postgresql.org/docs/current/static/functions- jso...](https://www.postgresql.org/docs/current/static/functions-json.html)

<comment><USER7> For one, it requires learning "new ways" to query, and arguably awkward ways. The goal of Dynamic Relational is to _only_ change the features/conventions of existing RDBMS that affect dynamic-ness in order to reduce the learning curve for those already familiar with RDBMS.

<comment><USER8> Wait, what is your end goal with a dynamic relational database?

Changing features/conventions will always create a new learning give.

What is dynamic-ness in RDBMS? It feels like you describing a problem that does not exist.

<comment><USER7> The fact that non-relational or quasi-relational dynamic solutions already exist show there's a need for dynamism. And, I agree that SOME changes are necessary to get the target feature(s), such as dynamism, but it's logical to change as little as possible when inserting the features to reduce the learning curve.

Now, one may argue that add-ons to existing RDBMS give dynamic abilities, but as I suggested before, they are awkward and verbose. If dynamism is a primary feature one wants in an RDBMS, then the verbose approach is not desired.

I welcome other suggestions to achieve similar goals, but as of now, the D.R. suggestion seems the best balance. The goals are: dynamism as a primary feature, and a small learning curve for those already familiar with RDBMS. Go!

</comment></comment></comment></comment></comment><comment><USER9> What I do is take every opportunity to work on small (ideally small enough that I can finish it at work) projects that make my day job (warehouse QA) a little easier.

For example: today was a slow day, so I figured I'd do audits in my down time. Normally I respond to detected errors as they arise, but when volume is low, there aren't enough detected errors to take up all my time. Audits, on the other hand, involve checking specific areas for errors.

I didn't want to do audits blindly, so I wrote a little JS script that let me take a week's worth of error logs and find the areas with the most errors.

I figured the company already had a tool to do this and I just didn't have access to it. After I was finished, I asked the QA manager and he said he didn't have a way to get that information either, so I sent it off to him and made his day job a little easier too.

Another example: we were using a third-party barcode generator to circumvent some issues with barcodes that weren't working right, but it generated the barcode server-side, so we had to wait for the POST request to submit and the page with the server-rendered bar code to load, which sometimes took a while. I figured that wasn't great for the people who had hourly quotas to meet (who have to find someone with a laptop whenever they encounter a barcode that isn't working right), so I wrote one in JS that does it all in the frontend and builds the barcode as you type.

</comment><comment><USER10> I solve problems in my life, ideally within the effort scope I want. Ie, if it takes a year+ of side-work development just to get the alpha or MVP out the door, you're likely to burn out on the side project.

To me, for hobby projects they need to be usable QUICK. Once you have it usable, you'll spot a dozen things that you can do to make _your_ UX better. After that, just rinse and repeat.

</comment><comment><USER11> That is hard question, because we don't know what you like about programming. Do you like algorithms? Do you like creating small tools? Do you like large projects? With people or alone? Are you artistic and thus would be able to create own tiny game? Are you motivated by competition (in that case look for challenges)?

Try to think about answers to these questions. Also, I would advice you to pick something as small as possible at first. Optimally, something you are able to finish within a day. That will allow you to learn how fast/slow projects proceed before you get demotivated about doing something large.

Now, while you don't know, one thing I would recommend would be to look at some online courses whether udemy or coursera or udacity or anything else. Browse through catalog, pick up one and challenge yourself to do course and do exercises. This will not give you "meaningful hobby things", but it will make you keep learning so when meaningful thing comes around, you will already know a lot. And maybe you will find inspiration there.

<comment><USER12> If you like creative stuff and algorithmns you could try to use a creative coding framework like cinder, processing or open frameworks. I like implementing some easy algorithmns like bird flocking simulations, circle packing etc. There are many good examples on youtube (e.g.: The Coding Train) Those are fast and easy projects with the benefit of reaching a goal quick (after you learned the framework), getting to know algorithmns, getting to know languages and having visual feedback.

</comment></comment><comment><USER13> A suggestion above about finding a project to automate some part of your life is really good. I'm generally in the same boat as you, I can't code just for coding sake, but I do really enjoy it and can work feverishly if I have a goal in mind.

For example, I care about my meal prep quite a bit and wanted a way to generate a meal plan based on the recipes and foods I had available. While there are a bunch of apps out there that do that for you, I wanted to save the ~$20 and built my own. While the ROI was definitely not there, it was fun to build and I still use it today.

Another example I did was that I formerly was a professor and got asked numerous times for additional practice problems. So I built a web app that would generate questions with random numbers (these were mostly math based questions) so they had an "unlimited" number of practice problems. This turned into a massive project and was incredibly fulfilling.

The number of problems are practically limitless - good luck!

<comment><USER4> So where's the meal plan app? ... I had similar idea and started with a spreadsheet, I havnt finished yet but thought the problem was interesting and would like to see how you solved it. My idea was to have a list of recipes that you pick for a meal plan and the app would output the grocery list.

<comment><USER13> Mine was really simple, I basically created a SQLite DB with all the recipes I like and where to look them up from. Then I had an interface that would randomly pull the recipes out of the table and assign them. It was basically like (select 1 meat, 1 side, 1 starch, unless it was a one-dish-meal like lasagne).

I ran into a bunch of problems with generating pretty much the same meal multiple times per week. So, I then inserted a "likeness" score for how much I actually liked that item (ex/ brussels sprouts were a 2, sweet potato fries a 9), and then used that as a seed for the probability of showing up.

It was super personalized and I recently found Big Oven which is actually much better than what I had done (it also generates grocery lists and can incorporate random food blogs). The one problem with that app turned into another side project. They limit how many recipes you can OCR into their app. So, my workaround was to create my own "food blog" by uploading a bunch of static sites on my personal website and then linking them. (because food blogs are free to link).

</comment></comment></comment><comment><USER14> Select a subject that will challenge you on multiple levels simultaneously, for example if you don't know Rust and microcontrollers go through this: [https://japaric.github.io/discovery/](https://japaric.github.io/discovery/)

</comment><comment><USER15> Right now I'm working on a suite of tools for calendar/schedule/to-dos, money expense tracker, etc. All for myself because the available tools are either too bloated, or don't have the features I need, or cost too much.

So look at all the tools and apps you use and think of the moments you thought "It sure would be cool if it could do this instead of this or if this looked different" and build your own. I feel like this method is especially good for someone just starting out because you can take inspiration from other software and don't have to build everything from the ground up.

Or maybe browse GitHub and see if there are some open source projects you could contribute to. :) If you see something you like, look if there are open issues and try to fix them.

</comment><comment><USER16> I don't know how "meaningful" it is, but one thing I did that I had a lot of fun programming was making a cheap home automation system. I used $6 RF outlets, a $2 RF transmitter, and connected it to my raspberry pi, and now I can turn on and off all my lights using Siri

<comment><USER17> I've always wanted to do this but didn't know it could be so cheap! Where did you find that stuff? Is it pretty reliable/robust?

</comment></comment><comment><USER18> my suggestion would be to create a "hands-on" course ( for Udemy, PS, Coursera, etc... ) teaching/showing what you already know. It's of lesser importance whether or not your course get approved/carried by the company in question. Let's say: "scrum-managed ROR for beginners", "database performance tuning on ROR applications", "ROR microservices backend for mobile apps", whatever. Draw your course as a mind-map, go on filling the gaps and you will start to find areas that you _want_ to know more. If it works out, you've got a stream of passive income, if not, you have scratched your itch and sharpened your skills... Repeat until you get bored.

<comment><AUTHOR> Also a good idea, thanks!

</comment></comment><comment><USER19> Write a demo. As in the demoscene thing.

More to the point, try programming just for the fun and art of it -- like that 80-year-old lady who paints with her Amiga. You can start off with a framework like Processing if you do not wish to get into making raw OpenGL calls and the like. If it comes from your own vision and imagination, it's meaningful to you.

I dunno. Did you specifically want to do Web programming?

</comment><comment><USER20> Now that you master Ruby, you could have a look at Ruby/Rails open-source projects like this one me and another programmer created:

[https://github.com/diowa/icare](https://github.com/diowa/icare)

</comment><comment><USER21> I don't know how your work environment is, but maybe you can organize something like a monthly Hackathon with your team to work freely on projects (related or not to the company based on how management takes it) during work hours.

</comment><comment><USER22> Look for services, apps or programs you use that are open source and make contributions.

</comment><comment><USER23> Just look around you and see if there is any task you would like to automate.

</comment><comment><USER24> read the source code for the programs you use. compile them yourself. try to fix your own minor annoyances, and poke around. take a look at their bugs database.

</comment><comment><USER25> * automate things in your daily life :- I spend sometime in office downloading many kinds of log file and analyzing it. So, I just built a small qt GUI that behaves like a MC clone in windows. It's not very nice looking, but improves day by day.

* hobby to useful apps :- like visitinh hackenews frequently, so make a GUI client for hn.

No matter what you do, if the requirement is not clear, you won't be able to finish it. If no one uses it, it will be useless and disapper into the crowd.

</comment><comment><USER26> I fly frequently and i do like being subsidised by other passengers (pay less), I've written my own robot that monitors flight prices and alerts when prices go down (that way i can workout the trend)</comment>


2012 is too good to be true - <AUTHOR> http://resolutionsforgood.com/

<comment><USER2> Great idea. Who made the video? Animation genius

</comment><comment><USER3> this is great!

<comment><USER3> Just shared with my friends. looking forward to a good new year

<comment><USER4> love it! great way to ring in 2012 by doing good for someone else</comment></comment></comment>


Ask HN: Do most employers monitor your work computer? - <AUTHOR> I work at a growing B2B startup with around 100 employees. Without warning, the sysadmin has started having the developers install JumpCloud, Desktop Central, and AnyDesk on their company-issued laptops. They create an extra admin account for their access, force the developer to change their username, and change the home folder name for the software to work. From what I understand, they are doing this to try to get a security certificate that a client is demanding.
It would be reasonable in my opinion to have this software on a computer that stays in the office, but developers at my company all bring their laptops home every day and also often work at home for either the entire day or part of the day. Employees have flexible work hours too. In practice, for developers at least, this laptop serves as both a work laptop and a personal laptop.
I feel really frustrated by this whole situation. I really like working at my company, and I work both at home and in the office. However, I don't feel comfortable installing this kind of monitoring, remote-access, root-control software on my computer, especially one that I bring home! I like how it is now that I can be logged into my personal email account on my work computer and know that I am the only one able to access it. We use our personal GitHub accounts also at work, and this will implicitly give my company access to it as I am logged into GitHub at work.
I understand that it's a company-owned laptop, but is it unreasonable of me to want this kind of software off the computer that I use? Would I have a hard time finding a reasonably-sized company that does not require this kind of software to be installed? <comment><USER2> Ummm...Never do personal work on a company-owned laptop. If you work anywhere it's monitored. What's dumb about your current company is that they are having you be aware of what's being installed...that's really poor IT. Using personal Github accounts at work means your code...ALL of your code is potentially property of the company. Lawyers love these area...cuz companies win.

Ask\Demand a company laptop if one isn't provided then you don't have the required tools to do your job and find a different employer.

</comment><comment><USER3> > " _I like how it is now that I can be logged into my personal email account > on my work computer and know that I am the only one able to access it._ "

That's a poor assumption even with no monitoring software installed on you computer. If the company asked to access your computer immediately (e.g. if they think it's infected or if you're laid off unexpectedly), you would not have a leg to stand on to refuse no matter what personal data or log-ins you might have on it. I had this happen once when a tool I was developing for load testing was generating enough traffic to attract the attention of IT; fortunately all I had on it were a few music files.

It's the company's computer, not yours. End of story.

</comment><comment><USER4> Like yours, current, and last companies definitely have some spyware-ish tools installed on the laptops. I wish there was some tool or documentation on what it is doing and what the capabilities are. I've tried to look into it but there is not much information available.

I find it annoying to haul around and switch between two laptops (especially traveling). Here's what I have done:

I bought an external SSD and a usb 3.1 type-c enclosure for about $120-130 on amazon and use it as a boot disk (hold option while booting). This way I can boot my work laptop into a physically separated OS for personal use. I use whole-disk encryption on that disk via FileVault.

I also symlink my source code dir to a separate volume on the internal SSD drive so that I can access it from this second OS if I need to pull some code over to work on it.

Warning: I recommend testing this with a cheap USB stick before buying the drive because booting from external disks can can be disabled with profiles.

</comment><comment><USER5> It's common to have web monitoring for sure but I have never worked for an employer that requires screen viewing or remote-access software installed. It shouldn't be difficult to find an employer that doesn't use these tools internally.

Of course that all depends on the nature of what the company does.

</comment><comment><USER6> _In practice, for developers at least, this laptop serves as both a work laptop and a personal laptop._

I have a company-issued laptop and I have never opened my personal email or even a non-work browser tab on it. I assume everything is monitored and recorded. Get a 2nd laptop for your personal use.

</comment><comment><USER7> > Would I have a hard time finding a reasonably-sized company that does not > require this kind of software to be installed?

No.</comment>


Steam Lisp - <AUTHOR> http://www.loper-os.org/?p=388 <comment><USER2> From reading the author's other posts, the clear implication is that Lisp (and only the author's preferred flavors of Lisp, not pale imitations like Clojure) offers the only possibility of breaking out of the hopelessly broken paradigms accepted by the unwashed masses.

Personally, for all the problems and terrible design decisions that we're all living with, I find a whole lot of what fellow programmers do amazing and inspirational. A lot of the stuff they produce with so-called broken and unproductive tools are amazing products that provide a lot of productivity and enjoyment for a wide range of people. I've also found that almost any sufficiently popular language or environment has its share of brilliant, original thinkers trying to build new tools to make things easier and better for others. These are people who should be thanked and celebrated for their contributions.

I looked further into the author's blog posts. The dominant themes are bilious and scornful attacks on other's work, or lamentations about the sad state of software today. He claims to be producing a Lisp-based operating system. Curious to see his progress, I checked the source repository, to find that it only contains a README indignantly protesting the the treatment he's received from others.

This guy's combination of arrogance, scorn, and complete lack of demonstrated competence makes him oddly fascinating. I wonder what kind of social factors in our industry produce people like this, and how we can work to counteract them.

<comment><USER3> _The dominant themes are bilious and scornful attacks on other's work, or lamentations about the sad state of software today. He claims to be producing a Lisp-based operating system. Curious to see his progress, I checked the source repository, to find that it only contains a README indignantly protesting the the treatment he's received from others._

Funny -- I wrote something more polite but similar to this in 2010 about another post of his: [http://jseliger.com/2010/09/30/computers-and-network- effects...](http://jseliger.com/2010/09/30/computers-and-network-effects-why- your-computer-is-slow/) .

</comment></comment><comment><USER4> All innovators are unconventional.

That is a conditional statement, not a biconditional. Which is why for every single successful innovator, we can often find thousands of nutcases, inventing floating shoes, helmet mounted rifles, and Forth (just kidding, mostly). Therefore, an unconventional person should be especially careful that they do not find themselves on the wrong side of the thin line between genius and insanity.

<comment><USER5> Forth is number 1 on my list of greatest languages -- and I've been coding Lisp full time for years. If you want to have your mind blown, take a look at what Moore has done recently with Color Forth. It's tricky to piece together the story from bits on the internet, but the resulting language is enlightened in a way no other languages can claim.

<comment><USER6> This ties in well with ( [http://www.yosefk.com/blog/my-history-with-forth- stack-machi...](http://www.yosefk.com/blog/my-history-with-forth-stack- machines.html) )

"What can be said of this? If, in order to 'really' enter a programming culture, I need to both 'be solving a significant real problem in the real world' and exercising 'the freedom to change the language, the compiler, the OS or even the hardware design', then there are very few options for entering this culture indeed. The requirement for 'real world work' is almost by definition incompatible with 'the freedom to change the language, the compiler, the OS and the hardware design'."

<comment><USER7> Only part way through that article you linked to, but it is fascinating. The part that includes Moore's rant against local variables crystallized an idea that had been bubbling around in my subconscious for some time. Very often the only reason I find I am writing a local variable is to make an expression with several sub-parts easier to see the sub-expression values in gdb. This wouldn't be quite so necessary if the debugger had a syntax for saying "list the sub expressions of this statement" and for saying "print sub-expression #N". For instance, with the debugger stopped just before a line like x = foo(bar(a,b), blat(c,d)); "list subs" -> "0: bar(a,b), 0.1: a, 0.2: b, 1: blat(c,d), 1.1: c, 2.1: d." then just typing something like sub0 would print the value of bar(a,b)."

Of course lacking such a facility I just end up scattering extra locals even though I end up feeling like the output is rather archaic. a = ...; b = ...; c = f(a,b);

</comment></comment></comment></comment><comment><USER8> Yeah, another post praising the greatness of Lisp without any backup in actual evidence. Dude, you'd be infinitely more convincing having actually produced something great with Lisp or at least showing how its unique features can be used for this purpose. "Lisp is great, but the masses just don't get it" doesn't cut it.

<comment><USER9> I missed the "Lisp is great, but the masses just don't get it" bit so thanks for the interpretation. Isn't a short blog comment (take it or leave it) enough for you? The author's got to produce a thesis with full supporting documentation on a point you suppose he's making? This is straw dog stuff. I wonder why it gets you hot under the collar?

</comment></comment><comment><USER10> A video of a replica of a Newcomen steam engine, together with the braindead, repetitive job of the operator: <http://www.youtube.com/watch?v=yyLXEK5YwUY>

Imagine doing that all day long, every day.

And here's a version which has been automated with some strings: <http://www.youtube.com/watch?v=Ca0Ea_oPto8> and apparently got its inventor immediately fired.

</comment><comment><USER11> cranky, pissed off, lisp, hacker. right or wrong, cool.

</comment><comment><USER12> Particularly in blogging, hot air makes the world go around...

<comment><USER13> You mean steam</comment></comment>


Show HN: YouTube Dynamic Playlists - <AUTHOR> https://youtube.ndo.dev/ <comment><AUTHOR> Side project of mine to be able to put together dynamic YouTube playlists in no-time.

I couldn't find a good solution out there, so to scratch my own itch, I created this.

Simply drag and drop a youtube URL onto the page and/or focus onto the page with a youtube URL in your clipboard. You can drag and drop the videos in the playlist area to reorder and best of all - it stays in full screen mode between videos (a feature I couldn't find in any of the existing solutions out there ;) )

Let me know what you guys think!

Btw, the repo is available here: [https://github.com/ndom91/youtube- playlists](https://github.com/ndom91/youtube-playlists)</comment>


On election day, consider abstaining from ignorant voting - <AUTHOR> http://www.washingtonpost.com/news/volokh-conspiracy/wp/2014/11/04/on-election-day-consider-abstaining-from-ignorant-voting/

<comment><USER2> I don't agree with this. There are a number of races I voted in more or less randomly today, and I feel perfectly fine about that.

I look at it this way. There is, we can assume, one "optimal" candidate. We have little way of knowing which one this will be until after they're elected and have started working. In some cases there may be candidates who are very obviously non-optimal - like if they're currently being indicted - but aside from that, it's tough to tell.

If I know nothing, the chance that I'll vote for that candidate is 1/N where N is the number of candidates.

If I do know about the race, and have been persuaded to vote for a non-optimal candidate, there's 0% chance that I'll vote for the optimal outcome.

The only situation where my vote definitely contributes to a good outcome is if I know for sure that the candidate is the best one, but that requires predicting the future, and is impossible. There will always be a pretty good chance my vote could have been cast for someone better.

I think in the end, the probability that the best candidate gets elected in low-information races is going to tend towards 1/N anyway, so you may as well increase the sample size.

</comment><comment><USER3> I'll take an uninformed off the cuff vote over the abstention of a depressed slacktivist any day, but maybe that's just me.

If voters are voting ignorantly, then let the politicians spend more time informing them rather than slinging mud at each other. Oh excuse me, I mean hey check out that boat full of cocaine owned by Mitch McConnell's in-laws because scandal!

</comment><comment><USER4> > Even if you are an unusually well-informed voter, the enormous size, scope, > and complexity of modern government ensure that there will be many issues > and candidates about which you know very little….

This argument can be used _ad infinitum_. There cannot be such a thing as perfectly informed about anything that has subjective components, so this doesn't sway me.

I find a corollary of this much more interesting: in elections for office -- as opposed to referenda -- I find that the amount of information I need to make a binary choice is often trivial. I absolutely cannot understand why there are so many millions of people out there who have such a hard time making up their mind on these things. Moreover, we have the gift of information about candidates at our fingertips. Maybe others see subtleties where I see rather stark contrasts, but I doubt it. I think it's all just political news reporting-generated false churn.</comment>


Synquid: Synthesize Programs from Refinement Types - <AUTHOR> http://comcom.csail.mit.edu/comcom/#Synquid <comment><AUTHOR> If you're like me, this immediately lead you to ask, "How are Refinement Types different from Dependent Types?"

In searching for that I found a really good CS stackexchange answer on the subject: [https://cs.stackexchange.com/questions/21728/dependent- types...](https://cs.stackexchange.com/questions/21728/dependent-types-vs- refinement-types)

Which linked to the course materials for a class on Liquid Haskell, which is a refinement types system for Haskell whic lets you prove properties about Haskell programs.

[http://ucsd-progsys.github.io/lh-workshop/01-index.html](http://ucsd- progsys.github.io/lh-workshop/01-index.html)

I found these helpful to think about how Synquid might be doing what it's doing. I really wish I had been at the Strangeloop talk.</comment>


Illegal Prime Number? (2001) - <AUTHOR> http://fatphil.org/maths/illegal1.html <comment><USER2> Some context for people younger than me: This was a Big Thing On The Internet back in 2000. It was lovely, and it was where I discovered how a bunch of motivated nerds on the internet could make a dent.

So anyway, the thing was DVDs were pretty new, and DVDs had "region protection". Cutting corners, this means that data on DVDs could be encrypted with different keys depending on which continent you were on, to allow complicated per-country movie distribution models. You could change the "region" on your DVD player or computer, but only 3 times or so. Of course people could also make unencrypted DVDs, but movie makers didn't do that. Internally the encryption scheme was called CSS, chosen by people who I assume didn't code websites much.

Now, the DVD consortium people (backed by the film industry and hardware vendors) released DVD playing software for Windows and Mac, but not for Linux. This made Linux enthusiasts sad, who couldn't play DVDs on their computers. You have to remember, this was before the Pirate Bay, broadband, and Netflix. People really wanted to be able to buy/rent these DVDs and play them, this was not a hypothetical wish. It was the only way to get high quality movies in the house.

Then it became clear that the DVD people really weren't going to ship a DVD driver thing for Linux, not even closed source, not even when we all asked really nicely. I'm not 100% sure whether there were no DVD drivers at all on Linux, or simply that they only could play unencrypted DVDs, but you can see where this is going: the Linux people wanted to be able to play real DVDs, the ones they'd buy or rent in town, the vendors wouldn't do the effort, so the Linux folks did it themselves. This was common, especially then, when most hardware vendors couldn't care less about Linux.

So they cracked the CSS encryption.

I mean, _of course_ they cracked it. This was not the warez people, this was the FOSS people. They had a computer with a perfectly good DVD drive and they wanted to watch movies on it. You can't stop these folks.

The MPAA, however, did not like this. They realized that it would just be a matter of time before people would port this code to OSes that have more usage than a rounding error on their bottom lines. So they did what the MPAA does best: hunt witches. At least one guy, a Norwegian 16-year old, got prosecuted by the state, and it all got messy very fast.

Meanwhile, the angry nerd mob that is the internet didn't sit still. They soon realized that the big Linux DVD player software wasn't the issue, the only issue was that little library called DeCSS which cracked the encryption. Soon, people started hosting DeCSS on their websites, in objection to the MPAA's witch hunt. It wasn't that big, after all.

MPAA then started sending aggressive takedown notices and even lawsuits to ISPs and hosting providers who had customers who hosted DeCSS. Some customers got in trouble, some providers had a spine. It was bad, but this sparked 2 wonderful developments:

First, someone wrote a Perl script called DeCSS that removes cascading style sheets from HTML files. Nobody had a use for it, but _lots_ of people hosted it on their sites. The MPAA sent takedown notices to those as well, and this was much easier for providers to say no to. After all, it was as harmless as any program good get and let's be honest, it was aptly named.

Second, the one of first serious internet sizecoding competitions got kicked off, because smaller code is easier to distribute in nifty ways. People remixed each other's work until the core DeCSS algorithm was only a single line of code. Gzipped, there was nearly nothing left. The article this thread is about assumes that you're aware of that (all the geeks were at the time) and starts from there with the insight that there's probably a prime number that includes this code and is, therefore, illegal.

People also put this minified DeCSS code in all kinds of wonderful places. One of the best hacks I recall is that you could make the DVD consortium's DNS servers host DeCSS. Because DNS servers cache data from other DNS servers, you could make a TXT record on your domain with DeCSS in it, then look it up via the DVDCCA nameserver, and it would keep a copy. But there were many ways: [http://decss.zoy.org/](http://decss.zoy.org/)

This was all straight from memory. I probably got some details wrong and I probably missed many great anecdotes. But this was a beautiful piece of collaborative civil disobedience and to my knowledge it was the nail in the coffin of region-protected DVDs.

<comment><USER3> Thank you for this writeup, this was before my time on the internet.

> People remixed each other's work until the core DeCSS algorithm was only a > single line of code. Gzipped, there was nearly nothing left

What was the actual number? Can you post it here?

<comment><USER4> I recall a version that was an ascii string that you could save as a file with a .zip extension and it would unzip into the source.

<comment><USER5> And I remember someone was selling t-shirts with that string!

<comment><USER6> I had the RSA "this shirt is a munition" t-shirt that was technically illegal to take outside of the United States due to export controls.

Though, it wasn't 1/100th as ugly as this block of graffiti spam.

[http://www.cypherspace.org/adam/uk- shirt.html](http://www.cypherspace.org/adam/uk-shirt.html)

</comment></comment></comment></comment></comment><comment><AUTHOR> And its follow-up:

[http://fatphil.org/maths/illegal2.html](http://fatphil.org/maths/illegal2.html)

</comment><comment> s-c-h pi, e, √2 are thought to be normal [0], which would make them Disjunctive sequences [1]. This means that every finite string appears as a substring in them, including for example all Shakespeare works, and the ADN of every person [2].

In particular they contain this illegal prime number, and the gzipped and non- gzipped versions of this program in every programming language possible.

Does that mean that they may become illegal someday if they are proven to be normal?

[0] [https://en.wikipedia.org/wiki/Normal_number](https://en.wikipedia.org/wiki/Normal_number)

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

[2] [http://sprott.physics.wisc.edu/pickover/pimatrix.html](http://sprott.physics.wisc.edu/pickover/pimatrix.html)

(edited to add links)

<comment><USER7> > πfs is a revolutionary new file system that, instead of wasting space > storing your data on your hard drive, stores your data in π!

[https://github.com/philipl/pifs](https://github.com/philipl/pifs)

<comment> s-c-h Thanks for the reference. Even the github issues are fun to read. In particular this one is relevant here: PiFS installs large volumes of objectionable content and copyright violations ([https://github.com/philipl/pifs/issues/2](https://github.com/philipl/pifs/issues/2))

</comment></comment></comment><comment><USER8> An illegal prime reminds me of the article "What Colour are your bits?" from Matthew Skala [http://ansuz.sooke.bc.ca/entry/23](http://ansuz.sooke.bc.ca/entry/23)

</comment><comment><USER9> I didn't understand what made this illegal from the article, but [http://primes.utm.edu/glossary/page.php?sort=Illegal](http://primes.utm.edu/glossary/page.php?sort=Illegal) covers it in more detail. Very interesting.

</comment><comment><USER10> tl;dr- Programming code serialized to binary seems like a Base-2 number to them, so they were looking for "illegal" C scripts that would be prime when read as a Base-2 number.

They give the example of a C script that breaks an old DRM crypto scheme.

It seems kinda silly since primes have a fairly regular distribution, so all they need to do is:

1\. Pick any program they want to be "prime".

2\. Serialize it and check if it's prime. If so, done; if not prime, continue.

3\. Perform some minor code modification that doesn't change the script's functionality, e.g. tweaking a variable name or the content of a comment.

4\. Return to Step (2), looping until a prime representation has been found.

<comment><USER11> Step 2 (checking if huge numbers are prime) is a hard problem.

Additionally, the author wanted to find a prime that encoded the program that was also notable for some other reason (to give people a legitimate pretext to host it). He decided to try to make it one of the largest primes ever discovered, and it was, though it no longer is.

<comment><USER12> FYI, prime number test can be done in determining polynomial time (instead of NP). So it is not a hard problem.

</comment></comment></comment><comment><USER13> Interesting that the prime pages link is dead, and they didn't include the prime number on their own site.

<comment><USER14> The link may be dead, but the site still exists. Here's the 1401-digit prime:

[https://primes.utm.edu/curios/page.php?number_id=953](https://primes.utm.edu/curios/page.php?number_id=953)

</comment></comment><comment> huy-nguyen A very interesting number. The first time I learned about it was through this Youtube video [https://youtu.be/LnEyjwdoj7g](https://youtu.be/LnEyjwdoj7g).

</comment><comment><USER15> See also related Wikipedia article: [https://en.wikipedia.org/wiki/Illegal_prime](https://en.wikipedia.org/wiki/Illegal_prime)

</comment><comment><USER16> So, has the law changed? What's its impact today?

<comment><USER17> DMCA (and similar in other countries) is still in force. It's still enforced, but selectively.

The UK has an approach which is almost sensible, but ends up being stupid. IP holders have rights to protection from illegal copying, and that's why law about circumvention of technological measure was introduced. Consumers also have rights to make copies in some situations, and those rights need to be protected. So consumers can ask the rights-holders for an exception, and can then go to the secretary of state if the IP holder declines to provide an exception.

[https://www.gov.uk/government/publications/technological- pro...](https://www.gov.uk/government/publications/technological-protection- measures-tpms-complaints-process)

[https://www.gov.uk/government/uploads/system/uploads/attachm...](https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/448277/Guidance_on_the_Technological_Protection_Measures_TMPs_Complaints_Proces....pdf)</comment></comment>


Continuous Formal Verification of Amazon S2n - <AUTHOR> https://link.springer.com/chapter/10.1007/978-3-319-96142-2_26 <comment><USER2> Proud of this work at Galois!</comment>


Ask HN: What to do if co-founders are distracted by other business ventures? - <AUTHOR>

I'm the technical co-founder of a startup with two of my close friends. We've been in business for more than a year and are profitable. However, both of my co-founders are constantly getting involved with other business ventures while I put in alot of work into the startup. I feel they aren't as completely committed as I am and it's definitely hurting our growth. Lately it's been very demotivating for me knowing that while I work on our startup, they are researching/getting involved with other startup ideas. However, I don't want to completely abandon the startup cause it has a lot of potential and is still growing. But I can't continue like this since it makes me frustrated and stressed out.<p>Does anyone have experience with this type of situation? How do you guys recommend I approach this? <comment><USER2> Ouch -- tough problem.

I'm no expert on these situations, but here's my take. I think you need to give them an ultimatum. Either they make you CEO -- giving you the power to cut their pay or even fire them -- or you'll quit.

I know you don't really want to quit. A profitable bootstrap (as I gather this is) is a rare enough thing that you don't want to abandon it. But you also don't want to be in a situation where your two co-founders are freeloading off your work -- that could get really old really fast. Maybe you can't get their equity back (I'm guessing you didn't set up a vesting schedule for founders' stock), but you could at least stop them from being a drain on the company's cash flow without giving much back.</comment>


Thich Nhat Hanh on the propagation of suffering across generations [video] - <AUTHOR> https://www.youtube.com/embed/ms6EylTW-2o?start=3132&end=3396

<comment><AUTHOR> For uncooperative web browsers and apps: link is intended to excerpt 52:12-56:36.</comment>


DNA reveals we are all genetic mutts - <AUTHOR> https://news.harvard.edu/gazette/story/2019/02/harvard-geneticist-no-populations-dna-is-pure/ <comment><USER3> > A similar prehistory occurred in the Iberian Peninsula where a third > population, also arrived from the Steppes, joined the hunter-gather and > farmer groups. In this case, DNA research shows that the third population > was exclusively male: While only 40 percent of the population about 6,000 > years ago comes from the Steppes, 100 percent of the Y chromosomes do.

This doesn't say what the author wants it to say. If 100% of the Y chromosomes come from the intrusive population, that doesn't mean that the intrusive population was entirely male. It means that 100% of indigenous males were exterminated, so that (after the intrusion) the male population was entirely intrusive. All the males being intruders is a very different concept from all the intruders being male.

<comment><USER4> No, it doesn't mean that either (extermination of males). It just means that only Steppe Y-chromosomes survived. This could be the result of extermination, or it could be the result of stochastic drift, or selection, or any number of other scenarios that result in the loss of some set of Y chromosomes.

<comment><USER3> Realistically, extermination of males is exactly what it means. It cannot be stochastic drift; the pool of chromosomes dying out is too large. It can be selection (it _is_ selection), but it can only be the kind of selection that involves every native male failing to have children at all, because the Y chromosome does not recombine.

<comment><USER4> First of all, given that we only have a limited sample of the Y-chromosome space, I don't think we can conclude that no native Y-chromosomes actually survived. That aside, it's easy to get selection for specific Y chromosomes without extermination, for example if you have a ruling caste whose males are favored (e.g. by primogeniture) or through preferential mating by lineage. See: the prevalence of the (presumed) Chingisid chromosome here: [https://doi.org/10.1086%2F367774](https://doi.org/10.1086%2F367774)

</comment></comment></comment></comment><comment><USER5> > "No population is, or ever could be, pure,"

Why this obsession with 'purity'? Isn't it obvious that, despite none being pure, some populations are more closely related?

<comment><USER6> It's a rebuke of the false trope of the purity of racial ancestry which has persisted in many human societies for centuries, occasionally manifesting in the form of events like the Holocaust.

Because that trope has sadly persisted to this day in some quarters, it's falsehood needs to be continually exposed, especially by sciences such as biological anthropology, which were once used to promulgate it.

<comment><USER7> Actually, it's my impression that some Jewish groups have done a pretty good job at maintaining racial purity. In some cases, leading to ~frequent homozygousity for some nasty recessive mutations.

I don't know the specifics, but I've read that only certified Jews can officially marry in Israel. And the standards are so high that many "Jewish" immigrants don't qualify.

Now that we have DNA testing, I wonder if that will become the standard.

<comment><USER6> > Actually, it's my impression that some Jewish groups have done a pretty good > job at maintaining racial purity.

Because certain very specific subgroups have done this doesn't mean that they are "pure". These in-marrying groups are always descended from mixed populations in the first place, populations that predate the identity badges we ascribe to them today.

Tay Sachs, among the genetic diseases you alluded to, is also present in non Jewish populations, but at a lower rate:

[https://www.haaretz.com/jewish/non-jews-increasingly-hit- by-...](https://www.haaretz.com/jewish/non-jews-increasingly-hit-by-jewish- diseases-1.5319996)

> I don't know the specifics, but I've read that only certified Jews can > officially marry in Israel. > And the standards are so high that many > "Jewish" immigrants don't qualify.

People can convert to Judaism, and even be born into Judaism with one Jewish parent. This is very common among populations outside of Israel.

Large subgroups in Judaism, sephardi, baghdadi, etc, are genetically quite diverse in origin, and are significantly represented among the Israeli population.

<comment><USER7> > People can convert to Judaism, and even be born into Judaism with one Jewish > parent. This is very common among populations outside of Israel.

Yes, but to strict orthodox, they're not really "Jewish".

At one point, I researched rabbinical criteria for determining pedigree and classifying degree of Jewishness. Who can marry who, and how any children are classified. It's mind-boggling. If I have some time while this thread is hot, I'll post some sources.

Edit: Here are some sources. Please note that they're Jewish sources. Not anti-Jewish sources.

[http://www.jewishencyclopedia.com/articles/11977-pedigree](http://www.jewishencyclopedia.com/articles/11977-pedigree)

[https://www.chabad.org/library/article_cdo/aid/4045946/jewis...](https://www.chabad.org/library/article_cdo/aid/4045946/jewish/Why- Cant-a-Convert-Marry-a-Kohen.htm)

[https://tikvahfund.org/uncategorized/intermarriage-can- anyth...](https://tikvahfund.org/uncategorized/intermarriage-can-anything-be- done/)

[https://www.jewishvirtuallibrary.org/marriage-in- judaism](https://www.jewishvirtuallibrary.org/marriage-in-judaism)

[http://www.cohen- levi.org/jewish_genes_and_genealogy/the_dna...](http://www.cohen- levi.org/jewish_genes_and_genealogy/the_dna_chain_of_tradition.htm)

[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1288118/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1288118/)

<comment><USER6> > Yes, but to strict orthodox, they're not really "Jewish".

Unless you are seeking to identify as "strict orthodox", why would it matter?

The majority of Jewish groups are welcoming to people from the outside, if they achieve the required objectives in terms of religious and cultural fluency.

<comment><USER7> I don't really care, now.

But strict orthodox rules do apply in Israel. And that's not so insignificant. It's one reason why I'm in the US and not in Israel.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> There's also this:

> Once upon a time, 4,000 to 8,000 years after humanity invented agriculture, > something very strange happened to human reproduction. Across the globe, for > every 17 women who were reproducing, passing on genes that are still around > today—only one man did the same.

So it seems like this was a common pattern.

[https://psmag.com/environment/17-to-1-reproductive- success](https://psmag.com/environment/17-to-1-reproductive-success)

[https://genome.cshlp.org/content/early/2015/03/13/gr.186684....](https://genome.cshlp.org/content/early/2015/03/13/gr.186684.114.abstract)

</comment><comment><USER8> > Genetics also show that India's caste system, previously thought to have > developed under colonial rule, was in place thousands of years earlier.

This is such a shockingly ignorant statement that I wonder what Harvard is teaching these days.

<comment><USER9> Look up David Reich. The actual finding is that many Jātis show genetic evidence that interbreeding with other Jātis has been negligible over the past 2000 years. It's not necessarily a statement of the social relations between the Jātis, let alone the varnas.

</comment></comment><comment><USER10> _Genetics also show that India's caste system, previously thought to have developed under colonial rule, was in place thousands of years earlier._

"Colonial rule" means British rule presumably. I always assumed the caste system long pre-dated it, considering how entrenched it seems to be.

<comment><USER6> The British exploited it, and under them aspects of it became more rigid, but it long predates them.

<comment><USER3> The data shows there was less than one inter-caste marriage per caste pair per generation for the last few thousand years. What was left to become "more rigid" than that under the British?

<comment><USER6> For one thing, there is often a subcaste structure within each local caste itself. The subcastes of a caste who received British patronage, i.e. jobs in the colonial administration, would preferably marry only among themselves.

Of course, this was about preservation of wealth and power, and not so different from similar marriage practices among wealthy classes in England (as depicted in Downton Abbey)

The British didn't invent the sub-castes, but they effectively exploited them.

</comment></comment></comment></comment><comment><USER11> More in depth article from Reich: [https://www.nytimes.com/2018/03/23/opinion/sunday/genetics-r...](https://www.nytimes.com/2018/03/23/opinion/sunday/genetics- race.html).

<comment><USER12> >What makes Dr. Watson's and Mr. Wade's statements so insidious is that they start with the accurate observation that many academics are implausibly denying the possibility of average genetic differences among human populations, and then end with a claim — backed by no evidence — that they know what those differences are and that they correspond to racist stereotypes.

Perhaps there is no hard evidence because nobody is willing to risk their lively-hood over researching such claims. Just look at what they did to Dr. Watson. Heck, a few paragraphs above Reich was talking about African-Americans being genetically predisposed to prostate cancer as if it was a highly controversial topic.

<comment><USER13> Well, the problem is we probably can't find anyone to sponsor to study to determine if once and for all, whites are prone to psychosis and mass murder via guns.

<comment><USER12> Now that is quite the switch of topic. The only known research of race differences in psychopathy is of Richard Lynn's 2002 studies on the topic. In this, Lynn does point to whites being more prone to psychosis than on average. I do know of some controversy of Richard Lynn's work, and here is a response paper to such: [https://web.archive.org/web/20130108233748/http://riskreduct...](https://web.archive.org/web/20130108233748/http://riskreduction.soceco.uci.edu/wp- content/uploads/2011/01/Psychopathic-personality-and-racial-ethnic- differences-reconsidered.pdf)

Regarding school shootings in particular, my personal guess is that such sour actions on the average are merely a symptom of a hole in America's conscious, in that these semi-affluent white boys have lost meaning in life, and do not care if the actions they commit are grave. Of particular note is you do not see boys of abject poverty commit these actions, as they are more focused on not starving (and thus have something obviously meaningful to their life to prioritize).

<comment><USER14> _Psychopathy_ , i.e. antisocial personality disorder, and _psychosis_ , the state of experiencing delusions and/or hallucinations, are two very different things.

<comment><USER12> Oh yes, my apologies. Although in my defense I would connect psychopathy with school shootings rather than psychosis. And by a brief search it seems that in America whites on average are diagnosed with psychosis much less often than blacks and hispanics: [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4274585/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4274585/)

</comment></comment></comment></comment></comment></comment><comment><USER15> > The Steppe migration resulted in a 90 percent replacement of the population.

>While only 40 percent of the population about 6,000 years ago comes from the Steppes, 100 percent of the Y chromosomes do.

From reading this article it seems another way that this could be phrased, is that we are all the descendants of perpetrators of genocide.

<comment><USER16> Don't forget the rape!

100% of your Ys coming from one place is the opposite of "mutt", too. But the only way you can get to do race science is by coming to the conclusion "There's no such thing as race" first, and making the details sound boring enough that nobody asks.

<comment><USER17> The concept of race has always sounded like total bullshit to me. Do you have a definition that makes any sense?

<comment><USER18> Sequence the world and run them through a clustering algorithm, picking how many clusters you get:

2 clusters: African and non-African

5 clusters: African, European, Asian, PNG/Australian Aboriginal, Native Americans

All the way to:

1 billion clusters: Individual families

When most people think of race they are talking about the number of groups that make clusters of major continents, where there wasn't much gene flow until 1492.

Google PCA ancestry (PC term for race) eg gnomAD:

[https://encrypted- tbn0.gstatic.com/images?q=tbn%3AANd9GcSZ-l...](https://encrypted- tbn0.gstatic.com/images?q=tbn%3AANd9GcSZ-lBFuHuVO2g446dI21P0F8oqcmLYAGZAXy- Yg9uJ5ULt2Pxd)

Self reported race matches genetically determined race at rates in the high 90s.

A way to think about it without clustering etc:

People separated (usually by geography) long enough that they bred mostly amongst themselves, and developed characteristics different than other groups.

Yes, you can walk from Amsterdam to Beijing and see a gradient of people the whole way - but that doesn't mean you can't tell the difference between a Chinese person and a Dutchman.

</comment></comment></comment></comment><comment><USER19> I wonder how many of these genetic migrations were peaceful.

<comment><AUTHOR> probably very few, if the old testament or the huge proportion of ancient skeletons that died violent deaths serve as any guide. which is why I think this story by Reich is _very_ tone deaf. It's hard to see how a 90% population replacement promotes feelings of unity and hand-holding.

One imagines a superposition of a video feed of the invasion of the steppe- people on horseback, stampeding the native defenses, cutting the male children's throats and raping the women, with a video a David Reich being like "we're all a little mixed".

<comment><USER20> Tone deaf indeed. It seems common for people not to ascribe a full measure of humanity to humans from the (distant enough) past. Thought exercise: are there any large-scale population replacements happening today, and how do people feel about that? Surely not a kumbaya feeling I'd bet.

<comment><USER21> In the recent past: the Americas, Australia, New Zealand, Fiji?, etc.

Current: Tibet, West Papua, Rwanda?, Northern Europe perhaps?

<comment><USER5> Add Xinjiang to the list of current ones - <USER2> [https://www.nytimes.com/2019/03/02/world/asia/china- muslim-d...](https://www.nytimes.com/2019/03/02/world/asia/china-muslim- detention-uighur-kazakh.html), flagged off the HN front page: "Decades of migration by Han, China's dominant ethnic group, have transformed Xinjiang, fueling Uighur anxieties. Uighurs, once the majority, are 46 percent of the region's 22 people million people, Han are 40 percent and Kazakhs 7 percent, according to government estimates."

</comment></comment></comment></comment></comment><comment><USER22> David Reich you say.

</comment><comment><USER23> of course we are all mutts, we all evolved from bacteria. the question is the relative purity. "is the race pure from this period to this period" is what people mean when they mention purity. When a jew chooses a mate, they are only concerned if their mate has pure jewish ancestry from the last 2000 years.

<comment><USER24> That doesn't equate to "relative purity" at all. The number of ancestors someone has 66 generations in the past (approx 2000 years) is enormous. We can get around this by making value judgements that say "only the direct matrilineal line ancestors count" or "only the direct patrilineal line ancestors count", but ideas like that are absolutely human value judgements made as a reaction to the overwhelming complexity above, and have no basis in biology. These value or worth of those judgements are also artificially enforced and were not robustly adhered to historically. We are indeed all mutts, and every credible analysis for the last century has shown "race purity" is an abstraction that is absurd to the point of lunacy.

<comment><USER25> > We are indeed all mutts

I get why Reich says things like this, but you have to ask what it would mean _not_ to be a "mutt". Is that even physically possible? If not, why do we need DNA testing of ancient skeletons to prove this?</comment></comment></comment>


GDPR Blocking (PHP Edition) - <AUTHOR> http://www.donationcoder.com/forum/index.php?topic=45495 <comment><USER2> The EU also consists of its outermost regions where the GDPR applies, so your list is not complete. See [https://en.wikipedia.org/wiki/Member_state_of_the_European_U...](https://en.wikipedia.org/wiki/Member_state_of_the_European_Union#Outermost_regions)

Showing the error message "Your country does not want you to be here." is false. It should be replaced with "The owner of this website doesn't care about the rights of European citizens".

I also think excluding more than 500 million people just because one person is too lazy to think about privacy is kind of the wrong approach. You're only hurting yourself. Maybe you've read too many horror stories and half-truths about the GDPR. I propose to read up on the GDPR and care about your visitors privacy.

<comment><AUTHOR> Probably the owner of the website cares so much that he tries to notify EU citizens of what their government actually decides for them? After all, many people don't even know that.

> You're only hurting yourself.

Not on a non-commercial website. Not everyone tries to sell something on the web.

How would one detect those outermost regions? (Thank you.)</comment></comment>


Django Best Practices - <AUTHOR> http://lincolnloop.com/django-best-practices/index.html <comment><USER2> I just read Two Scoops of Django and wished I read it when I first started developing Django apps. Highly recommended.

<https://django.2scoops.org/>

HN discussion: <http://news.ycombinator.com/item?id=5074026>

<comment><USER3> I bought that book too. I was skeptical after reading some of the author's blog but decided to take the plunge. Just twelve bucks, so whatever. After reading it I'm certain most of those reviews are faked or the work of the author's friends.

This book is just a slideshow. The chapters are tiny, and there's very little useful content, just a bunch of "do it this way because we say so." No real justification or understanding here. Author hasn't made anything substantial with Django, and his understanding of Python itself is lacking.

People have been request a free sample chapter since the beginning, and he keeps saying that he's getting one ready. You see a free chapter, and you're much less likely to want to buy the rest.

<comment><USER4> First of all, there are two authors of the book, and I'm the one you are mentioning. Audrey Roy is the other one, I'm just the one who spends more time on Twitter, HN, and blogging.

In any case, thank you for this mini-review. We can't make the book better without feedback, including negative commentary. So far most of what we've gotten back has been extremely positive. While gratifying to our egos, it's the brutally honest critical reviews like yours that have given us the best information for improving the book. In fact, we ask for honesty in reviews of our work, and are willing to take soul-crushing criticism so we can improve it.

As for the existing reviews, with the possible exception of Barry Morrison, they were not written by our friends. We didn't know any one besides Barry who wrote them, and his private feedback to us as a technical reviewer was pretty negative in places.

I find your point about not enough justification for our practices very interesting. We talked to a lot of core/senior Django developers about them, but I think you might have a good point that we need to explain the background. I thought we addressed this in the Beta release, and I would like to hear your feelings about that version.

Some more points:

The chapters seem tiny because we self-published and there is no fluff. This time I didn't have a publisher telling us, "This chapter needs 20 pages of content, add some more content!". This happens to book authors working with mainstream publishers, which is why tech books are often so thick and heavy and sit mostly unread on shelves. Instead, because we controlled the book 100% each chapter is as long as the material needs to be. Hence your feeling that this is 'light-reading', even though it has as much content and code examples as a thicker, denser book.

What do you consider substantial with Django? Should I have built Disqus, Mozilla, Pinterest, or Instagram on my own? Or is there some other level of work that I should have done? I'm curious, because unlike some people I don't hide behind a pseudonym (I'm Daniel Greenfeld and it's easy to find information about me). Unfortunately a lot of the work I've done for the past 18 months is in private github accounts. This really sucks, and I hope to fix it this year.

As for my actual Python and Django skills, I'm humble enough to acknowledge that I can always learn more. This is part of why I worked so hard on the Django CBV documentation refactor in 2012 (especially the reference docs), to expand my own knowledge of them. The day I call myself the absolute authority is the day I stop improving, and I apply this to everything I do. In fact, I used to give a talk on this exact topic. ;-)

Finally, as for the free chapter, here goes: Since the book was released in Alpha and Beta states, we want our book in a perfect state. This is why we offered the book at a discount (O'Reilly and other mainstream publishers do the same), so early adopters could try it out and provide feedback and we could get paid for our hundreds of hours of work. In return for the early adopter discount, you and many others have given us useful feedback (not enough justification for our practices), and now we can improve.

<comment><USER5> I enjoyed two scoops. I appreciated the terseness of it.

If I had one criticism it would be the 'do it this way' style felt a little strong. I would have liked to see a 'some people dont do it this way' star on some of your coding style choices.

I'd quite like to hear about how you marketed it - I seemed to hear about the book from multiple sources all at once - you clearly did a good job there.

<comment><USER4> Any suggestions about what coding style choices you think should have alternates?

As for marketing, we hit HN, blog, twitter, and linkin. Then the word spread and we found it in other places. It was pretty awesome. We can't wait for it to get on Amazon. :-)

</comment></comment></comment></comment></comment><comment><USER6> Some more tips to maintain your sanity once you are past the beginner level:

* Use South before you start deploying

* Use an automated deployment tool like Fabric or more powerful ones like Chef/Puppet

* Get a better debugger and other niceties with django-command-extensions

Of course, a lot more apps can be considered must have depending on what you are working on.

<comment><USER7> I have been trying to get a grasp on your second point, but to this day, I still haven't been able to really come to terms with it.

Is there any _total noobs_ guide to automated deployment? Everything I have seen to this day assumes some knowledge of sysops and the whole ecosystem of that specific deployment tool (e.g. like it assumes I knew what is a 'cookbook', or where to find them, etc). It would be great if there is a guide for people like me that doesn't assume any knowledge from the reader aside from development / basic local deployment.

<comment><USER8> Try fabric

It's a lightweight management tool, like writing a shell script in python, but easier and targeted towards system deployment, really

you only have to get around its _unintuitive_ calling convention (not inside the script - it's the way you use the cmd line tool) but otherwise it's a breeze

Chef/Puppet are harder (as in, you really have to fit their paradigms)

<comment><USER7> I haven't really looked into it, but how does that differ from using say, a shell script file?

<comment><USER9> It's similar to using a shell script except you're using Python and have access to all of Python's modules and fabric is written with roles and remote management in mind so it makes tasks easier. I love it and even use it to deploy my jekyl blog.

</comment></comment></comment></comment></comment><comment><USER10> I've got to disagree with the chapter about settings files. Instead of maintaining multiple different settings for different environments, make your default settings file pull modifications for each environment from _os.environ_ , e.g.:

      STATIC_URL = os.environ.get('STATIC_URL', '/static/')

This is a lot saner and won't descend into a mess that is keeping multiple settings files around. It's also a lot easier to explain.

<comment><USER8> That's a very nice idea, but you would still end up with: start_debug.sh, start_prod.sh, etc

It is a good idea nonetheless, so you can inject the variables needed from the outside

<comment><USER11> start.sh debug

</comment></comment></comment><comment><USER12> Using pip the way they recommend is careless. It makes your deployment dependent on: 1. a working network connection and 2. All the remote repositories being up. 3. nobody having messed with the remote repos. The 3. is admittedly less of a concern, but all 3. are beyond your control and re- downloading the dependencies on each install is wasteful.

Fortunately pip has the --find-links option which, combined with having all dependencies downloaded locally makes it possible to have a fully local install.

<comment><USER13> Most people will not need to use pip --find-links on a regular basis. Hence, it is not "careless" to fail to do so.

If you are focused on "more nines" than this kind of paranoia is well justified. Network outages are not totally unknown, sometimes PyPI goes down. But these things really aren't all that regular as you seem to suggest. Usually the network is up and PyPI is up. And we haven't had an instance of 3. yet, assuming that you trust the authors of your dependencies.

Let's please not convey that it's just completely crazy to use pip in the normal, simple way. It really isn't.

</comment></comment><comment><USER9> This is great, I especially like the discussion about Managers which I haven't used before, but I have never been impressed by the technical chops of Smashing Magazine so to see that as an endorsement is actually a bit of a drawback. :/

</comment><comment><USER14> I like the chainable queryset methods.</comment>


SCP for the modern era - <AUTHOR> https://github.com/mcginty/shoop <comment><USER2> Interesting ! Although, firstly, "scp for the modern era" \-- Not really, may be scp for the future since this is this alpha. And secondly from the Readme:

      > but isn't there tool X, Y, and Z already for this?
      > no, actually, not really.

      https://github.com/yuzawataka/ucp
      https://github.com/bnewbold/ucp
      https://github.com/millerjs/udt_transfer

...and possibly more.</comment>