Ask HN: What are your greatest productivity hacks? - <AUTHOR> In the last few months I started using a clipboard manager (Ditto) and I'll never go back. My 'clipboard anxiety' (did I leave something in the clipboard? can I copy this? better open notepad and Ctrl+V just to be sure...) is gone, and I can copy stuff with reckless abandon.
This got me wondering, what are some of the other productivity hacks like this that I'm missing out on? I already use AutoHotKey and rave about it to anyone who will listen, but there must be other ways to improve my workflow.
What productivity hacks have changed your life? <comment><USER2> \- When you shut down for the day, leave your work in an unfinished (even uncompileable) state. This makes it easy to start the next morning, and is a good way to warm up to get back into context of the project.

\- If you start the day with a clean slate, write three things you'd like to do today. Pick the one that will take the longest and do that first. This is Mark Twain's "eat a frog before breakfast" advice and I think it helps a lot.

\- Install SelfControl.app and start it for 8 hours immediately when you sit down to work. No matter how in control I think I am, I'm always amazed at how my reflexes take me to some distracting website before I even realize what I'm doing. SelfControl stops this habit by blocking distracting websites and making me aware of them. (Pro tip: don't write an unblocking script)

<comment><USER3> You can also do a "git commit -a" and leave it at the editor. Next day, you can warm up by describing all the changes in the detailed commit message. (The time stamp on the commit will be the time when you invoked it, not when it completes.)

</comment></comment><comment><USER4> These are simple ones that you probably all know. I'm just writing them down for reference.

__General__

1) Flux for sleep (sleep being the 'hack')

2) Social pressure: find a community that you want to belong to and that gives you the social pressure towards goals you want to achive

__For programming (when learning a new language)__

For me, the focus is on getting as unstuck as possible. I've noticed that interactive tools help a lot with this because they show you how things 'under the hood' work.

1) Get a text editor or IDE that teaches you how to code -- only if you're new(ish) at a language. Things like Intellisense, a debugger and jumping to function definitions allow you to learn a lot more about code. For me, with Java this is Eclipse (Netbeans and IntelliJ work as well). For front-end it is Chrome developer tools (Firefox works too). For iOS this is Xcode. For node.js this was Visual Studio Code. I'm curious if there are suggestions from other people.

2) Knowing how to search on Google well. I can't really explain this yet, and it's something that's learned with the first programming language. So I'm going to ask this question on HN to see if there are people who can explain it :)

Edit, see: [https://news.ycombinator.com/item?id=13183302](https://news.ycombinator.com/item?id=13183302)

3) Finding a shell to play with.

<comment><AUTHOR> I tried flux, but I just find it irritating when the screen turns yellow. It probably doesn't help that my office has a daylight bulb

<comment><USER4> I agree that it's irritating. However, I do feel the difference when I use flux or when I don't at 03:00 in the night (student life :D). It's mainly during very late hours that I'm noticing a difference and am willing to put up with the yellow screen, probably from 23:00 and onwards.

</comment></comment></comment><comment><USER5> Changing my schedule so that my 7 hours of free time is before work rather than after work. Previously I was burnt out from work and when I got home I would do nothing but browse the internet. Also turning off the cell phone during my free time and only using a computer for productive purposes rather than website consumption. In the past couple of months on this schedule, I have read 13 books, practiced 150 Mandarin characters 200 times each, learned how to play guitar from sheet music in the first and second position, learned the major scales/chords on piano, practiced drawing every day, painted 4 paintings, journaled every day, and am taking an improv class.

<comment><AUTHOR> I wish I could do this, but I have kids. They rule my schedule

<comment><USER6> That's ok they'll wake you up 7 hours before work.

</comment></comment></comment><comment><USER7> Since college I've been using Moleskin notebooks (though lately Baron Fig notebooks) to manage my tasks/time one week at a time, moving over tasks every week that I didn't get done the previous week and evaluating whether I still need to have it at the top of my mind for each unfinished task. I find that it works extremely well for keeping relevant tasks in my head and only taking on larger projects one week at a time.

The system I use is loosely based off of the Bullet Journal method (link below), highly recommend checking it out if you haven't heard of it.

