Pagemap: A mini map for your website - <AUTHOR> https://larsjung.de/pagemap/ <comment><USER2> Pretty clever. I was trying to figure out if there was some DOM API to paint HTML to canvas that I did not know about.... I had to stare at it a few times to realize what was going on :-)

The code runs a DOM query to find the elements configured through the keys of the `styles` object on the parameters/configuration, then for each of those selectors, calculates a rect relative to the size of the canvas, and paints a colored rectangle for each of those elems (using the color coming form the values on styles). [1]

1: [https://github.com/lrsjng/pagemap/blob/master/src/pagemap.js...](https://github.com/lrsjng/pagemap/blob/master/src/pagemap.js#L93-L100)

</comment><comment><USER3> This is really nice work. Tried it out on a blog[1], works really well with content-heavy technical docs. Had to add some custom stylings for new blocks, but that was also pretty easy to do.

1: [https://peteretelej.github.io/setup-ubuntu- vps](https://peteretelej.github.io/setup-ubuntu-vps)

<comment><USER4> Thanks, unlike the submission that demo actually works for me (!) - and is longer, which is a big bonus for demoing this in particular.

</comment></comment><comment><USER5> I am currently trying out this Chrome extension [0] which brings a mini map to each website and my first impression is rather positive. The performance impact might be a little too much on my older laptop but on the desktop it seems fine (for now). I don't know if this is any useful but it just looks nice. :)

[0] [https://github.com/chintown/monocle](https://github.com/chintown/monocle)

</comment><comment><USER6> Funny, the demo on that page doesn't work for me (mobile, FF), but the other two examples do (at least, I assume they're working correctly - a minimap with a grey band for the viewer):

[https://larsjung.de/pagemap/latest/demo/boxes.html](https://larsjung.de/pagemap/latest/demo/boxes.html)

[https://larsjung.de/pagemap/latest/demo/text.html](https://larsjung.de/pagemap/latest/demo/text.html)

</comment><comment><USER7> That reminds me that I sometimes like to switch to a "Show me only function names" view in VIM.

This kinda solves it:

        :%g/^{/normal! zf%

To make the info lines dimmer, this works:

        :hi Folded ctermfg=239
        :hi Folded ctermbg=233

Only problem is that comments outside of functions are still displayed.

<comment><USER8> Sounds you might want to use "tagbar"? [https://github.com/majutsushi/tagbar](https://github.com/majutsushi/tagbar)

<comment><USER7> I don't think that would work for me.

First of all, I prefer to have less on my screen, not more. I believe that the less visual clutter you have on the screen the better you feel and the more productive you are.

Second, activating tagbar adds a bar on the right. That means my code window will shrink. But my code window is exactly the size I like it.

Third, I would have to trust those many thousands of lines of code by "someone from the internet".

<comment><USER9> > First of all, I prefer to have less on my screen, not more. I believe that > the less visual clutter you have on the screen the better you feel and the > more productive you are.

Completely agree on this one. I'd probably prefer it if you can toggle between tagbar's view and your code (there may or may not be a way to do that, I didn't look at the docs).

> Third, I would have to trust those many thousands of lines of code by > "someone from the internet".

This is true, but then again, you're already trusting vim, Linux and millions of lines of code all around you ;) It all comes down to trade-offs at the end of the day.

</comment></comment></comment></comment><comment><USER10> This is great. Minimaps are so useful when editing code I'm amazed nobody's thought to do them for web. For viewing documentation in particular this would be amazing.

</comment><comment><USER11> This is really cool and looks/feels a lot like the Sublime Text minimap, which I use a lot. I have a feeling it might be abused a lot though, like scroll wheel hijacking.

</comment><comment><USER12> Hey it's like Sublime Text!

I don't see how this is useful. It reminds me of the redundant scroll indicators on the top of some websites.

<comment><USER13> It would function great as a scrollbar for long-form documentation on desktop. The built-in browser scrollbar only conveys your current position in the document. A minimap lets you, for example, quickly flick directly to the next section header even if it's currently off-screen. It would also help reduce cognitive load if you're trying to alternate back and forth between two sections of the same document.

</comment></comment><comment><USER14> Nice achievement! But is it just an approximation of the content? It does not appear to be a scaled-down version of the web page - so I wonder how useful it really is. I wish there was a more substantial demo page with more graphical artefacts.

<comment><USER13> Check out the 'styles' section of the usage notes. Tags (selectors?) specified in the configuration have an associated bounding box that will get drawn on the minimap in the configured color.

</comment></comment><comment><USER15> the only thing this needs is a way to display text on the mini-map.. this is so we can manually add titles so we know what we might be scrolling towards. small tiny text. this functionality seems to be missing from most mini-maps.

</comment><comment><USER16> Great little library, can the title be renamed to include "Show HN: "?

Not sure if you have to be the author of the _thing_ , to use the "Show HN: " title tag... but it would be helpful to people browsing...

<comment><USER17> I believe you do have to be the author to add "Show HN". Show HN indicates that the maker is present in the thread. If we lose this distinction, Show HN becomes quite meaningless as a prefix.

<comment><AUTHOR> Yeah, I was under this impression as well.

I was wondering if something like this existed the other day, and I was excited to see this / share it, but I didn't want to put people under the false impression that I'd written this library.

</comment></comment></comment><comment><USER18> If this is useful, then it's something the browser could render, instead of the page itself. We could add it to desktop UI toolkits like Gtk/Qt.

</comment><comment><USER19> I'd love to see this done with the page map features from Xcode, with clickable section headings that show up on mouseover and so on.

</comment><comment><USER20> It feels really nice and minimal. I just wish it only appeared while scrolling, as it distracts me while I read the page content.

<comment><USER21> Hides the map canvas when the page is idle: [https://codepen.io/CalvinMorett/full/LYPbPXM](https://codepen.io/CalvinMorett/full/LYPbPXM)

<comment><USER20> Many thanks!!

</comment></comment></comment><comment><USER22> Couldn't get it to work.

<comment><USER23> On iPhone there was nothing visible on the main page. The boxes demo didn't scroll enough for a worthwhile demo. The text demo however looked pretty good. Somewhat sublime-like as observed in other comments.

<comment><USER24> Same on Chrome on Android, and on Firefox the boxes demo minimap was off the screen and the text demo page was much shorter for some reason.

<comment><USER25> A no go on Firefox mobile on Android too, even with "Request desktop site" enabled.

</comment></comment></comment></comment><comment><USER26> Amazing work</comment>


Ask HN: Prescription Bidding - <AUTHOR> Wondering if this has already been tried or a service like this exists.
1. Patient ask doctor to send the prescription to say ePharmacy.
2. ePharmacy hosts a bidding platform for other pharmacies to bid for cheapest meds.
3. ePharmacy selects a winning bid and sends the request to the pharmacy to fulfill and ship the meds.
Would love to hear folks with experience in the related area to share thoughts - what are the issues - regulatory, technical, business related
- has this been tried. examples. - advice or thoughts if this were to be attempted.
thanks! <comment><USER2> In Germany doctors are not allowed to send a person to a specific pharmacy, not even suggesting who might have something in stock. Then again Germany is very regulated when it comes to that.</comment>


AMA with Zach Sims, Codecademy CEO - <AUTHOR> http://www.reddit.com/r/learnprogramming/comments/38ks3q/im_zach_sims_ceo_of_codecademy_we_teach_people/

<comment><USER2> Saving this one - interested to see what their plans for future language incorporations and future courses are! If anyone is on reddit, feel free to lift this comment for the AMA, haha</comment>


Don't Be a Junior Developer: The Roadmap - <AUTHOR> https://medium.com/@andreineagoie/dont-be-a-junior-developer-the-roadmap-9fde5cf384bb <comment><USER2> I find this roadmap a bit too focused on web development.

Also I think the biggest problem with many developers today is that they lack proper training and they are self taught.

A senior developer can apply the complete development lifecycle by himself.

I believe that it does not matter how many fancy frameworks you know when you do not know basic design patterns or are unable to create a proper diagram and continue to write unmaintainable spaghetti code.

Some of these are addressed in the article but are limited to a specific language.</comment>


Show HN: Kur by Deepgram (YC S16) – Deep Learning Made Easy - <AUTHOR> http://kur.deepgram.com <comment><AUTHOR> Deepgram is open sourcing Kur ([http://kur.deepgram.com](http://kur.deepgram.com))! Kur is the worlds first descriptive Deep Learning software. Think of a model, describe it in a simple YAML or JSON file, and train to get state-of-the-art results. There's no need to code.

Why we built Kur: Prototyping DNNs is a slow process. Most people doing deep learning want to iterate and try out different model architectures and learn from others. It's hard to do this using barebones backends like TensorFlow/Theano or even the higher abstraction of software like Keras.

Kur is not speech specific. It can be used for images (we supply two examples), speech (we supply one example and DG is open sourcing a new audio dataset with it, the DEEPGRAM10), text, etc.

There are CNN layers, RNN, dense, dropout, batch norm, etc. to pick and choose from. The best part? Kur does all the plumbing! You want one input but two outputs? Not a problem, describe that model in Kur!

We're really pumped to be releasing Kur and would love to answer questions if you've got em.

Thanks! Deepgram AI Research Team

[http://kur.deepgram.com](http://kur.deepgram.com) [http://github.com/deepgram/kur](http://github.com/deepgram/kur) [http://kurhub.com](http://kurhub.com)

<comment><USER2> There have been a few frameworks that take this declarative approach; DSSTNE, Twitter's internal framework and probably others.

DSSTNE had a clearish reason for doing so: automatic model-parallel training. Twitter wanted something simpler than Torch for most of their devs to use.

But I'm not really seeing why you guys did it.

<comment><USER3> Didn't they say "faster prototyping"?

That seems sane to me.

<comment><USER2> I guess I just don't think that's true, Keras is already pretty easy to use for model definition, and this doesn't seem to solve any actual pain points I've encountered.

</comment></comment></comment></comment><comment><USER4> Nice job! I want to see another RNN net generate the yaml configs after we have collected enough of them for training. :)

<comment><AUTHOR> You'll be able to easily do that once we release Kurhub.com.

</comment></comment><comment><USER5> Great idea! However installation instructions are a little misleading. It says I only need Python 3, while in reality I need a whole bunch of things to be installed already. Is there a list of all requirements?

Also, does it work on Windows? "DL for dummies" code should run on Windows :)

<comment><USER6> The "whole bunch of things" is just the standard system-wide install for working with any Python package: python, pip (which comes with python), and virtualenv. Though I also recommend virtualenvwrapper for setup simplicity.

<comment><AUTHOR> Great point about virtualenvwrapper. We've included that too in the installation instruction.

The install instructions are pretty much structured as: quick,

      pip install kur

cleaner and quick,

      install with vituralenv in a quick script

best practice but more setup,

      install a whole environment and include virtualenvwrapper

</comment></comment></comment><comment><USER7> Looks very interesting! Particularly because I don't know NNs and would love to be able to get a feel for it. I'll give it a try this weekend and share my noob experience

</comment><comment><USER8> Need updates for installation on Windows. Been trying for more than a day now. -_-</comment>


The Future of Work – Robert Skidelsky (2014) [video] - <AUTHOR> https://www.youtube.com/watch?v=tmDQGFg_5mM

<comment><USER2> TL;DR The machines are taking our jobs. 45%+ of current jobs will be done by machines by the year 2050. We need to look into solutions like tax breaks for utilizing human workers or basic income.

<comment><USER3> As much as I like this basic income idea, I seriously doubt it's going to happen one day. _In Praise of Idleness_ was written in 1932 and machines haven't stopped to replace jobs, they've even become much quicker at it. Yet the vast majority of Western citizens couldn't imagine a year without a job, and feel depressed when they're let go, even if they have side money.

Idleness is an aristocratic taste – those who have it in today's world and don't have the corresponding aristocratic amount of money will have to suffer this through. They could be doing what they love and send good vibrations with their art or social work but no, the population doesn't understand higher than mediocre views and couldn't stand financing such a "lazy bunch".

How sad.</comment></comment>


Why code in C anymore? - <AUTHOR> http://www.drdobbs.com/cpp/why-code-in-c-anymore/240149452#

<comment><USER2> I wonder why the linked benchmark site shows g++ to be 27% slower than gcc. Is this just compiling the same C (as subset of C++) program with two different compilers or are they comparing two distinct implementations of the same algorithm ? I didn't see any obvious links to the details of how these benchmarks are run.

</comment><comment><AUTHOR> I just came off a few years of small embedded systems programming and C is still firmly entrenched. Somewhat to my surprise I didn't really miss C++ all that much. I did have opportunity to program utilities in C++ and C# but all my day to day work was in C and I thoroughly enjoyed it.</comment>


Found this new sequelize auto-migration tool - <AUTHOR> https://www.npmjs.com/package/sequelize-auto-migrations <comment><AUTHOR> I just tried using it, seems ok so far! So far is a a reason why I haven't transitioned my project to a Django REST API + Node JS (for sockets), or maybe a Django REST API + Djnago Channels app, from a purely Express API.

^Context: I need to meet deadlines, and I need to study Django again.

<comment><AUTHOR> Update: Rename column not yet supported :( This is sad. Checked the code base and it seems ok.</comment></comment>


Silicon Valley's 'Suicide Impulse' - <AUTHOR> http://professional.wsj.com/article/SB10001424127887323539804578266290231304934.html?mg=reno64-wsj

<comment><USER2> The real "suicide impulse" would be to ignore Washington while your competitors run rampant.</comment>


Ask HN: members of distributed teams, how do you cope with the loneliness? - <AUTHOR> Of course you're collaborating on a day to day basis using email, skype, IRC or whatever, but how do you handle the physical loneliness throughout the day? <comment><USER2> Purposely plan regular 1:1 breakfast or lunch meetings with a long list of assorted friends/colleagues. Engage in the lost art of live conversation. It takes effort and forethought, people can get busy. That makes it all the more important.

</comment><comment><USER3> Find a cafe or coworking space. You're in Nantes, right? Check out the Nantes Cité des Congrès and Nantes Route de Paris, they both have dedicated coworking spaces. Personally I would find something right on La Loire or L'Erdre so I had a nice view of the water; really any view of nature I think will help, even if nobody's around. After work, get out and find something to do with other people.

</comment><comment><USER4> Company wide IRC type chat with several non-business chat channels to socialise in (eg. Tech, Food, Fun, Sport). Can use an IRC server, jabber/XMPP or Hipchat for this.

Plus regular real world trips to meet/connect with the people you work with, and an active social life outside work.

It of course helps if you're the kind of person that likes solitude.

</comment><comment> benji-york I may be an outlier; it takes me about two weeks of not interacting with another person to feel the least bit lonely.

</comment><comment><USER5> Our IRC chat (flowdock) has a section which is basically water cooler discussion and copious amounts of gifs. Normal work takes place in other channels.

Other than that...

rdio subscription

Local meetups

"bring my dog to work" self-made perk :) He hangs out in the same room I'm in for most of the day.

<comment><USER6> I've been telecommuting since 2000 and definitely pets help. I have two cats and a dog.

Sometimes I work at the library or cafés. Meetups are great too.

Volunteer work outside the house once in awhile.

</comment></comment><comment><USER7> Unless you have a family, try working in coffee shops and coworking spaces more than you work at home.

And really unwind with your friends on the weekends, to the point where you wouldn't mind not seeing another human being the Monday after.

</comment><comment><USER8> Have short meetings with your team every day. Make jokes and share fun things. Implement a Social Network for your company/team. Join a shared office space or go to a cafe where people are working like you. Exercise every day. Meet with face to face with friends in the evenings.

</comment><comment><USER6> There is always the option of traveling abroad always staying in places with good internet connection. You get to meet new people all the time: [http://locationindependent.com/](http://locationindependent.com/)

</comment><comment><USER9> We use Sqwiggle ([https://www.sqwiggle.com/](https://www.sqwiggle.com/)) which is almost like being in the office - everyone's there when you need them.

Would totally agree with caw about getting a dog though!

</comment><comment><USER10> Join a shared office space. It's difficult, spend more time around family.</comment>


Documentation or death (or: the rise and slight drop of rails blogging) - <AUTHOR> http://www.omgbloglol.com/?p=34

<comment><USER2> Is it bad this post spurred my interest in Django, precisely because of its good documentation?

</comment><comment><USER3> How is rails-doc.org coming along?

</comment><comment><USER4> Documentation is not a problem limited to just Rails. Quite a few open (and closed) source projects have only minimal if any documentation. Its good to see this issue being brought up.

</comment><comment><USER5> This could be the best-written, most well thought out blog in the history of the internet, but I will never know because I can't get bast the title.</comment>


Dropping 22TB of patches on 6,500 PCs in 4 hours: BitTorrent - <AUTHOR> http://arstechnica.com/news.ars/post/20080309-dropping-22tb-of-patches-on-6500-pcs-in-4-hours-bittorrentdropping-22tb-of-patches-on-6500-pcs-in-4-hours-bittorrent.html <comment><USER2> This could have been a very interesting case study on the BitTorrent protocol. I wonder if they recorded much data.

<comment><USER3> I especially wonder how much the network was saturated during the 2 hours it took to transfer that 3.5GB patch to all the clients. BitTorrent will use every last iota of bandwidth and clog every router with tons of connections if you let it.

<comment><USER4> Surely they could use some kind of QoS to make torrent traffic the lowest priority. Since they control the clients too (and don't have to worry about hostile clients trying to subvert your traffic shaping schemes) they can also set connection limits to keep each client from opening excessive numbers of connections.

In short, it's not like dealing with bittorrent in the wild, where every client is trying to leech at max speed with no regard for the rest of the network. They control both ends of the process, so they can tune it.</comment></comment></comment>


Things to Know About GNU Readline - <AUTHOR> https://twobithistory.org/2019/08/22/readline.html <comment><USER2> > Ramey told me via email that Readline, far from being an original idea, was > created to implement functionality prescribed by the POSIX specification, > which in the late 1980s had just been created.

This actually isn't true. The POSIX shell spec (1003 IIRC) was published in 1992. The headline library was in the first bash release; Brian might have written it before starting on bash. The inspiration was the TOPS-20 input JSYS (system call) mixed in with Emacs.

How do I know? Well you can ask Brian; as he reminded me it came from design discussions for bash I had with him on this very topic at the time, specifically that interactive text input should be a library.

<comment><USER3> And I trust Gumby's memory almost to a fault :-) I had already written a version of Emacs for the Apple ][ and Apple //e called Amacs in 1983 or so. I loved Emacs and Zmacs, and wanted to build software that had that clarity of architecture. So I knew I wanted readline to have as much of the feature set of a genuine editor as made sense.

I think Gumby was instrumental in talking to me about making a reasonable API for the completion part of readline. But I wrote a lot of code in the late 80s. And I wanted to use command line editing and completion in GDB, because we didn't have it. And I thought that was idiotic.

<comment><USER4> Hi, any thoughts on what would be a good place to start if someone was looking to write a terminal shell variant these days? Also, many thanks for all the useful things. :)

<comment><USER2> As bash is GPLed you could start with it.

If you wanted to be more extreme perhaps you could think of a way to make lua the scripting language, or embed full shell controls into python.

</comment></comment></comment></comment><comment><USER5> Maintained by a single person.

Let that sink in. How many developers and admins rely on readline for their daily work? How many critical installations world wide depend on it?

As a contrast: How much revenue is generated with, and how many people work on, something as mundane as a chat application for mobile phones?

Sometimes it is astonishing that our software eco system actually works.

<comment><USER6> Hmm...maybe it should be repackaged into a Saas product with a monthly, per user license!

<comment><USER7> And a cookie notification.

</comment></comment></comment><comment><USER8> I map <up> to history-search-backward in my .inputrc; so I can type 'sudo ' and press <up> to cycle through everything starting with sudo:

        #  <up>      -- history search backward (match current input)
        "\e[A": history-search-backward
        #  <down>    -- history search forward (match current input)
        "\e[B": history-search-forward

[https://github.com/westurner/dotfiles/blob/develop/etc/.inpu...](https://github.com/westurner/dotfiles/blob/develop/etc/.inputrc)

<comment><USER9> I do the exact same thing. This will probably be considered sacrilege by some but I also remap tab completion to cycle through all matches instead of stopping at the first ambiguous character:

# Set up tab and Shift-tab to cycle through completion options

"\e[Z": "\e-1\t"

TAB: menu-complete

# Alt-S is normal style TAB complete

"\es": complete

<comment><USER10> > I also remap tab completion to cycle through all matches instead of stopping > at the first ambiguous character

Windows PowerShell does this and I love it. I don't understand why people _wouldn't_ want this

<comment><USER11> Because instead of helping me enter a long filename by its distinctive parts, it forces flat mental read-decide-skip loop based on first few letters, which is slow and cannot be narrowed down without typing out additional letters by hand. It is like selecting from a popup menu through a 1-line window.

If it presented a real popup for file selection, combining both worlds (tab to longest match, untab to undo, up-down to navigate), that would be great. But it doesn't.

<comment><USER12> For anyone who isn't already aware, fzf[0] does this exactly (and more!)

[https://github.com/junegunn/fzf](https://github.com/junegunn/fzf)

<comment><USER13> Rust implementation [1]

[1] [https://github.com/lotabout/skim](https://github.com/lotabout/skim)

</comment></comment></comment></comment></comment></comment><comment><USER14> And if you ever find yourself using a command-line utility that doesn't have readline support (`tclsh` and `smlnj` come to mind), you can use `rlwrap`, available via your package manager of choice:

      rlwrap tclsh

and voila, no more `^[[C^[[D` spew.

<comment><USER15> Sigh... it always frustrated me that the Tcl folks never got something like readline integrated. IDK about the legal details, but Ruby and Python somehow managed.

tkcon is an alternative, graphical shell for Tcl that's a good alternative to using tclsh on the command line, BTW.

<comment><USER16> Tclsh is only supposed to be a demo for embedding the interpreter. It consists of only 150 SLOC. Anyone could add readline if they really needed it.

[https://github.com/tcltk/tcl/blob/master/unix/tclAppInit.c](https://github.com/tcltk/tcl/blob/master/unix/tclAppInit.c)

<comment><USER15> This is like software marketing 101:

You're going to have much happier users if you do that thing that "anyone could do" rather than ask that each person who might want to use readline read up on Tcl's C API and hack together something that links to readline.

</comment></comment></comment></comment><comment><USER17> See also, linenoise[0], a small self-contained alternative to readline and libedit written by antirez who also wrote something called Redis.

0: [https://github.com/antirez/linenoise](https://github.com/antirez/linenoise)

</comment><comment><USER18> Also, according to RMS, CLISP is a derivative work of readline because of the optional dependency on it. (CLISP is now GNU CLISP, but was not originally part of the gnu project).

<comment><USER19> Imagine you are a photographer. You take a photo of something. The photo is covered by copyright. I can't use it without your permission.

Now imagine that I write a book and I include your photo in it. This is an infringement of copyright. I can't distribute my book, containing your photo, without infringing copyright. It doesn't matter how much your photo contributes to my book -- including it in my book and distributing it is infringement. You might even be able to get an injunction to stop me from distributing my book without removing your photo.

Now imagine that you put your photo under a CC "share alike" license. What it says is that, while I don't generally have the right to use your photo in my book, _if_ I decide to license my book using a CC "share alike" license, then you will give me permission to use your photo. To make things simple, you give blanket permission to _anyone_ to use the photo as long as whatever is including the photo is licensed as CC "share alike" \-- in that case it is not necessary to get specific permission to use it. Finally, let's say that you make the offer that if I infringe your copyright by including the photo in my project that you will _forgive_ that infringement if I agree to re-license the project under CC "share alike".

Exactly same thing.

<comment><USER19> I was on my walk and I realised that I completely missed the interesting part of this discussion (which was hinted at by the OP). So I'll do my best now (with the caveat that this is a very complex legal issue and I am not a lawyer).

One of the most crucial things about the GPL is that it is _only_ triggered on distribution. You are specifically granted permission to use the software for any purpose (freedom 0). This _includes_ embedding it in another piece of software. As long as you don't distribute the result, then you are 100% OK ("distribution" has a specific definition which is stated in the license, so refer to that if you have any questions about how that works).

The "anti-GPL hack" that some people use is that they say, "Well, if I don't distribute a library that I use, then I am not infringing on the license -- because the license only kicks in on distribution. If the _user_ links the software, then it's 100% OK because they are specifically given permission to use the software for any purpose in the license. Whoo hoo!"

This is where the argument of "derived work" comes in. Imagine that you write a poem. I then write a critique of that poem. I don't include the poem in my critique because I don't have the right to distribute it. Just referencing your poem is not an infringement of copyright. Just because I describe your poem doesn't mean it's a derived work.

However, imagine that I decide to distribute my critique in a web page. Many of the things I say depend on the actual text of the poem, so I'd really like to add it to my text. But I can't distribute the poem. What to do? You are distributing your poem on the internet too, but you have a license that doesn't allow me to use it directly. Maybe I can be a bit clever here.

What I'll do is write a web page that _deep-links_ to the poem. I'll write some javascript that allows the user to press a button and it will copy the text of the poem into my document. That way I can refer to the poem without actually distributing it. My document won't make any sense if the user doesn't press the button to link to the original text, but the user will be doing that, not me.

Is my website a derived work of the poem? This is a good question. I think it probably is. My document does not "work" without the original poem. It depends on the actual structure of the poem in non-trivial ways. However, I am sure there are also good arguments for the opposite. Given the outcome of Oracle vs Google where the judge decided that APIs are copyrightable, I feel fairly comfortable in my position, but as far as I know it has never been decided in court. Your guess is as good as mine (and better if you are a lawyer ;-) ).

But just to reiterate -- it does not matter how much of the program infringes. If any of the program infringes than it all infringes. You can't legally distribute it. So while it might seem weird that a very small part of your code might be deemed to be a derived work of some other code and therefore you can't distribute it -- that's how it works (and, to be honest, I can't see a reasonable way of proceeding if it didn't work that way).

<comment><USER20> IIRC, clisp _worked_ just fine without GNU readline. [https://www.gnu.org/software/clisp/impnotes/readline- mod.htm...](https://www.gnu.org/software/clisp/impnotes/readline-mod.html)

If Lispworks writes a compatibility layer that allows SLIME to work with Lispworks, they are not causing Lispworks to infringe on the Emacs software license.

(Side note: for your hypothetical website critiquing another copyrighted work, there is a somewhat unclear [in the sense that it's facts and circumstances dependent] fair use doctrine in the US that almost surely allows genuine critique of that work to include relevant snippets [while disallowing copying the work in its entirety under guise of critiquing it]. [https://en.wikipedia.org/wiki/Fair_use#U.S._fair_use_factors](https://en.wikipedia.org/wiki/Fair_use#U.S._fair_use_factors) )

<comment><USER19> It doesn't really matter if the code as a whole worked without readline. What matters is if the code that linked to readline worked. It's that tiny bit of code that may or may not be a derived work. If it is, then you can't distribute it. No matter how tiny it is, if you can't distribute it, then you can't distribute it.

Keep in mind that agreeing to license your work under the GPL is an _offer_ for remedying infringement. You don't have to accept. If you don't accept, then you have to deal with the consequences just like any other infringement case.

For the side not: It is true :-) However, just to be a bit playful, I should point out that fair use is _not_ a defense in US copyright law. If your use is fair use it is _still_ infringing. Fair use kicks in when determining damages. So your infringing use will suffer no damages because it is fair use. However, you should always be careful when relying on fair use because it is _not a defense_ \-- your infringement case can go to court and you still have to pay your lawyers!

<comment><USER20> From what I've read/studied (though I am not a lawyer), fair use is an affirmative defense against copyright infringement in the US.

I'll have to think more about the readline interface bit you raise. My gut instinct suggests that's not quite right, but my rational brain isn't able to label/ID/argue _why_ , so your point has some merit. I'll need to think about it some (so thanks for that [seriously]!)

Maybe there's _another_ line input library with a compatible binary interface and MIT licensed and clisp is written to interface to _that_ library. That would seem like it might fly.

<comment><USER21> libedit was written for just this purpose

[https://github.com/NetBSD/src/tree/trunk/lib/libedit](https://github.com/NetBSD/src/tree/trunk/lib/libedit) (cvsweb appears down)

[https://www.thrysoee.dk/editline/](https://www.thrysoee.dk/editline/)

<comment><USER3> Interestingly enough, neither of these libraries are as objectively as good as readline. For example, they do not implement a true kill ring. They aren't macro programmable. I find it almost amusing that the authors were too lazy to actually reimplement all of the extremely well documented behavior in libreadline and libhistory.

<comment><USER20> If the purpose is "plausible deniability" to allow GNU readline to be linked by users, that seems perfectly reasonable. Why work harder than needed?

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment> gray_-_wolf > Also, without some sort of indicator, Vim's modal design is awkward > here—it's very easy to forget which mode you're in.

Luckily for us, there is option for the indicator :)

        set editing-mode vi
        set show-mode-in-prompt on
        set vi-ins-mode-string +
        set vi-cmd-mode-string :

<comment><USER22> I prefer to set the cursor shape ;)

[https://stackoverflow.com/a/42107711/52817](https://stackoverflow.com/a/42107711/52817)

</comment></comment><comment><USER23> Another thing you may not have known, libedit[1] is mostly readline compatible, and BSD licensed.

[1]: [https://thrysoee.dk/editline/](https://thrysoee.dk/editline/)

</comment><comment><USER24> > The Readline API is much more extensive than that single function of course, > and anyone using it can tweak all sorts of things about the library's > behavior. Library users can even add new functions that end users can > configure via ~/.inputrc, meaning that Readline is very easy to extend. But, > as far as I can tell, even Bash ultimately calls the simple readline() > function to get input just as in the example above, though there is a lot of > configuration beforehand.

I feel that was designed backwards. Instead of having facilities so applications can extend readline by adding their own line editing functions specific to them, it should have facilities so users can add their own extensions and make them applicable to all applications that use readline. That would be cool.

In particular, I would like to be able to extend it to add better multi-line editing support like what zsh's zle has.

In zle, I can use `o` and `O` to create lines below or above the cursor, `j` and `k` to move to the next or previous line, `>>` to further indent the current line, etc. It's basically a mini-version of a vi buffer, right in the command line.

In readline, you can insert a newline in the current prompt with Ctrl-V Ctrl-J, but to move between the lines, I have to move left or right beyond the beginning or end of the current line.

Even worse, readline's history format doesn't support having a single entry for multi-line commands, like zsh does. :(

<comment><USER25> It might help to know that control+x+e will open the current command being typed in $EDITOR.

<comment><USER21> or esc-esc-v if in vi mode..

</comment></comment></comment><comment><USER26> Wonders of Readline become painfully apparent when you have to use a program that doesn't employ it despite having a line-by-line command input interface. But! By some stroke of luck and computer magic, Readline can be injected right into the program, at least in Unixes: there's an util called `with-readline` for that.

Some programs have the editing features but lack command history for some reason, or don't store it between sessions―this is also solved by the addition of Readline.

<comment><USER17> > Readline can be injected right into the program, at least in Unixes: there's > an util called `with-readline` for that.

Damn! I knew this 6 months ago. I ended up writing a Python wrapper to add readline capabilities for a tool @work.

</comment></comment><comment><USER27> We (radare2 project) recently added more readline-like features in our own implementation called dietline. We cannot use the readline itself due to portability issues but tried to implement the most useful features of it. See the basic documentation in radare2 book[1]. And of course, any contribution[2] to improve our implementation is welcome.

[1] [https://radare.gitbooks.io/radare2book/content/basic_command...](https://radare.gitbooks.io/radare2book/content/basic_commands/dietline.html)

[2] [https://github.com/radare/radare2/issues?utf8=%E2%9C%93&q=is...](https://github.com/radare/radare2/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+dietline)

<comment><USER28> What portability issues did you have?

<comment><USER27> Radare2 is supposed to work on the target platform as a debugger and RE tool, and platforms can be custom and quite limited. This is why it even provides a basic UNIX commands in the shell.

</comment></comment></comment><comment><USER29> Oh man, it kinda hurts to see someone remapping `C-o` like this… That's one of my favorite readline bindings!

EDIT: From the bash man page:

> operate-and-get-next (C-o)

> Accept the current line for execution and fetch the next line relative to > the current line from the history for editing. Any argument is ignored.

</comment><comment><USER30> I have a love-hate relationship with Readline. While it is good once learnt, it's really hard to learn.

For beginners it's not obvious there is anything to learn, and even if they do want to know, you have to basically be told to Google for 'Readline'. It would be great if it could somehow be made more discoverable.

<comment><USER2> Back when it was written Emacs was pretty popular (well, it had been the default around the lab for about a decade). So users would use it without noticing. The same reason the standard text widgets of Mac OS support Emacs commands.

<comment><USER31> I recall my joy when I realized that the Netscape browser supported Emacs shortcuts when working in a textarea.

</comment></comment></comment><comment><USER8> Is this macro from the article dangerous because it doesn't quote the argument?

      Control-j: "\C-a$(\C-e)"

I can never remember how expansion and variable substitution work in shells.

<comment> dan-robertson The macro means:

      \C-a: beginning of line
      $: self-insert
      (: self-insert
      \C-e: end of line
      ): self-insert

So if your prompt (with | for cursor) looks like this:

      grep 'blah blah' |some_file

And you execute that macro, you get:

      $(grep 'blah blah' some_file)|

Which is correctly quoted and I think always correctly quotes whatever is at the prompt (unless you e.g. get half way through a string and press enter so the beginning of the prompt is halfway through a string, or maybe if you have multiple lines)

<comment><USER8> Yeah, but this and this do different things:

      # prints a newline
      echo $(echo "-e a\nb")

      # prints "-e a\nb"
      echo "$(echo "-e a\nb")"

</comment></comment></comment><comment><USER32> ~/.inputrc

        set show-mode-in-prompt on
        set vi-cmd-mode-string "cmd:"
        set vi-ins-mode-string "ins:"

</comment><comment><USER33> Ctrl-U doesn't delete everything before the cursor. It moves everything before the cursor into the cut buffer.

<comment><USER3> "cut buffer" is actually "kill ring"

C-u only does that by default so that readline wouldn't confuse *nix users.

</comment></comment><comment><USER34> Got a question, what is the standard workaround to the fact that Readline's forward search (Crtl-S) is also XOFF (effectively pauses the terminal)? Other than turning off software flow control via stty -- I'd like to keep that on.

<comment><USER35> Ctrl-S is XON. Ctrl-Q is XOFF.

</comment></comment><comment><USER28> > He said that millions of people probably use Bash without realizing it > (because every Apple device runs Bash)

iOS devices do not ship with bash.

<comment><USER36> At least the last time I looked at a jailbroken iOS device, it opened a terminal running bash-3.2 (the same version as on macOS). It's there, you just can't get to it.

<comment><USER28> Most "packaged" jailbreaks drop a shell binary into /bin, or outright install packages for things such as Bash and the GNU Core Utilities; iOS does not actually ship with these. (If it did, I would assume that the GPL would require that Apple provided source code for it here: [https://opensource.apple.com/release/ios-1141.html](https://opensource.apple.com/release/ios-1141.html) .)

<comment><USER36> I don't buy it. First, why would a Linux-based jailbreak install a binary for bash-3.2, when that version is going on 13 years old? Second, there's nothing that requires Apple to make the GPL sources available in _both_ MacOS and iOS. Doing it once is sufficient. I'm sticking with what I've seen and been told: the guts of MacOS are there, just hidden.

<comment><USER28> > First, why would a Linux-based jailbreak install a binary for bash-3.2, when > that version is going on 13 years old?

Because nobody updated coreutils on iOS for years, AFAIK. FWIW, the unc0ver jailbreak installs bash 5.0.3.

> Second, there's nothing that requires Apple to make the GPL sources > available in both MacOS and iOS. Doing it once is sufficient.

Why does the GPL not require that they release their modifications if they distribute them?

> I'm sticking with what I've seen and been told: the guts of MacOS are there, > just hidden.

      $ find -E /Volumes/PeaceG16G102.D321OS -regex "(ba)?sh"
      $ ls /Volumes/PeaceG16G102.D321OS/bin
      df ps

(That's the iOS 12.4.1 restore image for iPhone XS, if you're wondering.)

</comment></comment></comment></comment></comment><comment><USER37> We used to have a simple line editor so we could edit a text file. Then GNU came along and gave us a wondrously complex editor so we could edit a single line...

From the man page:

      Bugs

      It's too big and too slow.

GNU software at its finest.</comment>


Ask HN: How do you speed read technical books? - <AUTHOR>

What is your technique to speed read and finish technical books (such as on programming languages, cs theory etc.) as fast as possible? <comment><USER2> I don't, because that's the wrong way to approach such texts. In order to learn programming languages and theory, you must learn by doing.

If I'm looking something up for reference, I still use a speed reading technique I learned from my high school teacher back in the 80s.

She was on an episode of the 80s show, "That's Incredible" where a student of hers read War & Peace in some ridiculously short amount of time.

I have no information on what speed reading courses are legit or whatever, but hers certainly was, despite all the disbelief at the time. Of course, the featured student was a major exception. I think I was her top speed reader those semesters but couldn't come close to the guy on TV. It's also not a fun way to read.

</comment><comment><USER3> I use the Evelyn Wood techniques for topics like this. You'll make several passes through the text with different goals each time.

On the first pass you read the TOC, chapter headings, section headings and so on. You are trying to absorb the structure of the book (or chapter if you want to do it 1 chapter at a time).

The next pass you are making sweeping scans of each page, taking in high-level information and building on the structure you've already established.

If you've developed vertical reading at all, you can use it for the last pass, or any other technique you've worked up to.

One thing to note, I don't use anything besides good old fashioned close reading when it comes to code examples. Dig through them in detail or risk missing the point. Code is not like natural language and you won't get the same benefits from speed reading it.

</comment><comment><USER4> May I ask why you would want to speed read a technical book?

</comment><comment><USER5> outsource the page flipping</comment>


The Number One Mistake People I Interview Are Making These Days - <AUTHOR> http://www.businessinsider.com/the-number-one-mistake-people-i-interview-are-making-these-days-2012-2 <comment><USER2> As a hiring manager, I disagree with this somewhat. Deselecting people based on the fact that they did not send you a thank you email is, imho, quite foolish.

1) It assumes that the hiring manager is holding all the power in the interview process (which is actually not true). As a hiring manager, Ms. Liebman, how many 'thank you' emails have you sent to your interviewees? You think you should not have to? Well, I disagree.

2) It's a nicety, but by no means a necessity. It's a bit old school and in this day and age, with the amount of emails people get, it's not always as welcome as you think.

It falls into the trap of A players hiring A players and not worrying about minutia like this. When B players hire C players, you may get deselected cause you did not stroke their egos.</comment>


OpenPGP JavaScript implementation - <AUTHOR> https://github.com/openpgpjs/openpgpjs

<comment><USER2> If anybody uses this, please keep in mind the differences in security possibilities between native C code and Javascript.

Both this and GnuPG encrypt and decrypt data with PGP keys. GnuPG, however, does this _securely_ , in many, many senses of the word. For instance, GnuPG maps all of its buffers to protected memory pages, and clears its buffers frequently and early.

A very large portion of GnuPG's code is dedicated to _protecting your private keys_ , and the techniques that they use simply aren't available to javascript.

This doesn't mean the JS library is bad, it's just a good thing to keep in mind. Don't run your nuclear launch codes through this.

<comment><USER3> <https://github.com/eschulte/node-gpg>

(a Javascript PGP library that might be safe for nuclear launch codes)

<comment><USER2> This is not a PGP library. It's a wrapper around gpgme, which in turn is a wrapper around gnupg. node-gpg just exposes the GnuPG command line as javascript functions.

<comment><USER3> And nodejs is not a javascript server, it's just a wrapper around V8 and the kernel's socket API? Linux is not an operating system kernel, it's just a wrapper around X86?

That distinction is silly.

<comment><USER2> Nothing is anything. We're all just subatomic particles destined for heat death

But, really:

openpgpjs, the topic of the article, is a program that implements the OpenPGP standard, and the cryptographic algorithms it depends on.

node-gpg, the topic of this comment, does not implement any part of the OpenPGP standard, nor any cryptographic algorithms. It executes a local C program, GnuPG. If you don't have that C program, it does nothing.

Suggesting that they are the same thing is silly. The distinction is _massive_.

Otherwise, I could claim I just implemented a world-class PGP implementation! To try it out, just run: perl -e "exec 'gpg'"

</comment></comment></comment></comment></comment><comment><USER4> Sigh, the comments on this page are abysmal. Since no one has shouted the (correct) party line yet: DON'T USE CRYPTOGRAPHY IN THE BROWSER.

This is an example of cargo cult thinking: well, cryptography is good, right? It protects me. I wish I had ENCRYPTED WEBMAIL, wow!

But seriously, think for a second what the threat model is.

Do you trust the webmail host to securely store your data and only give it up under warrants, etc? If so, then ordinary plain text communication over SSL is fine.

Do you not trust the host? Then them saying "oh, look at us, we're encrypting your emails" shouldn't make you feel any better. I mean, if you use the site to view your damn emails, then THEY'RE SITTING THERE "DECRYPTED" ON THE PAGE, and the host that you don't trust can do a simple $.post(...) of its contents, for example.

I seriously fail to see any example where this library is useful. Anyone have suggestions? In your suggestion be sure to note whether you trust the host or not, and if so why not just use SSL, and if not, why the host can't just bypass it with a line of jquery.

<comment><USER5> There are circumstances where you can trust the host. For example if you run it yourself. I myself would like to run a self-hosted gmail clone if I can find a decent one.

I could even use gmail as the pop3/smtp server, if the mails are encrypted anyway.

Anyway if you control the host, and it communicates with you through SSL using a self-signed certificate, and you make sure you have no awkward browser extensions installed then your attack vectors are dwindling fast.

<comment><USER6> If you are trusting the host, why not let it do the encryption instead and make the whole system a whole lot more secure.

<comment><USER5> That is a true point :) But keep in mind that there is something to be said for not storing encrypted data on the same machine as the key.

Ofcourse once the machine is compromised it can trick you into giving it the key, but there are also countless scenarios where that is not possible. It is really an improvement onto your security.

Lets not pretend that read-protected memory is such a secure way of storing private keys.

<comment><USER6> If JS sent by server has access to your key, then by that proxy the server has access to the key too. The security is equivalent to having key stored in encrypted form and decrypted only for the duration of the session/use and the password not being stored on the server.

</comment></comment></comment></comment></comment><comment><USER7> Please: have fun playing with your toy crypto systems. Enjoy making and breaking them. Use it for learning how to implement stuff, and where the difficulties are in implementing secure crypto. Perhaps even use them if your security needs are mild.

But don't release them as products. Especially don't release them as RFC compliant secure products!

A few people need effective security. Not having good crypto puts those people at risk of lifetime imprisonment, or death, or torture.

Proper cryptography is _hard_. There are very many seemingly small things that can ruin the security of the cryptography.

This is something that well funded governments have struggled with. The people involved with making and breaking crypto systems are smart, and experienced, and sometimes have considerable resources available to them.

</comment><comment><USER8> I really hope this takes off, there have been several efforts to bring PKS & PKE to the browser than have unfortunately just withered & died.

WebPG (<http://webpg.org/>) is the best implementation so far for GMail integration, and as far as I can tell it's the only one still being developed, but it falls over at the last hurdle, it won't send the email :)

As a resident of the UK, with our governments boner for introducing a snoopers charter this kind of thing really interests me.

<comment><USER7> The snoopers charter is not interested in message content at all. It is only interested in dates and times and recipients and senders.

Encrypting the content of your messages will do nothing to prevent people from getting the information available to them under the snoopers charter.

(<http://www.bbc.co.uk/news/uk-northern-ireland-20677850>)

</comment></comment><comment><USER9> This is incredible. This is something I've wanted for so long. Serious kudos to the developers.

Also, check out their site at <http://openpgpjs.org/>

</comment><comment><USER10> There is something I do not get. Everybody complaining about 'do not use this is the browser' but...

Would it not be possible to develop a 'client' node.js _application_ with this library?

I mean, node.js is all the rave out there for severs but surely you can use it in (so to say) bundled client apps?

Please: correct me, for I may be wrong (I have _no_ idea of node.js) but it does not sound like 'nuts' to me. Just another language, another runtime, another PGP library. Download once, run whenever you need it.

<comment><USER11> node.js doesn't run in the browser. It's typically a server side application. And, yes, I think most would agree that node.js might be one of the few valid use cases for this.

<comment><USER2> Except this library doesn't have proper memory protection, and node.js has system access so it could just use GnuPG and be a lot more secure (and almost certainly faster, too).

</comment></comment></comment><comment><USER12> This is a problem I am interested in a lot, and is perhaps the only reason I cannot completely move away from dedicated email clients on my computer.

I am not well-versed in the issue, but I have read the infamous Masanto cryptography in JS article, rebuttals, differents JS projects revolving around cryptography.

I currently am evaluating Firefox's WebPG for some functionality, but the dev has to work hard to basically build a Firefox plugin (in JS, so we are back to the same problem) to call GnuPG calls and return the data.

So, we have browser specific plugins and web-app code in a language that is controversially unsuitable for such use in decryption cases. What can we use as alternative to secure web applications? Does asm.js change anything? As far as I can tell, no. Alternative browser languages? I guess, but still a pain. Are we going to have to build this functionality into web browsers, as a standard or otherwise. I am generally curious what people who are trying to engage this problem see in the future.

</comment><comment><USER13> There seems to be a certain irony here that the recent "doing cryptography in the browser with JavaScript is a bad idea" articles seems to have spurred people's interest in doing just that! It's almost like the Streisand effect. Oh well.

</comment><comment><USER14> Can somebody provide some practical use cases?

<comment><USER15> Plausible deniability.

I can get you to encrypt data with your public key before I upload it to my server. If the cops ever come to _me_ asking for your data, I can say "Sure! Here's the pgp encrypted blob. Sorry, I never get to see the unencrypted data." (Unfortunately, as per xkcd #538, they'll then just hit me with a $5 wrench until I send you a version of the OpenGPG javascript that bypasses the encryption step…)

</comment></comment><comment><USER16> Won't really ever be useful for decryption unfortunately. Not until we solve the gpg+pcks11+browser smartcard debacle.

</comment><comment><USER17> are there any benchmarks for this piece's speed?</comment>


MIT Values - <AUTHOR> http://www.mitvalues.org <comment><USER2> This is fine but I think people should put more emphasis on acting on these values instead of declaring them. People will notice things quickly, there is no need to tell them all the time.

It reminds me of companies sending e-mails about innovation and agility while often acting exactly the opposite way. Just do it and people will notice soon.

<comment><USER3> While its hard to accuse MIT of being unscientific, actions do speak louder than words.

what did you have in mind? i agree?

</comment></comment><comment><USER4> Now all they have to do is label a dissenting opinion as one of those forms of discrimination or hate speech, and it's an instant win!

<comment><USER5> Their legitimacy and power as a group is based on their reputation for intellectual honesty. If they label a dissenting opinion as discrimination or hate speech, they would need to pair it with a reasonable argument otherwise their reputation would decrease. This is a good thing. This is how groups should engage in politics.

<comment><USER6> Exactly. It would be helpful if that document went into detail about what can be classified as discrimination, hate speech, etc. so as to make those terms less malleable and abusable. I also wish that it emphasized the intent of someone's speech and actions rather than the content or other's reactions to speech.

</comment></comment></comment><comment><USER6> To the people who are complaining about this sort of thing: where do you draw the line on free speech on college campuses? For instance would you want universities to allow students to use racial slurs, _with malice_ , in classroom discussions or paper, without any disciplinary consequences?

<comment><USER7> The burden of the proof is on the people asking for a line to be drawn to prove that drawing a line is necessary, at all. Until I see proof that students using racial slurs with malice causes significant harm, and this specifically because of the racial slurs, I do want universities to allow it.

</comment></comment><comment><USER8> The 'science isn't optional' part is a nice addition to the usual fare, but this is ultimately still the usual fare. And I think what bothers me about this stuff is that it sets such a low bar for human society. We reject hate. That should go without saying.

If you _are_ going to say it, there's a lot more you should say too: What precisely "hate" is, how to identify it, how big of a problem you think it is, and how it should be handled when it's found. _Not_ saying these things implies that hate is a much bigger problem than it actually is.[1]

What we really have here is quasi-religious rhetoric. Evil, hate, demons, and so forth. Who doesn't believe? Simply omit your name below so we all know who you are.

[1] Some (still quite limited) discussion on this point: [http://slatestarcodex.com/2016/11/16/you-are-still-crying- wo...](http://slatestarcodex.com/2016/11/16/you-are-still-crying-wolf/)

</comment><comment><USER9> Eventually activists are going to run out of categories in desperate and urgent need of stalwart defense. At some point it becomes simply a laundry list of fashionable trends in sociology.

</comment><comment><USER10> Is it too much to ask that universities allow a free market of ideas, without drawing subjective lines categorizing them as "good" and "bad"?

<comment><USER11> > Is it too much to ask that universities allow a free market of ideas, > without drawing subjective lines categorizing them as "good" and "bad"?

I love relativists.

<comment><USER7> I love dogmatists.

</comment></comment></comment><comment><USER12> What is the background for this? What is the call to action? This website doesn't seem to say much of anything at all...

<comment><USER13> agreed. what exactly is the message here?

<comment><USER3> the message is, "go to these people if you need help."

did you read it?

</comment></comment></comment><comment><USER14> This is stupid college drama, an online petition so lazy it doesn't even bother to link to announcements it is complaining about.

Seriously, what the fuck HN? This wouldn't have been tolerated even a couple of years ago.</comment>


Ask HN: rna-seq/dna-seq/computational genomics service company - <AUTHOR> I'm exploring with a friend the idea of creating a bioinfo services company focused on ad-hoc analysis of rna and dna sequences. I'm wondering if you know any other firm with this focus that I can do some research on?
I'm mainly trying to see if there are successful examples and to better understand the market. While there are many sequencing labs, we are not familiar with any bioinfo-only firm to process the data and run analyses.
Context: right now my friend is working as a bioinformatician in a university-sponsored research lab in Europe and mainly running internal analyses. Sequencing is done by third party labs as their center does not have the required equipment. His focus is rna and he has built a large suite of pipelines to execute several specialistic analysis on the data. As for myself, I'm an engineer and currently dipping my toes on computational setup for rna analysis pipelines.
Thanks for any input! <comment><USER2> Ex-bioinformatician here :) I had a very similar idea during my post-doc but gave up as I realized how difficult it was to deal with research groups (labs). They would usually just hire an intern bioinformatician using grant (or extra) money instead of dealing with an external company. I am only talking about Switzerland, I don't know what the situation is in other places. You can check these two companies and maybe reach out to ask some questions: \- [https://genexa.ch/](https://genexa.ch/) \- [https://www.fasteris.com/dna/](https://www.fasteris.com/dna/) Good luck!</comment>


What happened to FreedomBox? - <AUTHOR>

It definitely looks like we'd _all_ now need FreedomBox, like yesterday: https://www.freedomboxfoundation.org<p>Does anybody know why that project seems to be dead? <comment><USER2> Not sure. Maybe the community behind it wasn't that big. The community behind this one keeps growing:

[https://projectmeshnet.org/](https://projectmeshnet.org/)</comment>


Show HN: GitHub Bot to Limit Pull Requests - <AUTHOR> https://github.com/Schachte/WIPCream <comment><USER2> Git-enforcer seems like it addresses a need, but I can't really see a use case for this.

For any creator/organization willing to enable this, stale pull requests will have a good reason. eg it was started by a person who is no longer actively working on the project. Having a few stale PRs isn't a big deal.

Is there a specific reason this was created? Git-enforcer has only 12 total (closed) PRs and the default max open PRs is 10.

<comment><AUTHOR> Hi there. I was considering adding this to gitenforcer, but just needed a small fix. There was an issue at my company where too many PRs were getting put up and not enough people reviewing.

This is a tenancy of the agile methodology to have some sort of WIP, so we tried it out as an experiment and it greatly improved pushing PRs through to master.</comment></comment>


How we Cuke - <AUTHOR> http://blog.gaslight.co/post/48277232128/how-we-cuke

<comment><USER2> Page objects are the best things to happen to my cuking. Step definitions are a couple of lines at best and I'm dealing with a real Ruby object instead of some node from Capybara. I'm excited about Cucumber again.</comment>


List of projects accepted into Google Summer of Code 2013 - <AUTHOR> http://www.google-melange.com/gsoc/projects/list/google/gsoc2013

<comment><USER2> Yay!! I'm there :)</comment>


Ask HN: I'm 19. Should I leave my education for my startup? - <AUTHOR> I have 2 more years left before I graduate with a Bachelor's degree in computer science. I started helping a start up for quite a while and now we got our first seed round. I can take a maximum of a year leave from university to work on the start up full time. But I have to come back to my university after that or the university will kick me out.
The founders want me to join as a founder as well with stakes. But on the condition that I leave my education after a year if the company is successful by then. Otherwise, I can join as an employee for as long as I want.
I'm not 100% sure if I want to leave my education. But I want to be a founder at the same time and I think that this startup has a lot of potential. What should I do? <comment><USER2>
       > I'm not 100% sure if I want to leave my education.
       > But I want to be a founder at the same time and
       > I think that this startup has a lot of potential.
       > What should I do?

Finish your degree.

Unless you personally have some idea that you just cannot get out of your head and you spend every waking moment on it and its getting traction like crazy and already making you enough money to pay your school bills, and even when you're in class you're thinking about ways to boost sales and new product ideas, stay in school and finish your degree.

I can predict, and be probabilistically accurate, that the startup that you're considering is going to fail. Or worse, get just enough traction to be acqui- hired where you will then be discriminated against at the hiring company because you don't have a college degree. Finish your degree.

One of the biggest challenges you will face early on is that you don't know enough to know what is and what isn't important. You have to make guesses. Don't stress it, everyone does, but having a CS degree on your resume will help you more through out your career than having "dropped out of school to work at failed startup X". Finish your degree.

Think about what it looks like when you are 29 looking back at your choices at 19. These are the choices :

1) Got their CS degree at 21 - went on to ...

2) Dropped out of school to work at <x> which failed

3) Dropped out of school to work at <x> which was later acquired by <y>.

4) Dropped out of school to work at <x> which made the front page of the Wall St Journal when they crossed a $100B valuation in just 5 years.

Guess what #4 isn't going to happen. #3 is the next least likely, #2 is the most likely, #1 is completely within your control and guaranteed. Go for the sure thing, get your degree.

<comment><USER3> Please note that dropping out of school and going back later is also a choice. I am appalled that many people tend to dismiss this alternate path. College will not go anywhere. It'll be there to go back to if your startup fails and if you really need to get a degree then.

<comment><USER4> Ehh... that's true, strictly speaking, but a bit glib in practice.

Sure, I know several people who went back and finished their degree, taking night classes in their late-20's or 30's or whatever. However, those people had to BUST THEIR ASSES to make it happen. It required several times more effort than it would have to simply complete it in the first place when you're young and untethered.

The more you age, and the more responsibilities you take on in terms of job, rent/mortgage, marriage/family, etc... the harder and harder it is to make room for night classes (much less becoming voluntarily unemployed, and forgoing salary to return to school full-time). College is a window. It never completely shuts, but the open space does slowly close over time.

<comment><USER5> But at the same time it's a chicken egg problem for many people. Not having money to attend a uni is a big problem for a lot of us. I and my family simply did not have the $$$ to take the chance. And i am talking about actual living expenditures as the education is "free" here.

</comment></comment></comment></comment><comment><USER6> Can't answer, but can give you some perspective:

1\. Most startups fail. That's true of funded startups; indeed, it's true of startups with institutional A and B rounds!

2\. Most teams have a story they tell themselves about why they're different than all the other doomed startups. The story might be valid. Or maybe not. Either way: the existence of the story doesn't predict anything. Story or no, in the metaphorical poker game of business, every new startup is a jack-high hand, _at best_. Don't kid yourself that you're holding even a middle pair.

3\. There's a narrative about how easy it is to start a startup in your 20s that is, I think, mostly bullshit. I've been doing startups non-stop since I was 18, got married & had first kid at 21, and, coming up on 17 years with my partner (both life & biz), am now on my Nth startup.

4\. There's another narrative about how easy it is to go to school when you're 18-21. That narrative is _not_ bullshit. It is very, very hard to collect college credits once your real life starts.

5\. No matter what you do, unless you get much luckier than most of us, you will always have a gnawing concern that life is passing you by or that you're missing opportunities. If you're going to be a startup person, you are going to become over-sensitized to opportunity costs. The feeling that you _must_ jump on "this" precise opportunity is almost always going to be wrong.

Keep that stuff in mind when you make the decision.

</comment><comment><USER7> Do not quit your degree! The founders do not have your best interests at heart, their minds are focused on the success of the venture. They cannot offer you a degree, whereas a degree can offer you future opportunities. Whether the appeal of the startup for you is money, fame, or sincere deep passion about the subject matter and advancing the technology, you will be able to pursue these in the future as well. I would completely agree with ChuckMcM about the statistical analysis too -- from a strict weighing of the odds, you are better off with a degree. I would also agree with the analysis of angersock -- he knew you were their tech person because of the position they put you in. What the crowd seems to be saying, to a person of only 19, is that one should bear in mind that the young have a tendency to prefer locally optimal decisions over globally optimal ones, and that one should compensate for that bias if they can. Echoing angersock again, unless the tangible offer on the table is mighty substantial, you should continue to invest in your education, at least until it reaches its next plateau. Good luck!!!

</comment><comment><USER8> If you're a programmer, and it sounds like you are, then degrees DO NOT MATTER for you career wise. Your coding ability matters most and after that your actual experience in real business. If your startup does not work out and you end up looking for a job somewhere else, the startup founder experience on your resume will help more than any degree. Any of employers that you would really want to work for, like one of the million funded startups out there, will look upon you pursuing a startup fulltime as a founder, win or lose, as a million times more favorable than sticking with some lame Bachelor's degree like the other thousand applicants. You aren't leaving your education, you are leaving the chains of your institution to get a real education in a real business. Universities will always be there teaching the same old curriculum forever, finish your Bachelor's in a decade if you really think it matters at that point, you won't because it doesn't matter, but you could if you wanted and that's nice to know.

<comment><USER9> _" If you're a programmer..."_

There are many different kinds of programmers. If you want to hack web or phone apps for a startup, a degree may not be necessary. But if you want to work on software that requires significant algorithmic or math knowledge (e.g., building something like Photoshop or Google search), the formal knowledge that you'd get from completing a CS degree would probably be helpful. (Remember that the guys who founded Google weren't college dropouts - they were PhD students at Stanford.)

The original poster may decide after a few years that they're tired of working for startups (or startup funding may dry up), and having a CS degree would give them many more options on what kind of jobs they could get. Big companies like Google or Facebook have a tendency to hire people with degrees. A degree from a well-known university serves as a signal (whether justified or not) for quickly sorting through the huge stacks of resumes that these companies receive.

So I'd agree with the advice that others have already offered: finish the degree to keep your options open; there will be other (perhaps better) startup opportunities in a couple of years.

<comment><USER5> The formal knowledge can be obtained elsewhere anyway. A degree from a well- known university is cool but most of us are not 1% and even if you get there it does not mean you can survive. Some people really hate academic soil.

</comment></comment></comment><comment><USER10> Saw this[1] in TechCrunch earlier today and you may find it helpful/insightful.

> I want to be a founder

Two years down the road may seem like a long time but it flies by (e.g. it probably feels like yesterday you were in high school).

> I think that this startup has a lot of potential

Every founder thinks this but the fact is most of them fail. That doesn't mean founding a startup is a foolish endeavor - just that it should be kept in mind as inherently risky when making the decision.

> What should I do?

Since you can return to school in a year with basically no penalty (you would have "lost" a year, but you would have learned/experienced a lot of real-life stuff in the meantime) it might be worth giving it a year and seeing how it goes. Keep in mind a year may not be enough time to see if it will ultimately be successful or not - many incredibly successful companies didn't look like much at the end of their first year and many companies that fail linger on for much more than a year.

[1] [http://techcrunch.com/2015/06/20/the-startup- illusion/](http://techcrunch.com/2015/06/20/the-startup-illusion/)

</comment><comment><USER11> I wrote this on the subject:

[http://jacquesmattheij.com/Dropping+out+is+probably+not+for+...](http://jacquesmattheij.com/Dropping+out+is+probably+not+for+you)

'With stakes' would need to be defined as well as how strong the business is. Start-ups fail roughly 90% of the time, and there will be plenty of them to choose from when your education is completed.

Good luck with your choice!

<comment><USER12> I really liked it, I invite every college student to read it. Thanks.

</comment></comment><comment><USER13> Finish school.

You're only young once. Why waste your youth working, when you have the rest of your life to work? Explore school, explore intellectual pursuits, learn things that actually interest you without the constant stress of worrying about work.

Your startup idea will likely not make any money, you have less than a 5% chance of success. Go with the numbers and enhance yourself by staying in school.

</comment><comment><USER14> In general, I would recommend against it. You're 19, and you [probably] have no experience starting a company. Likely, the other founders haven't got much experience (or success) either, or they wouldn't be offering a piece of their pie to a 19 year old kid -- unless that kid was a super-genius and was the key to making the whole thing happen.

So ask yourself a few questions: Is having you on board the only way the startup will succeed? If yes, then ditch those losers and do something better. If no, then you probably should be finishing your degree as the sensible thing that normal people do.

Most "entrepreneurs" work their entire life and are far more likely to create a stomach ulcer than the next Facebook. You might say, "Mark Zukerberg was a college dropout, and he did alright" but Zuck dropped out from Harvard. Dropping out from Harvard means that he got into Harvard, and it is not the same thing as dropping out of a public university. I'm not trying to be mean, but I don't want to see you lose some very valuable years off your life because you got caught up in a pipe dream.

You didn't give a lot of detail about the start up, but this opportunity is likely small potatoes and is only exciting sounding because you are 19 and money seems a lot different to younger people.

On the flip side, this could be valuable experience for you. Take a year off, and when the company is obviously floundering, ditch them and go back to school. If the company has managed to secure a billion dollar valuation, then congrats, you'll be rich. But don't stick around for a second year if the company hasn't obviously made it by that point.

</comment><comment><USER15> Don't trust "the founders" or their venture capitalist overlords. Put yourself and your education first.

Use your time in university to explore more than compsci; get a double major in business or design, study anthropology or archeology, learn about the last 3000 years of technology, use the university to make yourself smart and more able than you are now.

Trust yourself, you are your best investment if you take the opportunity to grow.

</comment><comment><USER16> Rather than telling you what to do, I'm going to ask a question you should be asking yourself. __What kind of person are you? __Are you the type of person who needs guidance? Or, are you the type of person who can manage your education in your own hands?

I believe your success is purely based on how you attack the challenge of success. If you can take control of your education, social life and whatever else you need to succeed then you certainly don't need college. However, if you can't do these things then you'll be making the biggest mistake of your life.

</comment><comment><USER17> > But I have to come back to my university after that or the university will > kick me out.

At least in the US (I have very little knowledge of how college works outside the US), I wouldn't let this university policy play too much into my decision. A school might make you apply for readmission, but the readmission process generally isn't all that arduous, especially if you were doing well in school before your departure and you left (and stayed away) for good reason. "I have a solid transcript, I left to work on a startup, I stayed for n years because the startup was successful, and now I want to resume my studies" would pass muster for readmission to any school I'm familiar with. If you want some bonus points, maintain your relationship with a faculty member during your absence, and ask them to put in a good word for you on your return.

And if that fails, then there are lots of other universities out there who accept transfer students.

That being said, I'm not sure I'd recommend a startup if you're not 100% sure you want to do a startup. Even if your company is successful, you're going to have moments where you want to give up. If your starting point is "maybe this startup thing isn't such a great idea," it's a lot harder to power through the trough of despair. (Also, there are the practical reasons other people have pointed out, but I'm not sure that playing your cards conservatively is always the best move).

</comment><comment><USER18> One point to consider: you want to be a founder. If you're not in the US (I can't tell if you are), and you want to be a successful founder, it is very likely you'll need to move to the US at some point. That's very hard to do without a degree. Just FYI.

On the question of whether you should leave, I think it may be helpful to think of this startup as a high school love. Imagine you're 15 or so, and just met the guy/girl of your dreams, and are infatuated. You picture yourselves being together forever, getting married, settling down and living long happy lives together. You want to drop out of high school so you can get a job so you can move in together. It'll be amazing!

Most adults will look at that story and know the answer. You're just infatuated because it's your first love. It's probably not going to work out anyway, once you do live together. There will be more loves and more opportunities.

Now to give you the other perspective. I know a bunch of people who dropped out of college to be founders or founder-ish roles. Some of them founded or joined incredible startups (Stripe is a great example), have made a meaningful impact on the world (and a bunch of money too, though it probably matters less to them).

Of course, it's very hard for you to tell which of those situations this is...

<comment><AUTHOR> I'm Korean and currently based in Hong Kong. And the US is definitely a place where I want to move in the long run. Thank you for your helpful point about moving to the US.

</comment></comment><comment><USER19> I see very few people asking what jenny_2's long term career goals are. If your desire is more entrepreneurial then take a year off and make a decision later as to whether you go back. Things change dramatically in a year (especially in a startup) so if you commit to founders now to stick it out and decide in a year to go back to school so be it. I guarantee you their commitment to you is just as loose given you make it big.

I see this as a much simpler question of whether you are going to take a year off. All the variables for which you base that decision will change over the course of the next year so start with the first step and if you choose to leave let the rest play out over time.

In my own experience leaving school is the right choice for some. I left school for startup in the original 90's boom and although I'm not a Zuckerberg I have had great experiences with startups successes and failures. I've also had no issue growing into an executive role in the valley along with a "seat at the table" where colleagues went the more traditional college route. I will however fully admit I am not the norm.

</comment><comment><USER20> Honestly there's no good answer to this. Do you like excitement, thrills, terror, and chasing opportunity at the expense of all else? That sounds like dropping out. Do you like enjoying less real world responsibility, learning in a structured environment, taking a safer path, etc.? This sounds like staying in school (if you can afford it).

One thing I can say is this... It's hard to find a wave worth riding in business. If the startup already has traction and is taking off, you may never again be in that position to enjoy that kind of excitement. If you're just hacking away at something that is more of an idea, and the only thing exciting is that someone put in some money, that is less exceptional communication in my eyes.

Whatever you do, decide for yourself. If you're seeking greatness in yourself and for those around you, chances are you'll do just fine on which ever path you choose.

Good luck to you. Now go blaze a glorious path that makes a dent in the universe, and enjoy the ride.

</comment><comment><USER21> So, you have a year the university will give you, and a year the other founders will give you.

So, go to school for another year, and then if the startup is doing well, take senior year off--you can always go and finish later (like, credits are usually good up to five years).

That seems to be the most conservative/least risky approach.

You wouldn't by chance be their tech person, would you?

<comment><AUTHOR> The founders want me to join now and take a year leave from uni. And after a year, if the startup is still going good then they want me to leave my education as a founder.

I also happen to be the tech person. But I'm not the only one. So they can still survive without me.

<comment><USER22> > And after a year, if the startup is still going good then they want me to > leave my education as a founder.

Alarm bells ringing here. They are probably well meaning and honest, but the potential impact in the event they're not can be horrible.

You'll want it iron clad in writing _now_ what you'll get after a year and how it is structured.

You want to make sure it's done in a tax efficient way. There are several complications here: If they award you shares or options after a year, you either lose out on the value increase in that year, or you risk getting taxed on the different between whatever price they offer it to you at and the market value in a year. If you're putting your education on hold now, presumably you would like to gain from the potential increase in value over the coming year. Especially as most startups never reach the dizzying heights of multi-billion dollar valuations and the biggest multiples on valuation you might see might very well come in the coming year.

Depending on jurisdiction there are many ways to protect both your interests (getting part of the value increase over the coming year, and avoid excessive taxes) and theirs (making sure you don't run off after getting your shares, and ensuring you have strong reasons to stay). E.g. an option plan starting _now_ with a "cliff" that means the first chunk doesn't vest until a year from now (though options are tax inefficient most places), or letting you buy shares now (at presumably rock bottom valuation) with some claw-back provisions if you leave before certain conditions are met.

The only way of knowing what'll be best for you is to make sure to talk to a lawyer and/or accountant versed in local tax law. Many places will be willing to give you an initial consultation for free or a low fee, and will be able to at least advice you what they think will be feasible to achieve before you need to commit to paying more to actually sort out the paperwork.

(If the current founders are not willing to work with you to get proper paper work in place, run for the hills - in that case they likely have no intention of honouring whatever they've talked to you about; if everything is above board, a proper agreement will safeguard their interests as much as yours)

</comment></comment></comment><comment><USER23> I used to be in a similar situation, asked to join a startup as a founding member just after starting my school in automation engineering. Graduated in 2007.

Then I didn't really understand the meaning of going to school, but I was naive. Now as I look back, I can say going to school and graduating was some of the nicest time in my life, not having to work full time and being able to take days off from studying when I felt like it and meeting friends. And most importantly learning engineering skills like physics and math I wouldn't have had the interest to learn by myself.

These skills and understandings have come really handy later, and have made the basis for the work I've been doing independently now later.

So my suggestion is to graduate. You can have the time to worry about working with software and "real life" for the rest of your life, enjoy studying while you can !

</comment><comment><USER24> Get your degree.

I personally think that the tertiary educational system is broken so far as CS goes. However, a DEGREE OPENS DOORS: many more doors than that one single partnership.

That's coming from a guy who left his degree for a job. Despite being one of _the_ most senior devs at a $200M still stares at closed doors on a daily basis.

</comment><comment><USER25> Given that most start-ups fail, there is necessarily an element of gamble in doing one, and the classic advice 'only gamble what you can afford to lose' is classic for a reason.

Thus, when thinking of doing a start-up, ask yourself: in the reasonably likely event that the start-up fails, are you okay with that outcome?

If you end up in a couple of years time with neither the start-up nor a degree, are you okay with that?

If your answer is 'yes, sure, there's plenty more to life than start-ups and degrees' then by all means go for it.

If your answer is 'hell no, I really want at least one!' then play it safe.

</comment><comment><USER12> I won't go into details, I'll just tell you I hate college, yet I do the logical thing and keep going. Just make yourself a favor and finish, it's only two years. Don't you think, than in the next half century, you will be be founder of something awesome? Do you really think this will be your only chance? Do you really want to gamble your future, for the low equity they are going to offer you?

I don't have the insider info you have! So finally I'll tell you this, do a list of pros and cons, be truthful, analyze it and decide. Good luck with your choice.

</comment><comment><USER26> I started working for a startup when I was your age and had two years of my degree left. Luckily, they were happy for me to work part-time. The company ran out of runway shortly after I graduated and was acquired (for peanuts, as far as I was aware). I didn't realise this at the time but this is a far more common outcome for a startup (failing, rather than making it big). With the benefit of hindsight, I'm glad I have my degree.

My advice for you? Make sure you earn your degree. You will have further opportunities to found a startup.

</comment><comment><USER27> Finish your degree. Other opportunities will come along, and there's a good change you will choose to do something else after finishing school (nonprofits, research, public service etc.)

</comment><comment><USER28> There's no reason this company can't make you a founder with a year cliff. When you hit your year mark you can decide at that time if the company is worth remaining at relative to school, and if not, continue on with your education. Forcing the question right now does neither of you any favors. I wouldn't assume that the founders are being disingenuous, but simply don't see this pretty reasonable (and probably better) alternative.

</comment><comment><USER29> Important detail, are you paying for your education yourself? Did you take out loans? Are your parents paying for all of it?

If you can start a lucrative career (regardless of whether this particular startup succeeds or not) without paying the insane price tag on a degree, it's certainly worth considering.

I dropped out when I was 19 and it was a good decision, YMMV

</comment><comment><USER30> Can you do part time? I've been doing half a week of work and half a week of studying at university for the last 5 years. It's hard to manage sometimes, but it was totally worth it. Since I've also been upfront with everyone, they all knew that I just couldn't make some meetings or lectures and were okay with it.

</comment><comment><USER31> HERE, I did that if it is a good startup it can help, but... You have to Know the Truth ... [https://www.youtube.com/watch?v=CKFteasqocM](https://www.youtube.com/watch?v=CKFteasqocM) Watch this and follow the OpenWest.org

</comment><comment><USER32> Finishing your education is the better option given a long-term perspective. You can always join a startup after you're done with school. At least you'll have something valuable even if the startup fails.

</comment><comment><USER33> Depending on the company's idea, execution and plans for revenue, absolutely go for it. You will learn far more being an exec at an early startup than you will sitting in a classroom.

</comment><comment><USER34> Don't do it. I left universitet for job and now I can't leave this f*ing country (Russia) because every country requires "degree" for visa, even for crappy positions.

</comment><comment><USER35> I have several friends who completed the 8 years bachelor's degree with zero dept.

Anyone who forces you to choose (before you have completed your first degree) is trying to take advantage of you.

</comment><comment><USER36> Seems to me you might be kicking yourself for years if you don't take this opportunity while its available. Hate to say it, but school will be there should it not work out.

</comment><comment><USER37> No. Stay in school. You have a better shot at success!

</comment><comment><USER38> I think it's a great idea to take a gap year halfway through college. If it works out, great and if not, you finish your degree.

</comment><comment><USER39> Education.

After two years, you haven't yet got to the good part of your major yet.

Startups are a dice roll with bad odds. There will always be another.

</comment><comment><USER40> Just do both. Take fewer courses.

</comment><comment><USER41> If you listen to everyone here, they'll ask you to finish school. That is the safe bet and "prudent" choice.

If you want to be a founder, you'll never be comfortable taking the "safe" route. Go for it. Do it when you're young and you're able to take risk. No regrets, whichever path you take. Good luck.

<comment><USER7> She can do it when she is young after finishing the degree. She will still be young at 21 and she will still be able to afford risk at that point. The other thing to note is that people found companies at all sorts of ages. If she has that founder spirit, she will find a way.

<comment><USER5> And you know zero about her/his background. She/he is korean meaning that the society puts a lot of pressure at her and mostly her life / career has already been predetermined which i have to say is fucking unimaginable for a lot of people. She wants to change that and take a risk and explore the endless possibilities. Do you know what does it mean to finish the degree in Korea ?

<comment><USER7> I stand corrected. Am I to understand that finishing a degree actually closes doors as opposed to opens them in Korea? That a degree earned in Korea is not worth much elsewhere? And that in two years she will have further cemented a life that she is doomed to live? If so, then I would have thought that she would have no desire to finish the degree and would not be conflicted to begin with. But you are right that I do not fully know the circumstances and should not be eager to dispense advice. Maybe she wants to finish the degree for the sake of someone else, though there was no mention of this. I was assuming a "she" due to "jenny" but it could be a "he". I would love to learn more about the tradeoffs in Korea. Given the long term desire to be based in the states, you and I are making an excellent point -- it is worth considering that people outside Korea may not be fully aware of the tradeoffs. In my defense, the question was directed at a global forum without the context being fully presented initially...

</comment></comment></comment></comment><comment><USER42> Dropping out now is like driving around without a seatbelt for the rest of your life.

</comment><comment><USER43> No, although there are lots of counter examples. Go faster and get a phd quicker.

</comment><comment><USER44> How much runway does the company have given what they raised?

<comment><AUTHOR> We plan to use all the resources for a year. If it really takes off then we'll go for the next round of investment. But they want me to finalize first whether I can join the next round if we meet our goals.

</comment></comment><comment><USER22> I left university at 19, and I don't regret it. A couple of caveats.

I posted elsewhere regarding paperwork. Make sure the offer is what it sounds like. If you give up your degree and end up getting shafted, it'll not be fun.

Secondly, it depends on your school, frankly. If you're in a top tier school, your odds of long term success by staying and building a personal network may very well be great enough to not be worth risking even if this startup seems very attractive.

On the other hand, if your schools CS program is relatively unknown, then it frankly doesn't matter much. _If_ you see the need for a degree later, ask yourself: Can you find somewhere in your current schools league to finish a degree? The reality is that outside the top tier of recognised names, nobody cares much what school is on your degree unless the interviewer/hiring manager happened to study there. In that case, consider the "risk" of not being able to re-enter your current program as pretty minimal: It will cost you some time, and maybe a bit of money if you belatedly decide you need to finish your degree, but it won't cost you a high value degree.

I'd be inclined to recommend to take the year for the value of the experience, but think long and hard about whether to go on after that year. It greatly depends on the success criteria the founders want for you to commit to stay on after the year. If the success criteria means you'll be able to put a good title in a (by then) high value business on your resume, nobody might ever ask about university again. But if their success criteria means you'll stay on in a ok but unknown business that's not growing very much, you should be much more careful.

For my part, I never went back. My first startup didn't do great, but it taught me more about business, sales, accounting as well as technical subjects than I ever thought I could learn in that short a time (or ever had any desire to learn, in the case of busines, sales and accounting...). It lead directly to getting high value (at the time) contracting jobs, as well as being hired into a senior developer job at 23 (at the recommendation of the lawyer of the guy that invested in our first business) that got me poached into a director of technology job at 24, and led to me meeting the people I co-founded my first VC funded startup with at 25.

At 28, I went back and did a degree via distance learning, and I now hold a MSc. But at the time, the only reason I did so was that the job market was weak, and I basically wanted to dot the i's and ensure I had a degree to put on my resume "just in case". In the years until I was 28, my lack of a degree never came up as I moved from place to place by virtue of personal relationships and never went through any formal interviews. In the years since it's mainly come up as a curiosity ("so how come you finished your degree after you'd gotten that much experience?" "oh, you know, just wanted to make sure I win the keyword bingo with recruiters in times when the job market is tough", pretty much, and that's it).

Of course, that worked because my first startup set me on a trajectory that gave me lots of experience quickly. If you do leave school, the one key thing to make sure of is to set firm goals for yourself for where you want to get and make sure you do go back to school the moment lack of that degree becomes a hindrance to getting where you want. E.g. if the startup is doing ok but not great, you need to think long and hard about whether or not it will give you enough experience and clout to compensate for lack of a degree.

</comment><comment><USER5> Are you korean studying in Hong Kong or in Korea ? Well i would say it does not matter anyway. People commenting here are mostly americans or europeans so they do not know about the education system in Korea. I would say do not go for the degree. Do not waste the talent and time. Most of Asian universities will suck up your soul.

Earn the money and go to uni in states or in europe.</comment>