skysight-inc/HackerNews huggingface dataset:
Ask HN: Questions about using open source software for a SasS business. 
I am trying to determine what open source licenses (GPL/AGPL etc) offer the most flexibility for commercial SaaS offerings:

If you use open source software to offer a hosted SaaS solution commercially to customers, are you also required to

a) Give the users an option to download the original open source software?
b) Disclose that you are using an open source software for the site?
c) What if the software is modified and customized?

Note : The software will only reside on the server and the users will not normally have access to it. We may also modify the software to offer additional features.

Thanks!
true! lots of Indians I see have to do that. If you get a chance to come to mumbai, lets have a quick chat on general tech and all.
What a beautiful sentiment. Until I was in my early 30s, I was generally contemptuous of those who were struggling with weight issues, with physical or psychological pain, or with fear of death. I didn't mean to be so arrogant, and was generally not aware that I was at the time. I was not unsympathetic, exactly, I just didn't have enough personal context to grok others' internal state. I was young and healthy and financially comfortable, and with no one else to care for. It would indeed be sad to have continued throughout my life without seeing a bit deeper into the suffering of others. It would be sad to continue from this point without similar opportunities, though I think that once you have taken a first hard look, you can keep looking deeper without having to repeat old mistakes.
DMC might be less "charismatic" than pg, but is pretty aggressive at getting his message out there.
If "Successful incorporation of remote work boils down to a few things that sound simple but are difficult in practice," and "difficult" actually means "impossible," then this writer's argument is … what, exactly?
I wrote more Java than I'd like to admit, all without an outline window: my setup for the last ~7 years is two emacs windows (emacs calls windows what the rest of the world call panes. it is strange like that) side by side.
This is cool. Thanks for putting this together!
SEO for scholarship
Not surprising comming from a workaholic who sleeps 4 hours a night and thinks one should have a baby and get back to work the same week.
Great timing on this as I just had to explain this to my wife last week, will link her to this for a slightly more cogent explanation then I was able to give during the movie.
The naysayers have probably never dealt with real, persistent credit card fraud. I have. I think this is a beautiful idea that will do a lot of good for us.

I run a B2B SaaS company that attracts its fair share of fraud. If we simply string these bad actors along instead of banning them outright I think we would see a decrease in fraud attempts.

Of course this would only be a manual thing. The vast majority of our customers come from sales channels and not through the web or search referrals. This will work great for us as we already have a manual account approval process. Instead of banning them, we'll hellban them.
Password length and complexity aren't all that critical if it's salted and hashed. Locking out a user after a number of incorrect attempts and then requiring a different password during the reset than the one already used is a better alternative.

Reusing passwords on different sites is a much bigger problem IMO since a lot of places still don't store passwords correctly or don't lock out users after failed attempts.
Upvoted for the title. Reading the post now.
Its empty.

class Tock
VERSION = "0.0.1"
# TODO: IMPLEMENT ALL THE THINGS
end
I mean, you're probably not that much older than me if you grew up watching 80's movies. I'm not exactly some undergrad considering dropping out to start the next facebook. I've finished graduate school, a postdoc, and am on year two of two startups. Arguably, I grew up more on Star Trek: TNG, but you sound like you can't be more than 10 years older than me.

If it helps inspire you at all, my dad started a non-profit at 30 (when I was 7), another one at 35, switched careers at 40, switched again at 45, and switched again at 50. And has every intention of continuing to switch regularly as soon as his job gets uninteresting. Life doesn't stop at 40 unless you decide to let it.

I do get what you're saying about having a boss. I find it frustrating too. I find my 2-day a week part time job much more stressful than starting two companies most of the time. Not because it's quantitatively more work, but because it's work that's not something I'm doing of my own volition.

That said, the more independent you present yourself in looking for an actual job, I suspect the more independent you'll end up being in a final position. I suspect that if you end up as a director of research and development, or a vice president of systems development, or whatever you will find that in practice you are extremely independent.

Sorry if that de-motivates you ;-) It's just how I would approach the problem you describe. Unless you were watching cartoons in the 60s, you're not too old to keep getting more awesome.
Thanks, I'll get rid of that.
Sometimes it's easier to see things line up.
Hey Kelly, no problem. Thanks for building Designer News in the first place, it’s awesome!
Nitpick: that's an issue with JavaScript, not JSON.
Coffeescript is Great
You are correct, it won't affect the omnipresent Google because virtually everyone has visited their domain at some point. This will target alternatives to Google, leaving us with one company to do effective advertising.