[http://bulletjournal.com/](http://bulletjournal.com/)

<comment><USER8> I believe a physical notebook is much better for me than an e-notebook

<comment><USER7> Totally agree, I think pen and paper makes me think more about what I'm writing. I still use digital note taking (recently ditched Evernote for Notion – which is wonderful), but only as a sort of "overflow". In my original post I mentioned I don't move everything over each week if it's not relevant at the moment, that usually means I add it to a digital document with some longer term tasks or ideas.

<comment><USER9> What's this Notion? Couldn't find it online

<comment><USER10> [https://www.notion.so/](https://www.notion.so/)

I just googled "notion notes" and it was the first link. Looks quite interesting!

<comment><USER9> thank you!

</comment></comment></comment></comment></comment></comment><comment><USER11> Strangely enough, Stoicism. I try to recognize what I can control and what I can't, and I try not to let things I can't control scare me into inaction.

<comment><USER12> That's not actually that strange. The detachment aspect of Stoicism (related to what you reference) is excellent for reducing anxiety overall. Reduced anxiety (or, perhaps more accurately, _prioritized_ anxiety) means that it can be applied to and about things that actually matter (or matter to you).

Stressing about other drivers that you can't control? You're emotionally exhausted before you get to work. Stressing (within reason, perhaps better stated as "mentally focused on") about how to do X in project Y? Perfectly reasonable, that's a task you need to get done and that stress/focus keeps you on the ball (overdone can still leave you mentally/emotionally drained, or hyperfocused can leave you unable to think clearly about the task because you need to step back and view the whole picture).

</comment></comment><comment><USER13> >What productivity hacks have changed your life?

Learning Vim.

The learning curve was steep and for the first year (!!) I felt SO awkward in Vim. However, I pushed on and eventually it became second nature. I started reading up on how to do stuff differently, I watched a lot of youtube videos. Then I started implementing these things more and more into my daily routine. Now all these things are ingrained so much I get annoyed if there is a text box without my Vim binding because sometimes I just mash kjkjkjkjkj which I rebound to <Esc>.

Learning Vim is worth it.

For those who are still in doubt, you are going to be editing text (code probably) for so much more hours. If you are going to repeat something or do it often you should invest in your productivity. You could think of your non- trained productivity as a straight line in the (time, productivity) plane and your invested productivity as some exponential curve. It takes (a lot of) time to get to the same level, but afterwards your productivity just skyrockets. I am very happy I made the Vim investment.

</comment><comment><USER14> Shut off social media. Kill the noise. (FB, Twitter, Snapchat, HN, $SOCIAL_MEDIA_NETWORK)

Deep focus.

"Deep Work" by Cal Newport. Read it.

<comment><USER15> This, in my own way. I've found that I'm happiest with my work when I spend the day, even if it isn't that long, actually working straight through.

Take breaks, but don't be distracted.

It's super-damn-hard to get back into this, for me, after neglecting these habits for a few weeks: when I have downtime.

</comment></comment><comment><USER16> I just tell myself "Stop being a f __*ing loser and do what needs to be done! ". It works.

<comment><USER17> Not sure why the parent was down voted. Various things work for different people and I follow something similar. I keep a mantra of sorts going on in my head throughout the day where I tell myself to not be weak and give in to procrastination (I'm on a lunch break right now). This actually does push me harder during the hours which I've set aside for productive time. That way I feel zero guilt when indulging in HN and YouTube after my work hours.

</comment></comment><comment><USER18> My biggest problem is typically dealing with distractions. I get easily distracted by either responding to an instant message or just stumbling along something interesting while searching for solutions to programming problems, or when doing research when writing articles/blog posts.

What helps the most for me is just closing out all other applications, chats, and browser tabs and not reopening anything else until I'm finished with work.

It's easy for many to get in the zone, but staying there can be hard.

</comment><comment><USER19> Once a week I do a really hard stint (6-8-10 hours) to come atop of all the little and big things I was leaving behind.

</comment><comment><USER20> I am a solo founder/developer and these are not hacks but rather realizations dawned on me, leading to much better or rather consistent productivity and decreased anxiety.

I am working Solo, but I get to bounce ideas off my spouse who also works in IT though it is sporadic at best. I am proactively trying to do this more, as it helps to air my ideas and it is much easier to recognize rabbit holes.

* Maintaining a list of things to do. If the first thing you do when you sit down to work is wonder what is it that you have to tackle next, thats a recipe for loss of productivity. If you have a list of tasks ( as granular as possible), ordered by priority if possible, you can hit the ground running. I use ZimNotes with the filed stored on DropBox. Zim autosaves. So no fear of loosing

* Try to have more realistic expectations of what you can accomplish. Try to estimate how long each task will take for you to do and then double that estimate. Knowing how long each task is gonna take will cut down on anxiety. This will clear your mind and give room for your mind to concentrate on the task at hand.

* If you are a solo founder starting out, product validation is much more important than QA. Once you have customers though, it is important to avoid any disruption in services.

* Release often even if only you are the only one who will see. Make incremental updates. Always start with something very small but working and keep adding features. Immediate visual feedback of seeing your changes at work will do wonders for your morale.

* If you are doing multiple projects, some preliminary documentation should be in place so you can context switch easily from one project to another

* Though all these help me a lot, I have just started following most of them and it needs lots of discipline. I need to be mindful of what I am doing. Whenever I slip, I just try to get back up and start again.

All that said, if I am exploring a new feature or tech, it often lacks structure due to it's lack of clarity and the time estimate for it is widely off the mark. Yet to find a way on how to tackle this. For now, the only option is to set some hard deadline. If there is no light by the deadline, that line of exploration has to be dropped. Maybe the unpredictability just has to be embraced and accepted.

I also need to find a way to handle situations where I run something and it needs a minute or two to finish. I end up wandering to HN or News or Youtube and lose track of time. Maybe another list of micro tasks that can be accomplished in 2 mins :)

Another idea is to use spacemacs. I have been a vim user for a long time. The idea of using emacs for browsing , task tracking and coding sounds appealing as probably there is lesser chance of distraction. Can someone comment on whether it is a good idea or another wild goose chase?

</comment><comment><USER21> Vim. learn Vim motions and then switch to Spacemacs. You will "own" the code.

</comment><comment> ng-user Pomodoro Timer

</comment><comment><USER22> For building something valuable, follow Deep Work. For being workholic employee, follow Getting Things Done

</comment><comment><USER12> Learning emacs to the point that the chords are second nature and require no (or very little) thought to produce (aka, fluency).

Using org-mode (other tools work as well, but particularly useful if you're fluent in emacs).

Full-screen apps, or two apps side-by-side. Specifically terminal, or terminal + reference (text, websites, man pages, PDFs). This helps to force focus on the specific task at hand.

My use-cases for org-mode: General project planning/management (personal, mostly); literate programming; notes while reading texts; notes while learning a subject.

Want to learn a new codebase but find reading dozens or hundreds of C and H files to be difficult to track? Slurp them into a massive org file that can spit them all back out using C-v-t (tangle). Then keep breaking the code down into smaller chunks adding notes, moving related sections in separate files closer to each other, etc.

Want to read a book and take notes on it? Half the screen is the PDf, half the screen is emacs. Create a headline per chapter, as you read, take notes. Write out definitions, use <<anchor>> content to create anchors for links like [anchor]. Write out your notes, capture things that you want to follow-up on, page numbers, etc. Each chapter and section gets marked as TODO (or customized) or DONE so you can chart your progress through the text.

Want to understand an RFC and maybe implement it? Put it into an org file, start structuring it, add in source blocks (or, if the RFC has source, turn them into source blocks as well).

===

And then there's GTD. Grok it. Understand that it's not a dogma but a toolkit. The tools exist to free you from the mental burden of tracking activities you need to do by capturing them, prioritizing them, dismissing them as needed, and scheduling them. If you aren't thinking about what's coming up, you can think about what's present.

===

EDIT:

Automate all the things. I write scripts to do a lot of my computer-based tasks. The purpose is to reduce error-rate (if there's an error, the script or the input was wrong, fixing the script fixes the former, adding a check to the input prevents the latter from recurring). It also gets things out of my head. I can literally forget how to do X, Y, and Z (frequent, maybe critical, but unnecessary for me to remember with any precision tasks). This is also useful for migrating a project from largely hand-rolled toward continuous integration/deployment (especially in my office where we don't quite have the infrastructure in place to do that properly or consistently). An example:

We get deliverables from contractors. My script takes that and pairs it with our own software, updating the libraries we link to with the ones they provided. Runs the build script. Constructs our deliverable. Pushes the output to a particular spot. Different parts of that are different scripts with one script to run them all. With a proper CI/CD platform, you could take each of these and put them in as stages triggered off things like git commits.

So now I've got these scripts, we have the git server and build server, I can restructure it all in a way that will run on that. Now I'm out of the loop. Whoever retrieves the contractor's deliverable and pushes it will also trigger the full rebuild of our system. No specific human is critical.

That's a specific work improvement, but the same can be done for many personal computer-based tasks as well. Like how GTD gets your future plans out of your head and into your calendar or whatever, automation gets your processes out of your head so you can focus on the product and inputs of the process and not the process itself.

<comment><USER23> I agree with much of this, but after my own experience of GTD and watching some friends try it, I think it's poorly suited for intellectual work. Even though it talks about the 10,000 ft/20,000 ft/etc view, I think it just pays lip service to higher-level planning. What I noticed were lots of people chasing microscopic tasks and checking off to-do lists instead of taking care of the big things that make a difference. But maybe it's just me.

Another poster mentioned Cal Newport's "deep work", which seems a more natural fit for coding to me.

I'm not saying GTD can't work for you, YMMV, but I think it's a better fit for more traditional office work.

<comment><USER12> I can see that. GTD works for me, but I also don't try to use it to drill down deep into every project. I have used it to, say, map out learning a language using specific resources a couple times.

Like, with Rust, I put in that I wanted to go through _The Rust Book_. I created a project with the book's title and a link to it in an org file. I created subheadings and turned them into TODOs for each chapter. Since I use org for literate programming, I included every example in this file along with my own exploration and toying with the language.

But an actual programming project won't be done that way. At most, from a GTD perspective, I note that I want to create a CLI TOTP implementation in Rust (as an exercise project). I'll capture it at a high level so I don't create too many projects (an unfortunate habit) and not finish it. So in my GTD list of projects I'll see that I'm working on "CLI TOTP in Rust", but no more details.

The details for _that_ go into a literate programming org-mode file that drills into the details of what needs to be done. Somewhat GTD-style, but the tasks here never make it into my overall GTD action queue or schedule.

Basically, my system is an amalgam of what works for me at different levels. Dogma is rarely useful, in my experience. Flexibility and appropriation of tools from everyone else. Experiment, recognize failed experiments, latch onto personal successes, and explain what worked or didn't for me to others to help them do the same.

</comment></comment></comment><comment><USER6> Ask early if I get stuck. Also ask myselfmy and my boss if something is really needed, maybe we can get away without doing it</comment>


A Little Clojure - <AUTHOR> http://blog.cleancoder.com/uncle-bob/2020/04/06/ALittleClojure.html <comment><USER2> Maybe this lisp syntax intro is a good place to ask veterans a related question.

I find s-expressions quite beautiful and simplistic way to express both logic and data as a tree. On the other hand, top-level evaluation rules are often glossed over, and seem to mess up this elegance. I feel like there is a set of braces missing at top level, for s-expression concept to be complete. I don't really know enough about specific rules or reasoning why they need to be introduced. My mental model of top-level execution is an implicit `(do ...)` block. In rest of clojure code the `do` is a special form that is frowned upon because it is used only when side-effects are necessary.

As it is, the 'module' concept is strictly tied to a file, which feels unnecessary. If top-level was enclosed in braces and evaluated with same rules as the rest of s-expressions, maybe we could move away from concept of files and, for example, store our code in a graph database. This would allow for IDEs that can collapse and expand code tree as needed.

Rich Hickey uses expression 'place oriented programming' as derogatory term (PLOP) for relying on exact memory addresses as places for our data. It would seem to me that same term would apply to our coding practices - we tie code implementation to specific locations inside files on disk. This seems like accidental complexity that introduces mental burden. If location of implementation could be divorced from specific location inside specific source file, we could concentrate on implementation that is always in context where code is actually used.

Is there any decent discussion of such concepts, or some other language that explores such direction? I'm lacking both terminology and in-depth knowledge of code evaluation to express this in more clear way.

<comment><USER3> I absolutely agree and think the same thing about Python - I dislike the module=file relation because I often want to split a module into multiple files and I also dream about storing code in a graph database often.

<comment><USER4> There's nothing stopping you from splitting a module across multiple files in Python

Yes, it will result in sub-modules

If you hate addressing code in the sub-modules via the sub-module path you can import them in the __init__.py of the parent module

Personally I dislike languages which add another layer of (IMHO worthless) complexity by decoupling the owning module of the code from the file path, so you have now have to resolve that before you can understand it.

<comment><USER3> Well, that actually needs to be transparent to be useful for the way I want to use it. I can't even understand why would one need sub-modules so far. The actual reason is to have different members (i.e. every method) or sets of members of a same class to be implemented in separate files. I just hate to have long code files and to have code above and below a function declaration.

Partial classes in C# are an example of how can that be implemented the way I like it. The only problem with the C# way is it adds an additional indentation level. I would prefer the module (or even the class) to be declared in the beginning of the file without contributing to indentation.

</comment></comment></comment></comment><comment><USER5> Clojure is the most productive(and beautiful) language in existence(personal preference) as long as you don't have to leave its world.

I stop using it because the lack of Clojure libraries pushed me to use Java libraries, and that was a life-sucking experience. Java is fine as language but you cannot say the same about the APIs of many of its libraries. I also started sensing that new open source libraries are not being created in Java which worsens the story for Clojure.

<comment><USER6> The great thing about Clojure is that it's not tied to the JVM. JVM is just one of the hosts.

So I mostly do frontend development at the time and I know Clojure since before. Because of those two variables, I've chosen to use ClojureScript so now I 99% of my professional time write only ClojureScript, with the remaining time being 1% JS when needed. Otherwise the only time I see JS is when I have to understand how a library works.

So I agree with you on the Java side, I'm not a Java developer and I want to stay far away from it, but I love Clojure and I need to be close to it, any other language feels inefficient and slows me down. But there are other hosts you can use, if needed.

<comment><USER6> And since there is always someone who jumps in saying "Common Lisp is a true lisp while Clojure is not", read [https://en.wikipedia.org/wiki/No_true_Scotsman](https://en.wikipedia.org/wiki/No_true_Scotsman) so we can have a real discussion about the difference ;)

<comment><USER7> "No True Scotsman" is about moving the goalposts regarding to the quality or suitability of something. We wouldn't reasonably say that a Dane isn't a True Scotsman, right?

A piece of crap unsuitable for production use could be a Lisp. Lisp 1.5 is Lisp; I wouldn't use it today. Lisp or not is not about quality, but semantics. Clojure lacks or changes numerous semantics which define Lisp. That's not statement about quality, just otherness.

Clojure doesn't call itself a Lisp; though the main website claims it is a Lisp dialect. Dialects are defined by mutual intelligibility. An Osaka man speaks a dialect which is understood in Tokyo. The mutual intelligibility between Lisp dialects and Clojure does not extend very far beyond (+ 2 2).

</comment></comment></comment></comment><comment> john-shaffer > (first 1 2 3) evaluates to 1, (second 1 2 3) evaluates to 2, and (last 1 2 > 3) evaluates to – you guessed it – 3.

This is wrong, unfortunately. He probably meant (first '(1 2 3)), etc.

<comment><USER8> Since using lists are not so idiomatic, I suppose a better example would be (first [1 2 3])

</comment></comment><comment><USER9> Found this on the same blog --> [http://blog.cleancoder.com/uncle- bob/2019/08/22/WhyClojure.h...](http://blog.cleancoder.com/uncle- bob/2019/08/22/WhyClojure.html)

Thanks for this. :)

</comment><comment><USER10> I don't see anything profound here, except perhaps that the language will gladly accept the user's blatant type error and just explode at runtime. For the most part this article is fetishising over basic syntax.

Surely the compelling parts of Clojure go somewhat deeper than basic syntax. And if this is another tired discussion about legibility of syntax between languages, I have to wonder why people are still so fascinated by this?

Between the following two representations of the same function…

      (defn f [x] (+ (* 3 x) 1))

…and…

      f x = 3 * x + 1

…I see very little difference in legibility. Sure, one is visually noisier (and incidentally, the noisier, _less clean_ (!!!) notation is Robert C. Martin's favourite) but if you can afford to navel-gaze this much on syntax I'd question why you don't have anything more important to do. Of course I recognise that I must also not have much better to do since I read the article and I'm now commenting on it.

It's just _weird_ to me that one would fetishise syntax, and then describe a language sporting a less visually-noisy syntax as "The Dark Path".

Edit: Apparently I need to state for the record that I spent a few years writing Clojure professionally. I'm not unfamiliar — I just haven't drowned in kool-aid.

<comment><USER11> I've programmed Lisp code for several years and personally I do find Lisp code harder to read, especially when doing arithmetic.

The direct benefit of Lisp syntax is that everything is _consistent_. Arithmetic operators have the same syntax as regular functions. Because all Lisp code has a consistent structure, that makes it easy to do some really neat things. For example, it isn't hard to write a program that takes Lisp code as input and processes it in some way.

This is the reason why you see so many people write a toy Lisp interpreter. It's really easy to write code to evaluate Lisp code because all Lisp code has an identical structure.

As a Lisp programmer, this benefit emerges in the form of macros. Macros run at compile time, take some Lisp code as input, and spit out new Lisp code as output. The new lisp code is then substituted for the old one.You can think of macros as a very small user-defined compiler. These let you build all sorts of language constructs that you couldn't build in other programming languages. For example, you can add pattern matching to a Lisp with macros. The macro would take a list of patterns and corresponding expressions as input and spit out some code that checks for the patterns and runs the corresponding expressions if the pattern matches.

<comment> hope-striker > These let you build all sorts of language constructs that you couldn't build > in other programming languages.

Many languages (e.g. Rust[0]) let you write procedural macros, even if their grammar is much more complex than that of a Lisp.

Is there some technical advantage to Lisp macros over macro processors in other languages (ignoring string-based ones like the CPP), or do all the benefits lie in the massively improved ergonomics of writing macros?

(Note that Rust also has simpler hygienic macros, but they're not expressive enough for many things.)

[0]: [https://doc.rust-lang.org/reference/procedural- macros.html](https://doc.rust-lang.org/reference/procedural-macros.html)

<comment><USER12> You've pretty much covered it; lisps are better at macros than any language with complicated syntax.

Most of the flow control in a lisp (for, while, if, etc, etc) can be implemented with macros. It isn't often a program needs a new form of flow control but when you need it it is there as an option and a lisp will do it better than the competition. If Rust can do threading macros then it probably has enough of the power that it isn't missing out. Still going to be a bit cumbersome.

Lisps give you the option that flow control can be implemented in a library. None of the old-school popular languages manage that.

</comment></comment></comment></comment><comment><USER13> Uncle Bob discovers Lisp, 50 years after its creation.

Expect a follow up blog post telling us all software should be written in Lisp and he has a Lisp book coming out soon.

<comment><USER14> This guy has been writing about Clojure now and then for many years.

More generally.. if we start shaming people who discover Lisp after its creation (1958) it's put in a rather unfair advantage!

</comment></comment><comment><USER15> I'm certain most of us know who the author of this article, Robert "Uncle Bob" Martin, is, but for those that don't:

Robert Martin is one of the original signers of the Agile Manifesto, which is the outline upon which a great deal of modern software development is founded, and helped set the tone for the Software Craftsmanship movement. Martin has a large amount of talks (that are, admittedly, all quite similar to one another) and blog posts (on the site linked) where he discusses his views as to where the industry should go/should continue to go, with a heavy emphasis on professionalism in programmers and programming teams.

<comment><USER10> Right. He touts "professionalism" while also suggesting that one "needs big balls to write C++", because it is "a man's language".

</comment></comment><comment><USER16> Little a Clojure, as a treat

</comment><comment><USER17> "... as a treat!"

</comment><comment><USER18> There are a hardcore group of developers that love functional languages. Whenever I look it just looks pointlessly complicated.

Maybe its because I'm not smart enough? Given that 99% of software is not written in these languages perhaps you have to have a special gene to figure this stuff out. Or maybe its just people trying to be different or trying out things on the fringe.

I'm not sure what the answer is or if I should try harder.

<comment><USER19> I find it the opposite. Lisp is much easier to write than, say Go. I think the problem is if you're used to the complexity of writing a Spring Boot app (Java) this simplicity of writing in Clojure will confuse you: you think it can't be that simple when in fact it is.

I used to freak out when I'd find the library in Clojure I wanted to use but it had no documentation. Eventually I just started looking at the implementation and I'd see it's like the entire library is 35 lines of code! Or like 102 lines of code! You don't need documentation for something that small.

I've never seen this before in other languages. If you think it's too complicated, you might just be overthinking it.

<comment><USER20> Could you share the 35 line library? I'm curious. I recently asked the Common Lisp subreddit why so many of their libraries lack extensive documentation and most agreed it is a wart on the language.

<comment><USER19> The one that this first happened with is now much bigger and well documented, oh well.

(FWIW: it's shoreleave [https://github.com/shoreleave/shoreleave- remote](https://github.com/shoreleave/shoreleave-remote), it allows for exposing a server-side namespace as a client-side API in the browser).

</comment></comment></comment></comment><comment><USER21> I have nothing against Clojure, but I agree with Donald Knuth who said: "Programs are meant to be read by humans and only incidentally for computers to execute." [1].

I could be wrong, but I don't find Clojure to be "simple" for humans to read (or write). Here is an example from the blog post:

      So let's write a simple one. Let's write the factorial function.
      (defn fac [x] (if (= x 1) 1 (* x (fac (dec x)))))

Note the "simple one" here. I don't know for others, but this is not simple for me as a human to read, understand and reason about. For instance:

      if (= x 1)

As a human, I read this like "if equals x one", which does not translate to my natural language where I would say "if x equals one". So I need an additional mental effort to do the translation. This is not the case in other languages where "if x equals one" would be written like "if x = 1" or "if (x == 1)". If the gap between the natural language and programming language is big, it is difficult for a human to use that programming language. And for Clojure, this gap is big IMO.

(I (wanted) (to learn ((some)) Clojure in the past) but [quickly] ([(realized it was (not) for me)])) [2].

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

[2]: [https://twitter.com/b_e_n_a_s/status/1244417191556063234?s=2...](https://twitter.com/b_e_n_a_s/status/1244417191556063234?s=20)

<comment><USER22> Formatting helps for presentation, just as it does for human text.

      (defn fac [x]
        (if (= x 1)
          1
          (* x (fac (dec x)))))

> (I (wanted) (to learn ((some)) Clojure in the past) but [quickly] > ([(realized it was (not) for me)]))

This is missing semantics for morphology. Delimiters aren't strewn about randomly, they precisely delineate the AST.

<comment><USER21> Yes of course, that's incorrect and provocative in purpose. The point is not about the syntax, but about expressiveness: A programming language should make it easy for a _human_ to express (write) his intentions in code and for other humans to interpret (read) those intensions in a _natural_ way. In other words, the gap between the developer's natural language and his/her programming language should be minimal (and this is regardless of the developer's natural language, be it English or whatever).

<comment><USER23> _In other words, the gap between the developer 's natural language and his/her programming language should be minimal_

I'm not sure that follows from the original claim at all.

Mathematics has plenty of problems in when it comes to obscure terminology and regrettable notations, yet still vast numbers of people prefer the conciseness and precision of mathematics to using natural language when they want to discuss concepts in science, engineering, programming, etc.

At some point, if you're going to work in a technical field, you're going to need terminology and notation to match. Newbies to the field need to learn those before they can understand what is being said "naturally". The alternative is to attempt to dumb everything down to the point where newbies can understand it straight away but, assuming it is even possible, this risks losing a lot of effectiveness in communications between everyone who does have more experience.

<comment><USER21> Writing code is different from writing mathematical equations. Developers (humans) prefer meaningful variable names, method names, expressions, etc. Comparing this to maths where conciseness is key is not the best analogy IMO. And it is not about experience (btw, I have no problem being one of these newbies who "need to learn those before they can understand what is being said "naturally""), it is really about expressiveness to reduce the mental effort to match things (what I have in mind and what I see in code). That's why there are many attempts [1] to create programming languages that are as close as possible to people's natural languages.

[1]: [https://en.wikipedia.org/wiki/Non-English- based_programming_...](https://en.wikipedia.org/wiki/Non-English- based_programming_languages)

<comment><USER23> _Developers (humans) prefer meaningful variable names, method names, expressions, etc._

Well, isn't that part of the premise we're debating?

Mathematical papers and books tend to have the advantages of dealing with only a handful of concepts at any given time, and of presenting their mathematical content in relatively small doses, both of which allow concise notation to remain both unambiguous and accessible enough to be useful. Anything other than the smallest programs probably do not enjoy the same advantages, so it makes sense that programmers tend to use longer names for entities that are relevant over a larger area. However, this argument still allows for short names to be used in programs as long as the scope is also small, and it says nothing at all about the relevance of natural language for representing programming language constructs.

We have some experience with programming languages that do try to read very much as natural human language. COBOL is probably the most famous example, and in that language even basic mathematical concepts like comparisons can be written out in words. We don't write much COBOL today, and it's hard to believe that the verbosity isn't a contributing factor in that.

<comment><USER21> No, you are deviating from the main point: natural expressiveness. So let me back up: If you think "if (= x 1)" is natural to humans, then try to ask someone in the street "is equals this that?" and let me know about their reaction. My point is that the natural way of asking such questions is:

      * "Is this equals to that?" and not "is equals this that?"
      * "Is this bigger than that?" and not "is bigger this that?"

And this is regardless of the language (be it English or whatever, see [https://news.ycombinator.com/item?id=22811168](https://news.ycombinator.com/item?id=22811168)). I'm not going to debate this to death, so feel free to disagree. Again, I have nothing against Clojure, I'm just trying to argue in a constructive way.</comment></comment></comment></comment></comment></comment></comment>


Startups in Myanmar - <AUTHOR> http://www.economist.com/news/business/21647318-startup-culture-germinates-unlikely-place-land-temples-and-tech <comment><USER3> As someone who is in the mining (ore not data) industry, the changes I have seen in Myanmar in the past 2-3 years is remarkable.

I have been over with a variety of mining exploration companies, and with each trip there are major advances in overall 'economic' freedom.

The effect of 'western' mining companies is already funneling through (much stricter environmental and safety controls).

Look forward to watching it grow.

<comment><USER4> I'd be interested in hearing more about what you mean? Are you saying that there is simultaneously more economic freedom and more regulation? I'd believe it but I'm curious to see a more detailed picture of what that looks like.

<comment><USER5> There definitely are development in technology area. There are now more "start ups" than 3 years ago. But the thing is the infrastructure is pretty much broken still. The Internet is (still) slow and expensive. (A year ago, I spent the whole morning by trying to 'bundle install' and then the other half of day, the electricity is gone). So, basically, small companies are struggling to roll out their own products and from months to months, they have to make their cashflow by doing services/outsource. Also there are foreign tech companies (eg Rocket Internet) who are trying to clone their existing stuffs into the Myanmar and trying to make it work. I can say they are struggling either because our culture is different. What works in Singapore/Vietnam might not work in Myanmar.

Recently, a friend of mine company tried to get some seed funding from outside for his startup and he had to set up a lot of extra work such as opening the same name company in Singapore, get the money for the Singapore company and then bring it back with him to Myanmar. Because there are still lots of restrictions around there. Feel free to ask me anything and I could try my best to answer them.

Disclamer : I'm native Myanmar. Programmer working at a local small tech company.

</comment></comment></comment><comment><USER6> There are some really talented young people in Myanmar - would like to name Nex, Code2Lab, Total Gameplay Studio. Big open source movement too.

It's an interesting time and our company, Myanmar Plus, is building apps for Android and web - things like [http://myanmarestate.net](http://myanmarestate.net) which is launching soon. You can reach me at email@example.com - give us a shout if you're visiting or have questions!

</comment><comment><USER7> > Vagueness in the rules on foreign investment and intellectual-property > rights do not help with the difficult task of finding funding from abroad.

Incorporating religious extremism into your law doesn't help either - <USER2> picture of Buddha wearing headphones on Facebook gets you jail time. [http://www.radionz.co.nz/news/national/268881/new- zealander-...](http://www.radionz.co.nz/news/national/268881/new-zealander- jailed-for-insulting-buddhism)

<comment><USER8> > a picture of Buddha wearing headphones on Facebook gets you jail time.

In the West, wearing a shirt with a racy graphic design can cause a literal rocket scientist to be pilloried on social media to the point where he is literally crying on TV -- despite the fact that said shirt has nothing to do with his job. [1]

Cultural differences, that's how they work. What is perfectly normal to you can appear extremely strict, weird, or ridiculous to others.

[1] [http://www.telegraph.co.uk/news/science/space/11231320/Roset...](http://www.telegraph.co.uk/news/science/space/11231320/Rosetta- mission-scientist-Dr-Matt-Taylor-cries-during-apology-over-offensive- shirt.html)

<comment><USER9> 1) The rocket scientist case was a) entirely ridiculous in itself, and b) is a textbook example of the "tu quoque fallacy"[1]; the fact that some putatively similar thing happens in the west is irrelevant to the question of whether it is bad that it happens in Burma.

2) Do you realize that the postmodernist cultural relativism you are blithely spreading around the world was formulated by fascists to justify their wars of conquest and genocides? [2][3]

3) The mere fact that different cultures have differences in standards, and that what's normal in one place is weird in another, does not imply that one ought to be non-judgemental towards and non-critical of anything another culture does. This does not follow from the premise.

Relativism additionally requires one to adopt an attitude of invarying quietism towards all manner of atrocities, no matter how severe (presuming that hypocrisy is undesirable, which does not seem to actually be a problem for many postmodernists.) The cultural relativist, faced with the Holocaust or the genocide in Sudan, can only passively say, "Well, that's their way, we shouldn't impose our own standards on them."

This very cultural relativism argument is indeed routinely employed today by the most brutal dictatorships in the world[4] to justify all manner of atrocities, by brushing off any criticisms as mere "western imperialists trying to impose western standards upon us and our culture."

That's the company you choose for yourself when you advocate for cultural relativism. In the western world, it's typically adopted as some kind of enlightened and fair worldview by kindhearted intellectuals in a liberal arts college somewhere. Outside the western world, it's something very different: an ideological tool for dictators to sidestep criticism of atrocity.

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

[2] [https://en.wikipedia.org/wiki/Martin_Heidegger](https://en.wikipedia.org/wiki/Martin_Heidegger)

[3] "Everything I have said and done in these last years is relativism by intuition. If relativism signifies contempt for fixed categories and those who claim to be the bearers of objective immortal truth … then there is nothing more relativistic than Fascist attitudes and activity... From the fact that all ideologies are of equal value, that all ideologies are mere fictions, the modern relativist infers that everybody has the right to create for himself his own ideology and to attempt to enforce it with all the energy of which he is capable." \- Benito Mussolini, "Diuturna"

[4] President Bashir of Sudan, North Korea, the Burmese military junta itself, the PRC, and many others.

<comment><USER10> Your argumentation makes sense and I enjoyed reading it, unfortunately you just followed Godwin's law.

Your parent comment could have just wanted to point out, that the western world is not perfect and we should be (as always) careful when judging. He or she could have found a better example, though, directly comparing religious legislation to religious legislation.

Being reflective does not always equal cultural relativism.

<comment><USER11> Also, it is fallacious to suggest, that, because of the fact that it was initially formulated by fascists as a propagandistic weapon, postmodernist cultural relativism is false, or not a useful view of the world. If fact I think it is very useful to stop and consider that point of view, and be able to reflect on it, and reach conclusions about why it is or it is not a good cosmovision to have.

<comment><USER9> If you reread my argument, you will see that I never said the fact that fascists invented moral relativism makes it false. I rather argued that those who adopt this viewpoint are aligning themselves not only with fascists but with all manner of other tyrants and dictators who commit what most people regard as horrid atrocities, and that moreover moral relativists are _required_ (insofar as they wish to avoid hypocrisy) to morally and philosophically support these acts.

I believe that most western moral relativists do not realize this. I am pointing out that moral relativism is not an inherently leftist or "nice" viewpoint, contrary to common opinion among western intellectuals. I said nothing about whether it was true or false.</comment></comment></comment></comment></comment></comment>


Offensive "Hack Back" Actions are High-Risk - <AUTHOR> http://www.honeynet.org/node/1004

<comment><AUTHOR> "Any company that cannot discover an intrusion for a year sufficiently knows neither themselves, nor their enemy, and is not in a strong position to win a battle by going on the offensive against them."

Well that makes sense. If you've been pwned, it's likely that there are many aspects of the situation you don't understand, even after you realize the fact of your pwnage. Who can say that your "offensive" actions aren't exactly what your opponent desires, as he has led you to take part in his attacks on other victims? Do you consent that those victims "hack back" against your assets in response to your misguided actions?

It seems like we've heard about this sort of tactic for some time. It's like many other proposed IT "solutions" in that it's much easier to market than to provide.</comment>


HN will not be seen as mobile-friendly by Google Search - <AUTHOR> https://imgur.com/Tfix5T8

<comment><USER2> On my android tablet I find that "mobile" sites tend to suck and that the desktop sites work just fine, except sometimes they have popup ads that are hard to remove.

<comment><AUTHOR> Yea tablets always seem to get detected as "mobile" and so sites render a layout that's way too big for the screen.</comment></comment>


Announcing ESPNALPS, Open API to submit live sports information - <AUTHOR>

We have just launched ESPNALPS http://www.espnalps.com - an experimental open API to collect local sports data from College Lacrosse and Basketball Games. We have also announced a competition open to college students to see what kinds of apps they can write against the API. We welcome any kind of feedback you may have.
Currently the registration for competition is open to College students with .edu email addresses. Official announcement: http://frontrow.espn.go.com/2012/02/calling-all-software-developers-enter-the-espn-alps-competition/ <comment><USER2> This is a fantastic opportunity for anybody who follows sports and hopes to work at a start-up when they finish college. Start-ups are really hungry for people who master these kinds of skills right now.

</comment><comment><USER3> Note: there is a competition associated with the API - $10,000 in prizes are up for grabs. More details here: <http://www.espnalps.com/details>

</comment><comment><AUTHOR> Link: <https://www.espnalps.com></comment>


World's richest doctor gave away millions, then steered the cash to his company - <AUTHOR> https://www.statnews.com/2017/03/06/soon-shiong-philanthropy-business/ <comment><USER2> I once was on the board of a charity; on my watch we established a policy giving future boards the right to decline contributions for any reason or none, and the duty to decline them if they had too many strings attached.

It was a good move; a few years later somebody tried to force human resources policy with a gift, and the board was able to say "no" and point to us, their predecessors.

<comment><USER3> Wouldn't they have been able to say no anyways?

<comment><USER4> Yes but they wouldn't have any political cover other than " _we_ don't want to do that." This allowed them to point backwards in time to say " _that prior board_ won't allow us to accept gifts with ________ condition(s)."

Parsing hairs of course, and it's likely 90% of the board or more was the same, but it's enough.

<comment><USER5> _> Parsing hairs of course_

It's always much easier to say:

"we _already_ have a _policy precedent_ that doesn't allow this."

than to say

"we can do anything we want, and we choose not to do this."

And there's a substantive difference beyond just perception. With the former, you're ruling in favor of a principled stand regardless of the person/policy behind the particular request at hand. With the latter, you're ruling against a particular person/request.

<comment><USER6> Be careful, because a written policy can cut both ways. It can be used to attack the slightest inconsistency in your decisions.

Real life example: A young lady suffered a slip and fall on the freshly waxed floor of a shop. The shop had a written policy against waxing the floors during business hours, but the janitor had done so anyway. The shop's written policy was used as evidence of negligence in court. They would have had a better outcome if they had no policy at all.

Once you have the policy, even though _you wrote it_ , you can't declare that you're ignoring the policy or that you're changing it retroactively. Well, you could, but you'd look foolish and lose all credibility.

<comment><USER7> _They would have had a better outcome if they had no policy at all._

"Better outcome" meaning they would have been able to shirk responsibility and the woman would have been sent packing with nothing? I weep for the future.

Think about what you're arguing for.

<comment><USER8> I believe the parent is arguing for act-consequentialism, rather than rule- consequentialism. A similar argument is against the usefulness of case-law in the court system—it often prevents a judge from making the best possible decision for the particulars of the case.

<comment><USER7> From the Supreme Court confirmation hearings I've paid attention to, it seems that there are reasonable questions on both sides of stare decisis, but I don't think moving to a non-deterministic legal system would be the answer.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Back in early 2016, I was in awe of many of the "Unicorn" startups that were defying all odds to raise money and huge valuations, and earning the praise of the press world-wide. Zenefits, Theranos, Nant Health, Uber... clearly the founders of these companies were made of some entirely different material than I was. Their success was so awe inspiring.

Now, it seems as though ~100% of these sorts of companies are up to some shenanigans. It makes me seriously question the validity of any tech company that is lauded by the press.

<comment><USER10> [http://paulgraham.com/founders.html](http://paulgraham.com/founders.html)

"What We Look for in Founders

4\. Naughtiness

Though the most successful founders are usually good people, they tend to have a piratical gleam in their eye. They're not Goody Two-Shoes type good. Morally, they care about getting the big questions right, but not about observing proprieties. That's why I'd use the word naughty rather than evil. They delight in breaking rules, but not rules that matter."

<comment><USER9> I would argue that:

1) Zenefits having software tools to specifically skirt state laws about employee certification requirements

2) Theranos lying about clinical results

3) Nant misrepresenting order data to their shareholders

4) Uber having a set of formalized HR processes that facilitate the sexual harassment of female employees

all go beyond "naughty". Plus, I don't think that PG would be excited about the financial impacts that each of those behaviors have had on the respective companies' share prices if he were a shareholder in those companies.

<comment><USER11> I think the issue is "they delight in breaking rules". Why delight in it? There's a big difference between "I'm willing to break minor rules when I have to" and "I enjoy being naughty for its own sake". I suspect its a lot easier to break big rules when you're having fun breaking small ones.

<comment><USER12> > I suspect its a lot easier to break big rules when you're having fun > breaking small ones.

That sounds plausible, but I suspect the correlation is very weak. Most people follow rules in a bizarrely idiosyncratic and context-sensitive fashion. For example, taking the escalator when going to the gym to use the stair-master.

<comment><USER13> Most people don't bat an eye about crossing in the middle of a small street. It's technically against the law, but hey.

<comment><USER14> But is it fun?

What rules are fun to break?

<comment><USER12> You've never tried a petty rebellion as a kid? It's fun. Even as an adult, you can get a thrill by calling in sick and going out.

There's a reason we love to watch crime dramas.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> I am not defending this doctor. its down right despicable. Unfortunately, the sponsor of STAT news is no better (not questioning their editorial bias per se, but i think its worth point out)

Lest not forget, that STAT news is sponsored in part by Janssen, which gave us this lovely piece in highline last year:

[http://highline.huffingtonpost.com/miracleindustry/americas-...](http://highline.huffingtonpost.com/miracleindustry/americas- most-admired-lawbreaker/)

Janssen's parent company, Johnson and Johnson, was sued on these accounts and paid out an excess combined over 3 billion to settle lawsuits related to the marketing, selling, distribution, and deception employed to sell risperdal to as many people as possible.

[http://articles.latimes.com/2012/apr/11/nation/la-na-nn- risp...](http://articles.latimes.com/2012/apr/11/nation/la-na-nn-risperdal- arkansas-20120411)

[http://www.seattletimes.com/seattle-news/ny-ag-janssen- pays-...](http://www.seattletimes.com/seattle-news/ny-ag-janssen- pays-181m-over-drug-marketing/)

<comment><USER16> Most news venues accept advertisements, even from somewhat controversial sources. This does not mean that sponsors have any editorial influence, which would be a serious allegation.

Unless you are accusing STAT of violating journalistic ethics, these sort of comments are off-topic and irrelevant (and hence downvoted).

<comment><USER15> I wasn't, which I stated.

Its not however, off topic or baseless. I think it is a great example of the medical industry (with pharmaceutical companies being a subset of that as well) being self serving even if it is dangerous to others (which this donation scheme isn't per say, however it is very suspicious and at the very least I would say not the way we want to business in a polite society)

<comment><USER17> It's a strange road to go down, isn't it, to say I'm not alleging anything, but here's an allegation. Saying you think it's relevant _is_ the allegation, which you both make and deny making.

<comment><USER15> Here's my mistake, I really am not questioning their editorial. I was trying to point out that the sites sponsors were Janssen pharma, with the focus I was trying to swing in as "Lest we forget, STAT news sponsor ___Janssen Phamasutical_ __...

I can see how it can be misinterpreted

I was red the emphasis to be back on the sponsor not on stat news

</comment></comment></comment></comment></comment><comment><USER18> _The University of Utah deal — laid out in contracts obtained by STAT through a public records request ..._

 _Four tax experts who reviewed the contracts at STAT's request all agreed that the Utah deal was suspicious. Two said it appeared to violate federal tax rules governing certain charitable donations, amounting to indirect self- dealing by Soon-Shiong and his foundations._

This story highlights the imperative need for public-benefit institutions (especially those that use taxpayer dollars) to have their tax records be public. The clampdown on FOIA requests ([https://news.ycombinator.com/item?id=13586952](https://news.ycombinator.com/item?id=13586952)) and the refusal of a certain whitehouse-dweller to make his own dealings public make me think this scheme might be more pervasive that just this instance. Yeah, it's a high-profile doctor who got busted; however, the people who craft these kinds of schemes tend to replicate their successes across many high-profile clients.

<comment><USER19> Yes, this exactly.

</comment></comment><comment><USER20> It's unclear to me what was gained by this?

1- He got a tax deduction: ok, but it's not like that money came back to him tax free somehow.

2- His company got inflated numbers: ok, but not revenue. They only inflated order numbers.

3- Presumably a very small percentage of his donation came back to him in the form of dividends: ok, doesn't seem worth it to me.

4- His reputation may have been enhance: but if the deal was structured as a gift of $10mil worth of free testing wouldn't it having been just as appreciated?

I fail to see how he made out like a villain in this. In fact, we used to do this type of thing when I worked at Ben & Jerry's back in the day. Just structured more as donated product, not donated money that must be used to buy product.

<comment><USER21> By inflating his numbers he was able to get funding from investors at better terms. So basically he scammed his investors.

The difference between direct donation of services vs money to buy those services is that the direct donation would have actually lowered his order numbers and profitability, while the monetary donation raises those same numbers.

Also, by donating the money he gets to invest in his company tax free because the donation is a write off, gets filtered into the company which raises it's value, but he doesn't have to declare any capital gain, which he would have to do if he just put the money into the company (not to mention the tax on the money in the first place).

It's all an accounting trick, but it's all about the optics.

<comment><USER22> Is there any proof for this claim: "By inflating his numbers he was able to get funding from investors at better terms"

The article does state the inflated numbers were reported to investors, but what makes you think this was material in any way?

<comment><USER23> from the article

       the deal made it possible for his company to inflate, by more than 50
       percent, the number of test orders it reported to investors late last year
       while updating them on interest in a flagship product, a diagnostic tool
       known as GPS Cancer.

Have individual investors been questioned? No. But that's a significant increase in total orders.

Also, if this was so above-board, want to take bets on whether this was disclosed to investors as money coming from related entities?

</comment></comment></comment></comment><comment><USER24> While just knowing about jerk moves like this keeps me awake at night with frustration, he will go on to live a fun and comfortable life most of us only dream about. All the Internet vitriol in cyberspace doesn't equal a slap on the wrist, unless he gets the attention of 4chan I guess.

<comment><USER25> Makes me realize that 4chan has been eerily silent over the last years. Wouldn't mind if they rediscovered their social responsibility, for teh lulz.

</comment></comment><comment><USER26> GPS Cancer has to be one of the most frustrating combining of two words I've heard trotted out in a while.

</comment><comment><USER27> To save you the click and since it's at the bottom:

>The contract with the University of Utah earmarked $2 million from Soon- Shiong's donation for scientific and administrative work. It says the remaining $10 million of the gift was required to be spent on "Omics Analysis."

</comment><comment><USER28> The n-gate summary of this one is richer than Soon-Shiong:

" _A reporter catches some rich guy laundering money through a university, but not in time to stop him, or have any other effect. Hackernews spends some time being nonprofit fiduciary experts, until someone reminds us that Beatus Graham publicly espoused the holy virtue of Naughtiness, at which point the wagons are circled and the Doublethink Cavalry defends the pioneers. Meanwhile, the money launderer is being considered for Federal office._ "

[http://n-gate.com/](http://n-gate.com/)

<comment><USER29> Hadn't heard of n-gate, pretty funny :)

</comment></comment><comment><USER30> You're unlikely to be worth $9 billion through charity and benevolence.

<comment><USER31> This is true, but I feel like you're trying to draw an inference here that doesn't really work. You're unlikely to be worth $9 billion through a love of hamburgers, but that doesn't mean somebody worth $9 billion is unlikely to enjoy hamburgers either.

<comment><USER30> I was cynically implying lavishly successful business people are often shrewd, calculating, and clever insomuch as any generous gift is likely also a form of investment

</comment></comment></comment><comment><USER21> The move was ethically challenged and morally bankrupt, but you have to admit it was a pretty clever hack.

<comment><USER32> What could they have done differently to make the donation unquestionably legal and morally sound (while still maximizing their personal benefit)? Does the company need to donate the services directly?

<comment><USER22> I think this is the most interesting question in the thread.

When viewed as a donation of services instead of cash, he's simply giving his product away for free in order to collect data to improve his product. In its own right, I'd argue that certainly should be considered charity and deserving of praise.

The questionable part about this transaction seems to pertain to the tax deductions taken. However, it strikes me as unlikely that the loss on the donation withstanding any reasonable tax deduction would be covered by any personal payback on the donation.

<comment><USER23> It's less tax deductions (though those should be questioned!) and more using this to deceive investors into his company.

</comment></comment></comment></comment><comment><USER33> So they all benefited. Win-Win.

Even the "journalist" writing about it benefited for they had something to write up.

Charitable donations are first and foremost tax planning schemes. He used it as intended and all parties agreed to it. (And the government)

Is the only issue here that the author is jealous of their business acumen?

</comment><comment><USER34> Reminds me of Microsoft, USAID and other similar companies/organizations.

</comment><comment><USER35> The winner in the cancer diagnostic space is going to be who can sequence the most cancers vs germlines. At least where cell free DNA is concerned.

<comment><USER36> We already know the major drivers in most tumor types. These are the early mutations that you are going to look for in cell free DNA. Additional cancer- normal pairs are not going to elucidate many new driver mutations.

Only careful prospective trials will identify sensitive and specific diagnostics. Those will be the winners (and they will probably be academics).

</comment></comment><comment><USER37> 501(c)3 organizations exist for two reasons:

1\. Funnel money to cronies or to support your useless relatives by buying them directorships.

2\. Destroy social movements by tangling up the leaders in grant-writing and administrivia.

[https://www.amazon.com/Revolution-Will-Not-Funded-Non- Profit...](https://www.amazon.com/Revolution-Will-Not-Funded-Non- Profit/dp/0822369001)

<comment><USER38> So which category does the Bill and Melinda Gates Foundation fall under?

<comment><USER39> Or the Zuckerbergs?

<comment><USER40> It's not _yet_ clear if the Zuckerberg foundation will accomplish meaningful humanitarian goals, or serve as an ingenious device to funnel wealth to his relatives.

Melinda and Bill have done pretty well on the humanitarian bit.

<comment><USER38> To date the Zuckerberg foundation has given $75 million to SF General Hospital as well as committed to giving $3 billion to establish the Biohub in San Francisco. They've committed to giving 99% of their shares to the Chan- Zuckerberg Initiative which is currently valued at something like $50 billion. Paying the smartest doctors and scientists in the world to cure diseases is a pretty good way to have a humanitarian impact.

<comment><USER40> As far as I can tell, Biohub is a medical R&D company. It will keep control over all IP developed by it, and sell licenses (As opposed to the Gates foundation, which makes its work freely available.)

By the same logic, Pfizer is a humanitarian charity - it too employs the world's smartest doctors to try to cure diseases.

<comment><USER38> Nope -- The Chan Zuckerberg Initiative is a for-profit company which allows them to lobby, etc.

The Chan Zuckerberg Biohub is a non-profit research entity that has received funding from the CZI, and the IP / license fees will be shared between CZ Biohub and the research institutions that they're partnering with (UCSF, Stanford, and UC Berkeley). Researchers will also have the ability to enter their IP into the public domain (with Biohub approval).

It'd be more similar to Pfizer if Pfizer fired all their sales and marketing staff as well as funneled all of their profits into additional research instead of paying billions of dollars to shareholders every year.

The CZ Biohub is basically a West Coast Broad Institute.</comment></comment></comment></comment></comment></comment></comment>


Unlock Almost Any Car and Garage Door with This $30 Device - <AUTHOR> http://motherboard.vice.com/read/unlock-almost-any-car-and-garage-door-with-this-30-device

<comment><USER2> My wife accidentally pushed the lock button on the garage door this last weekend (and we don't have a side door).

[https://www.youtube.com/watch?v=CMz1tXBVT1s](https://www.youtube.com/watch?v=CMz1tXBVT1s)

Watched this video.

Took me a half hour to get in, including the drive to Home Depot to get some heavy gauge wire for $10 for the roll and a constant, push the wire / hook into the garage, run around to the side of the garage, look through the window, see where the hook was in relationship to the release, adjust the hook and repeat.

Fun times!</comment>


Electrical Grid Demystified: How Energy Gets Where Its Needed - <AUTHOR> http://hackaday.com/2017/02/14/the-electrical-grid-demystified-part-ii/ <comment><USER2> Related, on NYC's grid:

[https://www.nytimes.com/interactive/2017/02/10/nyregion/how-...](https://www.nytimes.com/interactive/2017/02/10/nyregion/how- new-york-city-gets-its-electricity-power-grid.html)</comment>


Finfisher Spyware Let Bahrain Government Hack Political Activist - <AUTHOR> http://www.theverge.com/2015/1/21/7861645/finfisher-spyware-let-bahrain-government-hack-political-activist/?

<comment><USER2> One day, these people will be held accountable for what they sell. "We didn't know what they would so with it" is not good enough.

<comment><USER3> Worthwhile exercise: write a model statute that would stop the practice, then work through it's implications.

(Not for nothing, but the sentiment you're expressing here is how I got my start in security; I continue to agree wholeheartedly with it).

<comment><USER4> Remote exploitation of computers by law enforcement is not even very well defined in law or policy yet. Even in Western countries.

What type of statute do you mean? Guidelines for legal warrant based surveillance or something to counter foreign authoritarian countries from using them? Export controls on exploits/intrusion software will not effectively stop that IMO - but this is the approach Europe is taking at the moment.

<comment><USER3> If your response is "it's probably not possible to derive a workable statute", that is in itself an interesting result.

<comment><USER4> The only practical response I can think of is increasing the bar for it to be effective. For ex: investing in hardening, detection, and attribution. And in the near term it doesn't seem governments are well incentivized to help in this area.</comment></comment></comment></comment></comment>


Ask HN: Who is coming to the Mobile World Congress in Barcelona next week? - <AUTHOR>

The congress and the public events & parties are usually quite crowded and therefore makes it hard to filter the signal from the noise. So I was wondering if some HN/HE fellows are going to show and and would like to meet?<p>Depending how busy everyone is we could organize a small meetup. <comment><USER2> I'm going! :)</comment>


Some nice and accurate CMake tips - <AUTHOR> http://bastian.rieck.me/blog/posts/2018/cmake_tips/ <comment><USER2> I found CMake scripts really hard to grok but I think that was because I was trying to learn by reading ones other people had made.

I found it helpful to build a simple app composed of a few C++ files, headers and library dependencies and then write the bare minimum CMake script to build it. After that, I just keep iterating, adding CMake features, turning on or off C++ features, making it work on other platforms, compilers, bit-widths etc.

Now, I can't imagine starting a C++ project without using it.

</comment><comment><USER3> > INCLUDE_DIRECTORIES( ${FOO_INCLUDE_DIRS} )

This is the 'old' way of doing CMake -- the 'modern' transitive variants like target_include_directories and target_link_libraries have many advantages relative to the older usage.

<comment><AUTHOR> You are right; I only used this to illustrate the module, though. Will change it at once, thanks!

</comment></comment><comment><USER4> Little known cmake feature: instead of running "make" after running cmake, do a 'cmake --build .':

$ mkdir build

$ cd build

$ cmake ../

$ cmake --build .

This has the advantage that it works for every generator on every platform, since cmake knows how to invoke the right command line build tool for the generator (make, ninja, msbuild, xcodebuild etc).

</comment><comment><USER5> "Instead of fiddling around with autotools madness..." \--- in my years of packaging software I have found autotools to be the least maddening of all build tools. Autotools is weird for developers, but it's remarkably consistent and easy to use for users (such as packagers).

</comment><comment><USER6> Note that the variables in the "Detecting an operating system" section are for detecting the _target_ operating system, not the host (what CMake is running on). If you use a toolchain file to cross-compile from Linux to Windows, for example, WIN32 will be defined instead of UNIX.

</comment><comment><USER7> You don't have to write cmake commands in UPPERCASE ANY MORE.

<comment><AUTHOR> I know and I never claimed that you would have to. It is just my personal preference. Is there an equivalent of PEP-8 for CMake?

</comment></comment><comment><USER8> Wouldn't it be preferable to set the C++ standard with:

        set_property(TARGET tgt PROPERTY CXX_STANDARD 11)

That way if you have multiple targets you're not setting it everywhere?

<comment><USER6> The target property overrides the global setting, so you can set CMAKE_CXX_STANDARD as the default and then set the target property if you really need a different standard for some reason. And if you have a whole sub- project that needs a specific version, you can set CMAKE_CXX_STANDARD before calling add_subdirectory to have it apply to only the targets in that directory.</comment></comment>


How to spot data visualisation lies - <AUTHOR> https://flowingdata.com/2017/02/09/how-to-spot-visualization-lies/ <comment><USER2> Thanks for the link. Good advice for anyone asked to look at some statistics.</comment>


Access Control in Swift - <AUTHOR> https://developer.apple.com/swift/blog/?id=5 <comment><USER2> There's also a blog post preceding this one that talks about call-by-name- esque semantics using "@auto_closure"; it's definitely worth a look.

</comment><comment><USER3> It's an interesting choice, but I think I'd have rather had a sensible default for each type category than one (internal) for everything. For instances: public classes, public enums, private or internal ivars, public methods, etc. Just to cut down on the boilerplate.

</comment><comment><USER4> I think its pretty unfortunate Apple chose the name used by OpenStack's Object Storage (Swift)...

<comment><USER5> It's also the same name as one of their own CPU cores (the A6 CPU core was called Swift). And another programming language. And a spacecraft. And a bird.

</comment></comment><comment><USER6> Note that as seems to be in vogue these days (Go, Rust), access to a class's methods and fields is never directly tied to code being "inside" the class; even `private` entities are accessible from anywhere in the same source file. I guess this is a good thing, as it avoids awkwardness with anything implemented as a function rather than a method, and works as a substitute for most cases where "friend" would be acceptable coding style in C++.

<comment><USER7> You can say it's "in vogue" these days, but C had private, public, and internal visibility (private = declared in .c file, public = declared in public .h file, internal = declared in private .h file). It's not just that you can technically accomplish this in C, but people actually use this all the time. Look at almost any library and you'll find this. Other languages have had module and library scopes for accessibility for decades as well. It's really an aberration that some languages make it so that data structures are the scope for symbol accessibility. C++'s accessibility rules are just bizarre and awkward for polyglots.

<comment><USER8> I wrote about how it is like C [0] the other day. I should update the post with links to the Apple blog and some of things said on the forum. Maybe tonight.

[0] [http://blog.human-friendly.com/swift-access-controls-are- lik...](http://blog.human-friendly.com/swift-access-controls-are-like-cs-and- that-isnt-necessarily-a-bad-thing)

</comment></comment></comment><comment><USER9> It seems that they have chosen a default (internal, though I don't know how to interpret how "most of the time" works) which is similar to the default modifier in Java. It seems, though, that java's default modifier was maybe ill-chosen, as private and public modifiers seem far more prevalent than no modifier (which means that the default modifier is used) in java code.

<comment><USER10> It's like "protected" access, in Java's terms. Subclasses can't access the default members in Java. That is why it is so rarely used. It was oddly restrictive, and didn't seem like it made much sense in most cases. I don't find this as a bad decision, in Swift. Since you don't normally want to expose the internals of your classes, this was a good choice.

[http://docs.oracle.com/javase/tutorial/java/javaOO/accesscon...](http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)

<comment><USER11> I think you might have gotten it wrong?

I think it (Swift's internal/default) is more like "package-private" in Java.

It looks almost exactly like C#'s internal:

[http://msdn.microsoft.com/en- us/library/ms173121.aspx](http://msdn.microsoft.com/en- us/library/ms173121.aspx)

</comment></comment></comment><comment><USER12> This language feels very unfinished... I've seen 0.8 languages being far more polished. Maybe I'm just biased? Swift looks good though. But it's only as good as the Cocoa framework bindings really.

<comment><USER13> Version numbers and alpha/beta/delta labels vary and are subjective in practice. I've seen plenty of examples and counter-examples of version numbers and beta labels to not put much merit toward such labels.

Yes, it is unfinished. I'd rather have Apple do what it's doing -- i.e., releasing Swift as a beta and changing things with feedback -- than do the opposite, which would be keeping it closed until it was super polished as they felt it internally.

I hate seeing this "damned if you do, damned if you don't" scenario all the time.

(1) Pre-release for feedback, get complained at for it not being finished.

(2) Polish and release later on, get complained at for not opening it up earlier for public feedback and testing.

Apple has clearly stated that it's pre-release, that it's not set in stone yet, and that they're open to feedback (which they have been).

<comment><USER14> There's a big difference between someone's pet project language, or even an industry leader's new language in the ether, vs. the next crowned prince of an existing ecosystem.

Despite being backed by Google, regardless of how finished or unfinished Go was upon release, there was no _impending pressure_ that you would someday more or less be forced to rewrite all your existing code in it. Thus the early adopter pros and cons were pretty clear.

This is not the case with Swift. At least if you take Apple at face value, Swift _is_ the future of the ecosystem, which creates kind of a confusing landscape. Whether or not you should be writing your new app in Swift is a _hard question_. Whether you should just stand in the sidelines and not bother until Swift is more settled is a _hard question_. Swift is simultaneously in early adopter phase and industry requirement. As such, it is more than a little strange (arguably bordering on irresponsible) to make such a huge announcement when most of your own framework teams had never even seen or tried the language. I don't think there would have been any harm in getting _internal feedback_ from your primary consumers before drawing a line in the sand to the general public.

<comment><USER15>
      Despite being backed by Google, regardless of how
      finished or unfinished Go was upon release, there
      was no impending pressure that you would someday
      more or less be forced to rewrite all your existing
      code in it. Thus the early adopter pros and cons
      were pretty clear. This is not the case with Swift.

The way I look at this issue, is that for now Swift should only be used for pet projects and the like. Simple projects that help the developer gain experience with the language.

</comment></comment></comment></comment><comment><USER16> Anybody else missing "protected" access? Looking at the semantics of "private" I doubt it's coming...

<comment><USER17> The default "internal" access mode is similar to "protected". It's less granular, but that's to be expected since Swift does not (yet?) allow partitioning of a single app or library into different namespaces.

<comment><USER18> internel looks more like the default package scope in Java

<comment><USER17> Ah, shoot, you're right. That's what I was thinking about. It's been a long while since I actively used Java.

</comment></comment></comment></comment><comment><USER19> Finally! If they implement multiple inheritance I think I'll have a nerdgasm!

<comment><USER20> >If they implement multiple inheritance I think I'll have a nerdgasm!

Honest question: Why would you ever want to use multiple inheritance? It seems like an awful design pattern.

I mean, in C++, you basically just end up with a more confusing equivalent to Java interfaces.

<comment><USER16> Here's the canonical example I used to quote for multiple inheritance: "Implementing the design pattern observer".

You basically want to add public methods addEventListener(), removeEventListener() and a protected fireEvent() method. In Java you have no problem inheriting the interface for these methods. However you want to manually re-implement the damn implementation in each class that vends interface. I can't remember how many times I wrote these...

In C++ with multiple inheritance you can inherit both the interface and implementation, and you're done. It is one step further than Java interfaces.

These days, I don't use that so much and I would not miss multiple inheritance. I prefer to implement the design pattern observer through signals (boost::signal in C++, custom classes in JavaScript/TypeScript). C# delegates provide a good solution for this problem too.

I have not touched Java since 1.4, so maybe there is a more elegant way to solve this now...

<comment><USER21> _You basically want to add public methods addEventListener(), removeEventListener() and a protected fireEvent() method. In Java you have no problem inheriting the interface for these methods. However you want to manually re-implement the damn implementation in each class that vends interface. I can 't remember how many times I wrote these..._

Why? Just use composition and delegate addEventListener() and removeEventListener() to the member implementing the logic?

<comment><USER22> That's a good idea. And as that's a common pattern, you could allow the programmer to specify that the compiler should automatically implement this delegation. You could call this feature something like, I don't know, "multiple inheritance".

<comment><USER21> Then you don't understand composition. I can pass the actual implementation in the constructor or via dependency injection. With multiple inheritance, your class is restricted to one implementation. Moreover, it couples the class with the internals of observables, rather than using simple interfaces, which composition provides.</comment></comment></comment></comment></comment></comment>


Efene 0.4 - a language for the erlang VM - released - <AUTHOR> http://efene.tumblr.com/post/511454668/efene-0-4-a-language-for-the-erlang-vm-released

<comment><USER2> This is great - I would love to see Efene and Reia (to some extent, same language goals with ruby-esque syntax) take off, but the Erlang community is so small it's hard to see a critical mass for either developing. some reasons:

1\. Erlang syntax really isn't that hard. As soon as you do a few real-world problems in it, you stop worrying about syntax and just focus on the solution.

2\. Efene in particular doesn't make Erlang more 'scripty'.

3\. Most people still need to learn Erlang fundamentals and they're going to have to do it in Erlang as that's all the documentation is written in. Until people start writing tutorials _in Efene_ that teach the fundamentals of the Erlang _Platform_ , thereby allowing a newbie to go from no knowledge of Erlang/OTP to being productive, they'll detour through "period/comma/semicolon alley" and probably won't come back.

Don't see this as negativity, i love what Mariano and Tony are doing with both languages...

<comment><AUTHOR> I agree with some things, I'm just trying to make more people come to the erlang platform :)

if this ends up with people starting with efene and ending coding erlang, then great, my job was done.

I know people that wont try python because it doesn't have curly brackets, if you give them a way to use curly brackets even if they end up coding python, then you reacehd your goal, the fundamentals aren't in the syntax but a lot of people give a huge importance to the syntax as the first thing to choose a language.

</comment></comment><comment><USER3> Looks like Efene is written mostly in Efene. Wonderful stuff:

[http://github.com/marianoguerra/efene/blob/master/src/compil...](http://github.com/marianoguerra/efene/blob/master/src/compiler/efene.fn)

marianoguerra: You should consider attending the Emerging Languages Conference this summer.

<http://emerginglangs.com/>

<comment><AUTHOR> yep, efene is written in efene since 0.3, the only non efene code is yecc (.yrl) and leex (.xrl).

but the code is not really representative of efene since it's almost all tree transversing and transformation (lot of pattern matching).

about emerginglangs, right now I'm in Argentina so a little far for me :D

</comment></comment><comment><USER4> I like this. Looks and feels like Ruby, but it receiver patterns, instead of method_missing wonkiness. The arrow expression is cool as well.

<http://wiki.github.com/marianoguerra/efene/languagereference></comment>


PDFs on iBooks: the Missing Piece - <AUTHOR> http://drewb.org/post/673915910/pdfs-on-ibooks-the-missing-piece <comment><USER2> It better be a full PDF reader. The various apps have set the bar really high</comment>


Ask YC: Hiring without pay - <AUTHOR>

Lets say your startup needs talent to work part-time (maybe even just 10 hours a week) in exchange for shares. How do you find people to accept that? Everyone seems to just want money instead or in addition to shares, which is understandable.<p>Also, assume that no one else on the team gets paid as it's all bootstrapped. <comment><USER2> People who work without pay for equity at the beginning of the company are founders. See: every other post on YC about "how to recruit cofounders".

The risks involved in seed-stage, pre-revenue private company shares are spectacular. Management can and usually will drastically reduce the value of early shares throughout the life of the company. That risk is over and above the fact that your company will, like all startups, likely fail.

You didn't say this, but let's assume you're talking about developers: they bill $100/hr. You're trying to sell them shares for "maybe as little as" $1000 a week. The answer to that problem is: "give them a _lot_ of shares".

The easier answer, which will work better than equity, is to open source.

<comment><USER3> "The easier answer, which will work better than equity, is to open source."

Explain, please.

<comment><USER4> The argument is made in "The Cathedral and the Bazaar". Basically, the open source development method allows you to use the labor of many other developers, as long as they continue to find the software useful. There may be a version online, ESR is pretty free with his work.

</comment></comment></comment><comment><USER5> You need to have something really compelling - a product that really excites people and/or a high liklihood of success in the near future.

I know someone who is about to start some sw development work for a local startup for equity. The company is getting ready to sell their first product, and he told me that his plan is to try working for them for eight weeks and see if they can actually sell their product. If not, he's planning to quit. He's been totally up-front about this with the founders and they're ok with that. So a creative strategy like that might work.

</comment><comment><USER6> Are you working on a really interesting problem? Either that, or you better have traction by the truckload.

</comment><comment><USER7> If what you working is interesting, if you are giving good and fair amount of equity (i.e. as a starting founder).

If you looking for an "employee", without willing to pay, then good luck finding a sucker.

<comment><USER8> No matter what you don't want to hire someone who would take a bad deal. So you should make sure you aren't offering one. So, suckers are ruled out.

</comment></comment><comment><USER9> I'm late to this conversation but thought I'd weigh in anyway because I found myself in a similar predicament recently. I was able to recruit a talented developer-partner on the grounds that he'd receive 40% of the sale price of the application. Maybe my experience can help you.

When it comes to recruiting, I think the answer lies in speaking candidates' language (if it's a business guy, remind him that startup experience looks great on a resume; for developers, make sure they know you appreciate the importance of their role to the success of your project). I think it's most important for the latter that they believe they'll do important work and feel appreciated... it's regretable so many of them have had bad experiences with crappy employers, but you can use that history to your advantage by setting yourself apart from it.

The rest is details: Write up a job description using your best Ogilvyian copy (reference copyblogger.com). Headlines matter.

I also suggest you use a triangulation strategy when you talk about compensation. I approached it by offering candidates their option of 1) $2500, 2) $1500 + 8% equity, or 3) 40% equity. On its own the 40% arrangement wouldn't have stirred much interest, but set against the backdrop of the other two options it looked like a great opportunity. I designed it that way deliberately with favorable results.

Hope this helps.

</comment><comment><USER10> Yeah, this doesn't work-- more trouble than it's worth. Co-founders are better. Or get a loan. Or funding.

</comment><comment><USER11> They basically have to be close friends, or unusually naive.

<comment><USER12> Yeah, finding those naive people can be tough. Here's one, but it might be hard to get him to do it again:

[http://paulbuchheit.blogspot.com/2007/12/is-there-more-to- li...](http://paulbuchheit.blogspot.com/2007/12/is-there-more-to-life-than- money.html)

</comment></comment><comment><USER13> A prototype works wonders. We've actually had a couple friends that were interested in getting in on things after they saw in non-vapory-ways where we were going. The way that I got my cofounder on board was to draft a presentation for potential investors and to present it to him. Two days later he was in.

</comment><comment><USER14> Well it's been said here a few times but if I try to look at your request from the perspective of a developer you're trying to hire, I'd probably expect alot more equity than you're willing to give.

For example, consider you work 40 hrs a week and you want me to work 10 hours a week, for simplicity sake. Since I'm working 25% as much as you I'd expect 25% the equity that you have. So if its you and a partner with 50% stakes working 40 hrs each ontop of my 10 hrs then I'd expect 9% of the company because that's how much of the effort I'm contributing.

</comment><comment><USER15> Interesting idea, interesting people with enthusiasm. The challenge is convincing people of those three facts without coming across as an overbearing asshole.

Generally, you're going to have a hard time recruiting people that are going to be doing more work initially than you are going to be doing. I.E. a non- hacker trying to recruit a hacker to do some coding will have a tough time.

</comment><comment><USER16> Let's say that someone else had a startup and they needed your talent under those conditions. What would it take to convince you to join them? If you're not willing to offer that, why should someone else accept it?

BTW - Part-time isn't necessarily attractive. It only works for folks who have a hole in their schedule. You might get more takers for temp than part-time.

</comment><comment><USER17> all comes down to if you can convince them. the founder of siebel systems got the first 20 employees to work for free initially.

<comment><USER18> Can you convince them you're going to make money? Cause that's what makes those shares worth more than the paper they're printed on.

</comment></comment><comment><USER19> Thats actually not true. Not everyone wants money. My gf works for a startup (online picture editing site) and she currently only works for shares and no pay. I think many college students would be willing to work for shares. Especially if you have a decent startup and viable idea.

</comment><comment><USER20> I think the answer is different depending on who really stands to gain from being part of it. Does it help a community to the point where they will want to lend a hand to keep it going (e.g. Wikipedia) or will only founders and investors benefit from it?

</comment><comment><USER21> > Lets say your startup needs talent to work part-time (maybe even just 10 > hours a week) in exchange for shares. How do you find people to accept that?

That's easy. Just make sure the the "shares" you're offering them are shares in Google! ;-)

</comment><comment><USER22> you need to do even more legwork to prove out the business model and plan than you would for a company like YC.

i'd be willing to do work for shares if i believed in the model. hell, i AM working on a startup with someone i didn't know beforehand because i personally believe that the project will become extremely profitable.

</comment><comment><USER23> It probably helps for them to be interested in what you're making; if they're not, then hiring them is a bad decision.</comment>


795 Folsom Ave, Suite 600 - <AUTHOR> https://www.google.com/search?q=795+Folsom+Ave%2C+Suite+600+San+Francisco%2C+CA+94107&oq=795+Folsom+Ave%2C+Suite+600+San+Francisco%2C+CA+94107&aqs=chrome..69i57&sourceid=chrome&es_sm=93&ie=UTF-8#q=%22795+Folsom+Ave,+Suite+600%22&start=0

<comment><USER2> We actually have a couple of sales guys in San Francisco who work out of 795 Folsom Street. I think it's a big co-working space: [https://firstname.lastname@example.com,-122.400771,3a,75y,136...](https://firstname.lastname@example.com,-122.400771,3a,75y,136.11h,89.63t/data=!3m6!1e1!3m4!1sqXaBffaqPaw1jq1FCGLiGA!2e0!7i13312!8i6656)

</comment><comment><USER3> seems like it's the address used in twitter bootstrap as an example.

</comment><comment><USER4> Some developers/companies buy "virtual addresses" where their companies can have a virtual address, receive mail, etc.

</comment><comment><USER5> Folsom Avenue? More like Folsom Street. See the eponymous fair.

Also, this used to be Twitter HQ...

</comment><comment><USER6> I've been torn for a while. This is one of my two fake addresses to direct junk mail toward.

The other one is "1060 West Addison Street, Chicago IL 60613"

</comment><comment><USER7> What's funny is that this article is currently (12:54 CDT) the top result from this Google search.</comment>