Fast constant-time GCD algorithm and modular inversion - <AUTHOR> https://gcd.cr.yp.to/papers.html <comment><USER2> It seems "constant-time" isn't used to mean "the time taken is O(1) regardless of the size of the input n", but rather, "for a given input size, the algorithm is carefully written to do the same amount of work no matter what the specific bits of the input are, to defeat timing attacks". This took me a bit of time to figure out.

To illustrate the kind of thing it's talking about, consider the naive algorithm for computing a^n via exponentiation by squaring:

      total = 1
      while n > 0:
        if n is odd:
          total = total*a
          n = n-1
        a = a*a
        n = n/2
      return total

If n has k bits, and j of them are 1s, then there will be k-1 squarings of a, and j multiplications of total by a. An attacker who can measure the total time may be able to at least figure out the number of 1 bits in n. If they can get fine-grained observations of power draw or something, then they might even be able to tell which bits are 1.

Consider this alternative:

      total = 1
      while n > 0:
        maybe_total = total * a
        if n is odd:
          total = maybe_total
        a = a * a
        n = n >> 1
      return total

This will do the same number of multiplications, if you can convince the compiler to not do any optimizations. Note that it still has a branch, though, which might conceivably be detectable. To plug that hole, something like this might work:

      # if n is odd:
      #   total = maybe_total
      # becomes this:
        low_bit = n & 1 # i.e. 0 or 1 if n is odd or even
        mask = low_bit - 1 # i.e. "all 1s" or 0 respectively
        total = (total & mask) | (maybe_total & ~mask)

<comment><USER3> This is standard terminology within programming and cryptography. This is the only practical definition to use, as cryptography commonly deals with arbitrarily sized inputs, which can of course not all run in O(1).

A simple example of constant-time within this definition, as well as why constant-time does not mean O(1) in this context, is that of a comparator:

The most normal, and fastest, approach is to go through data in the largest chunks the CPU can handle, returning 1 immediately a mismatch is found, and 0 at the end under the assumption that no termination = no mismatch. However, this reveals information about the values compared, as the time it takes to compare reveals where the mismatch is located.

For constant time, your goal is to ensure that all data is processed equally regardless of outcome. You do this by effectively making the comparison a-b=c, or a^b=c, where a zero-result means equality. In reality, this would be implemented by XOR'ing the largest chunk the CPU can handle together, and then OR'ing the result with a global value starting at 0, overwriting it. This continues without termination to the very end, where you then simply return the running OR'd counter, which is either 0 for equality, or an arbitrary value for the opposite.

Both of course leak the length of the values compared, but the lengths in these cases are commonly known by the adversary, making its protection less relevant.

<comment><USER4> _This is the only practical definition to use, as cryptography commonly deals with arbitrarily sized inputs, which can of course not all run in O(1)._

It doesn't necessarily follow that any algorithm on a arbitrarily-sized input can't run in O(1) - for a trivial example there is an algorithm for _" determine if the input number is odd"_ which is O(1).

<comment><USER3> > for a trivial example there is an algorithm for "determine if the input > number is odd" which is O(1).

I would argue that this particular example cannot be considered a case of arbitrarily-sized input: There is only a single meaningful bit of information, which is the single bit accessed.

However, if you must, we can expand to clarify that the input is meant to include arbitrary _meaningful_ bits of information that require processing and cannot simply be ignored.

<comment><USER5> That's not how this works. What you're doing here is defining away the scope of the problem to make O(1) complexity analysis redundant. A bound of O(1) conventionally means that we can exploit some structural component of the input and the given problem to find a solution independent of the input size. If you redefine input size to the more narrow sense of inputs which don't have some sort of structural feature like that, then yes of course nothing is constant time. But then you're just shifting the difficulty of the problem around without much of a gain.

<comment><USER3> I see how you may think that, but I would argue that I am not redefining anything, as things turn nonsensical without this assumption.

It is not an input if it does not affect your output (I am sure a better formal definition exists—I usually hear "meaningful", hence my use of that). Without this restriction, any input could be arbitrarily padded, inflating input sizes and making an algorithms complexity appear lower.

I find the even/odd example to be an exceptionally clear case of an algorithm that takes a fixed 1-bit input: Its implementation on a little-endian machine does not know the bounds of its input, only the location of the least significant byte (due to byte-addressing).

Without a defined bound, such an implementation must be assumed to either take a single byte as input (here a byte read is an implementation detail, despite the algorithm only needing one bit), or the full system memory from the location specified as input regardless of contents (due to having used the word "arbitrary", the input is allowed to not fit in registers).

However, I admit that I am now entering deeper theoretical waters with regards to definition details that I am normally comfortable with. I do however not find any other definition to line up with practice.

<comment><USER5> _> I see how you may think that, but I would argue that I am not redefining anything, as things turn nonsensical without this assumption._

The point I'm making is that this statement reduces to the claim that defining an algorithm's worst case time complexity as O(1) or constant time is nonsensical.

Do you disagree that adding two numbers is a constant time operation?

<comment><USER3> > Do you disagree that adding two numbers is a constant time operation?

It is constant time by crypto programming definition in both theory and practice, and O(1) only in theory (bigints are a pain).

I did not try to claim that O(1) is nonsensical. Rather, that certain O(1) variable-input algorithms are in fact simply fixed input algorithms due to not considering its input.

I also find these "non-sensical" O(1) algorithms to be outliers.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> It's pretty frustrating to see the discussion on this submission dominated by people litigating the "constant time" terminology. The authors, Bernstein and Yang, are using constant time in the conventional, complexity theoretic sense of the word. Here is a quote from Section 2, "Organization of this paper":

 _> We start with the polynomial case. Section 3 defines division steps. Section 5, relying on theorems in Section 4, states our main algorithm to compute c coefficients of the nth iterate of divstep. This takes n(c + n) simple operations. We also explain how "jumps" reduce the cost for large n to (c + n)(log cn)^2+o(1) operations. All of these algorithms take constant time, i.e., time independent of the input coefficients for any particular (n, c)._

In particular note that last sentence. The asymptotic runtime of the presented algorithm does not depend on the inputs, _n_ and _c_. This algorithm analysis is confirmed throughout the remainder of the paper, which walks through each stage of the algorithm. Now let's look at a few canonical definitions of "constant time", i.e. O(1).

From Skiena, we have:

 _Constant functions - f(n) = 1 - Such functions might measure the cost of adding two numbers, printing out the "Star Spangled Banner", or the growth realized by functions such as f(n) = min(n, 100). In the big picture, there is no dependence on the parameter n._

Likewise from Sedgewick & Wayne:

 _Constant. A program whose running time 's order of growth is constant executes a fixed number of operations to finish its job; consequently its running time does not depend on N. Most Java operations take constant time._

I'll update if I find a choice example from Knuth in TAOCP, but I think this suffices. The discussion about whether or not the cryptographic use of the term satisfies the complexity theoretic sense of the term is a red herring; it's a distinction without a difference. Algorithm analysis focuses on asymptotic behavior, which is definitionally given by tail behavior, or rate of growth of a function. Among other things, this paper is _not_ about an implementation methodology that ensures the GCD algorithm will take exactly the same amount of time regardless of the input.

______________________

1\. _The Algorithm Design Manual_ , 2nd Edition, § 2.3.1 Dominance Relations, Page 39

2\. _Algorithms_ , 4th Edition, § 1.4 Analysis of Algorithms, Page 187

<comment><USER6> I think you misread slightly.

 _> All of these algorithms take constant time, i.e., time independent of the input coefficients for any particular (n, c)._

This means that once you have chosen a particular _n_ and _c_ , the time no longer varies. However, if _n_ and _c_ vary, the running time is definitely allowed to vary also (as the formulas _n(c + n)_ and _(c + n)(log cn)^2+o(1)_ clearly do).

<comment><USER5> No, I didn't misread. You and I are in (apparently violent) agreement. Constant time does not mean that running time cannot vary, in either complexity theory or cryptography. There are misconceptions on both sides here, with regard to what the terminology means in both complexity theory and cryptography.

For precision, I'll start with a good definition[1] for what "constant time" means in cryptography:

 _> Constant-time implementations are pieces of code that do not leak secret information through timing analysis. This is one of the two main ways to defeat timing attacks: since such attacks exploit differences in execution time that depend on secret elements, make it so that execution time does not depend on secret elements. Or, more precisely, that variations in execution time are not correlated with secret elements: execution time may still vary, but not in a way that can be traced back to any kind of value that you wish to keep secret, in particular (but not only) cryptographic keys._