How is this in the interests of the end user is beyond me, really.
I wish I could work a 7 hour day and magically be in my bed 0 seconds after it ended.
I looked at the links in the article and its comments, but this one seemed much more "immediately useful" for me: (and not China-specific either, you can pick any ISO country code to add to your iptables)

http://www.cyberciti.biz/faq/block-entier-country-using-ipta...

If you have a linux-based router, this can be a 5 minute job.

In fact, I'll save you some time. I modified the script slightly to better suit my needs. Enjoy:

#!/bin/bash

# License: any/both of the following: public domain or MIT
#
### Block all traffic from AFGHANISTAN (af) - ISO code ###
#
# you will need to do the following setup steps manually:
#
# iptables -N drop-by-country
#
# for a in INPUT FORWARD OUTPUT
# do iptables -I $a 1 -j drop-by-country
# done
#

ISO="af"

IPT=iptables
WGET=wget

SPAMLIST="drop-by-country"
DLROOT="http://www.ipdeny.com/ipblocks/data/countries"

for c in $ISO; do
tDB=$c.zone
#rm -f $tDB
[ -f $tDB ] || $WGET -O $tDB $DLROOT/$c.zone || exit 1
done

# convert IP and mask to decimal IP (32-bit value) (and leave mask unchanged)
BADIPS="`for c in $ISO; do cat $c.zone; done | awk 'BEGIN{FS="."}
{
if ($0 == "" || $0 ~ "/^#/") next;
mask=gensub("^[0-9]*/", "", "", $4)
n=gensub("/[0-9]*$", "", "", $4)
n=(($1*256 + $2)*256 + $3)*256 + n
print n " " mask
}' | sort -n`"

# merge adjacent IP ranges until nothing changes
N=""
limit=20
while [ "$N" != "$BADIPS" ]; do
echo "simplifying `echo \"$BADIPS\" | wc -l` rules"
N="$BADIPS"
BADIPS="`echo \"$N\" | awk 'BEGIN{p1="";p2=""}
{
n1=\$1
n2=\$2
if (p1 != "") {
e=2 ** (32-p2)
if (n2 == p2 && int(p1 / e) % 2 == 0 && int(n1 / e) - int(p1 / e) == 1) {
n1=p1
n2--
} else {
print p1 " " p2
}
}
p1=n1
p2=n2
}
END{ if (p1 != "") print p1 " " p2 }'`"
limit=$(( $limit - 1 ))
[ $limit -eq 0 ] && break
done

# convert back to IP format
echo "$BADIPS" | awk '{
o4=$1
o1=o4 % 256
o4=int(o4 / 256)
o2=o4 % 256
o4=int(o4 / 256)
o3=o4 % 256
o4=int(o4 / 256)
print o4 "." o3 "." o2 "." o1 "/" $2
}' | while read a; do
echo "$IPT -A $SPAMLIST -s $a -j DROP"
$IPT -A $SPAMLIST -s $a -j DROP || exit 1
done

# let me end by just saying that blocking an entire country is the WRONG solution, though it might be considered part of a "layered defense" strategy. On the other hand, if you want to apply this to your home router and play with it, that's a different story.
Requiring strong passwords doesn't help if users enter the same strong password on every site, and one of those sites is compromised in a way that exposes plain text passwords. This has happened many times in the last few years. Personally I use separate passwords for every site that matters, but there's no way to force users to do this.
Nike Barkley Posite Max Shoes Cheap Sale
I have some code to keep the undo/backup/swaps in a sane place... http://stackoverflow.com/questions/4331776/change-vim-swap-b...
I've always been a fan of the .INI syntax but the lack of a standard (which I think Microsoft should have championed) made the format hard to use consistently. There have been attempts at standardization [1] but, alas, they never spread widely enough. In light of the above, I'm glad to see an INI-derived format with a real spec -- not necessarily because it might replace JSON but because it might replace INI.

