Smart Guy Productivity Pitfalls - <AUTHOR> http://bookofhook.blogspot.com/2013/03/smart-guy-productivity-pitfalls.html <comment><USER2> Last summer, I finished a 3-month internship in Japan, and it was the most productive 3 months of my life.

I'm currently a college student, so my work ethic is a little poor. Procrastination and "seeming busy" is standard fare for my day. It's far too easy for me to get distracted by checking Facebook, Twitter, or even tangential data sheets.

Yet, despite my bad habits, the environment at my job _forced_ me to get down and churn through code. Some of my officemates could fit the salaryman stereotype[1], but _all_ of them posessed a capability for relentless focus. I initially tried to settle in by "shooting the breeze" and making smalltalk, but they seemed to prefer communicating through their work: some code, but more importantly, well-done demos.

In the span of those 3 months, while I always brought headphones with me, I never ended up using them: the silence of the office carried a note of tension, the sound of concentration. Listening to this proved to make me more productive than I'd normally be, if I were listening to (even quiet) music.

I came in expecting to be maybe 20% efficient, as the OP mentions: a few minutes here, a half hour there. At the end, it was nearer to 75-80%: instead of procrastinating, I set goals for myself to get things done, because that was really the best way to get through to my neighbors.

While I don't think that this sort of pressure cooker environment is well- suited for all people, I think it speaks volumes to how positive peer pressure, in more ways than one, can force people to shape up. I'm not sure I would've survived for a 6 months or a year, but it very quickly eliminated my excuses. If everyone around you is working their best, it's hard not to get dragged along.

[1] <http://en.wikipedia.org/wiki/Salaryman>

<comment><USER3> _I think it speaks volumes to how positive peer pressure, in more ways than one, can force people to shape up._

So the key takeaway is the positive peer influence, not so much Japan and its whatever-ness.

There's a certain dream about playing hard, working hard, and getting swept along with it. Smalltalk included.

<comment><USER2> This is definitely true, but I've been hard-pressed to find a similar environment in the States, even in labs and hackathons. There's an almost oppressive social pressure to getting the job done in Japan, because you _must_ work as hard as your boss, who is working as hard as their boss, etc.

A lot of people fight back against the sort of no-frills culture I saw (Google perks, work-at-home attitudes, etc.), so it surprised me that it was so efficient. A part of me expected cubicles and quiet work environments to force an Office Space result.

</comment></comment></comment><comment><USER4> This reminds me of a quote from Richard Hamming's talk "You and your research"

``Knowledge and productivity are like compound interest.'' Given two people of approximately the same ability and one person who works ten percent more than the other, the latter will more than twice outproduce the former. The more you know, the more you learn; the more you learn, the more you can do; the more you can do, the more the opportunity - it is very much like compound interest. I don't want to give you a rate, but it is a very high rate. Given two people with exactly the same ability, the one person who manages day in and day out to get in one more hour of thinking will be tremendously more productive over a lifetime.

<http://www.cs.virginia.edu/~robins/YouAndYourResearch.html>

<comment><USER5> My favorite part of that talk is where he highlights the value of creating to solve a class of problems vs. a unique instance. Build in a way that others can build off of your work.

Recently, I built an automated Skinner box that has the ability to run most of the protocols of classical behavioral research. It allows the mouse to be head fixed, enabling brain readings while the experiment is running^. We could have built just what we needed, but instead, we are going to open source this general solution in a methods paper soon. I am unsure if this would have happened if I had not read Hamming's talk.

^The hope is that this will reduce the amount of this type of research done with monkeys, enable reductions of costs/time, and enhancing the ability to learn more due to the huge genetic catalogs for mice.

</comment></comment><comment><USER6> > _"Accept that "the grind" is part of the job"_

Of all the pieces that struck home for me, this. Especially doing what I'd call my 'dream job', it's 'the grind' that I most struggle with, even if it's ultimately what ends up being the most valuable output.

I'd add a line to the effect of: the grind is easier to handle when you keep focused on the outcome of what you're trying to achieve (cool new feature, happier customers, company success). It's easy, as a programmer, to lose sight of the big picture when you're at the never-ending 80% phase of a big development effort.

<comment><USER7> As a friend's dad says, "That's why they call it work."

<comment><USER8> Also, "There's a reason they don't call work, fun."

<comment><USER9> On the other hand, problems are to be solved, not suffered through.

</comment></comment></comment></comment><comment><USER10> Great post. I would generally consider myself reasonably hard working, and not a huge procrastinator. However, there's one trap I always find hard not to fall into.

I remember many occasions when I finish a task earlier than expected, and then always struggle whether I should stretch it and pretend it took me longer, so I can still do it faster than expected, but not disproportionally so.

The somewhat flawed logic is that if I do things too fast, I'll just get more work assigned, and expectations will rise, which will make it progressively harder for me to achieve.

I'm not entirely sure where the flaw lies exactly, but the most impressive people I worked with always seemed to be those who finished things quickly, and somehow it didn't bite them back. Others would just learn to trust their assessments, or if they are stuck would know it's not for lack of focus or trying, but that it's a genuinely tough problem.

<comment><USER11> > The somewhat flawed logic is that if I do things too fast, I'll just get > more work assigned, and expectations will rise, which will make it > progressively harder for me to achieve.

For what it's worth, I'm in this situation at the moment. Was working on a project where I found it simple to finish things quickly. Am now on a project where things are considerably more complex but it's expected I finish them at the speed I was previously.

Not sure how to crawl out of this hole, other than to continually get faster at everything.

<comment><USER10> this reminds me of a joke I've heard (poorly translated):

"How do you win a 100m swimming race? You start at your absolute top speed, and slowly slowly increase the pace"

<comment><USER9> And there's also this saying: "the better you get, the better you'd better get."

</comment></comment></comment></comment><comment><USER12> This could alternatively be titled the _Thinks-they're-Smart Guy Productivity Pitfalls_. The "smarter, not harder" mantra being misapplied can be a classic case of a lack of intelligence (which is bad) and a lack of foresight (which is worse). And no, you don't need a super intelligence to have foresight; just some experience and a willingness to listen to people who are smarter than you without your pride getting in the way.

If I knew what I know now when I was 18-19, I would have slapped myself upside the head and say, "You idiot! You know nothing! Stop pretending that you do and you'll actually get something done!"

</comment><comment><USER13> One thing I really like for productivity is getting deep into the mindset of anyone that excels.

I skateboard for exercise and one of my favorite skaters is Andrew Reynolds. His mentality when skating is second to none. He'll land an absolutely insane trick (at age 33), and then do it over..and over..and over again until it is absolutely _perfect_.

Toe touches the ground slightly? Do over. Arms were kind of weird? Do over. Hammering it into the ground until it's a thing of beauty.

This is what I take into my approach to productivity. Being effective is difficult, especially if the task you're doing is difficult. You have to just hammer away at it and iteratively get 1% better every time you take a swing.

In productivity, it's constantly holding yourself to a higher standard than you previously did. Great, pomodoro technique is working for you and you can go 4x25 blocks? Trend towards the positive always, and you'll eventually end up far, far ahead of other's around you...even other "productive" people.

</comment><comment><USER14> I really wish I were surrounded (or perceived myself to be surrounded) by more productive people. Seeing someone better than yourself can be a great motivator. But when most people you see set low standards for themselves (relatively speaking), it's easy to slip and forget to work hard.

Every minute is precious if you have a goal to reach.

<comment><USER15> And why are you not surrounded by more productive people?

<comment><USER14> I don't know, perhaps I'm doing something wrong, or it hasn't happened yet but will happen soon. The latter is less likely because I'm 26 yo already.

<comment><USER16> You are 26 years old. You have, what, 30, 35 years of working life ahead of you? Sure, resign to mediocrity for literally 5/6ths of your career, if you want. But there's plenty of room and time for you to develop how you want. Age is not your main obstacle.

</comment></comment></comment></comment><comment><USER17> I just want to say in case nobody else comments here, that this is an awesome blog post. It was very valuable to me.

</comment><comment><USER18> So, my big question is: "Where does 100% completing everything you start doing during a day fit in with two other well-repeated arguments?" in particular,

       * 40 hours a week is the max sustainable work week length
       * To help get started work the next day so you're not
         wasting time as the day starts and so your subconscious
         can work on it, start your last task of the day and get
         through working on a good part of it; and then stop
         before finishing it.

<comment><USER19> Seems like the goal for addressing the first point is to get better at planning and estimating. Learn what you are capable of and then get better.

The second point is based on that Hemingway quote right? "The best way [to write] is always to stop when you are going good and when you know what will happen next. If you do that every day…you will never be stuck."

I've tried it a few times. I didn't notice much improvement. Maybe it makes most sense when you are working on a problem that excedes your comfort zone.

<comment><USER20> I'm sure it's been rediscovered by lots of people who hadn't heard it from Hemingway. Notice he didn't say (IIRC) "finish everything you start" but rather "finish everything you decide to finish". If you, for example, finish all the features you wanted to, and then leave a failing test case for the next day, that is consistent with the feature article's thesis as I understand it.