Secure, constant time cryptographic algorithms need not have unvarying execution time. Now going back to complexity theory, it is also an extraordinarily common misconception that "constant time" means "the algorithm has the same execution time regardless of the size of the input." This is not the case. Big O notation doesn't even care about what always happens, it cares about what happens in the worst case. When we use "constant time" in the O(1) sense of the word, we are not precluding the possibility of an algorithm having variable execution time. Again, for precision, we are simply saying that the execution time (number of operations, etc) has an asymptotic upper bound which is independent of the input. The execution time may vary with the input, and generally speaking it will.

_________________________

1\. Thomas Pornin, _Why constant time crypto?_ [https://bearssl.org/constanttime.html](https://bearssl.org/constanttime.html)

<comment><USER7> > Constant time does not mean that running time cannot vary, in either > complexity theory or cryptography.

Again, overloading of the term "constant time" causes pointless misunderstanding and arguments. Your statement here is wrong.

In complexity theory the term "constant time" does indeed mean the running time is bounded even with unbounded input (e.g. goes to infinity), although it could vary within this bound.

In cryptography the term "constant time" is sometimes used to mean a different concept, that the operation actually takes constant non-varying time, so that an attacker can't exploit this as a side channel to figure out the input values.

The paper seems to be using the latter meaning.

<comment><USER5> _> In cryptography the term "constant time" is sometimes used to mean a different concept, that the operation actually takes constant non-varying time, so that an attacker can't exploit this as a side channel to figure out the input values._

Note that I cited Thomas Pornin for my definition of constant time cryptography, who is a cryptographer in theory and implementation. It is emphatically _not_ necessary for software to run with unvarying execution time in order for it to be "constant time" according to the cryptographic sense of the term. This will be a poor hill for you to die on, but I invite you to provide literature supporting _your_ alternative definition.

</comment></comment></comment></comment></comment><comment><USER8> If I understood correctly, this paper is _NOT_ about a new blazing fast security-breaking CS-history-changing algorithm. This paper suggests an algorithm that takes the same amount of time to compute GCD(6, 9) and GCD(123456789, 987654321), to prevent leaking hints on its inputs through side-channels. That is, this thing is basically less efficient, but still runs the same number of instructions no matter the input.

(EDIT: ... as long as inputs have the same bit-length. Any 32-bit inputs will be handled faster than 1024-bit inputs, but any 1024-bit inputs will consume the same amount of time no matter their actual values. That is, 0x0001 and 0x000000001 are handled differently by the algorithm.)

The paper do mention this:

> However, in cryptography, these algorithms are dangerous. The central > problem is that these algorithms have conditional branches that depend on > the inputs. Often these inputs are secret, and the branches leak information > to the attacker through cache timing, branch timing, etc.

So, yeah, this is security-centered cryptography paper. The term "constant- time" is used in a different context here.

<comment><USER5> The term "constant-time" is used in the complexity theoretic sense. Can you explain to me, concretely, how what you've said here

 _> as long as inputs have the same bit-length. Any 32-bit inputs will be handled faster than 1024-bit inputs, but any 1024-bit inputs will consume the same amount of time no matter their actual values. That is, 0x0001 and 0x000000001 are handled differently by the algorithm_

indicates the algorithm is constant-time in one sense but not the other?

<comment><USER2> The problem is: "Constant—with respect to what?" "Remains constant under what conditions?" The function f(x,y) = x^2 is constant under varying y, and is not constant under varying x. The adjective "constant", by itself, is incomplete—unless it's truly a mathematical constant, like 2 or e, that depends on nothing else—which is what leads people to the "O(1)" interpretation of the phrase "constant time".

So if it's not used to mean "constant (no matter what you vary)", then it means "constant (if you vary certain parameters and I'm not specifying which ones)". When you use a phrase with something left out and implied, then the audience has to fill it in somehow. If the audience shares your background, perhaps has been reading similar papers recently in which "constant with respect to xyz" had the xyz spelled out explicitly, this may go well; if not, it may not. In this case, people's interpretations of "the xyz we're varying" appear to range over "the entire space of integer-tuple inputs", "the size of the integers", "the bits of the integers after the leading 1", "the parts of the inputs that are considered 'secret'", and more.

So, if you say something with an implicit part left unspecified, and people fill it in with something different than what you intended... the first time this happens, I might consider it an unfortunate accident. If it happens repeatedly, it may be worth being more explicit or choosing another term. (Suggested terms: "secret-hiding", "secret-blind". "[something]-oblivious" might be another good word-formation—precedent exists in "cache-oblivious" algorithms.)

This is not the worst terminological mess we have in CS[1].

[1] My (least) favorite example is the term "dynamic programming", whose name appears to have been chosen because it sounded good and was vague enough to cover what the author wanted: _" Thus, I thought dynamic programming was a good name. It was something not even a Congressman could object to. So I used it as an umbrella for my activities."_ [https://en.wikipedia.org/wiki/Dynamic_programming#History](https://en.wikipedia.org/wiki/Dynamic_programming#History)

</comment></comment></comment><comment> b-3-n I was a bit disappointed to see that the "constant time" was a click bait. Should be "fixed time" \- or similar - instead.

<comment><USER9> It's not click bait. It's standard terminology.

<comment><USER10> To clarify: it's not "constant time" in the sense of having O(1) time complexity with regards to the size of the inputs, which is what most people mean by "constant time" (which is obviously not possible in this case: there's never going to be a GCD algorithm that can work as fast on 100-bit integers as on 1,000,000,000-bit integers).

It's "constant time" in the cryptographic sense, that the time to run it can't be used as a side-channel to figure out what the inputs are. A great result to be sure, but the terminology is undoubtedly confusing.

<comment><USER5> _> it's not "constant time" in the sense of having O(1) time complexity with regards to the size of the inputs_

Yes it is. The presented algorithm is constant time in the exponent, i.e. 2 + O(1), where this exponent is not impacted by the size of the inputs _n_ and _c_. Much like any other complexity analysis, an algorithm is O(1) as long as O(1) is asymptotically the "largest part" of the running time. As the size of n increases, the exponent 2+O(1) increasingly dominates execution time.

<comment><USER11> "Constant time in the exponent" is nonsense, I'm afraid.

A bounded exponent of _n_ would be the same thing as "polynomial time", but the thing that's bounded (and indeed arbitrarily close to 2 for large _n_ ) is the exponent of log _n_.

The running time of the algorithm presented in this paper is _n_ (log _n_ )^(2+ _o_ (1)). This ...

... is not constant; it increases with _n_ , a bit faster than linearly.

... has _o_ (1), not _O_ (1), in the exponent; the two mean different things. _O_ (1) means "bounded", o(1) means "tends to zero". The claim isn't that the running time is <= _n_ times polynomial(log _n_ ) but that it's <= _n_ times "at most approximately a quadratic polynomial in log _n_ ".

... doesn't in fact depend mostly on that exponent; the most important factor is the _n_ , not the (log _n_ )^(2+o(1)). If that 2 were a 100, the _n_ factor would still (asymptotically) matter more.

For instance, suppose _n_ =2^100 and our logs are to base 2. Then the running time of this algorithm is approximately some constant times 2^100 (that's the _n_ factor) times 100^2 (that's the factor with log _n_ in it). 2^100 is much, much, much bigger than 100^2.

</comment></comment></comment></comment></comment><comment><USER12> I presume you came across this researching the zero-day DoS in Windows 10 (and others?) caused by an infinite loop in Microsoft's modular inversion code? Thanks for sharing!

<comment><USER13> OP probably saw DJBs tweet [https://twitter.com/hashbreaker/status/1139008213570007040](https://twitter.com/hashbreaker/status/1139008213570007040)

</comment></comment><comment><USER14> Isn't constant time GCD a problem for factoring big primes?

<comment><USER15> I have an O(N) algorithm for factoring any prime: Read each digit of the prime from the input tape and write it to the output tape. :P

(Perhaps you meant factoring large semi-primes? :) )

<comment><USER16> I have an O(1) then!

<comment><USER17> Given that you have to read and then write each digit of the input I find it hard to believe that you have an O(1) algorithm - can you tell us what it is?

<comment><USER18> Take a photo of the input on the tape and print the photo.

<comment><USER19> Depending of the size of the prime you might need to take multiple photos.</comment></comment></comment></comment></comment></comment>


Isotype: Wartime Pictorial Language (Icons) - <AUTHOR> http://www.gerdarntz.org/isotype

<comment><USER2> Anyone know what the licensing is for this icon set?