Speaking of INI, for the longest time the killer app for INI files for me was persistent data storage in batch scripts (.bat/.cmd files in Windows 9x/NT). Using a command line utility like [2] or a similar program from IBM that sadly wasn't legally redistributable you were able to achieve persistence with minimum effort, which would otherwise be difficult to program in batch. I even wrote a portable clone of inifile.exe for MS-DOS and Linux to be able reuse my scripts more easily. TOML would sure benefit from the same.

[1] http://www.cloanto.com/specs/ini/

[2] http://www.horstmuc.de/wbat32.htm#inifile
For my case, I always see newrelic retarget ad. I need to check newrelic everyday for work. And after that every time I watch a youtube video it shows me a newrelic ad. I am already a Pro Annual user, I can't upgrade my plan anymore. They should not retarget current user.
Not all are necessarily bad advice here. But YOU SHOULD CONSULT A LAWYER nevertheless.
I am not a lawyer (contact one!), but your choices will be to either settle ($$$) or fight it ($$$$). A quick Google search tells me that these guys have sued quite a few people over this, and you might be able to put together some sort of class-action suit with the other licensees.

Contact a lawyer.
I didn't mean to say that all windows users do this, or that users of other OSes don't do that, but based on my experience most of the people who work with just one maximized window are windows users.

I don't want to start an OS flamewar though, so I'm going to restate my guess as:

I'm guessing most of the wide screen "haters" are people who are used to the "one maximized app at the time" workflow.
The other important function of hellbanning, and why I'm considering using it, is that by obscuring the moment you decided to execute the ban, you make it more difficult to reverse engineer what the criteria were. That makes it harder for an attacker to make progress in circumventing your protection.
Have you contacted "Arctic Surf Designs", the people behind TTCfetch? I don't know their situation, but at the pricepoint I imagine they are using an API as well. https://itunes.apple.com/us/app/ttcfetch/id444836893?mt=8

I'd venture to guess that they also received a notice ...
How to get things done? Use existing tools unless they are not suitable.
What's your skill set? And do you have a link to some stuff you've made? I might have some work for you.
My .vimrc does this. I haven't used it much in perl (mainly bash, ruby, and python) but it should work fine.

https://github.com/docwhat/homedir-vim/blob/master/vimrc/.vi...

The important bits are vim's built-in omnicomplete and neocachecompl

Omnicomplete by itself isn't bad. I haven't seen any excellent documentation explaining how it all works, but even without my .vimrc I use C-X-f a lot to complete filenames.

Ciao!
Not to be paranoid but if the thing that could be hurt by this could be traced to your email address or Hacker News account you might not want to post it here...
I'd agree if JSON had a different name, but given that it is called "JavaScript Object Notation" on the main page (http://json.org/) there's an implicit expectation that it's somehow related to javascript.
Students to e-textbooks: no thanks
You should note that broken clocks aren't always wrong.

The OPs point is that a competent lawyer will be able to evaluate the relevant law in the relevant jurisdiction(s) and ask relevant questions before giving advice. While advice given on HN may sometimes be right in regards to the law, it is so often wrong that it's best to just go see a lawyer. (Or if you really think the advice is that good, bring the advice to the lawyer)

When dealing with the law and giving people options as to what they might do it's important to note that it's information and not advice. If someone actually gives advice on hacker news then you should definitely not take it. Someone giving information is generally the first clue that they the information they are giving might be relevant in their jurisdiction.
Independent booksellers sue Amazon over ebooks
That's not valid JSON either! (The second value has no key). Needs to be:

{ "because": [{ "80": "percent" }, {"of": "JSON", "is": "brackets" }] }
You shouldn't be asking startups this. Call small businesses and ask them.

Regardless, I worked for a small business while I was getting my BS in Business Admin. One thing I realized from this experience was that a lot of what I learned in business school was focused on the corporate world and not small business. A small business is much different than a corporation and I could argue that advice from an MBA would not be that helpful to a small businesses (to an extent of course).

Also, while this is only one data point, I can tell you that the small business I worked for would not use this service. This is because the owner would not seek out such help because he believed that running a business was something that couldn't be taught and that an MBA (who has never actually had a business) was not qualified to give any advice.

Edit: I reread your post and I think you might be considering startups and small businesses the same. I think you need to pick one of the two because they are significantly different.
Number theory/abstract algebra, which is the study of natural numbers among other things, is a form of set theory. And set theory is what mathematics calls type theory.
Yep. Law varies in sometimes obvious, sometimes subtle ways from jurisdiction to jurisdiction; any advice given over the internet runs the very real risk of being Wrong.