</comment></comment></comment><comment><USER21> Holy shit. My brain just exploded from reading this.

This is the advice that I wish someone sat down and gave me when I first started my career.

<comment><USER22> I honestly hope i can keep this advice in mind for the rest of my life

</comment></comment><comment><USER23> I'm a PhD student, so apart from once-a-week conversations with my supervisor, I'm on my own when it comes to picking what to do today.

For the objective metric of productivity, I've found Rescue Time [1] very helpful.

It is literally a little virus that sits there watching everything you do (including what websites you visit, what programs have focus, and so on,) and uploading it all to the cloud. Then, the kicker; a weekly email saying what fraction of your time was spent productively, and the total hours spent on productive stuff (you can configure what's productive pretty finely.) you can view all the graphs and charts you want, but ultimately I find total hours logged, and % productive, to be the only two numbers I need.

(it also sets you goals; N productive hours a day, less than M distracting hours per day, and so on, and reports your success or failure in the email too.)

[1] <https://www.rescuetime.com/>

<comment><USER24> You are right - RescueTime is very helpful indeed for overcoming some kinds of procrastination.

>>It is literally a little virus

Just a little nitpicking ... it is not a "virus", neither literally nor figuratively - it does not replicate nor infects anything. You can call it a "trojan" at worst, but certainly NOT a virus.

</comment></comment><comment><USER25> Really offtopic: This[1] is why you don't use   to fake double spacing. It should be done in CSS or by using one of the longer space characters[2].

[1] <http://i.imgur.com/22vFOLO.png>

[2] [http://en.wikipedia.org/wiki/Space_character#Spaces_in_Unico...](http://en.wikipedia.org/wiki/Space_character#Spaces_in_Unicode)

</comment><comment><USER26> The OP talks about the trap of the small task, where he put off doing something that should have been menial for so long, that when something small went wrong, it's effect was disproportionate. There is also the danger of focusing only on the small tasks, and take much pride in ticking off a huge to-do list. Perhaps it could be better to step back and think of a more efficient way that would reduce the amount of work required. It may not feel like it, but you are being more productive.

This is a great post, and I (like many others here) wish I had considered this when I first started off. I think improving personal productivity is a force multiplier. If you are more productive, you can help your team members to be more productive. You could roll your sleeves up and tackle the "grinding" task that is stopping everybody else from progressing.

</comment><comment><USER27> As I've gotten older, I'm struggling with my productivity because I get more tired from being in that intense "grind" mode. If I am real focused for several days,I hit a wall and then I'll need more time to recover. Forcing it doesn't seem to help as fatigue gets worse.

A big part of it is the physical feeling of working at the computer, it starts to hurt after a few intense days, which adds stress.

It's been making me mad as i would like to get more done, but I have to rest.

I never know how to apply advice like that of the original poster. It seems to be, to excel be smart and work diligently. How is this helpful to anyone?

<comment><USER28> First, fix what is making your body hurt. Presumably the problems are with your back or hands or both (and if not both, the other will come along soon enough). For your back, the solution is pretty well documented: chair that fits you, displays at eye level, keyboard at elbow level. For your hands, the solutions may be more personal, but likely involve (a) keeping your wrists straight and (b) kinesthetic feedback on your fingers.

</comment></comment><comment><USER29> Eye opener, really.

</comment><comment><USER30> Nice try, but I'm not falling for that one.

(although I'll keep this tab open (among hundreds of others) so that I can get to it "later"...)

</comment><comment><USER31> micromanaging your productivity sure seems like a good way to increase your productivity :\</comment>


Venture capital is going to murder Medium - <AUTHOR> https://m.signalvnoise.com/venture-capital-is-going-to-murder-medium-656cbccf4829 <comment><USER2> Discussed yesterday: [https://news.ycombinator.com/item?id=13328549](https://news.ycombinator.com/item?id=13328549)

</comment><comment><USER3> "Five years is not enough time to think about how we should make any money in a way congruent with our founding values? That just doesn't compute."

Sure it does.

"they sweat the details like nobody else"

It sounds to me like they focused very aggresively on user satisfaction / user experience based on DHH's quote above. Figuring out how what pricing / service model looks like, what sales should look like, etc. obviously takes some amount of effort > 0\. It would appear based on the above that Medium focused on the one side of the pendulum more than the other side in the balance. That would've been their undoing regardless of VC money (as without VC money they would've had to put focus on a revenue model earlier which would've led to a different experience than the one he had).

This is typically why folks talk about Product Market fit. Both sides of that _very_ complicated relationship are important.

<comment><USER4> It also doesn't seem like they tried to fix the real issue. From all accounts, their platform is easier to create content on but was that really the pain point?

There are lots of people who enjoy creating content but would like there to be _some_ ability to have the chance to grow into their full time gig. Additionally, there is so much content out there that discovery is a real problem. But they took a direct approach and just put ads on the page but you need huge scale to get big money. I wonder if people would pay for a Medium "subscription" if what their site did was recommend three articles each day that you are likely interested in. (Obviously using some kind of ML to slowly learn your areas of interest and writers you prefer). The content creators get a cut based on views and ratings (maybe?), which circles back to better content. Once you have tons of awesome content, people will always pay.

The above is not fully baked, just thinking aloud....

</comment></comment><comment><USER5> I tried Medium about two years ago and had good viewership, across a dozen posts. It's a very nice platform to write and broadcast your ideas. Ultimately though, there is no way that I would pay for Medium. I learnt a long time that whatever publishing medium you choose, it will most likely fold, after the buzz dies out. It's much better to host your own publications. I also don't believe they will get any business from already struggling companies. Anyone except Facebook/Google is struggling.

However, I do like the Medium's overall design practises, as well as the social practices. I hope that in the worst-case scenario, the design and relevant tech will open sourced.

<comment><USER6> > It's much better to host your own publications. I also don't believe they > will get any business from already struggling companies

I've been mulling over some mix of the two ideas for some time now. I keep thinking it's been done or will be done soon, but I've not seen it (or... am I missing something).

Basically, some form of aggregation/curation of individual blogs. The 'planet' aggregators had an initial vision of this, but they were 'read only'. It would be far more useful if I could engage with each individual blog from the main aggregation site. Authors keep control of their own content (including comments, probably), but are aggregated/federated out to larger networks, but visitors can engage with a variety of topics without having to go register/join each site.

Has this been done and I'm just missing something?

I'd probably pay a nominal fee for a service like that, assuming that a portion made it back to the sites I engaged with (reading or commenting or sharing or whatever).

If medium was a collection of blog posts from existing blogs, and the comments were shared between medium and the host blogs, both ways, for example. Anyone doing that?

<comment><USER7> I think that problem is solved by something like Feedly. There's no integration of comments, but is a somewhat personally curated source of blogs, regardless of hosting platform.

<comment><USER6> any feed reader is a curated set...

the ability to interact with others in the content from a feed reader (a feed 'client', not just reader, may be what I'm talking about) is what's missing.

</comment></comment></comment></comment><comment><USER8> This popped up yesterday, I guess we really do have short memories... here's what I said then:

Feels like we'd only just forgot about Posterous. At least Posthaven is already there to accept the fallout? Nice to see ten times as much money was raised this time though. Such a shame though, would be nice if there was a better way of extracting value from these viable but non-unicorns.

</comment><comment><USER9> > It didn't have to be this way. Ev could have RECONSIDERED. He surely had > enough in the bank from previous exploits. Started slower. Not hired 150 > people before there was a path to profitability, let alone sustainability. > Maybe you will.

Well the Twitter folks is not known for clever business moves. Seriously though, how do you need 150 people for that website?!</comment>


Ask HN: Why don't languages such as Java support json-like object literals? - <AUTHOR> Note: This is a sort of a technical question which I'd ideally like to ask on stack overflow, however if asked there the question might be closed due to being too broad (upon my inference of programming language design questions of similar nature asked in the past).
Why don't GC languages such as Java support json-like object literals? (For reference check out the code snippet on this stack overflow question: https://stackoverflow.com/questions/34727831/create-a-json-literal-in-java-without-need-for-existing-class)
My conclusion is that the processing would be solely at the parsing stage and not at the runtime stage of the program, so there shouldn't be any conspicuous perf hit in including this feature.
Note that this is all assuming that the programmer would in any case use the type Object to be agnostic of types specified within their json-like object even if they didn't have access to an object literal.
Are there some unforeseen issues (perf and non-perf related) to accommodating such object literals?
FYI this question is not just about Java, but extends to other GC languages (such as Golang, etc). <comment><USER2> Why should it? Is it really a good idea or perhaps you've done loads of Javascript, considers it an important feature and would like to see it there?

I've had this a few times with other programming languages, why doesn't it have guard clauses like erlang, or macros, or X and Y?

I think the reason is that the people who maintain a language got already plenty of work and you try hard to avoid 'Feature creep', meanwhile still satisfying most of the people who uses it(or not...).

You could as well implement the feature yourself, see if people like it.

But just as you've mentioned Java, I have to tell you something. Java took like a decade to implement lambdas(or more). They need to reach consensus, agree a lot of things. Implementing things is easy, agreeing is hard. Most of programming languages got a lot of people with very different interests.

There is a performance hit on having this feature in the compiling phase. It's yet another feature they will need to support. The work to handle this is a huuuge language such as java is absolutely huge, again, not so coding wise, but also the whole ecosystem. People would even have to update their books...

Like if I had a programming language, I would never implement what you said. I don't find it a nice feature.

<comment><USER3> > already have plenty of work and try hard to avoid 'Feature creep'

It seems a basic thing though. Like String and Number and Array literals (these are also Objects in JavaScript).

I think the answer is more likely to be age and stagnation.

<comment><USER4> There are many other "basic things", for example maps and sets, regular expressions, XML... I am sure others could add more examples... trying to support everything by special syntax would indeed be feature creep.

<comment><USER3> Well yeah, finding patterns in text, and unique lists are pretty common too. It's not special syntax, it's batteries included.

</comment></comment></comment></comment><comment><USER5> C# has features close to this, property initialiser syntax [1] and dynamic object literals [2].

[1] [https://docs.microsoft.com/en- us/dotnet/csharp/programming-g...](https://docs.microsoft.com/en- us/dotnet/csharp/programming-guide/classes-and-structs/how-to-initialize- objects-by-using-an-object-initializer)

[2] [https://docs.microsoft.com/en- us/dotnet/csharp/programming-g...](https://docs.microsoft.com/en- us/dotnet/csharp/programming-guide/classes-and-structs/anonymous-types)

</comment><comment><USER6> In type-checked languages, object literals are fairly obtuse because an object literal is an anonymous class with only one instantiation point. For example, suppose you have syntax to create an anonymous class like this:

        { x: 123, y: 456, z: 789 }

What type would it have and what would you do with it? The only use for it would be to upcast it to Object. You're better of using Map classes instead. One can then wonder why Java doesn't have Map literals. The reason for that is inertia. When Java was designed in the early 90's maps and sets weren't thought of to be as useful as arrays in everyday programming.

<comment><USER7> There are two solutions to this:

1\. Take the type definition from the point of use, not the declaration. For example, if the object literal is being assigned to a variable, its type is the type of the variable. If it's being passed to a function, its type is (a subtype of) the type of the function parameter. If it's being returned, it's the return type of the current function. C/C++ and Kotlin do this, as does Scala (I think; I don't know the language well).

2\. Use structural subtyping. In the type system, allow the possibility of expressing "HasField x && HasField y && HasField z". Then the type of the object literal is simply an anonymous type that includes those predicates. Ocaml and (I think) Go do this.

<comment><USER6> Ah, you're right in case the syntax is for instantiating objects of existing classes/structs. My take was that the OP wanted the object literals to be able to create new types. In Javascript, var a = { x: 123, y: 456 } is meaningful without a prior class declaration.

</comment></comment></comment><comment><USER8> It's just syntax suger, no? A dictionary from string keys to objects, which could be arrays or dictionaries or primitive types.

</comment><comment><USER9> Will the JSON be still used in 30 years later? The answer is maybe. We don't know.

For a programming language like Java which is used in really serious places like banks, medical equipment, and all systems which last more than 30 years from now on, it can't remove the feature once added because it break the existing code.

So the it's reasonable for the Java to be conservative at adding a feature just because it's trending right now.

</comment><comment><USER10> Pretty sure you can do it in Groovy, which integrates very well with Java, if you need that.

Java is a pretty rigid and verbose language in general.

</comment><comment><USER11> Common Lisp supports almost any literal, because you can reprogram the reader on the fly, and there are many types of reader "macros" available to the Lisp user. It's awesome.

</comment><comment><USER12> Java was one of these Ivory tower languages created at a big corporation, Sun Microsystems. Not unlike Go is today with Google. They will never add obvious features because of corporate bureacracy. And, adding a feature is admitting the language is not perfect. Usually it takes several decades after the language creators are long gone to add obvious features. There is no issue with literal a, just dogma. They are evaluated at compile time in Java, so how could there be perf issues. Most people use something other than Java to get list, map, an set literals.</comment>


Embrace, extend, and finally extinguish – Microsoft plays their hand - <AUTHOR> https://drewdevault.com/2020/08/27/Microsoft-plays-their-hand.html <comment><USER2> This feels like an advertisement wrapped in a bad take. Speaking as someone who has a couple commits in the Linux kernel, yes the email thing is a pain to get started. Configuring your client to do the text thing, keeping up with conversations, learning who's who, you definitely can't jump straight in. The only way I was able to stay sane is setting up a bunch of filters to tag conversations and people. And that's not even mentioning the different patch submission guidelines, perl scripts I have to run, and other random things to make the patch even just readable by the community.

Configuring all this stuff is definitely a barrier to entry. Now what tooling looks like to make it easier, that's an entire different conversation. Email has worked for the Linux dev community for decades and that should be protected and not disrupted. However, anyone who says there's no room to improve the onboarding experience, well, I just can't take their opinion seriously.

<comment><USER3> >However, anyone who says there's no room to improve the onboarding experience, well, I just can't take their opinion seriously.

From TFA:

> I agree that the UX of email-driven development could be better!

This is followed by six examples of such improvements, the first of which is explicitly targeted at improving onboarding:

[https://git-send-email.io](https://git-send-email.io)

<comment><USER2> My man, those tools are great and I really respect the contribution of those tools to the community. But here's the kernel guidelines, which I am sure you are already familiar with: [https://www.kernel.org/doc/html/latest/process/submitting- pa...](https://www.kernel.org/doc/html/latest/process/submitting-patches.html)

Even with the tooling you provided, it's still a crappy experience (maybe a little less with the Sourcehut stuff). I know it's easy to read into the comments and be like "well this person just wants to shove the kernel into Microsoft's product," but it doesn't have to be this way. The sad thing is, for better or for worse, Github can handle almost all of those steps in the patch submission process, save for the ones where you have to actually describe what's changing. that's like, 15 steps that a newcomer does not have to even deal with.

I think we all agree on "No Linux Kernel controlled by Microsoft platforms, please" but Sarah's comments that "this workflow sucks", and then your actions on "this workflow sucks" \- y'all are saying the same thing.

<comment><USER3> These "15 steps" are 90% unrelated to the email workflow, and would not be solved by GitHub. Did you read this document? It's telling you how to be a good contributor _and_ the mechanics of how to contribute. That being said, this documentation is sorely in need of a git-oriented overhaul, assuming the programmer isn't using git is not doing any favors for the 99% who are.

</comment></comment></comment></comment><comment><USER4> Don't particularly agree with the tone of this "advertorial" but I agree that the issue of the ecosystem becoming excessively github-centric is real.

I wish Github, Gitlab, sourcehut and (why not) Atlassian, would sit down and hash out a bunch of formats and protocols that make it easy to collaborate across _and off_ them. A galaxy of tools, with everyone using their favorite one, would be a fabulous step forward for developers everywhere.

I know it's not going to happen anytime soon, but one can dream.

<comment><USER5> It's already trivial to move code between git service providers, or even run your own.

Code review and issue trackers are harder because they're effectively forums are only useful when centralized.

<comment><USER3> >Code review and issue trackers are harder because they're effectively forums are only useful when centralized.

What? This claim requires evidence.

</comment></comment></comment><comment><USER6> >They embraced git, and then rather than building an interface on top of email — the collaboration mechanism that git was designed to use, and which is still used for Linux kernel development — they built their "pull requests" mechanism.

How is git designed to use email?

>Sarah Novotny, Microsoft employee, transitive owner of GitHub, and patroness saint of conflicts of interests

Followed by:

>I represent sourcehut, a GitHub competitor which does what GitHub wouldn't — interoperate with open, distributed protocols, and in the form of 100% free and open-source software

Yeah no conflict of interest there /s

<comment><USER3> >How is git designed to use email?

git was designed for use with the Linux kernel, which has collaborated over email since its inception. It includes many features for email-based collaboration out-of-the-box with no need for a centralized hosting service of any kind.

[https://www.git-scm.com/docs/git-send-email](https://www.git- scm.com/docs/git-send-email)

[https://www.git-scm.com/docs/git-request-pull](https://www.git- scm.com/docs/git-request-pull)

[https://git-scm.com/docs/git-am](https://git-scm.com/docs/git-am)

[https://git-scm.com/docs/git-imap-send](https://git-scm.com/docs/git-imap- send)

Both Linux and git itself are developed via email, along with dozens of other projects, *BSD, gcc & clang, coreutils, busybox, ffmpeg, qemu, PostgreSQL, vim, emacs, most Linux distros...

<comment><USER6> All those don't sound like git was designed to be used with email, those projects using email to collaborate sounds like a coincidence and orthogonal to me.

>It includes many features for email-based collaboration out-of-the-box with no need for a centralized hosting service of any kind.

What many features?

<comment><USER7> The fact that you refer to those internal commands that are part of every Git installation as "projects" shows that you're likely unfamiliar with Git CLI.

Because git is so large, every individual command is documented in a separate manual page, with `git diff` being documented in the `git-diff` manual page, and so forth.

All the mentioned commands are probably present on your Mac in Apple's distribution of Git, for example. Even though Apple probably doesn't use any of those commands for internal development (because big corp, and not invented here).

</comment></comment></comment></comment><comment><USER8> This is a bit tangential, but I wanted to mention how the (GPL'ed) ardour project decided to view github.

We got burned by the SourceForge apocalypse back in the mid-2000's, which led to me (the BDFL) declaring that the project would never use a 3rd party host for our source code repository ever again. Granting a 3rd party the level of control that SF had (and then abused) is a non-starter for us. This means that github was never an option for us.

.... as the canonical repository.

However, we recognized the value of the tools that github offered, particularly allowing random 3rd party developers to create patches in quite effective ways. Some of the their other tools are useful, too.

So, we self-host a gitlab instance at ardour.org, and that acts as our canonical repository, but we use hooks to push all commits to the github version automatically. Random 3rd parties can use any and all of the github toolset with our code (as can we), but we have no reliance on github in any important way. We don't even have much reliance on gitlab either - it exists only to provide access roles and account management on top of the bare git server. We don't use any of gitlab's "features" either.

After about 5 years, this continues to work well for us.

</comment><comment><USER9> Pull-requests and forks are only a piece here.

It's not the only one implemented by tools that extend Git (Phabricator and Gerrit, for instance, support pre-commit workflow).

Github also brings a bug tracker (albeit a simple one), discoverability, hosting (obviously) and integration with many useful tools (CI, documentation generators, etc). All of this is easy to use.

These pieces greatly contribute to the success of many open-source projects (of various sizes). Github "extinguishes" alternative because of this, not because it designed an alternative to email-based workflows.

I suppose that many projects (open-source or not) want to use tools that extends Git. Maybe what we need is a standard making these tools interoperable and open.

<comment><USER10> Yeah, I agree. There are open-source Github clones like Gitlab and Gitea that still follow Github's web UI model, so I think it's weird to pose this as a conflict between Github and plain-text email when it's two separate conflicts: one between proprietary Github software and other open-source hosted git systems, and the other between the plain-text email model and the more popular web UI model.

<comment><USER11> I responded to this argument in another comment: [https://news.ycombinator.com/item?id=24295610](https://news.ycombinator.com/item?id=24295610)

TLDR: the alternatives are also centralized and give you vendor lock-in since issues/PRs are tied to the instance.

</comment></comment></comment><comment><USER12> What has always suprised me about open source software is that the source is always 'out of band'. I can imagine a future where all open source software you use has an 'edit source' function (as opposed to a mere view-source function we have on the web currently).

Even more useful would be the ability to make a change within a certain context, similar to how 'inspect element' works in the browser.

A change in the source would result in a patch which can then stay 'personal' or be automatically shared with others looking for similar functionality, or getting noticed by the maintainers who might incorporate it in the main releases after a refactoring.

Of course I realise that this workflow is not technically possible in the way software is currently built, but it does seem worthwhile in the future.

<comment><USER13> > What has always suprised me about open source software is that the source is > always 'out of band'

From "Open Source is not enough" by Adam Spitz[1]:

 _The Open Source movement is great, but it doesn't go far enough. […] When I feel the Urge To Tinker, only rarely does it feel like a loud voice shouting in my brain with enough energy to propel me to find the website and download the source code and figure out how to find the part of the code that corresponds to the thing I'm looking at on the screen and make the change and restart the program and retrace my steps. Much more often it's just a quiet voice mumbling, "Hey, it'd be kinda neat if…" and then I think, "Well, it's Open Source, I guess I could go download the source code… but… meh, it's so far out of my way, not worth it," and the urge fizzles out. I think that a lot of potential human creativity is being wasted this way._

> Of course I realise that this workflow is not technically possible in the > way software is currently built, but it does seem worthwhile in the future

I've been thinking a lot about this and working on it. On a technical level it's more possible than it seems—even with "conventional" toolchains—but the primary obstacle is going to be social rather than technical. Funnily enough, GitHub's popularity and its measurably less-than-optimal workflows actually serve as a preview of how difficult it will be overcoming stalwartism from people who are technophiles first and only think of productivity as an _n_ th- level concern—somewhere at a lower priority than social media presence and ginning up demand for the skills and practices they've alrealy invested in.

1\. [https://web.archive.org/web/20151016184630/http://adamspitz....](https://web.archive.org/web/20151016184630/http://adamspitz.com/avocado/2011/05/05/open- source-is-not-enough/)

<comment><USER12> Can you share some of your thoughts how this might be technically possible even with conventional toolchains?

<comment><USER13> I've written about it before, but nothing I've worked on is in a good state that I can point to as an example. A big part of turning the tide is going to be about getting the messaging right, because even with the ability to grandfather in conventional toolchains, it requires a perspective shift/attitude adjustment on the part of developers, and _oh boy_ are developers going to revel in shitting on the idea and downplaying the costs of continuing to do things the same way we always have. It involves non- destructive compilation and the ability to (re)publish tooling for a common platform.

I've seen multiple comments here on HN in threads about compiler development where chrisseaton points out that compilers are pure functions. All you really need to do is combine that observation with the observation that we already have a near-universal substrate for doing computation. (And it might help further to recognize that releasing an open source project is fundamentally an act of publication, almost-but-not-quite in the vein of Knuth's literate programming.)

</comment></comment></comment></comment><comment><USER14> The author took an article about somebody suggesting that having email be the only mechanism for contributing to the Linux kernel might be a barrier to entry for new developers, and construed it into this piece on how the evil Micro$oft is looking to dismantle distributed git development.

From the original article:

> Picking her words carefully, she said work is being done towards "moving > from a more text-based, email-based, or not even moving from, but having a > text-based, email-based patch system that can then also be represented in a > way that developers who have grown up in the last five or ten years are more > familiar with."

That seems like an entirely fair statement to make for somebody who is on the board of The Linux Foundation.

<comment><USER13> The interesting thing to note is that the "way that developers who have grown up in the last five or ten years" refers to the way of working on GitHub, and that GitHub made it deliberately difficult to interoperate with other development models (like the kernel's, or old-style Bugzilla-and-patches) for business reasons. When you start out with trying to be a social network for developers, you'll happily take inspiration from the way Facebook divides the world into "Facebook" and "not Facebook", which naturally results in erecting barriers between your userbase and outsiders so long as those barriers can feed into your growth strategy of converting the outsiders into even more users.

Having said that, this blog post is foremost not actually a criticism of Microsoft/GitHub, but instead trying to draw attention to Sourcehut. Sourcehut is not a good example of how to solve GitHub's problems; if we were in a hypothetical world where the choices were GitHub or Sourcehut, the skew would remain forever what it is today, and the lead developer doesn't seem capable of understanding why and fixing Sourcehut's flaws.

<comment><USER15> I feel that the author is drawing attention to Sourcehut because there are no alternatives that use the workflow he is pitching. It's not as great as Github at the moment, but he is trying to show what it can be. He always comes off as incapable of fixing sourcehut's flaws because a lot of suggestions he gets are contradictory to the fundamental design he has in mind. Despite this, sourcehut is making steady improvements. Drew also puts up invaluable resources which helps people like me get into the email workflow. Sourcehut currently has a steep learning curve, after which you would immediately recognize the design as a safer bet in the long term.

</comment></comment></comment><comment><USER16> There are an awful lot of people in the comments here calling this an advertisement and being upset about it. How are those that are upset about it not upset that this is an obvious conflict of interest and advertisement for microsofts github platform.

<comment><USER7> This is the most upsetting part about it, IMHO. The reason Microsoft pays a salary to this person is precisely to get GitHub mentioned into these sorts of conversations -- even though it's widely known that GitHub doesn't support such usecases.

But, of course, there's never any time to mention such facts; but here's an example if anyone's curious: [https://blog.ffwll.ch/2017/08/github-why-cant- host-the-kerne...](https://blog.ffwll.ch/2017/08/github-why-cant-host-the- kernel.html).

Yet when a one-person team tries to provide relevant examples on the issues of dealing with Microsoft, pitching a potential solution, and offering their take on it -- fully open-sourced -- they get discounted as advertisement -- even though their service is free and open source.

<comment><USER17> > Yet when a one-person team tries to provide relevant examples on the issues > of dealing with Microsoft, pitching a potential solution, and offering their > take on it -- fully open-sourced -- they get discounted as advertisement -- > even though their service is free and open source.

it's upsetting indeed.

I'm 100% sure had he didn't mentioned SorceHut the same people would've complained instead that how there were no projects for improving mail based workflow, why didn't OP offer a suggestion, or that it's open source so why he didn't shut up and wrote a patch instead.

</comment></comment></comment><comment><USER18> Calls to mind the way Google, Facebook, etc. took over OAuth by flooding the committee with their own representatives and turned it into something completely different with OAuth2.

<comment><USER15> Reminded me of a quote from another one of Drew's blog posts: "The web and web browsers have become Lovecraftian horrors of an unprecedented scale. They've long since left "scope creep" territory and entered "oh my god please just stop" territory, and are trucking on through to hitherto unexplored degrees of obscene scope." [1]. I sometimes feel like many standards and software (incl open source) are designed to make it impossible for an individual or small team to implement or manage.

[1] [https://drewdevault.com/2020/08/13/Web-browsers-need-to- stop...](https://drewdevault.com/2020/08/13/Web-browsers-need-to-stop.html)

</comment></comment><comment><USER19> This is an ad for sourcehut, a GitHub/Microsoft competitor.

<comment><USER12> Sourcehut is competing with Github/Microsoft? That's new to me :-D

Focusing on a niche hardly counts as competition to me.

'an alternative to Github' sounds more realistic.

</comment></comment><comment><USER20> This person seems very upset about something that customers actually love. Speaking for myself —- GitHub pull requests are amazing. I have an easy way to collaborate and propose changes to my projects through a human-friendly interface that doesn't require me to use tech from early 90s.

Surprise - technology evolves. We're not all going to stick with BBS just because "it's a standard everyone uses, ZOMG don't extinguish it!"

<comment><USER21> Wait until you need a Microsoft account for accessing github, wait until your account gets blocked. All of sudden all of your code is out of reach.

<comment><USER20> Wait until your mail server goes down or experiences a malfunction that erases all mail threads. Wait until your hard drive fails and you lose all the code.

There can be a lot of hypotheticals. GitHub does not preclude you from using git for what it's intended to be - a distributed source control management system. If you don't have backups, that's on you.

<comment><USER3> Ah yes, because apparently no one besides GitHub is qualified to run reliable services.

[https://status.sr.ht/](https://status.sr.ht/)

[https://www.githubstatus.com/](https://www.githubstatus.com/)

[https://sourcehut.org/blog/2020-07-03-how-we-monitor-our- ser...](https://sourcehut.org/blog/2020-07-03-how-we-monitor-our-services/)

[https://drewdevault.com/2019/01/13/Backups-and-redundancy- at...](https://drewdevault.com/2019/01/13/Backups-and-redundancy-at- sr.ht.html)

When your mail server goes down, nothing happens, the internet continues to function normally and then when it comes back up you will receive all of the emails that were sent to you when it was offline. If the mailing list goes down, you can still send emails and you're collagues probably won't even notice the outage because they were CC'd. When the mailing list comes back up, it'll receive all of those emails in the same way and get caught back up.

When GitHub goes down, everything stops. And GitHub goes down often!

<comment><USER15> I started trying out sourcehut out of curiosity and only recently started understanding the resilience and convenience of email workflow compared to Fork-PR workflow. It's also is clear to me that the pains with the email workflow is the user experience and not the workflow itself. None of this was apparent in the beginning (and hence the complaints). It would be great if there was a single page listing comparison of both workflows against specific technical points like these.

</comment></comment></comment></comment></comment><comment><USER22> I have a hard time taking this seriously. Email is a pain to use compared to a dedicate feature UI.

I think the real problem is the need for a standardized pull request protocol that people can wrap. Then let people use email, a website, an API or whatever they want.

<comment><USER20> 100% this. I will take GitHub's PR process over emailing diffs any day. It's just a matter of improving user productivity.

<comment><USER3> Absolute nonsense. Emails are far more productive. I've made a video demonstrating the difference here:

[https://spacepub.space/videos/watch/1619c000-7c44-4330-9177-...](https://spacepub.space/videos/watch/1619c000-7c44-4330-9177-29a0854bd759)

<comment><USER20> Literally nothing from what you showed is a pleasant customer experience. Overly complex workflow that can be simplified by what GitHub is doing.

Think of a beginner developer who wants to learn how to contribute to an open source project. If they would be put through the process you showed, it will be a meat grinder that is going to be error prone. Zero need for that when GitHub has a great UX that focuses on getting shit done instead of fiddling with conventions from the 90s.

<comment><USER7> That's why there's shell completion, and history search; then with practice, keyboard shortcuts as well; all vastly improve productivity.

I think a lot of people wrongly assume that GitHub is so "easy" that you don't actually have to spend any time to learn how to use it.

But that's not the case at all.

Moreover, GitHub has so many quirks, that most Enterprise shops don't use it internally for their own internal projects (unless they release said projects into OSS); so, when you work for any company that's not just a startup, you likely have to learn yet another set of tools. And again if you switch the company.

Compare this with email. As the original article reveals, Linux and OpenBSD happen to have almost entirely identical workflows for patch submission, which is actually REALLY weird, considering that the two projects have entirely different histories, methodology, and use entirely different revision control systems, where OpenBSD still uses CVS, yet Linus Torvalds hated CVS so much, I recall that he refused to use it even before Git was ready and the licences for the predecessor system have already been withdrawn (I recall he hated CVS so much he simply used plain patches or tarballs).

<comment><USER22> > I think a lot of people wrongly assume that GitHub is so "easy" that you > don't actually have to spend any time to learn how to use it.

For a lot of people, probably the large majority of people, GitHub's (or GitLab's) UI is simpler to work with than a terminal. The overwhelming success and popularity of GitHub has demonstrated the value of it's UI. I just don't see how you could convince the Atom/VSCode generation of developers to go back to mailing lists.

> so, when you work for any company that's not just a startup, you likely have > to learn yet another set of tools. And again if you switch the company.

As far as I am concerned, the email workflow is just "another set of tools" too. Except no company I've worked with or worked for has used it.

<comment><USER17> > For a lot of people, probably the large majority of people, GitHub's (or > GitLab's) UI is simpler to work with than a terminal.

The topic isn't about majority of users. It is specifically about Linux kernel developers.

<comment><USER22> Fair point, I've strayed from the topic at hand.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> What is Microsoft extinguishing here? Email?

<comment><USER24> Distributed git development. Moving us back to central repos.

<comment><USER25> But you can still do distributed repos with github... nothing it preventing you from changing your remote origin...

<comment><USER26> Only issue is if you decide to use GitHub features like issues/prs or comments on code, those won't be transferrable I think. At least easily.

<comment><USER5> Email archives are even harder to transfer, and to make sense of in general.

For example if you want to find the review comment thread for linux commits there is no reliable way to do it, your best bet is to google the title.

<comment><USER11> > Email archives are even harder to transfer

Mailing lists are trivial to distribute. Thanks to maildir and mbox, everybody has a full copy of the mailing list just as they have a full copy of the repository.

<comment><USER5> > Thanks to maildir and mbox, everybody has a full copy of the mailing list.

No, that only covers emails that you personally received. You need another mechanism for older emails.

<comment><USER3> A mechanism which is provided by mailing list archives in the form of mbox downloads. If you question the reliability of this (but apparently not the proven unreliability of GitHub), as a fallback you can just ask an older subscriber to give you their mbox.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> It's not a conspiracy. If customers demanded decentralized, companies would be pushed down that path. They don't. Customers demand ease of use, features, and speed, and all that is technically easier to deliver with a centralized model. Why impose extra engineering cost for decentralization almost nobody cares about?

GitHub's largest value add IMHO is search, and that is probably the hardest thing to decentralize.

<comment><USER10> Github absolutely would not make itself interoperable just because users wanted it to. That would be a terrible business move -- it would lead to Github hemorrhaging users and projects as they left to other, smaller competitors while still begin able to interact with the users and projects that remain on Github.

It's not Github's job to do what customers want. It's Github's job to do whatever will make them money, whether it's good for customers & the broader tech community or not. You're right that it's not a conspiracy though -- there's nothing secret about this at all. It's just business.

<comment><USER27> You can already mirror a repo easily to/from GitHub, and moving is pretty easy unless you are deeply invested in GitHub proprietary features.

People use GitHub because people use GitHub. It's a classic network effect.

<comment><USER10> I mean like me forking your Github repo to Gitlab and then submitting a PR from my Gitlab fork to your Github repo. Can't do that. If I want to contribute to a Github project, I need a Github account. That doesn't apply to interoperable protocols like email -- you can use gmail and I can use yahoo mail, or even a self-hosted mail server, and we can still send messages to each other.

This would certainly be doable, but they wouldn't do it, because it would damage their market share.

</comment></comment></comment></comment><comment><USER28> _I represent sourcehut, a GitHub competitor_

Maybe lead with that?

</comment><comment><USER5> Good: Fuck plain-text email.

We should stop relying on duct-taped solutions from the 70s. Web-based code review solutions are vastly better.

<comment><USER29> Agree. The problem with github is not that it is web-based instead of email- based. The problem is that it is a proprietary walled garden.

An open source direct competitor to github is what's needed, not going back to email as the UX for development.

<comment><USER5> I don't see a shortage of github competitors.

For example GitLab works well and also allows for self-hosting.

<comment><USER10> But Gitlab is its own walled garden (albeit an open-source one). What we'd ideally have is a platform-agnostic PR protocol. Sadly, we're not likely to get one.

That being said, I agree that "let's all use plain-text email" isn't a very good alternative. It's perfectly possible to use Gitlab or Gitea and have the web UI experience without marrying yourself to a proprietary ecosystem.

<comment><USER15> Is the plain-text the problem? Because Gitlab/hub use them too - as markdown. Their UI layer is built on top of it. Why not do the same thing for emails? Plain-text in SMTP as a communication layer, but a rich UI layer on top of that at client level? Make a combined mail + list + git client?

<comment><USER10> I don't have any inherent problem with plain text, I just think that the pull/push/PR workflow is nicer than emailing patches to a mailing list.

</comment></comment></comment></comment></comment></comment><comment><USER30> tl;dr: A Github competitor is looking for reasons to rage against Github/Microsoft.</comment>


Help us test our Presentation app - <AUTHOR>

We are working on a presentation app which will help people not only view their presentations on iPad, but they will be able to record their interaction, audio as well as video.<p>We would love to get your feedback, please sign-up at http://ipad.9slides.com <comment><USER2> I had a chance to play with latest app bits, it's a really nice looking app and I feel that it's going to be very useful for anyone who wants to create better presentations.</comment>


Poland takes on more temporary foreign workers than USA and Germany – report - <AUTHOR> https://www.thefirstnews.com/article/increasing-numbers-of-workers-heading-to-poland-as-new-report-shows-country-takes-on-more-than-usa-and-germany-7792 <comment><USER3> I'd be cautious with this article, it's a portal of the national Polish Press Agency and the link was posted by a 2-hour old account.

"As we have come to realize in recent years, Poland is often portrayed in foreign media not entirely accurately, and we want to gently modify this picture," the president of the Polish Press Agency said in an interview.

As he went on to say, the aim of the website's creators is to "reach specific opinion-forming circles" with the help of social media.

[https://polandin.com/37070892/polish-press-agency- launches-n...](https://polandin.com/37070892/polish-press-agency-launches- news-service-in-english)

<comment><USER4> The western media has portrayed Poland inaccurately for years now. Decades, even. To anyone who has spent time in the country, it is blatantly obvious. As such, if you're going to suggest caution, I suggest it is toward all media organizations. Which is a good attitude to have in general, IMO.

<comment><USER5> In which way is it portrayed and what is the reality?

</comment></comment></comment><comment><USER6> Found the original source, apparently at:

[https://www.oecd-ilibrary.org/sites/c3e35eec- en/index.html?i...](https://www.oecd-ilibrary.org/sites/c3e35eec- en/index.html?itemId=/content/publication/c3e35eec-en)

though I warn you: it's a _long_ article. I emphatically _DON 'T_ suggest changing the link in the original submission to this reader-sleepiness- inducing paper. The original submission is much easier to read, and I just wanted to make sure it's based on real source. I found the source via: [http://www.nordiclabourjournal.org/nyheter/news-2019/article...](http://www.nordiclabourjournal.org/nyheter/news-2019/article.2019-09-23.0754668044) which I found via quick googling.

A relevant quote about Poland that I managed to find in an attempt at quick skimming is in Chapter 1, section "Main findings", bullet point 5:

 _" For the second consecutive year, Poland was the top OECD destination for temporary labour migrants, with 1.1 million new authorisations delivered to non-EU workers and 21 000 intra-EU posted workers. The United States remained the second most popular destination, with 691 000 new temporary workers in 2017."_

Sorry for not linking to the particular Chapter & Section, but deep linking on the particular site seems broken to me (?).

<comment><USER7> What's so wrong about it? They are doing it basically because they can. They have a source of culturally similar people from much poorer neighboring countries: Ukraine and Belarus.

Plus i have to say, there are also many people who come without those permissions, and they are not illegals: they have right to work as people born in the ex-Polish territory - pre-1939 - having so-called Karta Polaka.

[https://en.wikipedia.org/wiki/Karta_Polaka#Rights_of_the_hol...](https://en.wikipedia.org/wiki/Karta_Polaka#Rights_of_the_holder)

<comment><USER6> Uh, I absolutely didn't try to suggest that anything is wrong about it!... sorry if you got such an impression :/ I tried rewording my comment now, to hopefully better convey what I meant, trying to avoid using some words that I'm now guessing you maybe understood in some unintended way (?)

<comment><USER7> Ah no no that's fine, i didn't mean it. It' just that most people probably saw it as somehow bad news or something to criticize Poles about.

</comment></comment></comment></comment><comment><USER8> Somehow they forgot to mention the Ukraine crisis.

[https://www.theguardian.com/world/2015/may/13/ukraines- refug...](https://www.theguardian.com/world/2015/may/13/ukraines-refugees- find-solace-in-poland-europes-most-homogenous-society)

[https://www.forbes.com/sites/freylindsay/2018/09/19/ukrainia...](https://www.forbes.com/sites/freylindsay/2018/09/19/ukrainian- immigrants-give-the-polish-government-an-out-on-refugees/)

</comment><comment><USER9> I looked at jobs in Poland after a visit there. Everything was super cheap and it's a beautiful place. However, once you were on Polish wages, things were not super cheap any more.

<comment><USER10> It's only good if you come from the east, as their wages are even worse compared to their prices.

<comment><USER11> Or you actually work as a software engineer or for foreign companies as an expat.

<comment><USER12> > Or you actually work as a software engineer or for foreign companies as an > expat.

Even Google doesn't pay that well in Warsaw. You're much better off getting some sort of pseudo-b2b arrangement to a local software house. That gives you a ridiculously low income tax rate of 19%, too.

<comment><USER13> The average salary in Warsaw (highest in Poland) is 6k PLN. Google (as any reasonable IT company) will pay no less than 20k PLN for senior developers. I would say that it's a pretty good salary even for Warsaw standards...

Of course, B2B contracts are event better, mostly because of lower taxes but they have their own disadvantages (often they can be terminated within a week, you don't have PTOs etc.)

<comment><USER14> > I would say that it's a pretty good salary even for Warsaw standards

Still less than what you can make working remotely for western European companies.

<comment><USER11> Not that much less, and the cost of living is geared towards someone making a tenth of what you make. I find I'm saving more than when I was living in a western country.

<comment><USER14> "working remotely"

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Is this to compensate for the large number of Polish workers who have moved to other EU countries?

<comment><USER10> Mostly it's because demography is very bad. We had 700 000 kids born yearly in 80s and less than 400 000 in 90s.

<comment><USER16> But still the "youngest" country in the EU, right? I.e. the country with the most young people.

Also the country with the most independent radio stations and film freaks. And BSD hackers.

<comment><USER10> Basically we've had the peak in 80s and that generation is now in the most productive years (30s-40s), it's great for economy, but these people will retire in 30 years and the next generations are almost 2 times smaller - <USER2> will be hard to balance budget. Especially now that the current government LOWERED the retirement age from 70 to 65 for men and 60 for women.

</comment></comment></comment></comment><comment><USER17> Clickbait. It's more _temporary_ workers.

<comment><USER10> They can apply for permanent residence rather easily after working here for 10 years. This influx started in 2014 because of war, so I'd expect the permanent residence permits to hike in 2024. Also there's a shortcut if you can find any Polish nationality ancestor (and it's quite common as Poland and Ukraine were one country for half of their history).

From anegdotal evidence it doesn't seem that the influx has stopped, 5 years ago it was rare to hear anybody speaking Russian/Ukrainian on the street, now it's a daily ocurrence.

<comment><USER18> Poland has a populist government, and alt-right movements flaring up a strong anti-immigration sentiment (especially against anyone from the east). So while permanent residence may be an option, or for some people a desperate need, it's not a pleasant one.

<comment><USER19> How did you come into such conclusion? I live in Poland and I do not agree with it. At least in southern part (Silesia, Katowice) we are really happy about the immigrants from east. They are really good workers, they have no problem in learning language, and are really similar when it comes to family and moral values.

<comment><USER20> I'm not Polish but I've spent a fair bit of time in Warsaw and I'd say the majority of people there are fine with it too - I mean, they complain but I wouldn't say they're actively opposed either. I do genuinely wonder if it might be a generational thing - I've noticed some of the older population aren't quite as happy.</comment></comment></comment></comment></comment>


Blockchain technology could reduce role of banks, says BIS - <AUTHOR> http://in.reuters.com/article/2015/11/23/global-banking-blockchain-idINKBN0TC28720151123 <comment><USER2> OK, so, it actually says:

"Basel-based BIS's Committee on Payments and Market Infrastructure (CPMI), made up of central bankers from across the world, said it could challenge banks' role - but if the technology became widespread it was unclear who would then provide credit and savings facilities."

Emphasis: "but if the technology became widespread it was unclear who would then provide credit and savings facilities."

Having worked at a bank, they're interested because it could reduce the large role of simply making sure everybody's shit lines up at the end of the day between counterparties. This isn't the disruption you're dreaming of... It's not changing how capital and resources are directed and allocated throughout the economy... it's changing how those decisions get confirmed across systems.

It then goes on to say it could theoretically challenge the need for a central bank, as it's decentralized... this makes a huge, implicit assumption that a rule-based interest rate decision is desirable, which, I don't know, until we can have an actual way of knowing the natural interest rate and hand off analyzing the economy to algorithms, it may be best to leaving that to people who spend their lives devoted to that.

<comment><USER3> +1 Yep a closed blockchain could provide almost instant clearinghouse functionality while ensuring that the funds are both available and were delivered. Strip that on top of existing banking infrastructure like swiftnet and you get a very lucrative system for banks which reduces quite a bit of risk on pretty much every domain involved in most transactions.

<comment><USER4> There are absolutely no efficiencies to private blockchains. Are you proposing that banks will run miners merely for the purpose of passing signed messages to one another?

<comment><USER5> That is not what they're doing. When you have a known set of entities and trust that at least 1/3 of them will be honest, you can use other consensus systems like Byzantine Paxos. There's at least one project combining that consensus algorithm with the Ethereum virtual machine.

Just passing signed messages around wouldn't be sufficient, you need a way of ensuring overall consensus.

<comment><USER6> I agree with your post, but Byzantine Paxos require at least 2/3rd to be honest not 1/3rd

<comment><USER5> Ah that's right, thanks.

</comment></comment></comment></comment></comment></comment><comment><USER7> The Bitcoin blockchain, as implemented today:

\- Takes over 10 minutes to come to consensus

\- Cannot handle the transaction volume of a reasonably large retail company

\- Loses accepted transactions!!! (blockchain forks, orphan blocks, etc) From a distributed database perspective the Bitcoin blockchain is broken and loses data: like a decentralized MongoDB, but slower by several orders of magnitude.

Articles like this are largely uninformed non-technical people responding to hype. They don't know what a replicated log is, let alone a Merkle tree.

There are many interesting distributed ledger technologies, like Stellar SCP, Hyperledger, and Tendermint.

The Bitcoin blockchain is ill-suited for this purpose.

<comment><USER8> > \- Loses accepted transactions!!! (blockchain forks, orphan blocks, etc) > From a distributed database perspective the Bitcoin blockchain is broken and > loses data: like a decentralized MongoDB, but slower by several orders of > magnitude.

When a block is orphaned or when there is a fork, transactions are not lost, they'll always be present in the main chain. Or said another way, all miners are trying to mine the unconfirmed transactions in their mempool. If one miner ends up finding the winning block, transactions they didn't include that were included in an orphaned block are going to be mined in the next block.

What you may be referencing, though, is not "lost transactions", but rather double spends? What I said above holds true assuming no one else is trying to spend the same outputs. However, if you wait 6 confirmations (the recommended amount before you should consider a transaction "accepted"), you won't see double spends, either.

<comment><USER9> The memory pool is not consistent among nodes, and nodes are free to drop or ignore transactions as they see fit. As you say, nodes may have conflicting transactions, a.k.a. double spends. Transactions are not durable in a meaningful way until they have been included in a block.

Waiting for six confirmations is probably enough to prevent accidental reversions, but takes on average an hour, with a fair amount of variance.

<comment><USER8> Waiting for six confirmations _is_ enough, as it's been shown both in theory and in practice.

I was correcting the parent as saying Bitcoin loses transactions is false. The network never loses a valid unconfirmed transaction.

</comment></comment></comment></comment><comment><USER10> In other news, email could reduce the role of the post office

</comment><comment><USER11> This really has little to do with Bitcoin. A distributed ledger maintained by mutually mistrustful parties is useful for some back-end problems. The Bank for International Settlements, MERS, and Depository Trust Corporation are all candidates for replacement, because they're all just neutral parties that run clearing houses.

What we've learned from Bitcoin is that blockchain technology is robust enough to strongly resist attacks. If it were profitably breakable, it would have been broken by now. That it hasn't been is quite impressive.

As a settlement system, it doesn't require "mining" \- just enough mutually mistrustful players that no one can tamper with logged transactions.

<comment><USER12> My understanding is that bitcoin has been broken for quite some time as there have been multiple 51% events from mining pools, it's just more profitable (for now) for these parties to keep the status quo

<comment><USER13> Your understanding is incorrect.

</comment></comment></comment><comment><USER14> As a side note: can we please stop using cryptocurrency and start using cryptocommodity? Bitcoin et. al. are not currency.

<comment><USER15> I can't find any interpretation of the word 'currency' that would prevent it from applying to bitcoin. As far as I can tell, it's a "commodity money" kind of currency.

<comment><USER14> Currencies have their value nominally defined by a sovereign power. Some currencies in the past used precious metals in coinage, but that didn't determine it's value. Value of currency can be changed according to policy. As such gold has never been a currency, but has been a commodity used in some coinage. The discussion is "nominalism" versus "metalism". Nominalism wins by a country mile! Gold backed currencys, similarly to currencys who tie their value to a different currency (such as pegging exchange rates) only serve to reduce the capacity of the issuing body to pursue domestic policy in the interests of the populous. In that sense, a commodity can be a store of value that's not a currency, and can be used as material to represent currency, but cannot be a currency.

<comment><USER15> Where are you reading that currencies require sovereign powers?

<comment><USER14> Taxation (or any other liability imposed on a population by a sovereign) is what drives the value of money. This is a good macroeconomic and historical overview [http://m.youtube.com/?#/watch?v=0zEbo8PIPSc](http://m.youtube.com/?#/watch?v=0zEbo8PIPSc) also check out A Primer on Modern Money by Randall Wray and anything by Bill Mitchell (including his blog).</comment></comment></comment></comment></comment>


Starting Up, One Year Later: The Downward Spiral - <AUTHOR> http://blog.dislocatedday.com/starting-up-one-year-later-the-downward-spira

<comment><USER2> 'All the stuff "normal" folks do to unwind and interact with the world outside of their jobs -- go to the gym, read a book, go out to dinner, watch TV, play a game, etc. -- I either won't allow myself to do or feel guilty over doing.'

This encapsulates exactly how I feel most of the time. It's really hard for me to get past the guilt of not working on the startup. Even things like eating breakfast in the morning, I don't want to do because I feel like I'm wasting time, so I end up starving myself until lunch.

It's weird because it one of those things that you KNOW you shouldn't do, yet you somehow find yourself in that downward spiral.

<comment><USER3> Damn, one of my favorites and I forgot about it. Eating, period, makes me feel guilty. Maybe because it costs time and money and sometimes I'll watch _The Daily Show_ or something while I do it?

This is one of those I considered too ridiculous to even rationalize; it's in the "because why not" pile.

<comment><AUTHOR> I realized I was feeling guilty for eating the same way you two did. I also watched TV along the way, so I was feeling even more guilty because often I stayed far longer than needed. There's so much useless stuff on TV you can watch for hours anyway.

First try: Cut the TV, read rss feeds or email while eating. Baaaad idea, obviously. Not only was I still feeling guilty because 'without eating you would read much faster' but I also degraded eating to something even less valuable. There was zero relaxation, I didn't even really _taste_ what I was eating.

Second try: I dismissed TV, rss feeds and everything else while eating. Eating now is my 30-to-60-minute-break of everything 2 to 3 times a day. I just concentrate on preparing and eating the food. I even started to eat in my kitchen again and not on my couch or in front of the computer. Makes a hell of a difference.

I'm so much more relaxed after these breaks. Often I will stay a little longer and read a magazine (brandeins, a german business magazin) or even a book.

PS: Next step is to go out for eating every other day to get some sandwiches, pizza or something. It's a bit more expensive but really helped me to really get away from everything in my head.

PPS: Of course I sometimes still sit over my keyboard with a pizza and work while eating, but well, I never said I was perfect ;)

</comment></comment></comment><comment><USER4> I've felt like you have many times. Whenever I do, I go read this blog post from Timothy Ferris:

<http://tinyurl.com/4l2gpl>

It contains this gem of a quote from Marc Andreessen:

"First and foremost, a start-up puts you on an emotional rollercoaster unlike anything you have ever experienced. You flip rapidly from day-to-day – one where you are euphorically convinced you are going to own the world, to a day in which doom seems only weeks away and you feel completely ruined, and back again. Over and over and over. And I'm talking about what happens to stable entrepreneurs. There is so much uncertainty and so much risk around practically everything you are doing. The level of stress that you're under generally will magnify things incredible highs and unbelievable lows at whiplash speed and huge magnitude. Sound like fun?"

</comment><comment><USER5> Startups are marathons not sprints.

If you work 24/7 you will burn out and you'll write blog posts like yours.

Get a girlfriend, take up a sport, join a [non computer] club.

Do something that attaches _you_ to reality. Nothing wrong with working lots, but do something else also.

<comment><USER6> This is exactly right. If you can't imagine doing what you are doing everyday for the next 5-20 years, it's time for a change.

</comment></comment><comment><USER7> This is a great writeup. I have also come to disagree with the specific PG essay mentioned in the post.

Entrepreneurship needs to be more sustainable than what is made out in the current literature. It shouldn't really be a 2 year binge in the hope of a cashout. The biggest companies take a lot more than that and if you really love doing it there is no reason you should be looking for an exit. A long term commitment also requires entrepreneurship to suit your other life requirements.

A startup isn't really worth its exit.

<comment><USER8> _The biggest companies take a lot more than that_

Seems like in this case, the founders can "exit" into the new, big company that grew out of the seed they germinated and nurtured during their two years of insane coding and sacrifice. The seed grows roots, and the roots find purchase, and the leaves unfurl, and the thing grows like kudzu, and the founders (if they don't just want to retire) get to manage and shape the growth, and hire lots of people to help them, so they can stop sacrificing their existences so completely, and resume enjoying life.

 _A startup isn't really worth its exit._

Do you know this from experience?

I guess what I'm saying is that the steady state of "sustainable" work is unlikely to produce great startups; and the steady state of complete self sacrifice is probably a waste of one's consciousness. The real, productive, and fun dynamic may be in pursuing a set of punctuated equilibria -- brief epochs of spastic productivity, which punctuate longer spans of "sustainable" exploration of the results of the last round of spastic effort.

Then, when you get bored of exploring the ramifications of the last round of effort, get spastic again! Shake it up, and see what the new world you've made for yourself means.

</comment></comment><comment><USER9> The most useful tool I've only started to learn is to focus on PRODUCTIVE hours of work per day, rather than total hours spent working. I assume everyone's different, but for me six hours of truly productive coding in one day counts as a big success (yes, I CAN get more in, but for how many days in a row?)

Realizing and accepting when you're no longer productive and switching tracks is one of the most useful skills.

Startup founders have a lot of things working against them - the flexibility to set your own work schedule can be one of the most powerful tools. If this involves taking a mid-day break to run around outside for an hour, or going out on a weeknight and sleeping in the next morning, or working throughout a weekend because it makes sense, then go for it. With the right balance of discipline, it'll keep you happier, it'll keep you sane, and it'll keep you more productive - per hour spent working - than anyone in a cubicle.

</comment><comment><USER10> I'm facing this same problem "I can't even sit in bed writing this without thinking, "I should really be working,""

It makes me always pressed and in hurry to complete things, and I can't control myself about this!

How can I change? it's really destroying my productivity

<comment><USER3> Rather ironic that being in a hurry to complete things ruins productivity, don't you think? Although it seems entirely fitting, given what used to be my normal outlook on life. I remember when I was never in a particular hurry, and the world somehow managed to not end. Which is something now outside my comprehension.

</comment></comment><comment><USER11> What a great essay! It brings to light the day to day emotional struggles of focusing 110% on something, especially on a solitary level. Check out this video of Couchdb founder talking about a similar struggle

<http://www.infoq.com/presentations/katz-couchdb-and-me>

</comment><comment><AUTHOR> > And somebody will probably submit it to Hacker News and get karma, so it > isn't all bad.

done.

<comment><USER3> You sorta picked a crappy time. Mostly only people wound as tightly as me are awake and reading Hacker News right now. I hope you get more than 5, otherwise I will have to write something with pictures of cats to make up the "good cheer" differential.

<comment><USER12> > Mostly only people wound as tightly as me

Isn't that demographic also your target audience for this post?

<comment><USER3> Seems I wrote quite the touché-inducing comment. First timezone guy, now you!

</comment></comment></comment></comment><comment><USER13> Like everything else in life you need balance. Putting in hundreds of hours is really not that more productive than putting in 50-60. You may think you are doing yourself a favor by working such long hours, but in reality you aren't.

At a certain point any additional "work" you do is non-productive, when you are tired, your mind will start to wander, and you'll start making mistakes. And then you'll spend all that time you "saved" fixing them.

</comment><comment><USER14> You know how they say if you fall off the horse, you should get back on again? Running a startup can be like falling off the horse, every day, usually onto your face.

</comment><comment><USER15> Sounds like he is describing my university years. I think the problem is simple: the most important thing in your life is something that can consume an unlimited amount of time. There's always more to do, to learn, to explore, so you never feel you've done _enough_. I think that is also the key to solving the problem: you have to set precise, reasonable, goals and disengage yourself from that 'most important thing' when you've reached the goals you set for the day, week, month. Otherwise, the maelstrom will take all your time.

<comment><USER3> I tried exactly what you're saying, actually; I grabbed a task planner, put tasks for "Today" in it before I went to bed, then did them when I woke up. And I took a break when I was done. And spent the whole time telling myself, "you have earned this break." Which turns out to not be so very relaxing, actually.

The strategy worked well enough that I feel it _could_ work properly, if only I could return to equilibrium long enough to enact it. In its current form, it feels like I'm lying to myself because the other voice telling me I'm not doing enough is louder.

And I used to be so... _sane sounding_.</comment></comment>


Twitter should copy Google+'s circle feature.  - <AUTHOR> http://www.geekybuddha.org/blog/2011/07/16/twitter-should-copy-google%e2%80%99s-circle-feature/ <comment><USER2> Absolutely not. The whole nature of twitter is about its spontaneity and real- time nature. Can you imagine if someone had to go through the extra thought step of "which group should I send this to?" every time they sent out a tweet? It would ruin the service.

Also, a primary difference between Facebook (now Google+) and Twitter is that Twitter was assumed to be public by default. It is a public form of communication, and the Google+ style of sorting your messages into specific buckets of people doesn't fit it at all.

<comment><USER3> I've noticed a curious trend among my friends...

Because all modern cell phones have Wi-Fi, and there are a lot of free hotspots around the city (here in Mexico), they use twitter as SMS... They log and send a message to their friends about the hour to hang out, and the place, and the chat over twitter... I'm nor sure if they know it's public, or the implications of that, but they truly do that...

I'm begging to understand twitter, as poor man's phone calls...

<comment><USER4> I've noticed the same thing among some of my friends. However, I don't think that's what twitter is meant (or good) for.

</comment></comment></comment><comment><USER5> Google+ on Twitter would be more like a group DM. Twitter's mentions to users are public so mentions to lists could be to. I've got a list for people at work but to mention them at the moment I have to name them individually. It would be great (though perhaps open to abuse) if I could tweet at my lists, or even the lists of others. This could be implemented with another character like "/". E.g. "@/foo" to mention my foo list or "@bar/baz" to mention @bar's baz list.

</comment><comment><USER6> No, they shouldn't.

I have zero interest in managing and maintaining circles, and have already given up on doing it in Google+.

<comment><AUTHOR> Yeah, it should be totally optional in twitter' case.

</comment></comment><comment><USER7> The burden with Google+ circles, and Twitter if it followed suit, is that I have to manage what someone else is interested in hearing from me. That's completely backwards for pubic sharing (which is unequivocally Twitter's focus), especially for people with a decent sized public following who they may not know very well.

What Twitter needs to build is a capability where I can advertise different topics that I talk about, and then people can selectively follow everything I tweet, or just follow tweets that I publish to a particular topic. In G+ terminology it would be like if they made my list of circles public, and then people added themselves to circles rather than me adding them.

<comment><USER8> It sounds like they really just need to let me search _only_ my timeline for whatever I want. Interestingly, I can't even seem to do this with the advanced search (<http://search.twitter.com/advanced>)

<comment><USER7> Timeline restricted search might solve the problem, but there are plenty of topics where a simple keyword search may not cut it. Searching for programming would obviously include a wide array of tweets with a wide berth of keywords.

I don't think a naive keyword search would really solve the problem. I did consider at one point writing a Twitter client that would do simple Bayesian filtering across a list. So you would create a list, add whoever you want, and then flag messages as good/bad for that list, and it would start filtering.

</comment></comment></comment><comment><USER9> Google's circle feature is incredibly useful to me. Not only will it come in handy separating my three professional spheres from each other, it is ideal for separating those from my family and friends. Each of these groups is interested in and privy to different types of posts from me, and finally, there is a way to share with all of them just what I want through a single account.

Twitter's simplicity is at it's core, however. I don't think Twitter could slip a system like this in very easily... nor can facebook.

<comment><USER10> It is already on Facebook. They are called Friend Lists. You and filter your feed and narrow publishing using them. Just like circles.

<comment><USER11> Others have said this too, but it's not a matter of whether or not Facebook has that feature, it's the difference in defaults. I've been on Facebook for years and don't even know where to look for the "Friend Lists" --- and I'm a fairly technical guy who has tweaked all his Facebook privacy settings.

With Google+, the circles are core, not just some tack-on optional feature. The main way to share something on Google+ is by sharing it with circles.

To put it another way, the default on Facebook is to share with all "friends". The default on Google+ is to share with nobody - but the list of options starts with circles, and ends with the public. (Google+ also lets you include individuals in the list, but you have to type their name or email address, so I suspect that feature is little-used.)

</comment></comment></comment><comment><USER12> Although I do use Twitter predominantly for work, seeing the odd glimpse of someone's personal life adds depth to my understanding of them. If it's too frequent, I unfollow. If G+ is used 'correctly' then I'd be sad to miss those little insights in to my contacts other lives.

</comment><comment><USER13> Twitter lists are Google circles. Twitter should just continue experimenting and redesignng the whole lists functionality.

</comment><comment><USER14> Wouldn't Google likely have a patent on the circle?

<comment><AUTHOR> I am not aware, things like these could be patented ? That would be horrible to imagine. If that's the case, facebook may have patents on so many things, which google+ has copied.

<comment><USER4> I fear, at least in the US, they can be patented...</comment></comment></comment>


Interview: John McAfee Answers Your Questions - <AUTHOR> http://beta.slashdot.org/story/200403

<comment><USER2> Very nice. Maybe the best /. interview I've ever read. McAfee may be crazy (or not, I don't know) but he sure as heck is entertaining. I'd love to sit at a bar and drink with him sometime.</comment>