<comment><USER3> <http://www.gerdarntz.org/content/copyright>:

The Gerd Arntz web archive is intended for educational and informative purposes only. Any use of any of the images from the website for commercial purposes is prohibited.</comment></comment>


Drug trade rises in dark corners of the Internet - <AUTHOR> https://www.bostonglobe.com/news/nation/2017/06/10/drug-trade-rises-dark-corners-internet/8ad96xdOEfdMAfbHeTFJDM/story.html <comment><USER2> Yes it's on the rise on the darknet, but it's also on the rise across the entire board.

Instead of attacking the problem at the source (fentanyl importing and distribution) people will use this as a way to discredit and attack the darknet. They'll probably have some success too. Then a new technology that increase anonymity on the internet will come around and the cycle will repeat.</comment>


An Oral History of 'GoldenEye 007' on the N64 - <AUTHOR> https://melmagazine.com/an-oral-history-of-goldeneye-007-on-the-n64-129844f1c5ab <comment><USER2> One of the best aspects of GoldenEye multiplayer was social, _real_ social, not in the "stream on twitch" kind of way. You had to all be in the same room, and you could yell and scream at each other, hear people's reactions, other people could watch, share a few pizzas, and it just brought everyone together. These days everyone can be in their own room in different locations, and even with voice chat it's just not the same. It really was the social aspect that made it amazing.

<comment><USER3> you're describing literally ever multi-player game before the dawn of the internet. it wasn't limited to just Goldeneye.

<comment><USER4> Not sure I'd agree, especially for first person shooters.

Sure, you'd been able to play Doom et al over a LAN and so on before Goldeneye, but the intimacy of the experience when you and three close friends are gathered around a single tiny CRT TV was something no Doom LAN deathmatch ever matched for me. Being able to watch your fellow players in real time on the other three quarters of the display also added a dynamic that LAN based shooters rarely had, when every player was hidden behind their own boxy CRT. What's more this made the experience great even for observers who weren't playing - at a glance you could watch the state of the entire game and all the players from your seat.

The many fun game modes (Golden gun, Slappers only etc) all contributed to a party style experience that very few other multiplayer games, typically with their much more straight laced approach to gameplay, had. Four player gameplay seems quaint now, but it was a very rare feature in console games prior to the n64, and of course almost always required additional hardware to add the extra ports. I suspect a majority of Playstation owners never even saw a MultiTap adapter, let alone owned one, given how few games could take advantage of it.

Let's not forget the cost angle here either - while many of us may have been lucky enough to have participated in Doom LAN games, it was a pretty expensive (and technical) undertaking beyond the reach of many people, especially kids, in the mid 90s. Goldeneye was much more affordable and is all the better for it.

</comment></comment></comment><comment><USER5> I wish I could go back to the days where our group would spend all our free time playing split screen GoldenEye at my friend's basement. If you were privileged enough (which we were) the 90s were a great time to be a child.

<comment><USER6> having friends, access to a basement and enough cash to purchase Goldeneye, or a friend with the cash, sets a very low bar for the term "privileged".

<comment><USER7> 'Privileged' is very much a matter of what you're comparing against. In the 90's, about 25% of the world's population didn't have electricity [0], let alone game consoles.

