Swiss Cat Ladders - <AUTHOR> https://mymodernmet.com/brigitte-schuster-cat-ladders/ <comment><USER2> We made a ladder (completely uninspired by this which pops up occasionally).

This was after moving the cat to an upstairs apt, which had always been an outdoor cat in Vermont.

Took him like two months to figure it out, even after terrifying and pissing him off by stranding him in the middle of it.

He was a thankful and happy cat when he finally realized his freedom.

Ours was uglier than all of the shown above (a spiral staircase around a pvc pipe), but it was a fun project and very rewarding.

<comment><USER3> Maybe it's also a Vermont thing. I built a cat ladder for some Vermont cats to get up into my daughter's loft bed. The remaining cat disdains the ladder and just scales the bed.

</comment></comment><comment><USER4> American living in Switzerland: Can confirm there's a cat ladder from the ground up to a balcony down the street.

I find the country also really values animal welfare as a whole.

<comment><USER5> If they valued animal welfare, they wouldn't allow cats outdoors. They are menace to local wildlife and biodiversity.

[https://abcbirds.org/program/cats-indoors/cats-and- birds/](https://abcbirds.org/program/cats-indoors/cats-and-birds/)

<comment><USER6> Why is this downvoted? There's plenty of evidence.

"We estimate that free-ranging domestic cats kill 1.3–4.0 billion birds and 6.3–22.3 billion mammals annually."

"may exceed all other sources of anthropogenic mortality of US birds and mammals"

[https://www.nature.com/articles/ncomms2380](https://www.nature.com/articles/ncomms2380)

<comment><USER7> The birds thing I understand. But mammals? It's mostly vermin like mice and rats. It's not like Fluffy McButtwiggles is taking down a hippopotamus.

<comment><USER8> There are many small marsupials (mammals) in Australia that are predated on by feral and domestic cats.

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

We have a cat that was rescued from a neglectful neighbour. We were shocked one night when it turned up at our back door with a live pet rabbit is had nabbed from a house a few doors away. Thankfully the cat mostly has since caught non-native mice and grasshoppers since (that we are aware of).

The best conservation efforts at restoring native animal populations in Australia have been achieved through cat and fox proof fencing followed by trapping, baiting and shooting programs:

[https://www.australianwildlife.org/sanctuaries/mt- gibson/](https://www.australianwildlife.org/sanctuaries/mt-gibson/)

<comment><USER7> _We were shocked one night when it turned up at our back door with a live pet rabbit is had nabbed from a house a few doors away._

Interesting. I once had a golden retriever bring us a baby rabbit from the woods. But he brought it to us in a nurturing way, as if to being it to us for help, not for dinner.

Just another way dogs and cats are different, I guess.

<comment><USER9> My sister's pet rabbit was killed by a neighbor's Dalmatian. I figure every dog is different.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> It's a combination of (a) Switzerland having a high proportion of renters, and apartments being much more common than town houses or detached housing (b) Outdoor cats still being the norm in Switzerland.

<comment><USER11> i really like the corkscrew stairs! we (in california) have many outdoor cats too. disneyland has a hidden phalanx of them for mousing purposes... oh, the irony!

however i keep mine strictly indoors for peace of mind. to satiate that desire to climb and to combat ennui, i built simple cat shelves/stairs onto the wall of my spartment using hand-sawn boards and metal brackets screwed into the studs. there are 2 paths up and down and around the corner that gives them a way to relieve the zoomies when they strike. my older cat uses them to sun near the window, while the kitten both runs and sleeps on them (and other untold mischief).

<comment><USER12> > i keep mine strictly indoors for peace of mind

In the Rest of the World you do have some cats kept indoors the whole time but it is not the normal thing to do. Only in America are they de-clawed, kept inside an apartment for their whole life and not given special 'cat' rights to do things like climbing really 'dangerous' cat ladders.

Cats very much have their own patch to patrol. Their home is there for them come feeding time. Despite being portrayed as antisocial they do interact with other cats in occupying this larger territory.

In a society where people let their cats patrol their territory it seems cruel keeping them indoors. In a street with lots of cats you would let yours out too. But if all the cats are locked away and not able to roam then you would lock your cat away too.

Interesting how Switzerland also has much more cat friendly traffic than what you get in America. Maybe this is why America has become this place where people lock up cats and daren't let them roam freely.

<comment><USER11> most people understand declawing is cruel and don't do it. and as i've witnessed far too often in my own neighborhood, feral cats often live short lives and suffer tragic deaths.

unless you have supportive research in human-feline relations, cat population epidemiology and comparative global _felis catus_ sociology buttressing those anti-american presumptions, my cats will continue enjoying their happy indoor lives.

<comment><USER13> For me, the "logic" goes like this: my cat wants to go outside, so I let him outside. (He was neutered, so not going to make any more cats.)

He's an adult (cat) and can make his own decisions.

I won't let my (small) fear of his death imeped his (great) desire to go outside.

Update: he lived a long-for-a-cat happy life and passed peacefully several years ago.

<comment><USER11> it's nice to hear that your cat had a good life.

however your experience doesn't generalize, particularly your assessment of the risks and benefits.

i watched a neighbor's cat get hit by a car and then die in my hands. the mortality rate for cats in my neighborhood is probably north of 20% per year (huge). it would be irresponsible to expose my cats to such risk when they're quite content already. mortality would have to be less than 1% (small) for me to reconsider.

</comment></comment></comment></comment></comment></comment><comment><USER14> My cat climbs vertical ladders and has clawed its way vertically up a bed propped against the wall. They are unbelievable climbers.

It's just they can't get down sometimes!

<comment><USER15> > It's just they can't get down sometimes!

You never find little piles of feline bones at the base of a tree. I doubt cats ever climb beyond where they can get down on their own.

<comment><USER13> This is what my dad explained to me and is further the reason he never helped me down from trees. I'm super thankful for this; I love climbing trees. (And have never seen cat bones in them)

</comment></comment></comment><comment><USER16> The ladders also provide an easy entrance into the house for everything from rats to raccoons, especially while the cats are sleeping.

</comment><comment><USER17> Huh I lived in Switzerland for 5 years and honestly I never noticed them! Maybe they weren't as common in central Zurich where I was. That's what happens when you look at your phone when walking, you miss all the cat- ladders!</comment>


The Egison Programming Language - <AUTHOR> https://www.egison.org/ <comment><USER2> > Egison is a programming language that realizes non-linear pattern-matching > against non-free data types.

It's a what? Can someone ELI5 this for a lowly Python and JS dev - why would I want this?

\----

I watched a talk about Scala's future [0] recently, in which the presenter compared the taglines of a few different languages (Go, Rust, Erlang, Scala), and how they relate to business pains or non-academic problems.

His conclusion about Scala's tagline - "Scala combines object-oriented and functional programming in one concise, high-level language" is that "no engineering manager in the history of software development ever thought to themselves 'hmmm, if only I had a language that fused OO and FP, I'd be able to solve my business problems'. That hasn't happened; that will never happen. This is an academic novelty that has zero relevance to any of us as professional software developers [...] this is not a business pain, this is an academic interest."

I felt a little bit like that when I read Egison's tagline: why should I care about this language?

[0] "The Last Hope for Scala's Infinity War" [https://youtu.be/v8IQ-X2HkGE?t=15m8s](https://youtu.be/v8IQ-X2HkGE?t=15m8s)

<comment><USER3> Scala's mistake is ostensibly that it is an academic language trying to pitch itself as a language for building business applications.

Egison appears to be a self-consciously academic language, which strikes me as a perfectly legitimate.

In particular, the goal seems to be to provide a more intuitive way of writing algorithms using extensible pattern matching. Now, I have worked on commercial software that has highly algorithmic parts (graph traversals, etc.) written in Erlang (a language that supports a powerful, but not extensible, form of pattern matching). I found the pattern matching facilities to be quite helpful in producing readable, concise, correct code.

The use case is narrow, but strikes me as real nonetheless.

<comment><USER4> As a Scala dev, one issue I see with the language is that it doesn't keep you in check. Easy things are easy and there are lots of syntax sugar and little conveniences here and there that make the language great, but the advanced features are just as accesible to the developer. You need self-restraint when doing Scala, there is a real risk of losing perspective and getting distracted with fancy features and libraries.

<comment><USER5> Which syntax sugar do you think verbose? I don't think Egison has lots of syntax sugar.

Egison features a customizable pattern-matching facility. Pattern-matching methods for each data type and pattern can be customizable by users. There might be a possibility that you thought syntax sugar is not syntax sugar.

</comment></comment></comment></comment><comment><USER6> _Express Intuition Directly with Essentially New Syntax_

 _Egison makes programming dramatically simple!_

        (define $twin-primes
          (match-all primes (list integer)
            [<join _ <cons $p <cons ,(+ p 2) _>>>
             [p (+ p 2)]]))

Uh, ok?

<comment><USER7> Yep, that's where I stopped. What I think is going on... Some people think predominantly in abstraction and don't really care about syntax. As Paul Graham once said, LISP doesn't really have syntax - you write parse trees directly. That may be fine for people who have achieved that level/style of programming, but it's a tiny minority.

Why should I write (+ p 2) when most people think (p+2)? This difference gets worse with more complex expressions. For the masses (and I mean a lot of very capable people) this is just garbage. For some it's wonderful. I can't say it's wrong, just not my thing. Perhaps it's the Blub paradox - I've never had the LISP epiphany so I can't say. I have had the python epiphany, and it's quite the opposite of this.

<comment><USER8> > LISP doesn't really have syntax - you write parse trees directly.

Lisp has plenty of syntax, it's just extensible and largely defined in operators. Commonly used macros like DEFUN, WITH-OPEN-FILE, and LOOP all add their own syntax to the language; that's what macros are for. When you put them together, typical Lisp code ends up looking like

        (defun count-words (filespec)
          (with-open-file (f filespec)
            (loop with counts = (make-hash-table :test 'equal)
                  for line = (read-line f nil)
                  while line do
                    (loop for word in (cl-ppcre:split "\\s+" line) do
                      (incf (gethash word counts 0)))
                  finally (return counts))))

Which I don't think is that alien. It translates pretty cleanly into Python:

        def count_words(filespec):
            with open(filespec) as f:
                counts = collections.defaultdict(int)
                for line in f:
                    for word in line.split():
                        counts[word] += 1
                return counts

Do you find the former significantly harder to understand? I don't see how it's any more like "writing a parse tree directly."

> Why should I write (+ p 2) when most people think (p+2)? This difference > gets worse with more complex expressions.

As mentioned in other comments, there are infix packages available for when you're writing math-heavy code (or if you just _need_ infix operators), but I also think that a lot of people don't write very much code with complicated inline arithmetic in it, and overstate how much the awkward math syntax would affect them (there are of course plenty of projects that are math-heavy and where it does make a large difference). When you're defining variables/functions/classes/etc or calling functions or looping or whatever, there's not much difference between Lisp and most other languages aside from whether the bracket is { or ( and which side of the keyword it goes on; in my experience, that sort of code tends to make up the large bulk of most codebases in most languages.

edit: Another place where Lisp's default syntax is significantly different from a lot of languages is something like object.f(x).g(y).h(z), which in Lisp looks like (h (g (f object x) y) z). This can be remedied with common macros like -> that let you write (-> object (f x) (g y) (h z)).

<comment><USER9> Both your snippets are exceedingly long, verbose and painful to understand. In C#, that normally is a quite verbose language, you can write just this:

        IDictionary<string, int> CountWords(string f) => File.ReadAllText(f).Split().ToLookup(w => w).ToDictionary(kv => kv.Key, kv => kv.Count());

Or a bit more concise in F#:

        let wordsCount f = File.ReadAllText(f).Split() |> Array.groupBy id |> Array.map (fun x |> fst x, (snd x).Length) |> dict

<comment><USER8> Sure, there's other ways to write it, the point of the post was Lisp's syntax, not the algorithm I used to demonstrate some features of it. You could write examples like yours in Lisp or Python, too. As well, your examples both slurp the whole file into memory, which mine avoided.

edit: And your C# version is only 24 non-whitespace characters shorter than the Python version, and 20 of those are because you called your variables 'f' instead of 'filespec' and 'w' instead of 'word'. A 4 non-whitespace character difference makes it exceedingly long and verbose? Or are you just advocating 1-letter variable names and avoiding newlines?

<comment><USER9> The c# version is calling only 4 methods and in C# you obviously have to declare the types. It's the difference between declarative style versus imperative that I wanted to highlight, obviously Python is more compact than C#, but written in that way it becomes more verbose and more difficult to read and write. Write something like that in Lisp and let's see how it compares.

<comment><USER10> Isn't "kv => kv.Key" a lambda function that is called?

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> I've been casually following Egison for a while now. Its customizable pattern matching is really cool. Unfortunately I do think the lisp syntax does turn some folks off; whether this set of folks overlaps with those who would be interested in Egison otherwise, is another question.

I've also noticed that it "pivoted" to focus more on math; is that intentional?

Anyway, good to see it on HN again. Anything that pushes more pattern matching research is a plus for me =). Mainstream languages barely started to adopt first-order pattern matching!

<comment><USER5> Thank you for your comment!

I started to implement a computer algebra system as a killer application of customizable pattern matching of Egison.

It allows users to customize the pattern-method for mathematical expressions from more primitive level than the other computer algebra systems.

</comment></comment><comment><USER12> Looks like a lisp dialect, why is it a separate language?

<comment><USER13> A language is a dialect with an army and a-- err a parser and a compiler :)

</comment></comment><comment><USER14> This looks like an intruiging alternative to Julia. Last time I tried Julia, effecient multidimensional code generation was incomplete due to required work in the type system. I wonder how Egison's performance matches it's expressiveness.

<comment><USER15> When did you last try julia? Things are looking pretty great these days.

</comment></comment><comment><USER16> I love how it matches so much more. It would take me some time wrap my head around the new possibilities.

I doubt I have time to learn this or use it but it would be cool to see a list of examples of things that are much more concise and elegant in this language so that it expands my thinking. Is there a list of examples with comparisons to traditional languages?

</comment><comment><USER17> interesting about the math integration with tensors and differential forms. gonna have to read the linked paper.

<comment><USER5> Thank you for your interest!

Here is a link for a new paper that discusses the integration of tensor index notation including the support for differential forms.

[https://arxiv.org/abs/1804.03140](https://arxiv.org/abs/1804.03140)

<comment><USER18> This seems very interesting, I have only just skimmed it so far. Am I wrong in thinking this might relate to (representations for) Geometric Algebra?

<comment><USER5> The calculus for differential forms is a part of Geometric algebra, so I think there is a relation. Egison's strong point is it can handle tensor-valued p-forms due to its ability to handle both of tensor index notation and differential forms at the same time.

<comment><USER18> Cheers.

</comment></comment></comment></comment></comment><comment><USER19> Your syntax is bad and you should feel bad.

Mandatory XKCD: [https://xkcd.com/297/](https://xkcd.com/297/)

</comment><comment><USER20> Is there a academic language which focuses solely on performance and optimization- by building the program and data structures around the hot-loop and optimal cache usage? Something Mike Acton would create if he wrote compilers?

<comment><USER18> A language called "Spiral" went by yesterday, that I think does a little bit of that. [https://news.ycombinator.com/item?id=17519138](https://news.ycombinator.com/item?id=17519138)</comment></comment>


The GNU/Hurd architecture, nifty features, and latest news [pdf] - <AUTHOR> https://archive.fosdem.org/2013/schedule/event/hurd_microkernel/attachments/slides/163/export/events/attachments/hurd_microkernel/slides/163/2013_02_02_fosdem.pdf

<comment><USER2> It's really nice to see an operating system that's based on some new ideas. I always say it's an embarrassment that the two most popular OSs today are a clone of Unix and the bastard child of VMS.

<comment><USER3> I wonder what percentage of people will get the VMS reference.

<comment><USER4> "Bastard child" as IBM is the father to the unwed MSFT?

<comment><USER2> That would be MVS.

<comment><USER3> The project leader of VMS, Dave Cutler went to MicroSoft and led the development of Windows NT. That is what I think the VMS reference is.

</comment></comment></comment></comment></comment><comment><USER4> Is it ironic that this GNU/Hurd newsletter is published as PDF? Or is that format now considered sufficiently free?

<comment><AUTHOR> It is looks like a newsletter? It's FOSDEM presentation slides</comment></comment>


Schools Are Slow to Learn That Sleep Deprivation Hits Teenagers Hardest - <AUTHOR> http://www.nytimes.com/2016/03/29/upshot/schools-are-slow-to-learn-that-sleep-deprivation-hits-teenagers-hardest.html <comment><USER2> why is it that the schools have to learn and not the parents? It is not the job of the schools to make these decisions, its is the job of the parents.

This is just an article trying to shift the responsibility of the parents back onto the state. If you change the school day to accommodate the parents/students who are slacking, you screw over the ones who aren't.

If you push the start time later, students will just stay up later, and their parents will let them.

<comment><USER3> > why is it that the schools have to learn and not the parents?

Because the schools set the schedule for their classes, not the parents.</comment></comment>


Another update on the Truecrypt audit - <AUTHOR> http://blog.cryptographyengineering.com/2015/02/another-update-on-truecrypt-audit.html <comment><USER2> This project will probably get outdated by windows 11 or 12, it will lose support and become legacy ...

I don't see why people should spend money auditing it, instead of building maintainable alternatives

<comment><USER3> TrueCrypt was much more flexible than anything Windows has to offer.

Bitlocker is great for enterprise-style encryption, in particular on machines with TPM chips. However many consumer machines do not include a TPM, even in 2015.

TrueCrypt allowed you to encrypt individual drives, even offline drives, with no Bitlocker overhead. You also weren't required to decrypt them upon each boot like Windows' Bitlocker insists upon.

Additionally TrueCrypt would also encrypt directories, USB drives, hidden volumes, various encryption algorithms, double encryption, and so on.

Plus it was cross-platform friendly (or at least more so than BitLocker). What are we meant to use to move encrypted data from Linux to Windows now? 7Zip w/AES 256?

<comment><USER4> Not to mention how much the US governments advocates against encryption they can't have backdoors to. They have a lot more influence over the encryption in Windows than TrueCrypt. Not suggesting they DO have backdoors to Bitlocker, there's not enough evidence, but the probability is much higher.

<comment><USER5> They do in the form of OneDrive.

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

Short story is that if you use Windows 8{.1} and have a Microsoft account then it will upload your BitLocker keys by default. Seems to me like a backdoor if ever I heard one.

</comment></comment></comment></comment><comment><USER6> I'm looking forward to the next report.

One thing I noticed looking through the code is that the key generation on Windows mixes a CRC32 of a MOUSEHOOKSTRUCT. If you look at it, there isn't a huge amount of entropy in there... Some fields, such as the window handle, don't change between callbacks. Others, such as the hit test code are enums with limited possible values, and the way that most people move the mouse around will return the exact same value all the time. The difference in time between two different values is run through CRC32 a few times and then the whole thing is run through a real hash. Most users don't bother adding entropy from the keyboard.

While I don't think any of this is a vulnerability, I think it could be better.

[edit: I'm talking about Common/Random.c in 7.1a. And by better I'm suggesting additional sources of entropy be included in the process]

<comment><USER7> It doesn't at least try CryptGenRandom?

<comment><USER6> You are right, it does use that if available. It grabs a bunch of other system state as well, depending on the situation.

</comment></comment></comment><comment><USER8> More discussion: [https://news.ycombinator.com/item?id=9069295](https://news.ycombinator.com/item?id=9069295)

<comment><USER9> Can you explain this quote from you and your involvement in the TrueCrypt audit?

"By encouraging people to rely on tools like Truecrypt, you are, in a very small but real way, endangering them." [0]

It just seems like you supporting the audit (and therefore supporting TrueCrypt) is at direct odds with what you said an hour ago.

[0] - [https://news.ycombinator.com/item?id=9071126](https://news.ycombinator.com/item?id=9071126)

<comment><USER10> It's pretty easy to explain - and in fact, you got your answer[0]

> Block-level encryption is a terrible, terrible approach for many reasons > (which 'tptacek has referenced a million times). However, Truecrypt is the > best such implementation, and it's a required approach in certain cases. You > should be doing crypto at the application/filesystem level; if you can't, > use Truecrypt. This isn't contradictory advice.

The only reason this even seems remotely contradictory is because you've taken Thomas's statement completely out of context (perhaps because it's nested about 50 lines in from the top-level comment that even provided the context in the first place).

Alternatively, it's only contradictory if you take a black-and-white, all-or- nothing interpretation of what Thomas says... which is quite ironic, because one of his key criticisms of Truecrypt is that it is all-or-nothing, as stated _in the very same post that you quote_ [1].

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

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

</comment></comment></comment><comment><USER11> You can be proud, make 10000% more money that true crypt developer for several years working and now act like nothing happened. This audit was reasons why TT is offline

<comment><USER12> Sorry, didn't understand that.

<comment><USER13> Think he was getting at a theory that the development of TrueCrypt was abandoned because of the audit, for some reason. Maybe for reasons of pride (questioning their integrity by looking for backdoors) or fear that something nefarious would be uncovered.

The first is plausible, the second doesn't sound like the reaction an anonymous author would have.

Most plausible reason the devs abandoned it imho is that they got bored.

</comment></comment></comment><comment><USER14> From Wikipedia:

TrueCrypt is a discontinued source-available freeware utility used for on-the- fly encryption. It can create a virtual encrypted disk within a file or encrypt a partition or the entire storage device.

Since TrueCrypt is dead, what is the purpose of auditing it? Is there an official team that is ready, willing and able to take over maintenance and development?

If anything should be audited I would think it should be one of the forks.

But the author makes the following comment on the other thread:

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>---- Also: speaking in no "official" capacity whatsoever, I'd advise you to stay away from the forks of Truecrypt. Unless something new has come to light since last I looked, the licensing situation on the TC code is weird: [http://lists.freedesktop.org/archives/distributions/2008-Oct...](http://lists.freedesktop.org/archives/distributions/2008-Oct..). ... which means there is a pretty strong disincentive for people with serious crypto and systems expertise to invest their time and energy building on it. You don't want to trust crypto platforms with built-in adverse selection problems.

\</comment><comment></comment><comment></comment><comment></comment><comment>---

So the forks have issues and the main project is dead?? But we needz more money to audit it more?

I am also unclear what the first expensive audit accomplished if it did not cover encryption. Sounds like having an inspection on a house that covers part of the roof and two rooms and nothing else like the foundation. Does anyone have a link to the original campaign to raise money?

<comment><USER15> > Since TrueCrypt is dead, what is the purpose of auditing it?

To access existing volumes. All my backup CDs were TC encrypted.

And I haven't found a replacement that is all of easy to use, stable, and cross-platform. New encrypted volumes I make are LUKS but the Windows FreeOTFE is even deader than TrueCrypt. It still works, mostly, but could be a lot better.

<comment><USER14> If someone needs to access existing truecrypt volumes in order to migrate data, I dont see how the audit helps since the only way to get the data is to use truecrypt.

I guess the alternative is to just lose all the data.

If the audit found any problems then it would most likely mean that further use was problematic, not that migrating existing volumes was problematic.</comment></comment></comment>


Your Hacker News profile name isn't green enough - <AUTHOR>

Just wondering, why are some usernames in green, and the majority of the rest are black/90% grey? Am I missing something? <comment><USER2> [https://www.hnsearch.com/search#request/all&q=green+username](https://www.hnsearch.com/search#request/all&q=green+username)

</comment><comment><USER3> Not enough karma, if I had to guess.

</comment><comment><USER4> Green = newbies.

<comment><AUTHOR> Huh--why would newbies get the added benefits?

<comment><USER4> What benefits?

<comment><AUTHOR> Increased visibility. That's why people post things here right? ;-)</comment></comment></comment></comment>


Google Buys Video Company On2 for $106.5M - <AUTHOR> http://gigaom.com/2009/08/05/google-on2-deal/

<comment><USER3> My immediate first thought was also that Ogg Theora & HTML5 played a role in Google's reasoning to buy On2. Even if they've disclaimed all patent rights, Google is providing the deep pockets to keep other vendors reassured about patent trolls.

<comment><USER4> Even better, Google can now open up VP6.

Vendors have reservations about submarine patents on Theora/VP3 - <USER2> possibility that that even though On2 has disclaimed patent rights, other patent holders are lurking about, waiting for Theora/VP3 to become popular enough to sue over.

I think VP6 doesn't have this problem. If a patent troll had a potential claim over VP6, they'd have gone after On2 or Adobe or Youtube by this point.

EDIT: Someone else has posted that Youtube never used VP6. Anyone know if Flash+VP6 was common enough to obviate the "we're nervous about patents because nobody ever used this" argument against Theora/VP3?

<comment><USER5> No need to "open it up"; VP6 has already been reverse-engineered. There were planned projects to write encoders, but the adding of H.264 support to Adobe Flash ended any attempt in that realm, since VP6 is now useless.

</comment></comment></comment><comment><USER5> This decision doesn't make any sense to me. There's nothing about On2 that's worth more than ~$10m.

On2 is notorious for having fallen behind technology-wise, with VP7 falling by the wayside and VP8 seemingly being just a small upgrade of VP7--and still being vastly inferior to the best free software encoders out there. They've pretty much had to cheat in every single comparison they've posted in order to make it look as if they were still in the game.

They've spent the past _seven years_ saying that they were "about to" come out with something better than H.264, and yet still haven't; they're almost Duke Nukem Forever-level in terms of vaporware.

A developer I know joked that their entire development team is probably worth less than Skal (former Xvid developer who currently works for Google).

Furthermore, nobody is going to buy into a new video format--even on the phenomenally unlikely chance that it's marginally better--if no hardware supports it.

The only thing I can imagine is that they bought them for their software patents, which says something about the sad state of the intellectual property world.

<comment><USER6> _There's nothing about On2 that's worth more than ~$10m._

It has quite a large customer base. Brightcove, Skype, Youtube to name a few.

Obviously not in the league of H.264 though.

EDIT: but still lossmaking...<http://www.on2.com/file.php?228>

<comment><USER5> Youtube doesn't, and as far as I know, never did use VP6.

Additionally, I'm not so sure a large customer-base is even a _good thing_ ; everyone I've talked to who has used their VP6 encoder engine on a server farm comments on how much of a crashy, buggy piece of crap it is. This reputation is not going to help grow the business in the future even if they _do_ produce a good product.

<comment><USER6> Yeah, you're right, youtube uses SVQ.

<comment><USER5> No, they used Sorenson H.263, aka "FLV1" (I assume that's what you meant though). SVQ1 was a vector-quantizer codec used by Quicktime in the 90s, and SVQ3 is another Quicktime format which is a ripoff of H.264.

</comment></comment></comment></comment></comment><comment><USER7> So are they going to license VP8 for money or open it? Android and possibly HTML5 could stand to gain a lot from this, I guess. [VP8 was touted as better- performing than H.264, with suitability still for low power (eg ARM) platforms... though haven't seen any results yet]

</comment><comment><USER8> On2 is the company that originally developed the VP3 codec, on which the Ogg Theora codec is based.

<comment><USER7> Interestingly enough, On2 didn't develop VP3 either - they acquired it when they bought MetaVisual Creations.

</comment></comment><comment><USER9> I'm in the middle of a project that uses their FlixCloud service for on-demand transcoding ... I hope that doesn't die.

</comment><comment><USER10> Wow Google makes $106 million in about 43 hours. If this is accurate <http://www.incomediary.com/top-earning-websites/> google makes almost 700 dollars per second.

</comment><comment><USER11> Maybe this means they'll open up some of their windows-only codecs for us.

I downloaded some content recently that was VP8 encoded. Came with instructions to download a codec.. which is Windows XP and higher only.

Not even VLC can play that.

</comment><comment><USER12> Google's press release: [http://www.google.com/intl/en/press/pressrel/ir_20090805.htm...](http://www.google.com/intl/en/press/pressrel/ir_20090805.html)

</comment><comment><USER13> Have Google neutralised any remotely possible patent threat from On2 over Theora now? Can we finally get on with implementing <video>?

<comment><USER7> On2 released all the patents they had on VP3 when they gave it to Xiph. Apple and Nokia's patent concerns (if they were genuine) were to do with unknown third-party holders of submarine patents. In that respect, I don't think Google could offer any more protection.

</comment></comment><comment><USER14> The obvious youtube application aside, I wonder if they are looking forward to the need for video support for chrome OS?</comment>


Three Must-Have Email Campaigns for User Engagement - <AUTHOR> https://segment.com/blog/3-must-have-email-campaigns/ <comment><USER2> Is this a parody? If I sign up for your app to check it out and decide I don't like it, I'm going to get emails about it every 4-7 days until the end of time? If I buy something from you once, emails every month unless I decide to buy something again? If every app and online store I've ever used took up this tactic, my inbox would be an absolute nightmare. It sounds like a great way to generate unsubscribes and spam reports.

</comment><comment><USER3> Basic info is basic. (I've done this for 10 years at least)

And yes, it works - Not everybody uses email the same way, nor everyone thinks is offensive to get messages. Yes, people unsubscribe at every email sent, and still, the majority of folks don't need to have a clean inbox and can live their lives just fine with emails from their retailers.</comment>


Five Ways I Improved My Coding Workflow - <AUTHOR> http://www.flipcode.com/archives/Five_Ways_I_Improved_My_Coding_Workflow.shtml

<comment><USER2> What is this?? ... 2002

</comment><comment><USER3> No version control? Seriously?</comment>


The best way to load external JavaScript - <AUTHOR> http://www.nczonline.net/blog/2009/07/28/the-best-way-to-load-external-javascript/ <comment><USER2> Wouldn't it be yet another optimization to just include that loadScript function in the HTML? Reducing round trips to the server is a common technique in web site optimization.

I realize that script will be cached after the first time, but it's so small that it will hardly affect the performance of subsequent requests anyway.

</comment><comment><USER3> Google conveniently hosts and distributes most of the common Javascript libraries through their CDN, and allows external developers to load them using this technique. <http://code.google.com/apis/ajaxlibs/>

<comment><AUTHOR> Has anybody else noticed slower load times using Google's hosted libraries than their own?

<comment><USER2> It's probably faster to serve them off your own server due to HTTP keepalive.

Sure, making a new connection to google's CDN might be faster than making a new connection to your server, but it's definitely not going to be faster than sending a little more data over an existing connection. Not to mention the extra DNS lookup.

<comment><USER4> The idea is that if _everyone_ uses the google-hosted jquery, it'll almost always be in the browser cache.

</comment></comment></comment></comment><comment><USER5> I've found the best way is just just `cat` all my js files together, and just include that one...

<comment><USER3> The article points out that that strategy will cause your page to block while it's loading. See [http://www.stevesouders.com/blog/2009/04/27/loading- scripts-...](http://www.stevesouders.com/blog/2009/04/27/loading-scripts- without-blocking/) for more info.

<comment><USER5> Not if you put it at the bottom. Yes, it does block the page, but hopefully your page will degrade gracefuly until the js is loaded. If it doesn't, then you want it at the top, where it will block. It will load slower, sure, but people won't have to see a broken site.</comment></comment></comment>


View the HTML Source of subway.com; it's a marvel of modern browser technology. - <AUTHOR> http://www.subway.com/subwayroot/index.aspx

<comment><USER2> Any particular reason why Subway was chosen? There's got to be a billion other pages out there as bad or _worse_.

Personally, I like Sears.com. I looked more closely after I found and reported a security hole in one of their systems. It's _far_ more terrifying than the relatively-tame code I saw on Subway's site.

</comment><comment><USER3> Wow it looks like a planet with no life. Code generated by an old html robot

<comment><USER4> _<!-- Creation Date:01/02/08 -->_

</comment></comment><comment><USER5> Obviously a little late to read this.. but the source now shows this:

Now the that big switch is gone, here are some fun facts: 1\. This site was created in 2002, using Visual Studio 2003. 2\. Yes there was some editing done in frontpage. The editors worked better than VS 2003, and we had a license for it. 3\. A lot from the funky mark-up is from some early generation .NET thirdparty controls we've been maintaining. 4\. We look forward to updating the site as much as you (probably more in fact!) Thanks for the QA, Redditors!

</comment><comment><USER6> [http://shop.subway.com/substore/substore/tabid/38/entityname...](http://shop.subway.com/substore/substore/tabid/38/entityname/category/categoryid/1/sename/feature- products/default.aspx)

I guess when your url looks like that, it's not that much of a surprise to have that much view state.

(edit: Just noticed it looks like that is DNN)

<comment><USER7> I'm pretty sure it's Sharepoint

<comment><USER6> <snip> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="en-US"> <head id="Head"> <!-- __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __\-- > <!-- DotNetNuke� - <http://www.dotnetnuke.com> \--> <!-- Copyright (c) 2002-2008 --> <!-- by DotNetNuke Corporation --> <!-- __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __\-- > </snip>

From the URL above...

<comment><USER7> yea that appears to be DNN

But subway.com root has

<meta content="SharePoint.WebPartPage.Document" name="ProgId"> <meta content="full" name="WebPartPageExpansion">

who knows what the hell they are actually doing... Whatever it is - it's an ugly ass kludge

</comment></comment></comment></comment><comment><USER8> The reason Subway doesn't invest much in its website is because its primarily a franchise sales tool. The consumer doesn't really factor in here much at the corporate level.

I did a bunch of bids for some other very large franchise company websites and they were almost universally reluctant to invest any amount of money in upgrading their website. To the corporate honchos they make their $$ selling franchises - they could care less about consumer utility. They aren't selling many sandwiches via the web so everything else on the website is just a grudging formality - menu, store locator, coupons etc

(That said, this site is a marvel of modern engineering. I especially like how line 2 dives right into a table tag. Screw <html> or <head>, give me MORE TABLES!!)

<comment><USER9> the opening html tag is there....

right on line 170

Also the closing html tag is on line 791, followed by 43 more lines including another table

</comment></comment><comment><USER10> oh boy... 1) I started feeling bad way before hitting on the source... 2) the switch for Go To Country is brilliant!

<comment><USER7> yeah the Go To Country Switch is a product of sheer brilliance

</comment></comment><comment><USER11> it just told me (in a popup window) i don't have flash 8 or greater...

<comment><USER12> that might be part of the sarcasm in the post title.

</comment></comment><comment><USER13> 5\. 5 dollar. 5 dollar web-presence investment...

</comment><comment><USER14> ONMOUSEOVER loves you! It just wants to be your friend!

Also, I just noticed that buried deep within the body section is some juicy metadata about a Fiery Footlong Frenzy. I need to start slipping that into all the code I write. Maybe buried somewhere deep within a table. With some <strike> tags in between for good measure.

</comment><comment><USER15> 66 Errors, 17 warning(s)

[http://validator.w3.org/check?uri=http%3A%2F%2Fsubway.com%2F...](http://validator.w3.org/check?uri=http%3A%2F%2Fsubway.com%2F&charset=%28detect+automatically%29&doctype=Inline&group=0)

</comment><comment><USER16> From a user's perspective, the site loads quick and displays fine. Would there be any particular reason that would motivate the programmers of Subway.com to clean up their code or reformat it in a more efficient way?

<comment><USER7> 1) reusability 2) maintainability 3) self pride

</comment></comment><comment><USER17> So many tables, 48 to be precise.

<comment><USER18> That's 10 times as many tables as the average Subway restaurant has!

</comment></comment><comment><USER19> Five dollar... Five dollar... Five dollar foo....web designer!

</comment><comment><USER20> I see... a self-post to brag about your coding skills

</comment><comment><USER21> Ow, ow, those sharp edges of those tables!

</comment><comment><USER22> alt="Were Winners Eat!"

</comment><comment><USER23> Well, it works!

<comment><USER24> ..ish!</comment></comment>


Why I Use Fossil - <AUTHOR> http://sheddingbikes.com/posts/1276624594.html <comment><USER2> While I love the _idea_ of Fossil, I think Zed downplays a lot of the problems that it has in reality.

There's no real way to throw out branches easily, nor is there any rebasing. Fossil doesn't track renames, so if you rename files in a branch, you'll need to rename them again on mainline before the merge. Fossil doesn't have any concept of patch management via email, which is fairly central to most OSS projects I'm involved with. The bug tracker is not DAG-based, but rather last- wins, which can result in some surprising outcomes. You have to log in to see bug reports, which can be discouraging for users, and prevents your bugs from being googleable. And so on.

I'm not saying that GitHub is perfect--hell, I make a competitor, based on Mercurial no less, so I clearly don't think it is--but I think Fossil still has enough fundamental flaws in it that I would be very hesitant to pick it up for a new project. I'd rather deal with GitHub's proprietary system (of which all data is accessible via its API [1]) than deal with Fossil's SCM quirks. Zed clearly disagrees, and has projects where it's working for him, and the SQLite project uses it, so it might work for you. But I would strongly encourage caution. I'll personally be sticking to Mercurial and Git for now.

[1]: <http://develop.github.com/>

<comment><USER3> "You can create branches by doing multiple commits off of the same base version." It doesn't sound hard, but perhaps I am missing something?

<comment><USER2> I said throwing out branches you don't want is hard. You said creating branches is easy. Those are both true.

</comment></comment></comment><comment><USER4> If I may quickly address Zed's concerns about putting his code on GitHub:

1\. GitHub is a node on a distributed graph, you're still in full control of your source and its history thanks to Git. Push your code to a dozen different places, Git doesn't care and neither do we.

2\. We have soft disk space limits. If your OS project is massive, we're not going to suddenly start charging you if you exceed that space. We want lots and lots of open source projects on GitHub, we just don't want it to become the place you host your music and porn, there are plenty of other services that are happy to do that.

3\. GitHub's growth (thus revenue) skyrocketed during the recession, and it's only getting better. We've rejected acquisition offers since the site was launched, we care deeply about the service we've built.

<comment><USER5> I think the distribution issue is more about metadata than the code itself: issues, wiki pages, and comments are still centralized on GitHub. With Fossil, I gather, they're distributed among each clone.

<comment><USER4> We're slowly but surely moving towards having those things either become git- backed or exportable. Wikis are first up and we're very close.

<comment><USER6> Exportable is not the same thing as naturally distributed though. And git- backed is nice, but with fossil it's fossil-baked as everything is tucked into the exact same repository.

> Wikis are first up and we're very close.

Well yeah but as far as I understand, with Fossil it's done already, not just close (and I'd say distributed bug trackers are closer than wikis if not done already)

<comment><USER4> Integrating those systems directly into Fossil seems like a poor design decision. Everyone has different requirements and it directs focus away from the core responsibility of a VCS. Do one thing well and all that good stuff.

<comment><USER7> People said that same sort of thing about RoR or Django too. "What?! You have to do it the way they want? I prefer fooORM!", and so on. The point is not that it is great at whatever, the point is it get stuff out of the way at start time, and allow you to get to the meat of it quickly. Later on if the project turns into something interesting, you can switch to redmine, or put a real wiki behind it, and so on (but only as really needed).

<comment><USER5> That's an interesting point in light of Rails' recent movement towards more modularity. It suggests that there may be room for a Fossil-like abstraction over Git that has (pluggable?) built-in cloned-by-default issues, wiki, etc.

<comment><USER7> Honestly I've always wondered why redmine, trac, et al don't already build their wiki on top of the vcs anyway, instead of using a separate database with tracking. Such a step seems counter-productive.

<comment><USER5> I can see arguments both ways. Having the wiki separate means that the repo doesn't get polluted with unrelated commits (especially important for SVN which doesn't have branches), and it makes setup at least somewhat easier, since an extra push-capable user doesn't need to be added.

<comment><USER8> >> (especially important for SVN which doesn't have branches)

explain.

<comment><USER5> Subversion doesn't have a built-in notion of branches in the same way that distributed systems do. Instead of being names for nodes in the DAG of commits, branches in Subversion are usually handled by manually maintaining separate versions of the same code in a branches/ subdirectory. In a distributed system, you could keep a wiki or bug database on its own branch, and commits to that branch wouldn't be visible if you only cared about the main branch. In Subversion, those commits would be visible, because it's all part of the same tree.

One caveat: Subversion's branch management may have changed since I last looked (version 1.5 or so). However, systems like Trac and RedMine were designed when branches worked as I described above, so it still serves to explain their rejection of SCM-backed storage.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> _I think you should know all the SCMs you can and be able to switch between them._

Sometimes I feel like the modern programmer is expected to spend more time learning to use multiple implementations of the same basic concept, than on actual programming.

<comment><USER10> 'tis true though. Imagine how many companies out there looking for specific programming skills:

1) RoR NINJA!

2) jQuery EXPERTS!

3) JSF and/or Spring _and_ Struts2

4) C#, ASP.NET

5) All-things XML (XSLT, XSL-FO, XQuery, Xwhatever)

6) Specifically asking for DB2 or Oracle (not DBA, but for a typical developer position)

Instead of the fundamental programming skills like fundamental Data Structure and Algorithm, fundamental RDBMS, fundamental Software Engineering, etc.

On the other hand, I think Zed is just trying to be sarcastic to those who said that "you must keep on learning new things, like myself, see... I'm learning GIT" when it first came out but flat-out refused learning other things at the same time.

<comment><USER11> I took a job hiring a RoR ninja and jQuery expert as lead dev (for an alpha app) and immediately rewrote it in Django and MooTools/Google Closure. You can know the trendy stuff but still develop with solid software, provided you have some latitude in technology decisions.

</comment></comment></comment><comment><USER12> I looked at Fossil a few months ago. I basically liked it, but Fossil (1) didn't do Git-style file rename detection, and (2) didn't have "git add --patch" functionality. Has this changed? I can't really use an SCM without those features anymore.

<comment><USER2> Forget rename _detection_ ; it doesn't do renames _period_. So if you rename a file in one branch, you need to rename the file in the other branch BEFORE the merge, or you'll simply end up with two different files with different names.

<comment><USER13> Sigh, bullshit. I do this every day and it's just fine. You must be referring to some other concept of rename in some bizarrely complicated configuration you've worked yourself into.

<comment><USER2> I am referring to this sequence:

        gozer:~$ fossil new zed.fsl
        project-id: e4549d02538b1b58cf28488f76fc7549dc11a752
        server-id:  0bb5e1159eef42ed514c6ec13d17ba05f21ecdea
        admin-user: benjamin (initial password is "068bda")
        gozer:~$ mkdir zed
        gozer:~$ cd zed
        gozer:~/zed$ fossil open ../zed.fsl
        gozer:~/zed$ echo hello > hello.txt
        gozer:~/zed$ fossil commit -m "initial"
        fossil: nothing has changed
        gozer:~/zed$ fossil add hello.txt
        ADDED  hello.txt
        gozer:~/zed$ fossil commit -m "initial"
        New_Version: 10c3840dc611fdc22888571560b908f36e647e59
        gozer:~/zed$ echo zed >> hello.txt
        gozer:~/zed$ fossil commit -m "edited"
        New_Version: 10aa55193ddd374a75d37508cbc8a09466a05019
        gozer:~/zed$ fossil update 10c384
        UPDATE hello.txt
        gozer:~/zed$ mv hello.txt hello2.txt
        gozer:~/zed$ fossil mv hello.txt hello2.txt
        RENAME hello.txt hello2.txt
        gozer:~/zed$ fossil commit -f -m "renamed"
        New_Version: 3c3253cbd31cbc479c888fb8b1f38a8a46d8d4d6
        **** warning: a fork has occurred *****
        gozer:~/zed$ fossil merge 10aa55
        gozer:~/zed$ ls
        _FOSSIL_       hello2.txt     manifest       manifest.uuid
        gozer:~/zed$ cat hello2.txt
        hello

And just to go the other direction, since some DVCSes behave differently if their parents are in a different order:

        gozer:~/zed$ fossil update 10aa55
        ADD hello.txt
        REMOVE hello2.txt
        gozer:~/zed$ ls
        _FOSSIL_       hello.txt      manifest       manifest.uuid
        gozer:~/zed$ cat hello.txt
        hello
        zed
        gozer:~/zed$ fossil merge 3c3253
        ADDED hello2.txt
        DELETE hello.txt
        gozer:~/zed$ cat hello2.txt
        hello

Contrast this with Mercurial:

        gozer:~$ hg init zedhg
        gozer:~$ cd zedhg
        gozer:~/zedhg$ echo hello > hello.txt
        gozer:~/zedhg$ hg ci -Aminitial
        adding hello.txt
        gozer:~/zedhg$ echo zed >> hello.txt
        gozer:~/zedhg$ hg ci -medited
        gozer:~/zedhg$ hg up 0
        1 files updated, 0 files merged, 0 files removed, 0 files unresolved
        gozer:~/zedhg$ hg mv hello.txt hello2.txt
        gozer:~/zedhg$ hg addremove -s100
        recording removal of hello.txt as rename to hello2.txt (100% similar)
        gozer:~/zedhg$ hg ci -mrenamed
        created new head
        gozer:~/zedhg$ hg merge
        merging hello2.txt and hell.txt to hello2.txt
        0 files updated, 1 files merged, 0 files removed, 0 files unresolved
        (branch merge, don't forget to commit)
        gozer:~/zedhg$ cat hello2.txt
        hello
        zed

Git and Bazaar work similarly. This can come up very easily early in a product cycle--doubly so if you have the misfortune of working on a Java project where people are refactoring often.

</comment></comment></comment></comment><comment><USER14> So, if you want to download and build it, here's the page:

<http://www.fossil-scm.org/index.html/doc/tip/www/build.wiki>

The prebuilt images are labelled as 'snapshots', and or you can "Select a version of of fossil you want to download" to build from source with no guidance on what version would be a good idea to use.

Maybe everything is stable? Who knows.

</comment><comment><USER15> Not to be confused with Plan 9's Fossil file system: <http://en.wikipedia.org/wiki/Fossil_(file_system)>

</comment><comment><USER16> he gave reasonable arguments, assuming one does always want all of those extra features beyond VCS for each new project. for me, most of the projects i start never need to go public, and of those that do, most don't need a full-blown wiki or issue tracking system. README and TODO file are sufficient 99% of the time, esp with no public collabs. so git and github still hit the sweetspot for me in the default case.

<comment><USER17> Fossil actually fits this use case better than git or mercurial, because fossil is just a 700 kb executable that you can take with you. No need to install a package or hunt for cygwin versions.

and the whole repository is just a single file. Backing up your whole project and the SCM is a matter of copying two files over.

Git is a swiss army knife for fossil's switch blade.

<comment><USER18> Fossil has a wiki, issue tracker, etc, all in a small little portable package - it's far more deserving of the 'swiss army knife' label than git. Git's more like an industrial lathe or something.

<comment><USER17> agreed! I was running low on industrial terminology atm.

</comment></comment></comment></comment><comment><USER19> We've been using git and github for a few months now, and it's not intuitive, nor does it get out the way or offer to help to figure out what just happened. I'm fairly sure that with time we'll get used to the common use-cases, but right now I'm still backing up the 'src' dir before doing a 'git rebase'.

It looks like it's here to stay, so I'm hoping someone will make a set of standard wrappers/GUI for making git bearable.

<comment><USER20> Check out <http://progit.org>. It's awesome, and will teach you everything you need to know about git.

</comment></comment><comment><USER21> I think it's interesting that Zed considers Github/Bitbucket weaknesses. What most open-source projects need more than self-hosting is contributors.

Portability is great but I'd rather have a project that I'm working with other people.

</comment><comment><USER22> I hadn't really heard of Fossil, so I went to read this post.

The one thing I really, _really_ didn't give a damn about as I went to read a post like this was how everyone who doesn't like Fossil is merely a lazy, ignorant goon.

Whatever. I know bloggers like to gin up pointless arguments for the sake of controversy, but _I don't give a shit_ about that sort of vapidity.

</comment><comment><USER23> A sampling of the Fossil code. This is the source browser code. [http://www.fossil- scm.org/index.html/artifact?name=23a693054...](http://www.fossil- scm.org/index.html/artifact?name=23a693054f1e70a9a63ca032ad5f66611cab0dfa)

C based webapps... lean, mean and blazing fast. And a little masochistic to code.

</comment><comment><USER24> Ugh.

Zed, like drh miss the point yet again because they are closed minded programmers and keep on forgetting that people who are not programmers may end up using fossil as they wish to contribute a ticket or documentation to a project running on fossil, but get reluctant dealing with the crappy UI or the fact that they have to learn to do markup. It's also clear that drh really isn't interested in anybody else but his needs.

Git has Junio Hamano who made it usable and practical to people who weren't Linus. Who's this hero in Fossil? Well, it looks like the mailing list is still waiting for them to arrive.

<comment><USER17> It is a program for programmers by a programmer. And Fossil is a VCS first and and SCM second.

The beauty of git lies in what it does and that is managing code. The same is true of fossil. DRH is known for making sqlite and in turn fossil rock solid, and easy to program against. THAT is a far better feature and _interface_ than some UI nitpicking you might throw at it.

</comment></comment><comment><USER25> When I was evaluating Fossil about 1 year ago, compared to git and mercurial -- one of the requirements for my company was that it support large files. All of them supported large repositories, but easily ran into issues at about 10 MB for git and mercurial. Large file support for mercurial could be patched or extended but not in an ideal fashion. Fossil was able to handle files up to about 700 MBs in my tests before puking. I should add, those weren't binary files -- but large XML files.

</comment><comment><USER26> Instead of a per-project-trac you could setup redmine which supports multiple projects (tickets, wiki, forum, repo). Fossil looks interesting but I wouldn't want to pass on git.

<comment><USER27> Or MantisBT, if you don't like managing Python/Rails processes. With plugins, MantisBT can not only support multiple projects, but integrating multiple repositories of multiple VCS types. I ran a single install at my last job with many repos of three different source control types (Git, SVN, and an in-house SCM built on SCCS).</comment></comment>


Teller (of Penn & Teller) and The Honor System - <AUTHOR> http://www.esquire.com/print-this/teller-magician-interview-1012-2?page=all

<comment><USER2> Duplicate from 3 days ago: <http://news.ycombinator.com/item?id=4540742></comment>


Machine keeps human livers alive for one week outside of the body - <AUTHOR> https://www.media.uzh.ch/en/Press-Releases/2020/Liver.html <comment><USER2> I am not a medical expert or even remotely tied to that field but don't livers regrow to some extent? If this process could be extended even further wouldn't that mean we could regrow complete livers from partial donations pretty soon, making the whole "waiting for a donor" gamble obsolete?

<comment><USER3> No expert either, but afaik you can divide livers into thirds and they will regrow. So when you transplant a liver you take two thirds from the donor, I assume to give the recipient more liver to work with, but I don't know why. (spelling edit)

<comment><USER4> Yeah seems 25% is needed for regrow. That number seems interesting, almost like the body's parity raid bit.

[https://en.m.wikipedia.org/wiki/Liver_regeneration](https://en.m.wikipedia.org/wiki/Liver_regeneration)

<comment><USER5> Funny to use "parity raid bit" on an SPOF organ such as is the liver.

Though, i have always been curious as to why the body only has one liver while having pairs of many other organs...

<comment><USER6> Adding to your question, why did the liver evolve to regenerate while other organs evolved to have spares? What makes it special?

<comment><USER7> I'm guessing it has something to do with the size of a liver. Organs that have spares are relatively small.

<comment><USER8> Lungs? They're pretty big. My grandfather lived 60 years with only 1, and it stretched to fill most of his chest cavity.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> One great use of this could taking good parts of a cancer's patient's liver, regrowing the parts independently and then putting back the part that does not show any sign of cancer.

Not sure if one week will do it, but could be very viable when this tech is extended to more than a week.

Major advantage of reusing one's liver is the body would be less likely to reject it, hence relying less on immune suppression medications.

<comment><USER10> Can a person survive without a liver for 1 week?

<comment><USER11> Based on the experiences of a friend & close family member & what the doctors said: when your liver stops functioning, you will have about six weeks to live. The prognosis schedule was pretty much spot-on in both cases,and the last week has much less useful consciousness. Since the first few weeks are not really debilitating, I'd wager that one week without a liver to re-implant a repaired organ should be a good plan.

<comment><USER12> Out of curiosity: Amanita poison I thought mostly attacked the liver and leads to death in much less than 6 weeks (more like a few days, maybe a week). So I assume the 6 weeks means massive effort in the ER to stabilize the patient without liver, maybe some advanced blood filtering?

<comment><USER11> Interesting discrepancy.

Both the ones I knew were in hospice and not a huge intervention for the six weeks, so not a tone of continuing intervention.

I'd _guess_ that liver failure is maybe defined not as 100% failure, but failure to keep up with daily demand due to an external impairment such as cancer, and that this is just a typical curve of declining function until the body becomes too poisoned to survive.

Anybody with more detailed real bio/medical information?

<comment><USER13> My medical education is congruent with your thoughts. Liver failure is defined as partial or complete loss of function. You're also right about the "too poisoned to survive" aka end-stage liver disease. People in this stage often die from too much toxin build up, infection, or bleeding. Your explanation is great.

<comment><USER11> Thanks! very helpful.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> I'm wondering how do they control pathogens, as from my understanding the perfusate is lacking white blood cell. This is not described in the Nature article.

However this kind of technologies open really a lot of new possibilities regarding organ transplantation, and even auto transplantation as describe at the end of the article.

<comment><USER15> The liver has reticuloendothelial tissues (along with spleen, lymph nodes) that do technically produce white blood cells. I'm not sure how much of this production is still active in adults.

</comment></comment><comment><USER16> I'm wondering if this will be a good test bed for keeping other organs alive outside the body. As far as I know, the liver is the most robust organ and so makes a natural starting point for this kind of work.

</comment><comment><USER17> The first question that popped into my mind is: does this work for brains too?

</comment><comment> awinter-py or as jim jarmusch would say, only livers left alive

</comment><comment><USER18> What about a head?

<comment><USER19> This one will probably take decades to get in a useful state.

For head (or other organ) artificial alive-keeping we still don't know enough about how they work - and in case of especially the head we don't have the adequate technology yet to properly reconnect the neurons.

It might be that we can do this sooner than keeping the full head alive though, given that there is way more investment in such research to help people with spinal injuries regain motor control.

<comment><USER20> It seems like the inputs the head requires are pretty well defined.

Oxygenated, nutrition loaded blood mainly. But I'm sure that misses 8 unsolvable essentials...

Preserving sanity for the severed head is a whole other story.

<comment><USER19> It's more complicated than "only" blood. The hormones and other signalling chemicals involved in the brain-body communication are not really figured out - we don't even know what hormonal balance is "normal" and treat mental illnesses such as depression and schizophrenia with a "shotgun" approach - shoot a lot of loads and see which one has an effect.

<comment><USER20> There are also nerve "cables" to interface with.

<comment><USER21> I've never heard about reconnecting severed nerves and have them function. Is that currently possible?

<comment><USER20> Not that I know.

But it's at least an understandable and defined problem.</comment></comment></comment></comment></comment></comment></comment>


Funding Choices – Google's new tool for GDPR compliance and content monetization - <AUTHOR> https://fundingchoices.google.com/start/ <comment><USER2> I'm still surprised no one has yet figured out a way to store sensitive data about personal interests and preferences on the client-side and let the client itself pull appropriate ads for the user to see. The quality of such a system should be comparable or better to server-side technologies with the right amount of tuning, and much less privacy-invading than existing approaches.

Personally I'd love to support more websites through ads if two conditions could be met:

\- A way to ensure that ads don't try to harm me by e.g. leading me to websites serving malware or abusing my computer's resources (e.g. miners)

\- A way to keep my privacy and control what data is collected about me (and who has access to that data)

Currently I simply can't turn off the ad-blocker even if I wanted as most sites become completely unusable and outright obnoxious by showing large, blinking or content-hiding ads, videos, popups or fake overlays. That's why most people use ad-blockers (IMHO). If ads are decent, relevant and non- obtrusive I personally would be happy to see them.

Also, go to any large website these days (without ad-blocker enabled) and check how many third-party trackers they load. There are many sites that send my data to more than 50 (!) different ad networks and partners, which is just insane.

<comment><USER3> Brave, with the Basic Attention Token (BAT), is building exactly the client- side anonymous contribution + ad-matching system you describe. We will take BAT to other apps after proving the model in Brave.

BAT in Brave is opt-in -- each user consents before anything local happens with data or zero-knowledge/blind-token attestations -- and users can get _gratis_ BAT grants right now using the stable desktop browser (this is coming to mobile in about a month). The anonymous contribution system is the basis for the also-opt-in Brave Ads system, which uses local data only, local machine learning agent, and no cookies or user tracking by any server (even ours). Ads match against a catalog fixed daily or less frequently for a large set of users in a region who speak the same language. Attribution and confirmation use Chaumian blind tokens.

Users get 70% of revenue for opt-in, user-private (in tab), high quality ads at user-configurable frequency. We are working with publishers to provide user-opt-in ads for sites too, 70% revenue to the publisher, 15% to the user. User ad trial is under way right now, ping me if you want to be included. System should be available in Brave 1.0 in a couple of months.

<comment><USER4> I'm a big fan of that idea.

Imho the beauty of your BAT system (the way it is envisioned) is it's independency from the current model of monetizing the web, which is ads, gradually evolving towards direct transmission between publisher and consumer.

Ads in the way they work on the web are just a very inefficient system of transferring this value, and they don't serve the original function of marketing anymore. It turned into a big game of psychological warfare.

The system is so inefficient that it finances almost the complete operation of Alphabet/Google.

As a user I don't know how the system works in the background, and when I read the recent news about Brave attacking Google for GDPR violation it was the first time I read about RTB and the technical aspects in the media. People need to know, so they can decide if they want to feed such a system!

Funding Choices seems to be a part of Google's answer to the growing problem of ad-blockers, but it can also bee seen as Google's answer to competition like Brave/BAT.

I read somewhere that under the umbrella of Funding Choices Google is also experimenting with subscriptions like BAT, but without the token.

I don't know how successful Google is with this, but this might be a tough competition for Brave, they will fight tooth and nails, and they control the Android ecosystem.

BAT is attractive for power users as you ride on the wave of privacy- friendliness which Google can't, but I think the real challenge will be the average user that wants a standardized, seamless cross-platform solution that can be used as the main payment gateway for accessing content, which is increasingly via gated Apps.

With Google controlling so much of the market with Android and Chrome, I wonder how they will react to BAT if it ever becomes successful, as they could theoretically quickly scale any competitive project.

I think the biggest advantage of BAT would be if big players could acknowledge it as a de-facto standard for decentralized transfer of micro-payments and privacy friendly ad networks. For this to happen it would be necessary to be somewhat "Open-Source", i.e. not strictly tied to a singly company controlling much of the tokens. I am thinking in line of an open consortium with different players holding a significant part of the BAT tokens each.

<comment><USER5> > _The system is so inefficient that it finances almost the complete operation > of Alphabet /Google._

Since Youtube is wildly unprofitable, Alphabet/Google has to be funneling in money generated from other sources. Thus, Youtube is funded by ads, just mostly not from the ads on Youtube.

<comment><USER6> It was mentioned in a private email that the only reason YouTube exists is that Google's servers happens to have a lot of free disk space in the days before SSDs.

<comment><USER7> Is the limiting factor for youtube really disk space? I would imagine it is bandwidth.

</comment></comment></comment></comment></comment></comment><comment><USER8> In their example, under "Gather consent seamlessly", their example shows "Yes" and "Other Options". Now, I haven't yet read the GDPR in detail, but I was under the impression that opting out should be as easy as opting in. A quick search returns:

> The ICO also said that, while "GDPR does not specifically ban opt-out > boxes," that method of communication is "essentially that same as pre-ticked > boxes, which are banned"

If this is correct, using the product as shown on the screenshot (and as used by several websites) is in violation of the GDPR.

I wonder if Google will pick up your legal defense costs if you get sued for using their product.

(Edit: I tried to find answers to these questions, but apparently the only way is contacting my Google representative, which I don't have)

<comment><USER9> Having cleared all cookies recently, I'm re-encountering all these dialogs. They've gotten cagier.

Anecdotally, a third of these cookie dialogs are violating those principles, either preselecting all third party advertisers, or claiming all 60+ third parties are necessary for the functionality of the site so Allow or Go Away. Or having only one OK/Agree button.

It's not just little guys. Slate.com for example:

 _Slate's Use of Your Data_

 _By clicking "Agree," you consent to Slate's Terms of Service and Privacy Policy and the use of technologies such as cookies by Slate and our partners to deliver relevant advertising on our site, in emails and across the Internet, to personalize content and perform site analytics. Please see our Privacy Policy for more information about our use of data, your rights, and how to withdraw consent._

 _[Agree]_

[https://slate.com/gdpr?redirect_uri=%2F%3Fvia%3Dgdpr- consent...](https://slate.com/gdpr?redirect_uri=%2F%3Fvia%3Dgdpr- consent&redirect_host=http%3A%2F%2Fwww.slate.com)

The privacy policy generally says you're welcome to go opt out of each individual third party then delete their individual cookies from your browser, beat yourself up.

Slate for example, says, "You may choose whether to receive interest-based advertising by submitting opt-outs..."

The justification appears to be "EU doesn't tell us what to do":

 _" Please note that the Services are directed towards users who reside in the United States. By using the Services, you consent to the collection, storage, processing, and transfer of your information in and to the United States, or other countries and territories, pursuant to the laws of the United States. Some of these countries may not offer the same level of privacy protection as your own."_

This Privacy Policy also features dynamic legalese:

 _" Slate tracks when EU readers grant consent for Slate to collect and process data through the use of an identifying cookie on your browser. The browser through which you are currently viewing Slate does not currently have such an identifying cookie. If you are an EU reader this means that Slate is not collecting or processing data from your current browser session."_

[https://slate.com/privacy](https://slate.com/privacy)

// I am currently reading from EU -- a good time to clear your cookies.

<comment><USER5> > _claiming all 60+ third parties are necessary for the functionality of the > site_

If you consider financial needs underpinning the site operation, it's technically true - without the 60+ 3rd parties, they could run out of funds to host the site, after which the site would not function at all.

<comment><USER10> There are other sources of funding than advertisements

</comment></comment></comment></comment><comment><USER11> Google Contributor was service from Google that used a pool of money set aside by the user to bid on ad slots, and if a particular ad auction was won, the ad would be replaced in the pageview with a pictorial pattern of the user's choice. The program was not well publicized, although tech journalists have covered it and I have written [1] about it in my comments when Brave and Flattr came up and have wondered why Facebook (sitting on a huge trove of real identities) never did the same.

But in 2017 it was shut down for a few months, and relaunched as a program which would omit all ads from the target site if the site was a partner, and the user has marked that site in their account. The amount charged for each pageview is set by the site [2]. Only a handful of websites are supported, although most are news sites -- local papers or TV channels.

This new Funding Choices program aims to greatly expand the list of sites that use Contributor by offering a managed solution that solves a better-than- before subset of two pain points at once: regulatory compliance and monetization.

[1] [https://hn.algolia.com/?query=niftich%20google%20contributor...](https://hn.algolia.com/?query=niftich%20google%20contributor&type=comment) [2] [https://support.google.com/contributor/answer/7359560](https://support.google.com/contributor/answer/7359560)

</comment><comment><USER12> I appreciate that Google appears to have reached out to local newspaper sites (qctimes.com, napavalleyregister.com), for Contributor. But if I were a major content publisher, the relatively small and mostly non-notable list of current Contributor sites [0] would make me think that Google isn't highly invested in this project. Which is not a good first impression considering that many people think that Google is too quick to abandon projects. They should have booked a few more major sites and media brands; right now, the 2 sites that are highlighted are the National Post and Popular Mechanics.

[0] [https://support.google.com/contributor/answer/7324995](https://support.google.com/contributor/answer/7324995)

<comment><USER13> IMO Contributor is still pretty new, and without users the time and effort spent implementing it probably isn't worth it yet, especially because many of those running adblockers just ignore it entirely (I can't even count the number of times I've read "why pay for contributor when adblockers are free?).

If/when it hits a critical mass of users, suddenly it will become a lot easier to justify the cost of implementation.

Hopefully tools like this can help get some sites to implement contributor or something like it so paying for access can get a foothold and become a viable option.

</comment></comment><comment><USER14> I would not trust any opt-out offered by a company who's bottom line is directly dependent on violating people's privacy. The only opt-out that can be trusted is one that does send any network requests to the stalking company until consent is given.

That's the same reason why you wouldn't want to ask an alcoholic to guard a warehouse full of vodka at night, as you'd probably find a few empty bottles the next day. Same thing with an advertising company, even if they claim to respect your privacy, nothing guarantees they're not secretly looking at it anyway (and using it to adjust their ad tracking in a way that's undetectable from the outside, as to not be sued for it). It's even worse, because at least with alcohol you can count the bottles and find the empty ones. With data collection, if they're careful, you have no way to know whether your privacy has been violated.

<comment><USER15> And who is going to build that illegal feature into Google's services? And how much are that person, and the other persons that know about it, going to be paid for them to not be a liability?

Maybe I'm naieve, but I feel building automated law breaking systems is not something corporations do. I have no doubt individuals within corporations break laws whenever they feel like they can get away with it, but leaving trails like checked-in source code, and operating services that other services depend on, that just sounds like too much of a liability to me..

<comment><USER16> > Maybe I'm naieve, but I feel building automated law breaking systems is not > something corporations do

Did you already forget the VW diesel scandal? That was exactly that - a huge corporation systematically breaking the law with lots of people even in the highest ranks aware of and supporting it.

<comment><USER15> Well yeah, and it was ridiculously dumb, lots of people go to jail and big fines were levied. I suppose that you have a point and corporations might do it. At the same time I like to believe it's just not worth it for them.

<comment><USER17> I can find a few small fines, but as far as I can tell nobody went to jail for that one.

<comment><USER18> > A Volkswagen AG compliance executive who pleaded guilty in the U.S. for his > role in the company's $30 billion emissions cheating scandal was sentenced > to 7 years in prison.

[https://www.bloomberg.com/news/articles/2017-12-06/vw- execut...](https://www.bloomberg.com/news/articles/2017-12-06/vw-executive- sentenced-to-7-years-in-prison-for-diesel-role)

<comment><USER19> And Germany temporarily jailed a bunch of executives (including Audi's CEO, who is still in jail as far as I know) this year to stop them interfering with investigations, and results of those investigations might lead to more being sentenced once they're done.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> I hope they find ways to do this while actually complying with GDPR.

A lot of (primarily US-based) sites now say things like "We need to track you to keep running, consent or click this link to enter a maze of poorly documented ways you can try to opt out, if you decline then goodbye".

Some even let you opt out of tracking (taking several minutes to 'process' this opt out), and then tell you they can't serve you a site that doesn't track you.

I'm OK with those - I don't go there any more.

</comment><comment><USER21> > Engage ad blocking visitors

> With Funding Choices you can automatically identify ad blocking visitors and > ask them to disable their ad blocker especially for your site — or give them > an alternative way to fund your content via Contributor.

> Contributor lets users buy an ad removal pass for your site, helping you > monetize your site's content again.

Great! Now, can I have that for Google? I'd gladly pay in exchange for the added privacy.

<comment><USER22> You'd think you'd get it with gsuite...

</comment></comment><comment><USER23> Gotta love their choice of wording, "recover lost revenue from ad blocking users", like blocking ads is equivalent to stealing money from the site owner.

<comment><USER24> But that's true isn't it? What's with this entitlement that sites should be ad-free while still providing value? I own a blog, there is no way I could have a profitable subscription based model (believe me, I tried).

<comment><USER25> I understand your issues... But I'm downloading your code, how it is displayed, and whether I run it your way is up to me - I already requested it, and your server fulfilled the request. If you wanted contractual obligations, they need to happen before you hand over the content.

<comment><USER26> That isn't a very good argument. Just cause you downloaded something doesn't give you the rights to it.

If that was the case piracy would be legal, software trails wouldn't be legal. Windows license or photoshop trial up? Well I downloaded, your server fulfilled the request. I have legal rights to it now.

Oh, this art? I am selling it. Well I saw it on the internet, my computer downloaded, their servers fulfilled it. If they didn't want to hand over the rights they should've blocked me from viewing it.

That kind of argument is an argument I expect in a non-tech site with people making excuses. You know that isn't a solid argument you made at all.

The way the internet works doesn't create a vector that allows that. If they did implement that you'd need a multiple round trip check, the site would be slammed for being slow to respond cause it have to download a script, check if your blocking, report back then start the downloading process for the site. Just not feasible.

Those smaller sites would lose to bigger sites that can get away with slower response times or ignore pre-checking anyways.

<comment><USER25> > If that was the case piracy would be legal, software trails wouldn't be > legal. Windows license or photoshop trial up? Well I downloaded, your server > fulfilled the request. I have legal rights to it now.

Piracy is someone intentionally breaking a known license contract. Software trials require contracts first. Either upon download or installation. You agree to a license before you use Windows. Those agreements are binding. The web also has systems in place for similar contract negotiation. If you don't use that, it's kinda on you. Some users will choose to use your content in the way you intended, others won't, and you have no recourse.

> You know that isn't a solid argument you made at all.

Unfortunately for you, it's already held up under law. There's a reason the big players are trying for new solutions than attempting to ban users from blocking them.

> If they did implement that you'd need a multiple round trip check, the site > would be slammed for being slow to respond cause it have to download a > script, check if your blocking, report back then start the downloading > process for the site. Just not feasible.

We already have that. Quite seriously. HTTP has the structure for authorisation, and the process for handling it if you're not. Not using that structure, is a choice that leaves you vulnerable.

</comment></comment></comment></comment></comment><comment><USER27> Put Google's JS on my website and let google harvest all my user's information. Sounds about right. I don't see much difference between FB and Google these days.

</comment><comment><USER28> There are actually parts of this I like better than the current status quo:

* Ad blocker detection and a way to ask for funding? Seems nice. We will get a view on the actual market value of the content. As the Internet started out free and hand plenty of content, I assume content producers will get a rude messages about their actual value here.

* A good base platform for the GDPR is also nice. A big player like Google cant flaunt the law too much, and browser plug ins have one big target to block, verify or modify

Some extras to make the ad ecosystem sane again:

* Micro-payments. You could get to choose between an ad, a micro-payment, or no content.

* Content producer vetting and taking responsibility for their ad's. Todays ads are bottom feeders. If, say, a car site would get an image from e.g. a car company, and place ads on their own site, you get a better ad for the customer, no privacy violation, and more respect and use for the ad vendor. This is the stack oveerflow/jobs model.

* A header element like X-Interested-in. Use your browser to set a free-form value, and let the ad vendors get some input to give better ads , while you are completely anonymous to them.

</comment><comment><USER29> What I think we're seeing here is that Google's bottom line was damaged by GDPR.

</comment><comment><USER30> So to give Google info about my visitors and later compete with me? No thanks.

<comment><USER12> Presumably, these sites already use Google ads (and probably Analytics too).

</comment></comment><comment><USER31> I started up CodeFund last year in an effort to help fund open source projects and developers. This year, we opened up the source code ([https://GitHub.com/gitcoinco/codefund](https://GitHub.com/gitcoinco/codefund)) and provide ethical advertising. We don't do any tracking, profiling, cookie setting, remarketing, etc. and our ads are chosen by the audience that the website caters to. We also give back up to 70% of all gross ad revenue back to the publishers. [https://CodeFund.io](https://CodeFund.io)

</comment><comment><USER32> I would be willing to load ads if I didnt have to see them. I'm happy. Content provider gets ad shown so they are happy. Advertiser doesn't get anything, but I don't care.

<comment><USER33> ...the content provider is only happy that the ad is shown because advertisers pay them for it. Advertisers aren't going to pay content providers if people loaded ads without seeing them.

<comment><USER32> How would they know?

<comment><USER33> Because the browser would tell them.

And if this became a trend, it'd be really obvious in their ROI and they would stop funding the content provider.

</comment></comment></comment></comment><comment><USER34> We also have a GDPR-like data protection law (almost identical bar right to be forgotten; which do not have in here) in Turkey. A Turkish version is also needed.

</comment><comment><USER35> Nice!! Another Google product that will be EOL'd in a few months, leaving both users & website owner unprepared... Really: Google became so unreliable on the business side these days that I wouldn't use their product for anything but playing

<comment><USER36> Ironically, I believe they actually did already shut this down once before. I think this is a revival of it: [https://www.searchenginejournal.com/google- contributor-progr...](https://www.searchenginejournal.com/google-contributor- program-shut-january-2017/181759/)

<comment><USER37> Yes, they re-launched contributor as a "opt out of ads on a per site basis" instead of the old global "show me kittens or blank space instead of all Google ads". The reasoning given was it was a " better experience" to have no ads on a page at all instead of a mix of Google ad kittens and non-Google regular ads.

Fine, but there are only two sites that support it, so it's fairly useless. Maybe Funding Choices will make it more useful.

<comment><AUTHOR> Here's a list of about 20 sites using Contributor: [https://support.google.com/contributor/answer/7324995?hl=en&...](https://support.google.com/contributor/answer/7324995?hl=en&ref_topic=6182587)

</comment></comment></comment></comment><comment><USER38> Bit off topic, but AngularJS 1.6? Why is Google still using an old version of their own framework, is upgrading that hard?

<comment><USER39> Upgrading from AngularJS (1.x) to Angular (2+) is not trivial. They are two unrelated product that "by chance" share the same name.

<comment><USER40> I understand that moving to Angular is not trivial, however this is old even for AngularJS.

1.7.x is in a long term support, while 1.6.x stopped being supported since July. The version they're running has at least three vulnerabilities: [https://snyk.io/test/npm/angular/1.6.0](https://snyk.io/test/npm/angular/1.6.0)

<comment><USER39> Ah you're right about that. I was taking for granted that 1.6.x was the last before 2+.</comment></comment></comment></comment>


Small Business Owners Think They Suck at Sales, but They're Wrong - <AUTHOR> http://www.mimiran.com/small-business-owner/small-business-owners-think-they-suck-at-sales-but-theyre-wrong/ <comment><USER2> I use mimiran for proposals and it helps me to avoid spending so much time on the needless boilerplate. I can focus on solving a customer's problem. Its nice that it gives you a bit of a kick about pricing. I wonder if it could help you establish pricing for a proposal with a wizard to help you determine the VALUE to the customer?</comment>


Ask HN: Is Google Adsense worth it for a small website? - <AUTHOR> I've made a small website and over the past year it has averaged on a monthly basis 4000 visitors, 40% bounce rate, 4 min avg. sessions and 10,000 pageviews.
The website is focused on a niche area and takes a few hours to maintain each month as it's a directory of resources. Similar to Startup Stash (http://startupstash.com/), but a different area and on a smaller scale.
I've been doing cold-emailing to secure advertisers, managed to secure a few, but overall not a positive response. And it is a time intensive exercise; identify relevant companies, tailor the message etc.
So I've been thinking about using Google Adsense. Does this make sense for such a small website? Any other suggestions on how I can monetize a curated website? Not looking for huge sums, but it would be fun if it could generate something.
By the way, I'm new to all of this so appreciate any advice. <comment><USER2> Adsense pays a fraction of a cent per click-through, and less (sometimes nothing, depending on the site) per ad impression. It doesn't pay out until you credit reaches $100. So, with your level of traffic, you could conceivably get paid $100 a year by adsense, if none of your visitors used adblock.

On the other hand, adsense doesn't take much effort to set up, so it may be that the ten or twenty minutes of your time spent setting up adsense ads once will be worth the hundred dollars down the line.

In my experience: I run adsense on many youtube videos and several sites, and have done so since 2006. My balance went up to $8 during 2006-2007, and is currently at just under $10. I have never gotten a pay out. At the current rate, I will get paid in 99 years. I do not get 10k pageviews per month in aggregate across all my sites, though.

<comment><AUTHOR> Thanks, appreciate the insight.

</comment></comment><comment><USER3> I can chime in with some numbers from my small site.

This month Adsense shows 23,489 page views with an estimated earnings of $7.53. I've only added it in the middle of December so January will be the first full month of having Adsense.

Hope that helps.

<comment><AUTHOR> Thanks for the numbers. I don't think it will be worth it for such a small payout. I've been against ads from the start, but at the end of the day, it takes time to maintain a website. I'll have to look at other options.</comment></comment>


AWS S3 Bucket Discovery - <AUTHOR> https://blog.websecurify.com/2017/10/aws-s3-bucket-discovery.html <comment><USER2> This is amazing. I'm going to play around with this and see what kind of nonsense pops up. Thanks!</comment>


Color Me Polynomial - <AUTHOR> https://www.quantamagazine.org/color-me-polynomial-20190813/ <comment><USER2> I've been working steadily through Project Euler for the past couple years; about 2/3 finished. That's introduced me to many fascinating parts of mathematics I never studied as an undergrad, 40 years ago. Chromatic polynomials are one of the most delightful areas I've been introduced to. Such a pretty mix of graph theory and generating functions.

</comment><comment><USER3> Articles like this remind me I need to brush up on my math. I don't even know what factoring is. Maybe I need to go and relearn algebra.

</comment><comment><USER4> Ironically, Quanta Magazine has great articles in every field except quantum mechanics.</comment>


Google I/O 2012 Redirect Checker w/ Gmail Support - <AUTHOR> http://pastebin.com/4FU62Yrd

<comment><AUTHOR> I found this C# example on pastebin.com through a Google Alert email notification for the term "Google I/O 2012". Unfortunately, there is no license or copyright associated with this program, nor is there any indication about who wrote it, nor do I have any clue whether it actually works! So, I submit this to Hacker News as a "fair use" example of what one anonymous developer is doing to be notified of the pending Google I/O 2012 announcement.

So, not being a lawyer, would this code automatically fall under the Public Domain? I couldn't find any statement on pastebin.com to state who owns anonymous pastes. Regardless, there's nothing proprietary in this example that hundreds of other developers would have probably already created in other langauges like Perl, Ruby, Python, Bash, etc.

What have other HN readers coded to be notified for this event? :)</comment>