The law is serious business.
Boot-to-Guile
And how is this better than xml?

<owner name="Tom Preston-Werner"
organization="GitHub"
bio="GitHub Cofounder &amp; CEO\nLikes tater tots and beer."
dob="1979-05-27T07:32:00Z" />

<database server="192.168.1.1"
ports="8001 8001 8002"
connection_max="5000"
enabled="true" />

<servers>
<alpha ip="10.0.0.1"
dc="eqdc10" />
<beta ip="10.0.0.2"
dc="eqdc10" />
</servers>
My point is that there's a difference between the knowledge of how to call a library function and the knowledge of how to write one. It appears that you lack both.
When you open the book the two page spread is often landscape.
here's a new one css ever cookie, shit it out in an hour after reading this post: https://gist.github.com/taf2/5022672
It was supposed to be a metaphor, intended to highlight that no such disease is present and nor was it necessary to go about trying to diagnose what "the problem" with Colin was.

diagnose <-> disease

It clearly did not work as intended.
I think you are missing the point of using multiple windows. You don't need to have N number of symmetrical windows all the time. You can have e.g. a small IM window on the side and a twitter client underneath, a terminal at the bottom, etc.

Personally I even like partially overlapping windows, e.g. I can only have part of a terminal visible if I'm tailing a file, I just need to see if something comes and then I can bring it on the front.
Having a competent lawyer who understands the industry and can help with the best course of action is great. My point was - many lawyers aren't fit for this, and finding one is also a challenge.
its not even a fair comparison they both use different javascript engines. I won't comment on Apple's treatment with javascript on their mobile browser.
Per links on Duckduckgo, i installed FF plugins: noScript, privacyFix, doNotTrackMe, HTTPS everywhere, adBlock. Now maybe 5-8% of sites i visit show no content whatsoever, and maybe 1/3 of all sites total are broken. For those, Chrome

http://fixtracking.com/#firefox
do you have more details about how to use "TCP stack signatures"... is that like using SYN Cookies? Keeping track of the opening packet request and associating it back to a user via a real cookie maybe?
Looks familiar...

"BLOKK is a font for quick mock-ups and wireframing for clients who do not understand latin."

http://blokkfont.com/
5 Easy Ways To Be A Great Landlord Of Your Rental Apartment
I use HNES (Hacker News Extension Suite) and it's awesome.

Here's the GitHub link: https://github.com/etcet/HNES

etcet is awesome about contributions, I added a big feature and he merged my pull request within hours.

On top of making HN look way-more-awesomer, it also adds features like comment collapsing (best thing ever), inline comment reply, and more.

If you're a Hacker News user on Chrome, definitely check it out.
This has now been clarified - it is legal
I think you can do it in place with four pointers. The "trick" is somewhat generally applicable.
Using a barely-maintained .NET torrent library, of course!

I would find Patchy a compelling choice for Windows if it was a frontend to, say, libtranmission.
Cyber-Crime And National Governments
The ultimate computer workstation
When I was studying networking we used a network simulation tool called cnet[0], which has the nice property that it can do network simulation at different protocol layers as well as having different topologies. It can also simulate things like wide-area networks, noisy connections and so on.

Most of the assignments built around cnet were of the form of "Here is a network protocol that is half-completed. Write the transport layer", or "here is a fully completed network protocol that works with this topology. Now we introduce wireless nodes, modify the protocol to support wireless mobility".

[0] http://www.csse.uwa.edu.au/cnet/
Blocking 3rd party cookies breaks surprisingly few things. Sure, a few services might not work but you can add exceptions if you want to use them. Overall it has almost no negative impact on your web experience.
Agreed, I'd much rather have a normalized subset of YAML without the object serialization stuff (I don't even understand why it's there: why take a format intended to be read by humans and then muck it up with complex and dangerous object serialization notation).
nice, but was that around in 2004? anyway, it was written as an example for a coworker, who was going to implement it in a language whose name i have forgotten, but which was fortran 66 plus wrappers to c memory management, and which certainly didn't have suitable libraries...
The one thing I'd love to see more of would be a throw back to the old systems that allowed only a limited amount of upvoting of comments. As in, you can't just go and downvote or upvote as many things as you'd like, but you say, only have 5 per day or something like that.