[0] [https://data.worldbank.org/indicator/eg.elc.accs.zs](https://data.worldbank.org/indicator/eg.elc.accs.zs)

</comment></comment></comment><comment><USER8> > will be the game's 21st birthday, allowing Bond to finally taste one of his > revered cocktails

Legal drinking age is 18 in the UK, I'm amazed it's as high as 21 in the US.

<comment><USER9> Legal drinking age is _five_ in the UK. It's 18 to buy alcohol.

<comment><USER10> Yup, and most savvy parents slowly acclimatise their children to alcohol by allowing them wine or beer on occasion with a meal when they are in their teens. Done right, by the time the child hits 18 they don't go crazy with booze, and treat it with respect.

<comment><USER11> Given rates of alcoholism and alcohol related disease and injury in the UK, I'd say that's not working.

<comment><USER12> Wouldn't the more relevant statistic be the relative rates compared to the US?

<comment><USER11> Approximately 9.6 per 100,000 alcohol related deaths in the US per year, and approximately 14.3 per 100,000 per year in the UK circa 2014. This fits with WHO data from 2003-2005 showing that Americans on average consumed between 7.5-9.9 liters of pure alcohol while on average people in the UK consumed more than 12.5. It also fits with much higher rates of cirrhosis of the liver per capita in the UK, as well as hospital admissions related to alcohol (which are on the rise in the UK).

</comment></comment></comment></comment></comment></comment><comment><USER13> I'm impressed with how small the dev team was, how much fun they seemed to have working, and how much freedom and creativity they had. I wonder if we stifle innovation by building crazy large hierarchies.

<comment><USER14> Even with all the advantages they had (including, arguably, being single), they still had their own deathmarch (100 hour weeks) at the end. I wonder if it's at all possible to make video game development sane when you have a publisher?

Maybe when we create an AI that can test games for us.

<comment><USER15> Is testing the biggest time sink in the process? I've always wondered, despite having obviously complex architecture, why game development cycles had such crunch times. I knew it was based on publisher deadlines and such, but figured the bottleneck would be more in development time rather than testing. If the latter is the case, given the progress of OpenAI, I could see that being a plausible solution.

</comment></comment></comment><comment><USER16> > What emerged was a masterpiece that changed the industry and set many > standards still seen in first-person shooters today.

Erm, what? Quake already existed at that point. I always thought Goldeneye was poor compared to Quake, which was really mind blowing at the time.

<comment><USER17> Most my memories of Goldeneye involve having 4 people stuffed on a couch, cheap beer, pretending we weren't looking at each other's screens.

Quake was a blast, but we weren't all in the same room, let alone the same couch.

I don't think comparing the games themselves directly really encompasses the difference in the playing experience.

<comment><USER18> Indeed, if you wanted something that felt like the best of both worlds I'd go with the original Halo, but of course that didn't come along until much later.

</comment></comment></comment><comment><USER19> If you're interested in other oral histories and video game stories, I highly recommend Read Only Memory [1].

I've been diving deep into some of the articles there lately and am excited to see what else they come up with, given how so many of these stories are locked away within the mind of a few game devs.

[1] [https://readonlymemory.vg/](https://readonlymemory.vg/)

</comment><comment><USER20> > So we showed them we had all the Bonds… Well, soon after that we got a memo > saying we couldn't have all the Bonds, because only the GoldenEye actors had > signed off on the digital rights to their likeness to be used in games, not > the older movies. > > Edmonds: So in order to represent Sean Connery, Roger > Moore or Timothy Dalton in the game we would have needed to do a deal with > their individual agents to get the rights. And unfortunately, it would have > been too expensive. > > Doak: They particularly said Connery would want > money, and then if Connery wanted money and got money, the others would want > money as well. So they got taken out.

Tragedy of the anti-commons.

<comment><USER18> Almost like a prisoners' dilemma - either one gets money or none of them do.

</comment></comment><comment><USER21> So many awesome memories with this one. I liked how each multiplayer game had a theme: mines, pistols, etc. So you had to adjust playing style but you also got to choose. Led to a lot of variety.

Sadly there were only so many mines you could lay before the first ones started disappearing.

</comment><comment><USER22> > _A lot of the cheats were added by the code team_

I'm still amazed at how long it took for the cheat codes to become known. I remember scouring the early internet and finding nothing but guides. It wasn't for years before I saw they existed. Other games had their codes published in magazines almost the same day they were released.

<comment><USER23> Were there other codes than the time based? Because if I am not wrong, they would be found by most people (given that they beat levels quick enough).

<comment><USER24> There were button sequences you could use, they worked in multiplayer, and in singleplayer didn't count as "cheating" it like activating a time-unlocked cheat did.

[http://nincheats.net/index.php?sys=n64&game=Goldeneye%20007](http://nincheats.net/index.php?sys=n64&game=Goldeneye%20007)</comment></comment></comment>


Borland to be Acquired by Micro Focus - <AUTHOR> http://www.borland.com/us/company/news/press_releases/2009/05_06_09_borland_to_be_acquired_by_micro_focus.html <comment><USER2> I don't know what this means for Borland as I haven't used any of their products for years, but during the 90's they built some of the best development tools available. Before the age of .NET, Borland Delphi was leaps and bounds better than Visual Basic for rapid development of Windows applications. And Turbo Pascal, while certainly not the most beautiful language in the world, was much better than Visual Basic, in my opinion.

<comment><AUTHOR> I miss my yellow text on a blue background in the Turbo C++ IDE. The very first programming environment I jumped in. My Vim colorscheme is still mapped to 'borland'. Good times.

</comment></comment><comment><USER3> I have fond memories of learning to program in a Borland C++ IDE, but right now I can only think of one thing related to this news:

Please, please let StarTeam die so that my work might switch to something else. It will probably take a few years, but anything at all would be better. Those of you who have never used StarTeam don't know how good you have it.

</comment><comment><USER4> When I was using Turbo C++ and then later using and admiring Delphi 1,2 & 3 I never dreamed that the great Borland would be taken over by the company producing the humble PC COBOL compiler I was using at work.

</comment><comment><USER5> So long and thanks for Tasm!</comment>


The Law School Debt Crisis - <AUTHOR> http://www.nytimes.com/2015/10/25/opinion/sunday/the-law-school-debt-crisis.html?smid=fb-nytimes&smtyp=cur <comment><AUTHOR> Coming soon to a "coding bootcamp" near you...</comment>


Comparably's new tool lets companies see how they stacks up against competitors - <AUTHOR> https://techcrunch.com/2016/12/15/comparably-culture-analytics/ <comment><USER2> I guess no more excuses for not getting a job. meh...\ Love it!</comment>


Ask HN: After Hour Meetings - <AUTHOR> Whats everyone thoughts on after hour meetings?
There is a few different perspectives im keen to know your thoughts on.
- Meetings with employees
- Meetings with customers of your product
- Meetings with investors
- Meetings with customers of your contracting services
Which cases are ok if any to hold/have/attend meetings before 8 and/or after 5? <comment><USER2> On a regular basis: none.

If you have to do it, because of scheduling or timezone conflicts, have the common courtesy to schedule them well in advance. People do have lives outside of work, and arbitrarily plunking a meeting a 7 AM or 8 PM with little lead time is disrespectful of their time and commitments.</comment>


Salt-infused graphene creates an infrared cloaking device - <AUTHOR> https://arstechnica.com/science/2018/08/salt-infused-graphene-makes-for-a-infrared-cloaking-device/ <comment><USER2> They mention it's flexible enough for clothing, I wonder how practical it would be to use it to make a low cost body suit for various purposes (ranging from evading night vision goggles to being part of a cool high tech stage act).

<comment><USER3> could have several military/space applications imo:

1\. evading IR (from what i understand this tech could avoid both passive IR and also active/spotlight style IR, but i may be wrong)

2\. heating/cooling soldiers/astronauts depending on their needs

<comment><USER4> For what it is worth - this tech. already exists for what you describe for military purposes - as vinyl:

[https://www.ahh.biz/vinyl/vinyl_military_tent_with_ir_blocki...](https://www.ahh.biz/vinyl/vinyl_military_tent_with_ir_blocking.php)

It is used to create small tents that anti-tank etc. teams can hide within to evade EO sensors on aircraft/vehicles.

<comment><USER5> On the opposite team Al-Qaeda and ISIS snipers learned to use wool blankets.

So if you're ever in a war-zone and see a nice wool blanked in the middle of nowhere, take cover.

</comment></comment></comment></comment><comment><USER6> Very cool effect. Not only would it be useful in space applications but it could make better decoy tanks[1] as well :-)

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

</comment><comment><USER7> Interesting application as the Space radiator material as opposed to an infrared invasibility jacket.

</comment><comment><USER8> I feel like each graphene story shows more and more that this is a potential super material. I would not be surprised to read something like "Graphene infused superconductor found to make time travel possible"</comment>


HP webOS event roundup. - <AUTHOR> http://blog.cocoia.com/2011/hp-webos-event-roundup/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+cocoia+%28Cocoia+Blog%29&utm_content=Google+Reader <comment><USER2> Nice find in the article: the new Pre 3 uses an IPS LCD display like the iPhone 4. I'm sure it's beautiful in person.

<comment><USER3> And a large screen. Though I like my Pre plus, the screen is a bit too small.

</comment></comment><comment><USER4> I love webOS and would own a Pre if iPhone didn't exist.

</comment><comment><USER5> How is the app store for webOS?

<comment><USER6> How did this miss the point at the one hour 39 minute mark where they announce they're going to ship WebOS on PC's?

That seems like the MASSIVE announcement in all of this.

<http://t.co/8vNRr4g>

EDIT: Wasn't supposed to be a reply to parent sorry, thought I was replying to the whole post.</comment></comment>


Ask HN: How much can I sell my company for? - <AUTHOR>

I created a site back in 2006 to teach myself rails and it is now a #1 Google Ranked PR5 site.  It has a strong viral loop and continues to grow at an exponential rate because of this.  It's profitable and requires no work to maintain. The details of my sale sheet can be downloaded here: http://myfreecopyright.com/sale_sheet.pdf
How much do you think I can sell this for? <comment><USER2> I think the better question is how much do you want for it?

I'm sure you have heard of Flippa.com. Head over that way.

I would determine how much you want to fund your next thing and see if anyone takes it. I would multiply the revenue by 3X, so I would put a price at ~45K. However, that is me just making up what I would do.

</comment><comment><USER3> 10-12 months multipliers as others in this thread has said. And that's being a tad optimistic.

You mention all the reasons why it should be higher, but look at the other perspective.

\- You say good, organic SEO. But remember, Google can penalize anyone, even if you are 100% white hat, and if it's a mistake, would you trust the support dudes will help you?

\- You say no work to maintain. But how about someone who has no clue how to run a dynamic site? There's work involved in moving files, setting things up, setting up email, DNS, name servers, file permissions.. etc, let alone fixing any issues that might arise.

\- You say viral loop but it means almost nothing because the dudes who come in through the viral loop are worth less than the ppl who come in through the search traffic.

\- You say stats are legit, but remember, noone knows who you are in the internet. You're not selling to a friend or family member. And ppl will always be suspicious of someone selling something that's raking in cash, they'll ask why are you selling it in the first place?

</comment><comment><USER4> I'd be worried about the liabilities in operating the service. It appears to be offering a legal service. What if someone gets involved in a big lawsuit and your system fails so they sue you for negligence? I'm not a lawyer so I can't imagine all the scary things, but it _seems_ scary.

When you sell it I'd be sure to get the buyer to release you of any liabilities related to it.

<comment><AUTHOR> It is a legit non-repudiation service that is legally valid. It can be used in most countries court system and follows Berne Convention. I've got most of it covered in the FAQ and more information can be seen here: [https://www.google.com/search?sourceid=chrome&ie=UTF-8&#...
Thanks for the advice thou.

<comment><USER5> Except that it's not legally valid in the U.S. or in Europe, where courts will not _and cannot_ enforce a copyright which has not been registered with a recognized copyright authority (i.e., the U.S. copyright office or its equivalents in the European Union).

You are on the border line of committing fraud when you state that your are providing free copyright registration, because you are not. You are providing free _third-party_ copyright registration, but that is not the same thing.

(IAAL, and I have done copyright litigation.)

<comment><AUTHOR> Last I looked into it, it was valid in most European courts and the exception was U.K. and U.S. who have an extra layer of extortion above the Berne Convention which requires registration with their system in order to be accepted into the court. Spain, Italy and the others accept what MFC provides and is why there are a ton of services started in these countries like the following: <http://www.dmca.com/> <http://easytimestamping.com/> <http://www.safecreative.org/> <http://myows.com/> <https://depotcode.com/>

<comment><USER5> You're mistaking evidence of creation with the ability to enforce the copyright. The first goes to your ability to win your case, the second goes to your ability to even file the case in the first place.

</comment></comment></comment></comment></comment><comment><USER6> I think usually the general rule for smaller sites like this is 8-12x your monthly gross. A small site can quickly lose its money generating ability and 10 months is still a long time in the internet world.

Also, put your contact information in your profile.

<comment><AUTHOR> What are some common things that could happen that would cause this site from increasing it's revenue monthly? I can show steady, monthly growth in all metrics for the past 3 years. It continues to earn more and captures more users which display the badge on their site and this continues the snowball growth. Is this not valuable?

<comment><USER6> Google recalculates pagerank and search rankings, you were using underhanded seo tactics and google will nix you, or you could just be lying about what the site does.

Other less common things: legislation, new competition, or a bad server outage.

What were you expecting to get?

<comment><AUTHOR> All my stats are legit. Also the SEO is pure and natural growth from a site that has been around almost 6 years. I mentioned that some creative SEO tactics could be used with all the content, but I've never done that. I've added my contact to my profile...if your interested in the site, please contact me offline.

</comment></comment></comment></comment><comment><USER7> I think you could get around $10,000-$15,000 for this.

<comment><AUTHOR> That's what I make in a year on ads for the site. Wouldn't there be a multiplier on a sale? It keeps increasing pageviews, uniques and users per month because of the viral loop.

<comment><USER8> It's hard to say. If you really want to sell it the best place to go is Flippa. There's so much trash out there that a site that actually makes decent money are pretty valuable.

</comment></comment></comment><comment><USER9> I think it depends</comment>


PVS-Studio is now available on macOS  – weaknesses in the XNU Kernel - <AUTHOR> https://www.viva64.com/en/b/0566/ <comment><USER2> Are any of these issues likely to lead up to an iOS exploit (or "jailbreak" if you will)?

</comment><comment><USER3> N64 is just a failure to use something like #if defined(DEBUG)...#endif around a block that is intended to enact an alternate code path in debug mode in a particular case. Notice the commentary.</comment>


Show HN: Pickot – Personalized news feeds from anywhere over the web - <AUTHOR> http://www.pickot.com/

<comment><AUTHOR> Hello, OP here. Can I get some feedback for Pickot? We are trying to make help dev. automatically track information of any site for new and desired content. Anyone has a comment on this? Thanks!</comment>


Show HN: Forestry.io – A better way to host static websites (demo) - <AUTHOR> https://forestryio.herokuapp.com <comment><USER3> I love static websites. Most of our YC websites are static (www, startupschool, femalefounders, fellowship, etc.) Problem is I'm not sure we've really seem any great innovation here in regards to nontechnical adoption since MovableType. I know we have Jekyll and Middleman and those are fantastic pieces of software for developers (we use Middleman here at YC), but they're missing a UI bridge to get people to the promise land.

Your current implementation...I'm not so sure it can reach nontechnical people yet. I think it sits at this middle point that makes it easy for technical people to hand off content management to nontechnical people. That's probably a good / smart way to start...but it will limit your potential audience.

Looking at the site, I don't think targeting a technology is the best approach. People aren't going to be Googling "alternatives to cpanel" to try and find you. You should be targeting people / use cases. Designers, creative agencies, IT people dealing with the marketing team, etc.

The zip a folder and upload is a great interface (A+ on giving me a sample project to try), but what I'm most interested in is how the CMS / form stuff is going to work. Unfortunately, it wasn't ready yet. I will say that adding classname is a good start, but remember try to build features in a way that it doesn't require people to edit code. Find some way to allow people to click to specify what'll be dynamic. It could use the same mechanism, just make adding the classname a thing that's done with a click and not a cursor.

The CMS / Form stuff is what's really going to sell this into organizations. Then you're going after a very large space. I think something like 45% of the Internet is powered by a CMS. 25% of that by Wordpress, something initially made for some other task. If someone gets it right, there's a lot of money to be made.

Thanks for sharing and I'll be on the look out for your fellowship application!

<comment><USER4> Founder of netlify and BitBalloon here.

We are working on an editing interface for static websites that can compete with the ease of use and flexibility of wordpress. Our alpha users love it and this is an open source project.

We've been working in this space for quite a while, and are extremely excited about the potential for static web-tech.

We started out with simple drag and drop deploys at BitBalloon (you don't even need to zip your site first, just drag a folder unto BitBalloon.com).

Later we launched our premium solution called netlify that's by far the most feature rich on the market (continuous deployment, form processing, API proxying, redirects, rewrite rules, SSL, etc, etc) and offers the best performance you'll get today.

It's spot on that the really big deal will be solving the CMS need, without making developers give up on all the advantages of static site generators.

Some of our larger clients are using netlify + roots/middleman/metalsmith/etc + Contentful/Prismic/etc to build large CMS drives sites that are built up front and hosted directly on our CDN, but this is still a bit too advances a setup for the millions and millions of normal CMS driven sites out there.

Our solution is building a completely open-source CMS that works with all common static site generators. It's in private beta right now, but getting real close to opening up the repo to the public. It's completely free of any lock-in, and you can take it and host it anywhere with ease.

Happy to send an invite to anyone here. Just ping me at firstname.lastname@example.com

Some feedback to the product of this thread:

Love the initiative.

Drag and drop uploads are nice, but unless you handle CDN configuration and cache invalidation, it doesn't seem like a big step up from just FTPing files to an S3 bucket.

Otherwise you might risk mainly appealing to beginners or people looking for a cheap way to publish a personal website, and those can't pay much. With a monthly price of $1/site, the life-time value of a client will be very low, so you will barely be able to spend anything on customer acquisition. One.com, GoDaddy or S3 can offer extremely low prices because they have huge scale, but as a tiny startup, you have no way of reaching the amount of users you would need to get on board with a model like that. Especially since this is way more technical than Wix/Weebly/SquareSpace,etc, while not really offering real value to professional developers or agencies.

If you want to build in the static hosting space, you should start by figuring out if there's something you could offer beyond what the existing players like netlify, BitBalloon, CloudCannon, Divshot, etc, already have, and make sure you're not just trying to compete on price.

My 5 cents written in 5 minutes :) Good Luck!

<comment><USER5> The CMS you mentioned sounds pretty cool. I tried to email you to request an invite but it bounced. Is that the correct email address?

<comment><USER4> That's strange! Just tried to send myself a few test mails to that mail, and it works fine here...

You can try our general mail, email@example.com

</comment></comment></comment></comment><comment><AUTHOR> Co-creator here. We built forestry.io because we hate dealing with shitty cPanel-type hosting providers and we think WordPress is often overkill for simple sites.

We all build simple sites every now and then. You know...your bother's band, your friend's restaurant, etc. They're a pain to set up and manage.

This is just a demo, but we would love your feedback!

*YC people - put in a good word for us for the fellowship program ;)

<comment><USER6> My first question would be: why not just use an S3 bucket directly, with web hosting enabled?

[http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHostin...](http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)

<comment><USER7> It's a good question. Reminds me of the first time I heard about Dropbox - <USER2> thought, 'why not just do a rsync'?

</comment></comment></comment><comment><USER8> It is truly tragic how much heat and energy is wasted in the world by static websites requiring to run huge piles of horrendous PHP to render their unchanging contents from a database through Wordpress on every request.

<comment><USER9> !!!

</comment></comment><comment><USER10> What does paid hosting offer than I can't get from GitHub pages for free?

[https://pages.github.com/](https://pages.github.com/)

</comment><comment><USER11> I like this idea a lot. The form submission and editing features sound very interesting and could potentially offer a nice middle ground for one-off landing pages and the like that don't need an app server but are too custom for page generators like unbounce or instapage. Blogging this way could also be great, but there's a lot more work to do on features before you can start to compete with DB-backed solutions. I eagerly await the day that I can confidently recommend a platform like this to a client over Wordpress.

I get that the drag and drop upload is good for non-technical folks, but as a coder, some sort of little command line interface ala Heroku would be nice so that I could use it alongside git in my workflow and automate deploys. The drag and drop process would be tedious when doing frequent deploys.

Have you looked at Middleman at all? That's been my static site generator of choice for awhile now and I've found it _much_ smoother to work with than Jekyll.

<comment><AUTHOR> Yeah, I love heroku toolbelt too. A command line tool makes a lot of sense.

Blogging will be difficult, right now we're just starting with editing existing content and we'll expand from there.

</comment></comment><comment><USER12> $12 / year for a static page

$39 / year for a simple "cms" (others call it a simple edit form)

$11 / year for form handling

\---

$62 / year, good luck! Include the simple cms would be a great benefit.

Sure WordPress is overbloatet, but WordPress has zillions of Designs.

</comment><comment><USER13> Take a look at [http://webhook.com](http://webhook.com) as they have a similar offering that may give some inspiration.

<comment><USER14> This is awesome. It might be just what I was looking for. However their site's animation is too abrupt and distracting. They need to reduce the frequency of changes a bit.

</comment></comment><comment><USER15> This is very nicely done.

It vaguely reminds me of Site44[1] - which does with DropBox what you are doing with your zip upload. Your pricing is better. And they don't have forms. This one simple thing adds the only back-end functionality needed by well over 1/3 of the web sites out there today.

[1] [http://www.site44.com/](http://www.site44.com/)

<comment><AUTHOR> Very cool. I wasn't aware of site44. Thanks!

<comment><USER15> I was a little stunned when I first came across it - and it got my brain to churning.

I've since then been able to use DropBox to syndicate oil&gas drilling waste processing equipment configurations from a small set of folders on my desktop. And I've been able to hook up a national chain's franchise's digital in-store displays to a content manager's workstation at an ad agency in New York. You can do quite a few nifty things with it.

And I've taken us off the topic of your demonstration. Sorry! :-)

</comment></comment></comment><comment><USER16> err, would look a bit more professional to at least get a proper domain name . Are you running on free dyno or what ?

<comment><USER17> Agreed, I did not look further seeing heroku there. One of the thoughts that came to mind is maybe this is spinning up dynos for you. Hopefully not hosting many sites under 1 dyno

</comment></comment><comment><USER18> "Setup a domain & billing"

"Set up" not "Setup". Just one of my pet peeves. Had to say it.

<comment><AUTHOR> fixed :)

</comment></comment><comment><USER19> This seems pretty cool. I agree a lot of site hosting sold today is insanely overkill for a lot of users.

<comment><AUTHOR> Agreed. cPanel hosting services make me want to vomit (bluehost/hostgator/etc). The thing that bothers me the most, is we often set up WordPress so someone can edit a few lines of text ever few months. Total overkill IMO.

<comment><USER20> This is the perfect use case for my father's website and for the exact reasons I didn't want to use CPanel or Wordpress for his site.

Nice job filling that small niche of "barebones CMS".

<comment><AUTHOR> Awesome, we'll be adding some beta customers next week. Sign up here if you want to be a part of it:

[http://forestry.us11.list- manage.com/subscribe?u=258a7a7e662...](http://forestry.us11.list- manage.com/subscribe?u=258a7a7e66229ee7fff436898&id=377858cce3)

</comment></comment></comment></comment><comment><USER21> Nice idea, I would start using it today to make a couple of sites that people ask me to do for them.

<comment><AUTHOR> We'll be inviting beta users next week. Sign up here if you want to be a part of it:

[http://forestry.us11.list- manage.com/subscribe?u=258a7a7e662...](http://forestry.us11.list- manage.com/subscribe?u=258a7a7e66229ee7fff436898&id=377858cce3)

</comment></comment><comment><USER22> One of the main reasons to use wordpress is that it allows lay people to customize the look and feel of their website. Sure hosting is a problem, but likely the bigger problem is building easy to use tools to make their website looks pretty and functional.

<comment><AUTHOR> In my experience, people get a web dev to crank out a simple website powered by WP and they only ever really make slight content changes - add a project to their portfolio, or edit their bio. Rarely to people actually make use of widgets, plugins or new themes.

<comment><USER23> The company that wins the battle to be WordPress's successor will be the one that builds the same type of thriving plugin/extension ecosystem that allowed WP to expand so rapidly.

<comment><AUTHOR> Interesting thoughts. What are your "go-to" WP plugins?

<comment><USER23> Oh, I avoid WP like the plague these days, and strictly use static site generators like Jekyll and Hugo. In any case, I'm referring less to specific plugins, and more to the critical importance of bootstrapping and fostering a thriving plugin marketplace for 3rd-party developers, just like WP did (and does). I'm surprised that none of the newer players are doing this.

</comment></comment></comment></comment></comment><comment><USER24> Looks like a good place to host my personal/portfolio site.

</comment><comment><USER25> Neat, but Weebly is effectively the same thing. For free.

<comment><USER5> Weebly has a free plan but you can't actually use your own domain with it[0] and your site is weebly branded. It's $8/month to remove the branding and add your domain.

[0] [http://www.weebly.com/#plans/compare](http://www.weebly.com/#plans/compare)

<comment><USER25> You're right. However, you can't use your own domain with Forestry.io right now (public beta, with a 'submit your email address to be the first to know' form). Also, I'm not sure that hosting on Linode will scale as well as expected for $1/month/user.</comment></comment></comment>


Noot: Spaced repetition flashcards - <AUTHOR> http://www.noot.io/ <comment><USER2> I like spaced repetition apps, but I'm kind of annoyed that this is just a sloppy landing page without a demo or a concrete description of what the app does. I would resubmit after the app is ready to launch, or you at least have some kind of demo.

<comment><USER3> You're right. This is a just landing page I put together really quickly after I got annoyed with managing my flashcards in Anki. However, I want to use the interest and feedback of HN as motivation and inspiration to really flesh out the details of noot.

edit: fyi I do have prototype working in Django but it really looks terrible and I'd be embarrassed to show screenshots of my work so far.

<comment><USER4> A few years back I created a basic open-source web spaced repetition app in Django: [http://memizr.com/](http://memizr.com/) [https://github.com/stephenbez/memizr](https://github.com/stephenbez/memizr)

</comment></comment></comment><comment><USER5> I would absolutely love to see a well designed SRS Flashcard app!

I've used both Mnemosyne and Anki and I have to admit, while I love their rich feature sets, I reallllly hate their interface design and usability. Not only is it unintuitive and overly complex, but they both run really slow on my laptop.

I still can't believe there aren't better solutions available. Anki is probably my most used piece of software and it sucks to have to use a crappy interface.

<comment><USER6> So, what exactly is wrong with Anki's interface? The basics seem pretty simple - load a deck, and if you know the answer, click the green button, and if you don't, the red button. I can't imagine why you'd need to delve into the complex features daily.

I think for 99% of usage, there are only a few buttons in Anki. But this may be a case where any sufficiently "simple" interface is insufficiently rich, and any sufficiently rich program will have some interface complexity somewhere.

<comment> barry-cotter The interface for making/entering cards is not so hot. If I were even minimally competent at scripting or not bone lazy I would learn to use a proper text editor and get it to spit out cards from a text file.

All that said, I agree. Anki is one of the most useful pieces I software I have ever encountered.

To anyone who is on the edge about using SRS I recommend downloading it onto computer and phone and getting a good shared deck to build the habit. Building your own decks is superior but really, just start.

</comment></comment></comment><comment><USER7> This isn't even built yet? I feel cheated, I wish I didn't give my email address.

<comment><USER8> If it was built already you've be asked to give your credit card number, not your email address.

<comment><USER9> Let's be honest, if he needed to give a credit card number to try it, most likely nobody would have bothered submitting it or voting it up.

</comment></comment></comment><comment><USER10> How is this different from Anki?

[http://ankisrs.net/](http://ankisrs.net/)

<comment><USER3> Hi there, developer of noot here. Anki was actually the inspiration of noot for me. In my opinion, Anki's clunky and has too many options. While I understand it's good for power users, it also presents a learning curve which I feel might turn off a lot of prospective learners. I envision noot as a simpler, nicer alternative to Anki, with more stuff hidden behind the hood (for example, answers can only be right or wrong, instead of Again, Hard, Good, or Easy) so people can just focus on their material and not spend hours configuring and designing templates for their cards. Also, Anki doesn't currently have a good way to sync cards; AnkiWeb feels outdated and more centered around the computer version of the application. I want noot to be a lot like the Rdio music service: with nearly all user info stored on the cloud and the various platforms just to be interfaces to that service.

<comment><USER11> AnkiWeb is probably outdated because nobody cares about it. That's because their Android, iOS and PC apps are great.

How accurate can your spaced repition algorithm predict my forgetting curve? The time between repitions can be substantially different depending on the answer I give to Anki (a day between a week or something like that)

In which other aspects do you want to be like Rdio? Closed source, analyzing user data, advertisement, monetization?

<comment><USER3> Their iOS version is quite expensive if I recall correctly. It also isn't quite up-to-date in its design. Neither are any of the Anki apps, in my opinion.

Anki does have a huge advantage from its excellent spacing algorithm. The prototype I have working so far uses the Leitner system, which is very basic, but an advantage of keeping all the data on the web is the huge potential for A/B testing to figure out the actual best spacing algorithm.

Lastly, I'm not too interested in generating revenue from this project. I don't even have any ideas for monetizing it. This is mainly to scratch my own itch. If I can make enough to cover the cost of running the project (which is currently zero; it's being hosted on a free heroku dyno), I'll be happy.

<comment><USER12> Howdy lawrencewu, I think it's fantastic that you're working on something to scratch your own itch!

It's exactly what I did a year ago when I started work on [http://www.memorific.com](http://www.memorific.com) to build a SRS that was fine-tuned for software developers. We just changed to public beta a few weeks ago and started generating revenue and it's been a great experience helping people learn, grow, and meet their goals for learning.

Keep up the good work on noot.io and have a blast doing it! There's nothing like making a product that people use and enjoy.

</comment></comment></comment></comment></comment><comment><USER13> Ok, competitor here. I developed FluxCards for Android and also am at zero with my web version but will put money on it right now. Just a few random thoughts:

* Do you know how many flashcards learning apps there are out there? It's not hundreds but thousands. [http://www.flashcardapps.info/](http://www.flashcardapps.info/) lists just those available for iPhone.

* SRS? Well there you get the number down considerably (100?) and if only the customers knew how good SRS is! Many apps (Duolingo anybody?) are vastly more successful (or hyped) than any other ugly but good SRS app. Yet in my opinion everybody should at least have learned with SRS once in his life. If I had known about SRS apps when I was at school, I would have been so much more successful, yet when I had to learn Spanish fast, I literally worked through 30 different apps on Android that were all without SRS. After learning with "the best" of these for 2 weeks I realized that being asked the easy words over and over again was utterly pointless and decided to program FluxCards in 48h. Version 1 was in the play store 46h later and now stands at 11k active and happy users.

* Over these 2 years I soaked up all there is about flashcards apps and it is a lot. Of course I came across Anki, Supermemo, Mnemosyne and many others but with that knowledge I'm about to build the next generation of a cross platform (web + android) flashcards app.

If you are good at front end development, maybe you wanna be hired? By Monday I want to kick off the development.

</comment><comment><USER14> I read the homepage and I still don't know what this does. Spaced repetition?

<comment><USER15> It's a learning technique where the software tries to show you a flashcard for review right before you would have forgotten it otherwise. So each time you see it, it will be longer until the next time you see it. That way, you're not wasting time looking at a bunch of stuff you already know well.

[http://en.wikipedia.org/wiki/Spaced_repetition](http://en.wikipedia.org/wiki/Spaced_repetition)

also: [http://www.wired.com/medtech/health/magazine/16-05/ff_woznia...](http://www.wired.com/medtech/health/magazine/16-05/ff_wozniak?currentPage=all)

<comment><USER14> Thanks!

</comment></comment></comment><comment><USER16> You should check out our implementation of our own SRS for learning how to read and write Chinese at [http://whizzlearning.com](http://whizzlearning.com).

I agree that Anki can be a bit clunky and I don't like how it makes you manage your deck. We should be able to have an algorithm help you learn more efficiently.

However, we don't allow you to create your own decks either... we figured it was better to optimize for ease of learning and reduce frustration/anxiety since Chinese is considered to be so tough.

We are looking for beta users for our next version that streamlines the experience, adds traditional characters, etc. if anyone is interested.

</comment><comment><USER17> Hi Lawrence, i share your pain and just like you the frustration of forgetting my learnings has led me to build [http://www.memolyapp.com](http://www.memolyapp.com) We can work together to come up with a more powerful solution than Anki. Are you up for it? And do take a look at [http://www.memolyapp.com](http://www.memolyapp.com)

</comment><comment><USER18> Looks cool.

What motivated you to start the project? I'm just curious since there are already so many SRS flash card apps, including the impressive Anki (cross- platform, powerful features, open source, free). Is it just for fun/the challenge or is there some shortcoming of the existing apps you're looking to fix?

Best of luck with the project!

<comment><USER3> Thanks a lot! I just commented on the motivation for this project: [https://news.ycombinator.com/item?id=7127884](https://news.ycombinator.com/item?id=7127884)

</comment></comment><comment><USER19> missing specifier in homepage: how is this better than <a million other SRS software> ?

</comment><comment><USER20> Will it support latex math?</comment>


Internet disrupted in Iran amid fuel protests in multiple cities - <AUTHOR> https://netblocks.org/reports/internet-disrupted-in-iran-amid-fuel-protests-in-multiple-cities-pA25L18b <comment><USER2> It is not "disrupted amid protests" but shut down by Iranian government. Let's call spade a spade.

</comment><comment><USER3> Apparently Iran is one of the cheapest (if not the cheapest) countries when it comes to gasoline and utilities prices. Everything is subsidized in the country! They are lucky that their economy hasn't collapsed already considering it is a big country with 80m+ population.

And they have smuggling issues to neighboring countries for a long time.

> According to Iranian counter-smuggling authorities, 17 percent of daily fuel > production equivalent to some 40 million liters (10.6 million US gallons) > were being smuggled out of the country every day in 2009. This is while most > of the smuggling concerns gasoline and diesel fuel, whereas Iran imports > both of these to the tune of 30 million liters (7.9 million US gallons) > every day. Smugglers are using "lakes of fuel", underground pipelines to > neighboring countries and oil tankers.

[https://en.wikipedia.org/wiki/2007_Gasoline_Rationing_Plan_i...](https://en.wikipedia.org/wiki/2007_Gasoline_Rationing_Plan_in_Iran)

</comment><comment><USER4> Topic discussed 4 days ago on HN here:

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

(This submission is of an article from 4-5 days ago, around the same time as the other HN post, so it doesn't look like there's significant new info in this one.)

</comment><comment><USER5> I'd read in that the new fuel taxes were done to help the poor by funding social programs. Apparently, though, the taxes were pretty stiff, raising the overall price 50%.

<comment><USER6> Just for context ([https://www.bbc.com/news/world-middle- east-50444429](https://www.bbc.com/news/world-middle-east-50444429))

What are the new measures?

Under the new fuel measures, each motorist is allowed to buy 60 litres (13 gallons) of petrol a month at 15,000 rials ($0.13; £0.10) a litre. Each additional litre then costs 30,000 rials.

Previously, drivers were allowed up to 250 litres at 10,000 rials per litre, AP reports.

<comment><USER7> Reducing fossil fuel subsidies is absolutely the right thing to do. Air pollution from vehicles is very severe in Iran's cities, and imposes a huge health burden on the population.

Clean transport alternatives exist, and are becoming cheaper. But with fossil fuels being subsidised to the point that they are sold below their _production_ cost in Iran, let alone their market value or true environmental cost, clean alternatives will always have trouble getting established.

It's just too bad the Iranian government feels the need to block discussion on the internet, rather than use it to get the message out.</comment></comment></comment>


Mysterious radio signal from space is repeating every 16 days - <AUTHOR> https://www.cnn.com/2020/02/11/world/repeating-fast-radio-burst-pattern-scn-trnd/index.html <comment><USER2> The findings are included in the pre-print of a paper on arXiv [1], meaning the paper has been moderated but not fully peer reviewed.

[1] [https://arxiv.org/pdf/2001.10275.pdf](https://arxiv.org/pdf/2001.10275.pdf)</comment>


How everyone benefits from Verizon's FCC-mandated free tethering - <AUTHOR> http://www.extremetech.com/electronics/133810-how-everyone-benefits-from-verizons-fcc-mandated-free-tethering?utm_source=rss&utm_medium=rss&utm_campaign=how-everyone-benefits-from-verizons-fcc-mandated-free-tethering <comment><USER2> FTA, which took the words right out of my mouth:

 _I have no compunction in getting tethering for free, either from wired Play Store apps, or the root-only hotspot apps. You are simply circumventing a system that charges you twice for the same service. It's no different than sending an IM instead of an expensive SMS._

Tethering charges are nothing more than a naked cash grab. And phone companies wonder why they're hated...

5 gig is 5 gig, regardless of the device consuming it.

<comment><USER3> I don't really get the outrage. Is there some moral or legal obligation that a service's price must tie directly to its immediate costs?

Netflix charges me the same monthly fee whether I use it or not, is that fair? After all, on their end they only pay license holders per-stream (AFAIK).

<comment><USER4> > Is there some moral or legal obligation that a service's price must tie > directly to its immediate costs?

Yes. Verizon and other wireless telecoms have built their businesses on the back of a limited, public resource (namely, wireless spectrum) leased from the government (and therefore the people) of the United States. Therefore, they have a moral (should also be legal, but isn't at the moment) responsibility to act in an ethical manner.

If this were a market without such barriers to entry, I would say that they're free to do whatever they want, because competitors would enter the market and force them to change their policies. But when it comes to wireless telecoms, it's not possible for such competitors to materialize.

<comment><USER3> What is unethical about segmenting customers based on the devices they use? Would it be better to do away with all forms of "unlimited" plans and just charge per MB?

<comment><USER4> Unlimited plans have already been done away with by everyone except Sprint. What's at issue here is them charging extra for data bought by the byte.

I believe that you should be able to purchase data and share it amongst as many devices as you want (a small activation fee per cellular device may be acceptable, but nothing of the sort should exist for tethering, since there is no perceptible difference for the carriers) . This is how it works for wired internet, and I don't see why wireless should be any different (with the exception of any wireless specific network management, but that's not at issue here).

</comment></comment></comment></comment></comment><comment><USER5> Note that Karl Bode of DSLReports.com speculates that the tethering decision may mainly be cover for a less-watched pro-Verizon decision coming down the road:

From: [http://www.dslreports.com/shownews/Verizon-Wireless- Settles-...](http://www.dslreports.com/shownews/Verizon-Wireless-Settles-For- Blocking-Tethering-Apps-120590)

 _In other words, the FCC took action and finally enforced 2008 rules when they knew Verizon was already changing their ways -- without FCC involvement. Meanwhile, the FCC is rumored to be ready to sign off on Verizon's marketing relationship with the cable industry, despite the serious anti-competitive and coverage issues that deal raises. This tethering ruling could be a way to pretend to appear "pro consumery" before approving the Verizon cable deal._

The FCC: even when they do something superficially populist, on the big things they're in the incumbents' pockets.

</comment><comment><USER6> I am one of the "lucky" customers who has been able to hold on to my unlimited plan. So, I'm naturally annoyed that I don't get tethering now.

" _It is not clear that Verizon can differentiate between limited and unlimited plans through this interface — it might just look for a tethering plan flag. This could mean a free for all with unlimited users, tethering as they please._ "

I'm not sure if they're being extremely optimistic here, or I simply don't understand what the author is saying. Free for all with unlimited users? There might be some sort of technical problem to solve to prevent unlimited users from tethering, but my guess is that Verizon will do whatever it takes to force us to pay, if they can.

<comment><USER7> If you're on Android, install Cyanogenmod and get free tethering. I don't use it a lot, but I've never had any trouble.

<comment><USER8> I used it fairly heavily for a while during a move and didn't have any trouble. I'm pretty sure Verizon either can't/doesn't tell, or just doesn't care because relatively few people do that.

</comment></comment></comment><comment><USER9> I use AT&T for my iPhone but have the unlimited plan in which tethering isn't allowed. Would this FCC mandate force AT&T to remove the tethering plan as Verizon did?

<comment><USER10> Nope. AT&T's spectrum is not subject to the open access restrictions (and the iPhone, not being LTE at present, would not be subject to it anyway).

</comment></comment><comment><USER11> T-mobile just started routing my tethered access to an upsell page today - have been tethering with my phone for years. From what i was reading, the ruling only applies to "c-block" spectrum - i.e tmobile, sprint, at&t aren't affected by the ruling.

I'm more than annoyed, and will probably be either switching carriers or just getting a separate wimax device soon.

My plan is arguably a grey area - it's "unlimited", but only the first 5 gigs are at full speed.

</comment><comment><USER12> wasn't the C spectrum as part of this fine from the FCC based on 4g networks? IE how does this impact iPhone users?

</comment><comment><USER13> There are a lot of good arguments for and against a telco's responsibility to the customer — as well as if this may or may not create a more competitive market.

What I fail to understand is why "data" has become the new golden ticket? In the past, when voice was all anyone cared about, we had a relatively competitive market. Features such as rollover minutes, family plans, and much more were offered.

For example, I have a 300 minute plan, but have maxed out at 5000 minutes now because I simply don't talk on the phone ( Rollover ). Maybe in the past, this was different and cost them more to send data across the wire — but now it is the same, voice data and "data" data moves across the same pipes as far as I know.

If the telco's had to be competitive when it was voice only and data was a luxury — and if data and voice are no different — why are the telco's having such a hard time with this?

If a plan has 300 minutes of talk time, how about I get 300MB of data time. If I don't use it all, then give me rollover data just like they do with voice.

These telco's basically have one competitor, that being the cable company. From what I understand, DSL had new subscriber counts that were so low I was shocked — something like a few thousand new accounts in total.

If they want to compete with cable, right now, they can't, but as soon as their speeds come in-line with cable, they have the potential to be your phone and internet. And unlike cable, who only sends out one bill, the telco gets to send out a bill to every single person. Now, everyone has their own Internet connection and is paying for it.

From what I understand, telco's are paying pennies per GB on this data from their upstream. Places like Netflix drop the data as close to their doorstep as possible, at which point, there is zero bandwidth cost for the ISP to shuffle those bits around to users. If I use all of my 500GB a month, that costs the cable co. well under a dollar in upstream fees. Yes, they have overheads with their equipment and business operations, but that can't possibly amount to the overage fee's they charge, let alone the fact it costs me $70.00 a month or more for a decent Internet connection.

They are going to over-charge themselves out of the game. As soon as wifi is ubiquitous and phones learn how to jump from one AP to another, things will get interesting. If I were closer, there is an ISP called Sonic that is bringing 1 Gbps symmetric Fiber to people's homes for a very reasonable fee, around $50.00 a month I believe.

Look at AT&T and SMS messages. Apple releases iMessage, making there no need for SMS for iPhone to iPhone users. But I still have to keep SMS running for those people who don't have an iPhone. Apple could solve a lot of this by opening up iMessage so others can use the protocol — which I believe Steve Jobs said was supposed to happen. If Android could talk to iPhone over iMessages, it would wake up the telco's very quick. The only remaining need would be the tweekers and their pay as you go phones, and banks, credit cards, and other pure txt services that send alerts. Though they could simply put in an iMessage gateway — but I have a feeling that would take years for them to implement.</comment>


Ask HN: Know who is on your site and convert better - <AUTHOR> https://www.zoho.com/salesiq/ <comment><AUTHOR> What do you think about this platform?

SalesIQ let's you see who is on your site in real time, and tracks user activity, live chat feature reduces the response time and connects you to high value potential.</comment>


Neufund raises €2M for its blockchain-based venture fund - <AUTHOR> https://techcrunch.com/2017/01/17/neufund/ <comment><USER2> Direct investing in ICO is major risk for investors. There is very little due diligence and investors don't have downside protection and it's unregulated.

Instead of starting with complicated solution on blockchain, NeuFund is starting like a regular VC capital that will be doing ICOs for his companies. This way they will provide best of both worlds

<comment><USER3> that's right. thanks @kwikiel!

</comment></comment><comment><USER4> yeah good luck collecting on your equity when the company you "invested" in gets sold. How will they guarantee that the stake I've bought in the company is declared a legally mine? Will this ownership stand in a court of law?

<comment><USER5> You're right, maybe someone on HN can give us more info

<comment><USER6> there is a paper investment agreement signed with startup that says that certain shares are represented as a tokens in smart contract and whoever owns those tokens has shareholder rights (voting power, dividends) etc. so owning tokens is no different than owning shares. this paper agreement has a corresponding smart contract agreement (they are linked via hash) and together they protect our investment both on blockchain and in so called off-chain world

</comment></comment></comment><comment><USER7> Seems like you could have done this without needing to use a blockchain... Do we have to use a blockchain for everything now?

<comment><USER3> you're right that one can do funds without blockchain. but Neufund is not just a fund. I think that the Geektime article below is descirbing it in a lot more detail than TC. [http://www.geektime.com/2017/01/17/berlin-cryptocurrency- hyb...](http://www.geektime.com/2017/01/17/berlin-cryptocurrency-hybrid-vc- neufund-raises-e2m-to-upend-startup-investing-as-we-know-it/)

what Neufund does, in short, is providing the way to fund ANY STARTUP with the ICO process on blockchain. not just Blockchain startups. that's the key difference between us, other funds, and also ICO process itself, which currently is reserved to Blockchain companies only.

<comment><USER7> > "If I am a founder, I have to wait until I sell my company to make some > money," says Adamovicz, explaining that the core of their innovation is the > ability to make investment money much more tradable. "Our system is making > this classically static, illiquid asset liquid. We make this money flow very > fast."

From the article you linked.

I take issue with that. Making it easy for founders to cash out before they sell the company is just going to make it easy for founders to exit on a bad investment while passing the loss off to whoever they can market the loss to. Founders need to stay financially connected to what the found and see it through to a proper sell or eat the cost.

A system like this will just create a ton of companies with "good" ideas where the founders then tokenize their companies, sell them off and then let them fail. Part of being a founder is having risk. If the risk is too much then maybe your idea is bad. If your idea is good, then the risk should not be a problem.

That all being said, still you could do this without blockchain. You could just as easy -- per your example -- reserve 5% of your company to be sold to individuals and not big investors or PEs. You could even still do Newfund without having a blockchain as well. So to me, using a blockchain is just a way to hype of a bad idea.</comment></comment></comment>