I've seen this done with issue/bug trackers and it worked really well because then people just didn't go willy-nilly upvoting every feature request or bug, it had to be important to them.
And this is only 10% curly braces, not counting spaces.
Which I find to be quite odd [1]. Data types in `TOML` can be mixed at the level of the hash table. Arrays ought to be homogeneous.

[1] - https://github.com/mojombo/toml/issues/28
Python has ConfigParser which parses ini-style config files, I assume it uses some standard grammar.

http://docs.python.org/2/library/configparser.html
Would you rather see ads for the tanning salon or the hot waxing ads?? Really if you are a newrelic customer and only see their ads they are not running a very good campaign.. From a conversion perspective your are a waste of their money... But from the standpoint if getting you to come back and continue to use and talk about them - its working great
Hey that looks awesome! Loads of great features :)
The Whatever Button Likes It All
Why are there no true cross-platform filesystems?
Github commit page is updated a month ago.

See the Github development page for more.

https://github.com/pythononwheels/pow_devel/commits/beta1_au...
No information on pricing, sadly, but given that a similar phone (with a slightly better CPU and an IPS screen; there is no information about the screen technology used in the ZTE Open but I'd except it to be TN) running Android can be bought from a wholesaler for around $90 [1][2] for a single unit I expect it to cost no more than that when it shows up for sale online.

[1] http://www.pandawill.com/thl-a1-smart-phone-35-inch-ips-scre...

[2] http://www.aliexpress.com/wholesale?minQuantity=1&maxQua...
I really like the example you give and am starting to ge the academic usage. Thanks for this reply!
github likes daring escapades with sharks
You can use them to land customers from advertisements. Also, ask google not to index those.

Although you wont get any SEO benefit from these pages, your ads will see relevant landing pages and not a single landing page for all ads.
Password length and complexity aren't all that critical if it's salted and hashed.

Unless your users' passwords are something like "password" or their user names. Password length and complexity are important, if overplayed.
When was the last time you tried MonoDevelop? Xamarin has put in a lot of work on MonoDevelop over the past year or so -- in fact, they just released a major new version (4.0) and even contributed a bunch of improvements to the F# bindings:

https://github.com/mono/monodevelop
https://github.com/xamarin/fsharpbinding

BTW, F# also has emacs support, and from what I hear vim support is on the way:

https://github.com/fsharp/fsharpbinding
Fedora 19 which will be released on 2013-06-25 will include Guile 2 [1].

[1] https://fedoraproject.org/wiki/Features/Guile2
This is actually completely false. Most of these algorithms were specifically designed to make a specific intractable subcase of some algorithm tractable, not only in theory, but in practice. Most of them are completely practical, and together they constitute a really large portion of what we know about motion planning.
Squeeze a Lime 5,000 times and we will launch
Going into private beta on Monday!
>I realized it aided compatibility with languages that do not support homogeneous arrays.

Don't you mean languages that only support homogeneous arrays (or languages that do not support non-homogeneous)?

As the spec says that the array elements must all be of the same type, thus homogeneous.

If I a mistaken, can you please explain why?
> I've always assumed that anyone with the technical ability to install ABP immediately did so.

Why is that?
Yes, I will be doing that. I was just hoping to find someone who already went through this, because there are many transit apps out there.
Another option is Georgify:
https://chrome.google.com/webstore/detail/georgify/ofjfdfale...

I've been using it for well over a year without problems.
fwiw: This is how I read it too, I didn't get any sense of arrogance.
Rather than putting multiple deny rules in a chain, why not use xt_geoip? http://xtables-addons.sourceforge.net/geoip.php
It also depends what kind of a narrative you can build around it.

Chernobyl is easy: "Russian technology, bad stupid unsafe". When a US corporation is involved (and I expect this to be contested, all I can do is point to http://old.studentsforbhopal.org/WhatHappened.htm#DisasterDe... and http://en.wikipedia.org/wiki/Bhopal_disaster and ) it is awkward, easier to look away and forget.

And it matters who got affected, not so much "how many"
This isn't helping me when I wget the front page of HN and email it to myself.
please let's not bring XML into this. last thing we need is someone inspired to say let's all go back to XML.