Algol 68: A Retrospective - <AUTHOR> https://accu.org/index.php/journals/2586 <comment><USER2> This reminds me of a quote by Tony Hoare from 1973 about Algol 60:

"Here is a language so far ahead of its time, that it was not only an improvement on its predecessors, but also on nearly all its successors. "

</comment><comment><USER3> I remember reading in the early Go blogs that := was taken from Algol, so it's still directly influencing modern languages!

<comment><USER4> There are many things that got taken from Algol, but it's also important to distinguish Algol-60 and Algol-68. Although some things from the former were still in the latter, they have little in common.

Algol-60 gave us:

\- semicolons as statement terminators

\- begin/end

\- chain assignment (a := b := c)

\- conditional expressions (like ?: in C)

\- the "type name;" variable declaration syntax.

\- while loops (technically both "while" and "for" were syntactic elements of a single loop structure, and could be combined)

Algol-68 mostly influenced other languages via C, which appropriated quite a few of its keywords: void; struct; union; long and short (in A68, you could chain arbitrarily many "long" and "short" before "int" or "real" \- the implementations were required to distinguish short int / int / long int, but additional modifiers could be used in an implementation-defined way to designate larger or smaller types if an implementation chose to provide them - if there was a need for 128-bit ints, for example, they'd be "long long long int"). Abbreviated type names as well: int, char, bool all come from A68. Also, compound assignment like += and -= (except it was +:= and -:=), and the notion of assignments as expressions yielding the assigned value.

Go arguably takes the consistently left-to-right composite type syntax from A68: arrays were declared as e.g. [0:9]int, although variable name still followed type. Something like "ref []bool x" would mean "x is a pointer to an array of Booleans".

Regarding := specifically, it was an assignment operator in Algol-60 (and thence in Pascal language family). In Algol-68, you would use = to initialize an immutable variable in a declaration, and := to assign to them if they are mutable, while Go is the reverse.

Bourne shell took reversed-spelling terminator keywords like "fi", "od", "esac" etc from A68.

C++ seems to have gotten its operator overloading from A68.

It's very interesting to read both specs today. Even Algol-60 was amazingly powerful in some respects - it already had nested functions closing over outer function's variables, and functions passed as arguments, for example (although they weren't first-class, since you couldn't return functions). Then there was crazy stuff like call-by-name, computed gotos, and passing labels as arguments (to which the callee could then goto across stack frames! basically, setjmp/longjmp as an intrinsic language feature). It can be an interesting exercise to try to devise an efficient implementation of all this stuff.

And Algol-68 pretty much reads as a modern programming language, except for some weird terminology that they invented just for it that didn't get adopted by the industry - e.g. "transput" for input and output, or "mode" for types. From modern perspective, it's hard to understand why it was considered overcomplicated in its day, but it makes more sense when you look at its competitors at the time. The most funky thing about it from modern perspective is that pointers were implicitly dereferenced, and so it needed to have a bunch of extra operators to disambiguate things (e.g. "=" for value equality with implicit dereferencing, and "is" for pointer equality).

Here are the actual reports, for those curious. This one is for Algol-60, as revised in 1963 (there was a later "modified report" in 1975, which codified a bunch of extensions and features standardized elsewhere - but reading the original reports is more interesting given the historical context):

[https://www.masswerk.at/algol60/report.htm](https://www.masswerk.at/algol60/report.htm)

And this is for Algol-68.

[http://www.math.bas.bg/bantchev/place/algol68/a68rr.html](http://www.math.bas.bg/bantchev/place/algol68/a68rr.html)

but it's a rather heavy read, being wrong and using a lot of peculiar jargon. For something more accessible, try this:

[http://www.nunan.myzen.co.uk/algol68/pame.pdf](http://www.nunan.myzen.co.uk/algol68/pame.pdf)

<comment><USER5> > ... pointers were implicitly dereferenced, and so it needed to have a bunch > of extra operators to disambiguate things

Funny as it has always annoyed me that static objects and dynamic objects used different syntax (a.b vs a->b) so that if you ever changed one, you'd have to go edit _ALL_ uses. It would IMO have made sense to have a->b work for both (better still "a.b" if the syntax could be worked out).

UPDATE: referring to C if it wasn't clear.

<comment><USER4> I didn't mean implicit dereference on member access, but rather implicit dereference in most non-pointer contexts. For example, suppose you have:

       INT x := 0
       REF INT p := x

p is a pointer here ("name" in Algol-68 parlance). Now if I want to read x via p, I can just write something like:

       p + 1

No dereference operator - because + is not defined for names, the implicit dereferencing is applied (it works for multiple levels, too - REF REF INT would have been dereferenced twice).

On the other hand, the left side of := does not implicitly dereference; instead, it requires the operand to be a REF, and rebinds it. So I could do:

       INT y := 1
       p := y

and now p references y instead of x. If I wanted to actually mutate x, I'd have to dereference explicitly on the left side, which you do by casting, removing as many REFs as needed.

It all is actually somewhat more consistent than C, in that in C, they had to come up with that whole "value category" thing for expressions - lvalue, rvalue etc - that is orthogonal to its type. E.g. if you have "int x", the reason why you can use x on the left side of assignment is because it's an lvalue, while something like 123 is an rvalue; but the type is just int for both. In Algol, this is reflected in the type - when you say:

       INT x := 1

this is actually syntactic sugar for:

       LOC INT x := 1

which is in turn sugar for:

       REF INT x = (LOC INT := 1)

where LOC is an operator that's kinda like a typed version of alloca() - i.e. LOC INT returns a value of type REF INT that is allocated on the stack (there's also HEAP, which is the equivalent of C++ "new", but garbage- collected). So all mutable variables actually have type REF T, and := requires the left operand to be a REF (and changes what it refers to).

OTOH if you write something like this:

       INT x = 1

then x is just a binding, not a name; its type is just INT; and therefore it does not have a valid type for the left operand of assignment. Which means that technically all variables in Algol-68 are immutable - it's just that some of them can be bound to values that are names, and the name can then made to reference a different value.

</comment></comment></comment></comment><comment><USER6> I'm surprised Pascal wasn't mentioned. Its syntax is very similar to Algol and Wirth was part of the Algol X development team. His (rejected) proposals were the genesis of Pascal.

<comment><USER7> (as a one time Algol68 implementer) my take on Pascal is that it's all the easy to implement bits of Algol68

</comment></comment><comment><USER8> By the way: "Gill Sans" isn't a good fallback for non Windows computers. Hard to read on a Mac.

</comment><comment><USER9> It is interesting that B. Stroustrup first looked at Algol 68 as a potential base for introduction of classes into a statically compiled programming language, and then he turned to C - probably because Algol 68 was already as complex as is now C++.

<comment><USER7> actually modern C and Algol68 (which doesn't have objects) are roughly equivalent in complexity .... probably the obly thing that C doesn't have is the type-case (algol68 unions have a hidden small enumerator that describes the actual type stored within the union)

<comment><USER4> Algol-68 also had GC, operator overloading, nested functions (which were full- fledged closures), and lambdas.

<comment><USER10> I believe the original Algol-68 didn't have full closures. For example, the following (taken from the revised report) wouldn't work:

      proc f = (real x) proc (real) real: (real y) real: x + y;
      proc (real) real g := f (3);

As by the time g is created, x of f has disappeared from the stack.

<comment><USER7> What it does have is the algol 60 idea of nested scopes

For example if proc A contains a variable X and declares a subroutine B within it, then B can access X, even if you take a pointer to B and call it from elsewhere (effectively that pointer to B also carries info about which instance of A it came from ....

These days we've largely forgotten about this idea of how variables should be accessed and inherited between subroutines - hardware designers used to design support for these language features (display registers in Burroughs mainframes) - to be fair as a feature it honestly doesn't add a lot of practical functionality considering what it costs

<comment><USER10> The issue is that if the local variables of A, such as X are allocated on the stack, once you return from A, the stack frame will disappear. So the example you cite can only work as long as A is _active_ (not returned from). If A itself returns a pointer to B, at least the locals of A _captured_ by B must be allocated on the heap and GCed once all references to a particular B disappear. Note that a number of modern languages provide full closures including Go, Haskell, JavaScript, Python, Scheme, Swift.

<comment><USER7> exactly .... which kind of makes those proc pointers not as useful because you need to carefully manage lifetimes/etc yourself and failures are, well, not defined

<comment><USER10> It's the compiler's job to do so, not a programmers! The programmer can do whatever makes sense. For example, in Scheme

      (define (make-counter)
        (let ((n 0)) (lambda () (set! n (+ n 1)) n)))

is guaranteed to work in any context where make-counter is called. Same in Go; though the syntax is a bit unwieldy due to having to specify types:

      func makeCounter() (func () int)) {
        n := 0
        return func () int { n++; return n }
      }

Google's Go compiler is smart enough to allocate only the captured variable (n in this case) for such returned functions on the heap. There should be no failures.

IIRC some algol-68 compiler did remove the restriction and allowed such full closures.

<comment><USER7> I think that's a language centric point of view - more one would say "it's the language's job to do so" and then write a compiler for the language.

Algol60 and 68 were created at a time when people were still trying to figure out how computer languages ought to work (in a sense we still are) and it's likely the idea that procedure local storage should (or could) out live the procedure being called wasn't an obvious choice (remember that algol68 Nests are not just locals of a particular subroutine but also locals of every subroutine in its declaration [not calling] path as well as globals at level 0)

Algol68 (and Algol60) gave us lots of things we take for granted today but there are also features that have fallen out of fashion

(I'm old enough to have seen language features like objects and functional programming come and go, several times ... it's all fashion .... and I'm cynical enough to know that there's no correct way to do any of this stuff)</comment></comment></comment></comment></comment></comment></comment></comment></comment>


We have added file uploads to simple form  - Build simple web forms - <AUTHOR> http://blog.getsimpleform.com/2012/07/20/we-have-added-file-uploads-to-simple-form <comment><AUTHOR> I am the developer of this app. Would love to hear to get some feedback :)

</comment><comment><USER2> you should update the start page: "Simple Form allows you to setup forms with any kind of data (other than file uploads)"

<comment><USER3> Was about to mention the same thing :).

I don't quite understand what makes simple form different than a html form that posts to your website where you can access the posted data by api?

<comment><AUTHOR> You'd need some server side code to handle the form posts and this is not possible in static websites. Hence the app. This can even be done by using 'Google forms' and 'Wufoo'. However, they give you code which contains iframes. SimpleForm doesn't restrict you in any way, you just need to setup the form's action and method and you are set :)</comment></comment></comment>


Freelance web development equivalency to company work experience - <AUTHOR>

I worked freelance part time (full if you count the time looking for clients) for about a year before college, and then off and on part time during college when I had a summer or even a few weeks or days (or hours) to spare.
What is that freelance work worth?  Does my "work experience" counter reset to zero after graduation?  Does freelance count as 1/2 normal work experience, or same, or what?  (Personally I'd consider it 3/2 because it requires more initiative and helps someone understand the company's perspective.)
Thanks. <comment><USER2> Unless you did not get any experience during freelancing, I would count it as experience. Better list it as 3-4 years part-time experience and list the projects you were involved. This way your future employer can decide for themselves what your experience is worth to them.</comment>


Randal Schwartz: The Year of Smalltalk (Video + Slides) - <AUTHOR> http://www.cincomsmalltalk.com/blog/blogView?showComments=true&printTitle=Randal_Schwartz:_The_Year_of_Smalltalk&entry=3392800387

<comment><AUTHOR> After watching this, it may work out better for you to just download the audio and the slides (and forget the video).

Randall talks ahead of the slides for much of the presentation, and it's honestly just easier to follow the slides plus the audio anyways - the video doesn't really add much.</comment>


As Silicon Valley fights for talent, universities struggle to hold on to stars - <AUTHOR> http://www.economist.com/news/business/21695908-silicon-valley-fights-talent-universities-struggle-hold-their?fsrc=scn/fb/te/pe/ed/milliondollarbabies <comment><USER2> Academia used to offer smart people the promise of tenure and interesting work. Now they offer eternal postdocs and publish or perish. Is it any wonder they can't retain good people?

<comment><USER3> I think academia has a long way to go to reduce costs. I'm willing to cut services that universities offer if that means lower costs.

Remove the nice dorms, cafeteria, and fitness centers. Remove the community outreach programs that isn't really the job of a university. And yes increase the number of introductory level classes taught by graduate students and post docs.

I'm not worried about people moving from academia to industry. My hope is as we increase the rate at which people finish high school and go to college, we will have enough people for industry and academia. It is tempting to say we need to offer better wages and benefits for teachers but we can't digress. Cost containment should be our first priority.

I think it is possible if we understand and agree with the compromises we will need to make.

<comment><USER4> Why don't you start by cutting the football program.

<comment><USER5> Apparently these are a huge net (monetary) gain for most schools.

<comment><USER6> Is that true? I remember hearing that the University of Kentucky's basketball program ran a net profit, but also that it was pretty unusual in that respect.

<comment><USER7> Yes, this is also true for the University of Michigan athletics department, which in a recent year spent around $145 million and earned $158 million in revenue.

<comment><USER8> Of course, it's not enough for something to return a profit; it needs to return more profit than an alternative use of the funds. Perhaps it could have made more money investing in postgrad startups?

<comment><USER6> My understanding is that the UK basketball program is self-sustaining, and additionally turns a profit for the university. It's not taking university funding to begin with.

(Also, much as I'm disdainful of university athletics, declaring that only the most profitable programs have a place on campus seems like a really amazingly horrible idea.)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Can confirm almost all Computer Vision professors I know work or have worked at Google/Facebook/their own startup at some point of time. Also these Professors have tenures (currently on sabbatical etc.). This is actually a great thing for graduate students too. Internships pay very well and can even extend beyond summers as part-time contractor positions. Another common method as highlighted in the article is to convert research group into a startup which gets acqui-hired by Google etc. E.g. Geometric Intelligence would be a good example.

<comment><USER10> ..which university is this?

<comment><USER11> I'd put my money on Stanford.

<comment><USER10> Yeah, it's certainly not a common experience for most places.

</comment></comment></comment></comment><comment><USER12> Maybe universities should consider paying more to compete with the tech companies. It's a free market and whatnot. If the price goes up, you gotta pay more. Complaining about the price going up isn't exactly productive.

<comment><USER13> I doubt universities can come close to affording it. My CV wouldn't have gotten me a tenure-track position at a top school, but my income in industry is much higher than even the best paid professors at my alma mater (ignoring profs' consulting income, of course).

To be honest I wonder if the academics that _are_ still there just don't realize how lucrative industry is...

<comment><USER14> How much is the difference between academia and industry? Can you share some numbers or ranges?

<comment><USER15> Tenure-track professors in computer science at top universities get paid about 100,000 to 250,000. You can look this up publicly because

a) California state employee salaries are online [1]

b) UC Berkeley is a top school for CS professors and competitive with everyone else on salaries. Looking at random AI faculty members shows about 100k at hiring, about 150k at tenure, while machine learning king of kings Michael I Jordan gets 300k.

Google pays starting undergrads > 160k, and fresh PhD students > 225k[2] (all in comp including first year vesting stock + base pay + expected 15% bonus). I imagine if they're poaching faculty, they're getting significantly more than that[3].

Basically I'd say the industry salaries are at least 2x the academic salaries, if not higher. The flagship hires are paid a lot more (think Yann LeCun, or Andrew Ng), and importantly, given the freedom to hire and build mini-empires to do stuff.

As a final note, I know talking about salaries publicly is awkward, but this is all public information, and grad students talk freely about this sort of stuff with each other, so I don't feel like I'm revealing anything super secret beyond showing you how to look up the relevant information in publicly available areas.

[1]: ([http://www.sacbee.com/site-services/databases/state- pay/arti...](http://www.sacbee.com/site-services/databases/state- pay/article2642161.html))

[2]: Source: Glassdoor Google for "research scientist", which is the position that PhDs in AI/ML are hired into.

[3]: Google levels are public, and while Glassdoor data is sparse, faculty who are poached are hired at at least the "senior staff engineer" level, which glassdoor says about 500k, which sounds around right to me, if not a little low. As an aside, salaries at the higher levels have much higher variance than at the lower levels, and to entice someone away from a tenured position probably requires hitting the higher ends of the salary band.

<comment><USER16> You're setting the bar for hiring faculty members far too high. Perhaps you mean tenured CS faculty? (Source: Stanford faculty in the process of moving to Google Research)

<comment><USER17> Brand-new CS assistant professor hires at any research-intensive CS department (there are ~80 of these schools in the U.S.) probably come in around $100k right now (as arjun said, many salaries are public) ... now that's a 9-month salary, so if you get grants to fund your summers (which you will if you're in the groove), that's a starting of $133k annual. That's not bad, considering most of these schools are located in low-ish cost of living areas. Of course, there are no stock options, huge bonuses, and other lavish benefits of industry, but it's definitely still a financially privileged position.

<comment><USER16> I meant that the parent's analysis in his footnote of what the minimum position and starting salary would be for a faculty member to ever move is setting the bar too high; it seems my wording was vague. His academic numbers seem spot on, but I question footnote [3].

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> For stars and talents, academia provides something the private sector can never provide: freedom.

Established professors can dictate their own rhythm. They can work hard all year long, or they can slack for some months and concentrate on their families more. They can change sub-fields of interest as they see fit, and work on problems they want to solve. Also, they get to teach which is by far the biggest privilege one could ever achieve.

Of course private research provides very interesting deals, but most stars and talents are exactly that because they had the freedom of doing things as they see fit. Putting them in a company structure with quirky rules is not their natural habitat.

<comment><USER19> I would strongly argue with that. I run away from academia _exactly_ to pursue freedom: [http://p.migdal.pl/2015/12/14/sci-to-data- sci.html](http://p.migdal.pl/2015/12/14/sci-to-data-sci.html)

In short, in academia you are bound by hierarchy, local politics, grants and bureaucracy, 1-2 year lag in anything. As a freelancer I have enough $$$ I am free to pursue my intellectual interests (any side projects, teaching students topics of my choosing, etc). And when it comes to teaching - I get _only_ students that are interested, not - diluted by the crowd who just wants to fulfill the curriculum.

<comment><USER18> I like your article, but certainly your PhD experience is not comparable to an established professor position which was really the hole point of this thread. PhD's are harsh different realities. You're still a student as a PhD and it shouldn't really be compared to anything else; certainly not a contractor position.

You're right that there are professors that are bound to hierarchy, local politics, grants, etc.. But the important point is that it is _their choice_ to be bound to that, not someone else's.

David Graeber once said "Every society has something to do with brilliant, imaginative and extremely impractical people ...we used to put them in academia, but now academia is all about self marketing." \- [https://youtu.be/IHAJiuU5xhk?t=9s](https://youtu.be/IHAJiuU5xhk?t=9s) \- I think this really hits the nail on the button. Academia was and should be a place where these impractical stars can shine to their potential.

<comment><USER19> I agree that the gap for academia to industry is very different for young and established researchers.

No, I am not a PhD student (I defended 1.5y ago). And I saw that I really don't want be a postdoc; not even as a "purgatory" to go through - I didn't envy professors either. While professors do have a lot to say, they are still bound by administrative duties, pointless meetings, maneuvering grant calls so they can use it for something they actually consider useful, etc.

Sure, for some its fine (or at least - acceptable; or - they don't have other intellectually challenging job opportunities). Some others (e.g. the ones in the article) are happy to join Google. And I am sure it is not only about money.

It's a very different experience than being a professor in 50s or 60s; e.g. one day I talked to (now late) Kenneth Wilson and he told me that he had changed his field overnight (into one that gave him the Nobel prize). Right now it is unimaginable.

Sure, I also consider the current shape of academia sad. But... when it comes to the "impractical" dreamers, let's not colorize the past. Vide my another writing: [http://crastina.se/theres-no-projects-like-side- projects/](http://crastina.se/theres-no-projects-like-side-projects/) (for academia, look at the John Bell's example).

</comment></comment></comment></comment><comment><USER20> Top talent has been fleeing academia for a while now. Lower pay, limited job security (unless you manage to win a few rounds of the the publish or peril game), limited freedom to do what you want (in large part due to games around funding and publish or peril).

The private sector now offers top talent what they used to go to universities for in terms of access to the best resources, freedom of exploration, a great talent pool of co-workers and decent working environment. Therefore is it any surprise people leave academia?

</comment><comment><USER21> Maybe they should pay their talent more than the administrators and paper shufflers.

<comment><USER22> And football coaches.

<comment><USER7> I and a few other posters mentioned this elsewhere, but at many universities athletics programs make profits that are able to be used elsewhere in the university. This often doesn't include donations on the order of a hundred million dollars at many schools for upgrades, etc.

<comment><USER21> As I read it, a vast majority of university athletic program are unprofitable. Many of them force their students to pay a special fee to fund their athletic programs. The following is probably not the best article but a start... [http://www.washingtonpost.com/sf/sports/wp/2015/11/23/runnin...](http://www.washingtonpost.com/sf/sports/wp/2015/11/23/running- up-the-bills/)

</comment></comment></comment></comment><comment><USER23> what happens to mediocre people? are we fucked?

and being successful at one time does not necessarily guarantee later success. Mozart died alone and with no money. Turing killed himself at the age of 41. It's not hard to look for more recent examples.

<comment><USER24> Seems so; become a grunt programmer/admin and hope you don't get automated away too quickly (with my current academic performance I count myself to that group of people).

As for the second point: Depends on how you define success in life. If life's a paycheck maximization game to you, many science superstars weren't very successful...

</comment></comment><comment><USER25> What's wrong with this? Right now universities produce far more Phds than tenure track positions. If the free market is providing jobs for many of them, all the better.

The head of the CS dept of my undergrad once said to a corporate recruiter, "You can hire our undergrads, but we exist to turn them into Phds"

</comment><comment><USER26> I started out college wanting to be a professor. That was fleeting, once I saw what my most respected professors and advisors were up against, grinding out papers, looking exhausted and subtly hinting that I should pursue anything but my initial goal.

When I started college, for some reason, I also thought the most interesting work was being done in academia, without exception. Now, a few years out, it is clear that the most interesting work is done at a crossroads - between top CS and engineering universities and industry. I do think it is getting harder to resist the lure of industry (based on the experience of my friends with PhDs), mainly because of comparable pay and far fewer peripheral responsibilities like managing labs, advising students, etc.

</comment><comment><USER27> Only lightly correlated, but I would like to start this discussion.

Maybe it is just me, but I have a lot of interests in a lot of different areas, but AI just isn't one of those areas.

Maybe I simply didn't study it enough, but I can't see in AI the challenges that makes interesting programming.

There is some resources I should explore before to say that I simply don't find AI interesting?

<comment><USER28> Modern AI is closer to math than the ad-hoc but often creative solutions of AI in the 70s/80s. This is a very good sign, but it brings AI closer to the kind of work that engineers do with MATLAB. I personally prefer it that way, but it's definitely quite different to other types of programming.

</comment></comment><comment><USER29> While they used Google for the example of large companies hiring academic talent, IBM did this too back in the 90s for chess.

</comment><comment><USER30> Has the distinction between basic and applied research become irrelevant?</comment>


Show HN: An ORM for Node.js that doesn't suck - <AUTHOR> https://github.com/navjobs/relation <comment><USER2> Looks pretty cool, I like the query building syntax.

</comment><comment><USER3> This looks gorgeous! I really like the API so far, can't wait to see where this goes!

<comment><AUTHOR> Author here, I'm attempting to clone [https://laravel.com/docs/5.3/eloquent](https://laravel.com/docs/5.3/eloquent) completely. Decided to release it for now so that I could get help on the api and everything before I get too far. I've just started on doing migrations, which will be a lot of work.</comment></comment>


Windows 8 on a laptop: first look - <AUTHOR> http://www.pcpro.co.uk/blogs/2011/09/15/windows-8-on-a-laptop-first-look/?utm_medium=twitter&utm_source=twitterfeed <comment><USER2> First comment on this story is "'press the Windows key and start typing the name' Who on earth does that? I don't want to TYPE anything. I want to point and click as much as possible! Even on a PC"

Which I think precisely differentiates the user model here on HN and the general public.

<comment><USER3> I remain a mouse user except where I absolutely have to type things. I do recognize that this differentiates me from many if not most HN users :P.

<comment><USER4> I get the impression he's talking from a power user perspective.

</comment></comment></comment><comment><USER5> Having used Windows 8 for the past day or so, I'm definitely warming up to the Start menu being replaced by the Start Metro screen. It feels very similar to Ubuntu's Unity launcher. That said, for the times that I know I'm only going to be quickly launching an app by typing the first few letters of its name, I wish they had an optional "mini" panel for it, possibly with its own keybind. Dock it onto the left side of the screen, or make it a front-and-center popup like Alfred/Gnome-Do/Quicksilver/Launchy.

<comment><USER6> can I add Synapse (for Ubuntu) to the list ? Written in Vala, faster than Gnome-do and primarily developed for the ElementaryOS project.

</comment></comment><comment><USER7> If MS continues with their ideas for Windows 8, then Windows 7 will be the last OS I own from them. I really do not understand the rational for wanting to make desktop PCs look and act like tablets. I really don't want full screen apps on my 24" monitor. And that start screen looks like it was written for 5 year olds.

<comment><USER8> > And that start screen looks like it was written for 5 year olds.

That's how the average user IS. That's what Apple has shown us with the phenomenal success of their iPhone, iPad products. It's the "Don't make me think" philosophy taken to an extreme.

I'm guessing that you are probably like me, a command line aficionado. They call it "simplification" of the user interface, but we feel that there's an element of idioticization there, too! :-) I mean, how do they get things done when there's no place to TYPE?! It's scary to have no place to type. :-)

</comment></comment><comment><USER9> This first Windows 8 development release is really to get people working on Metro apps. It's tablet-centric and desktop and laptop use (without a touch screen) is a very clear afterthought. There will be major changes to the way this all works over the coming months. There have to be for Windows 8 to be a viable desktop OS.

</comment><comment><USER10> That review jives with my own experience. I sincerely hope that they make the metro "Start" optional before the final build.

Also, you can move past the lock screen by hitting enter or by hitting control (in case you habitually use ctrl-alt-del).

<comment><USER11> Here's a Registry hack to get it back: [http://www.geek.com/articles/geek- pick/how-to-get-a-windows-...](http://www.geek.com/articles/geek-pick/how-to- get-a-windows-7-start-menu-in-windows-8-20110914)

</comment></comment><comment><USER12> UI looks inconsistent, but I see a lot there to be excited about. If they are taking cues from the phone OS, then that's a very good thing IMO. I've always felt that was one of the nicer mobile UI's.</comment>


The Å-Machine - <AUTHOR> http://www.linusakesson.net/dialog/aamachine/index.php <comment><USER2> I like this explanation of what it is:

"In a sense, the Å-machine is to Dialog what Glulx is to Inform 7. "

It reminds me of Alan Perlis' quote:

"Learning French is trivial: the word for horse is cheval, and everything else follows in the same way."

<comment><USER3> It's really comical: I paused and had a chuckle when I read this sentence too.

But to everyone else who wonders: this is an interactive fiction component/library. Like classics from infocom (Zork et al), but modern.

I tried briefly playing the author's game, "Tethered" [1] but gave up quickly because after sacrificing Judith I couldn't figure out how to summon any light or move anywhere. Supposedly I'm 'working' this morning... ;)

[1] [http://www.linusakesson.net/games/tethered/tethered- aa/play....](http://www.linusakesson.net/games/tethered/tethered-aa/play.html)

</comment></comment><comment><USER4> Åkesson's work always blows my mind away.

One of my favorites is Paralellogram [0]

[0] [https://www.linusakesson.net/scene/parallelogram/index.php](https://www.linusakesson.net/scene/parallelogram/index.php)

edit: name correction! (indeed that is a cool name!)

<comment><USER5> It's Åkesson, actually. Quite cool to have your initial mostly unused as a one-letter abbreviation/name. Except for ångström (Å), of course.

<comment><USER6> Å is a good letter in many ways, but not for names. Just my opinion, and I do have around 30 years of personal experience :P

<comment><USER7> My HN username should be språk but I couldn't register it that way.

<comment><USER6> Which is usually a thing even on local sites for some reason.

Nothing huge ever happened because of my Å name, but it piles up over the years. Biggest issue was when a very confused man tried to check me in at an airport and had no idea how. Took maybe 20-30 minutes and the solution was "AA". Probably not as much manual typing these days, this was 10+ years ago.

<comment><USER7> Åh where was that?

</comment></comment></comment></comment></comment></comment><comment><USER8> Tell him to get Certbot. nvm, tell him to do a http>https redirect.</comment>


Ask PG: What is YC antiportfolio? - <AUTHOR>

	Inspired by BVP antiportfolio - http://www.bvp.com/portfolio/antiportfolio
pg, could you share some teams you have passed on and "later blossomed into a tremendously successful company"?
I'm resubmitting this with "ask PG" hoping to get an answer, I am really curious
I also found a HN topic about this from some years ago, but now I guess the answer must be richer. <comment><USER2> Unfortunately I can't name names, because we consider applications confidential. But one advantage of all the other incubators that have sprung up is that when we miss a good group, they tend to get funded by one of the others, and as a result we hear about it. So if you made a list of the most successful cos funded by incubators other than us, it would not be far off our antiportfolio.

<comment><USER3> This question was on HN, 319 days ago[1] where I mentioned that I didn't think PG would answer the question because of his answer on Askolo[1] and because they consider applications to be confidential which, is very similar to the answer he has replied (above)[2].

I'm pretty sure my answer from 319 days ago[3] is still similar to a 'current' list as it's too early to tell from other batches etc how successful the 'rejected' startups are.

Anyway here are some of the startups that are known to have been rejected and have gone onto raise funding etc:

\- SendGrid - <http://www.sendgrid.com/> (went through TechStars and have raised a series B)

\- CouchOne - <http://www.couchbase.com/>

\- AfterTheDeadline - Acquired By Automattic

\- Light Sail Energy - <http://www.lightsailenergy.com/> \- Raised money from Khosla Ventures

\- SignPost - <https://www.signpost.com/> \- Raised $1M off Google Ventures

\- MyFit - <http://www.myfit.com/> \- Raised $1M

\- Storenvy - <http://www.storenvy.com> \- although they were kicked out of YC[4] but have recently raised $5M[5]

\- Mark Zuckerberg's Sister Was Also Rejected By YC[6] (although just because your brother is Mark Zuckerberg, it doesn't make you Mark Zuckerberg. I highlighted it because, it was covered by the Tech Press)

Hope it helps.

[1] <https://news.ycombinator.com/item?id=3936639>

[2] <https://news.ycombinator.com/item?id=5419609>

[3] <https://news.ycombinator.com/item?id=3936857>

[4] [http://joncrawford.com/post/20378314843/how-i-got-kicked- out...](http://joncrawford.com/post/20378314843/how-i-got-kicked-out-of-y- combinator-and-then-raised)

[5] [http://techcrunch.com/2013/02/12/storenvy-goes-from- getting-...](http://techcrunch.com/2013/02/12/storenvy-goes-from-getting- kicked-out-of-yc-to-raising-a-5m-round/)

[6] [http://www.businessinsider.com/y-combinator-arielle- zuckerbe...](http://www.businessinsider.com/y-combinator-arielle-zuckerbergs- rachel-sklar-2011-11)

<comment><AUTHOR> Well, good enough for me. Even though the interest point is about the reasons of passing on, not just knowing they exist.</comment></comment></comment>


Sabotaging Success, but to What End? - <AUTHOR> http://www.nytimes.com/2010/03/23/health/23mind.html

<comment><USER2> A very handy question to ask yourself:

"How is that serving me?"

Today was yet another day I didn't start something from my list of ideas. I didn't have to put in hard work, got to relax, and will be able to avoid possible failure for one more day.

Of course, that doesn't stop me from slacking off, but at least I know the true reason why and can try to accept it: I'd rather be comfortable than have a chance at larger success.

</comment><comment><USER3> Very interesting.

I find myself stopping just short of the goal-line at times, leaving projects unfinished. Not sure if this is due to a fear of seeing the end result lampooned by users, or whether it is due to self-defeating programming in my brain that is beyond my ability to detect it. Whatever the cause, when I am able to objectify the situation, it appears to me that I am acting quite irrationally.

Anyone else experience this?

<comment><USER4> yes. It is frustrating to be able to see it happening but persist in the behavior.

I haven't found the fix yet. Things that have helped me are 1) arbitrary deadlines (i.e. it ships on Apr 3 in whatever state it's in vs when it's done, it helps if you can tie this to an external event) 2) bringing on collaborators, and 3) splitting goals into smaller pieces until you do them (i've had to reduce my goals to "press the compile button" at times), and 4) fake tasks, i.e. add a frivolous feature (actually start it) to the schedule and then do everything else, that gives you some psychological buffer to having to call it finished, and then when you are in a good mood, just cut that feature and ship. :)

I'd love to hear what works for others

</comment></comment><comment><USER5> "Many people ... are anxious about what it means to succeed."

Sometimes kids get loaded down with expectations, even expectations to 'redeem' a family of people who see themselves as failures. Or carry on for 'winners'. Who wants to be in that position? That's a heavy load to carry. Some people only 'succeed' after a decade or two of struggling to really understand a problem - then go on to discovery after discovery.

Success can create an expectation of further success. Early 'success' can result from good fortune. That may create a weight that can't be carried. Child actors, for example. Many people do all the right things, but don't promote them ... and get ignored. The world can be very blind.

And there are people who just aren't motivated by what most people call 'success'. Success might mean solving a problem that few understand. Or it might mean overcoming all those expectations and doing what satisfies oneself. Ironically, that might be described as 'self-defeating' by more conventionally-valued people. Schubert and van Gogh had very little 'success' during their lifetimes. Yet they kept doing what they loved ... and damn the torpedoes.</comment>


Radiation-contaminated areas in the United States - <AUTHOR> http://www.wissenskunst.ch/en/usa_2.htm <comment><USER2> Scientific illustrator? Someone please tell me what is scientific about this site. No mention of the actual amount of radiation that was released at TMI, which was miniscule compared to normal background radiation that is present all the time. Yeah, lets go find some bugs with spots, assume that the spots are caused by radiation from a nuclear plant, and call it scientific. Get educated people!!

<comment><AUTHOR> She did quite a bit of work at Chernobyl as well. For 25 years she worked as a scientific illustrator for the scientific department of the Natural History Museum at the University of Zurich (she did illustrations of the effect of X-rays on fruit fly experiments).

She tried to present the impact that low levels of radiation are having on the occurrence of mutations within insect populations in her book.

Granted her site is not web 2.0 and the diagrams do not do justice to her work, but this is no reason to be dismissive.

Are you aware of any studies that the radiation released did not have an impact on the insect population?

</comment></comment><comment><USER3> Summary: A scientific illustrator collects deformed leaf bugs in areas with increased radiation, especially around nuclear power plants. She illustrates the deformities with watercolor.</comment>


Ask HN: What's the best piece of software you use every day? - <AUTHOR> What software (on any device) gives you joy every time you use it? Is their something you enjoy or envy about their UX?
Is there such a thing as the 'perfect' software?
Inspired by this thread: https://news.ycombinator.com/item?id=23803539 <comment><USER2> Bekon Idealist (I32 - Version 3.0 Jan99) [0]

Sold as a personal bibliographic database, it is fully portable (on USB Stick) and works as a database, knowlegde store, document templating and generation tool. Much loved by users [1]

Features:

\- Rock solid since 1995.

\- Text based configuration with GUI tools.

\- Simple model just define fields,records.

\- Each record can have multiple parents/children.

\- Automatic data entry forms with validation/spellchecking.

\- Optional hand coded forms.

\- Save part filled forms as templates.

\- Every record full text indexed.

\- Advanced search capabilities.

\- Scripting - limited but functional.

\- Multiple export formats, including "merge using text file" which can reference fields from parent(s) and children.

\- Help file and manual.

The only weakness is the lack of basic language constructs within the scripting commands (I often have to create scripts on the fly to embed variables - then run them).

If the scripting commands could be exposed as an API, then this software would benefit greatly from retro-fitting Lua or Luajit.

[0] [https://lhosborn.com/2019/06/11/idealist-still-going- strong/](https://lhosborn.com/2019/06/11/idealist-still-going-strong/)

[1] [https://groups.google.com/forum/#!forum/idealistdb](https://groups.google.com/forum/#!forum/idealistdb)

</comment><comment><USER3> Divvy by Mizage. A simple app for sizing windows on macOS. Bought it ~7 years ago (I think), and it's so ingrained in how I use my computer, I don't even remember to install it.

Honestly, it should be a built-in feature of macOS.

</comment><comment><USER4> Software: BrainOS Device: Brain Reason: Can do really awesome stuff with it. But in this era, a lot of people are lacking this essential software. That makes me sad.

</comment><comment><USER5> The bash shell. It just fits the way I think. I only-somewhat-jokingly say that bash is my native land.

</comment><comment><USER6> gcc

It tells me what's wrong with my code, it's fast enough, it gives me these wonderful programs out of nowhere.</comment>


ICANN has started accepting applications for new top-level domains - <AUTHOR> http://newgtlds.icann.org/

<comment> Tim-Boss This has been on the cards for a while now, the way I see it only big brands (or the ones that can afford the huge fee) really stand to benefit from it...</comment>


How the Valley put Obama over the top - <AUTHOR> http://fakesteve.blogspot.com/2008/05/how-valley-put-obama-over-top.html <comment><USER2> too funny and about time we have president that "gets it"</comment>


Show HN: An Example Microservice Back End for Kubernetes, Bazel, Go, Java, GRPC - <AUTHOR> https://github.com/lucperkins/colossus <comment><USER2> > Getting all of these technologies to work together was a real challenge. I > had to dig through countless GitHub issues and dozens of example projects to > make all these things work together. I'm offering this repo as a starter > pack for other people with a Bazel monorepo targeting Kubernetes.

So, if it was such a hassle just to get them all glued together- how would they fair for a project that adopts it and matures?

<comment><AUTHOR> It was a hassle mostly because a lot of the libraries are new and the interfaces are still changing a lot. Bazel is a fantastic build tool that I'd recommend for large projects. The Bazel + gRPC story, though, has a ways to go.

But I don't see any reason why you shouldn't use Bazel + gRPC for a larger project. You may have to tweak small things in the future but I suspect that the UX will only improve. Plus, you can always write your own Skylark rules if Bazel isn't cutting it for you in some way.

<comment><USER3> Could you describe some of the bazel + grpc problems you had? I haven't used grpc with bazel yet, but would love to hear problem areas.

<comment><USER4> It's been a while since I looked at this but ~6 months ago I was surprised to find that there are no official bazel rules you can just import to make gRPC "just work." As a result various third-party incarnations exist and they differ slightly in their usage. When you try to compile a basic service it's pretty frustrating.

I really wish gRPC team would come out with rules you can import and best practice examples / tutorials :(

(I work at google but opinions are my own. I don't work on gRPC. I don't have to write much skylark normally because Google infra teams write the common rules you need. I found that writing my own skylark for project outside of work isn't that fun.)

<comment><AUTHOR> Things have improved but only marginally. Java and Go are the only languages that have "native" gRPC support in Bazel. For others you need to rely on an external repo whose connection to Google is unclear ([https://github.com/pubref/rules_protobuf](https://github.com/pubref/rules_protobuf)). I find this disappointing, as a gRPC-connected microservice architecture that Just Works and easily interoperates with Docker/Kubernetes/whatever seems like it could be THE "killer app" for Bazel. I built this project to say "look, it's easy!" But alas, it wasn't, and I've communicated that to some core Bazel folk.

</comment></comment></comment></comment></comment><comment><USER5> We are using a similar setup. K8s, Bazel, Go, Java (Android), Swift (iOS), Typescript. Everything with gRPC. I really like Bazel because it makes working with Protobuf so much cleaner (at least in theory) and allows us to have one build system for all those languages (at least in theory).

The easiest to set up was Go. Go support is already very good, including gRPC and Protobuf. The only drawback was that it breaks editor integration of some tools / linters because of the different directory layout for generated files.

Vanilla Java also has good support but when you go to Android land things change. At first we had to use a custom fork of grpc-java to build for Android, but with this change [https://github.com/grpc/grpc- java/pull/4289](https://github.com/grpc/grpc-java/pull/4289) we were able to go back to the main repo.

gRPC-web was a prohibitively large dependency for our front end. After all we switched to a JSON API (using Envoy). I read that Google uses gRPC for products like gMail and since Google is so obsessed with web performance I wonder how they manage the dependency size (a few 100kb for us). There is a lot of information scattered around like a json-proto protocol (not publicly available?), which apparently should not be needed with proto3 and newer browser because performance is supposed to be similar. grpc-web uses the official protobuf/javascript package, using protobuf.js the dependency size as well as the compiled protobuf might be smaller.

While building Swift and Objc for iOS was super easy with Bazel we couldn't manage to build our protobuf/grpc. There were no working rules at the time and we had no time to fix it completely which is why we are not building that part with Bazel, yet. [https://github.com/pubref/rules_protobuf/issues/188](https://github.com/pubref/rules_protobuf/issues/188)

I'd appreciate any insights you have on Objc support and grpc-web. It'd be great to be able to use grpc across the whole stack.

</comment><comment><USER6> I'm using GRPC-ish stuff in my stack. I would say that one large hole with grpc right now is figuring out the local development story. I am all on-board with running databases in local Docker/local k8s, but still having trouble wrapping my head around local grpc-web development given that grpc-web repo seems completely stalled right now.

<comment><USER7> I am using improbable-webs grpc-web[0] right now and it works very well once some kinks were worked out. Only problem has been lack of client-side streaming.

Additionally, I use grpcc[1] to test calls locally and that has worked well. I originally tried using some GUI's that looked promising but couldnt get them to work. This is good enough and less work than writing a quick client in python.

[0]: [https://github.com/improbable-eng/grpc- web](https://github.com/improbable-eng/grpc-web) [1]: [https://github.com/njpatel/grpcc](https://github.com/njpatel/grpcc)

</comment></comment><comment><USER8> Nice, here is a project with very similar goals and which runs in other orchestrators other than Kubernetes: [https://microservices- demo.github.io/](https://microservices-demo.github.io/)

<comment><USER2> Used to be a fan of weave as a CNI. But i've never actually heard anyone or team using them, it seems consensus is on calico or flannel?

<comment><USER9> Weaveworks' focus has been on visualisation and observability for the last three years, and now deployment (GitOps).

BTW Weave Net has been "docker pull"ed 30 million times. _Somebody_ must be using it...

(I work for Weaveworks)

</comment></comment></comment><comment><USER10> Is it weird that I use most of this stack already but still thought the repo was an attempt at satire? I feel like this experience has left me questioning everything I think I know.

<comment><AUTHOR> Just out of curiosity, what about it strikes you as potentially satirical?

<comment><USER11> The cornucopia of buzzword tech

<comment><USER12> RPC is 40 years old. Java is 20 years old. Go is 10 years old. Microservices I saw at Apple over 20 years ago.

The real buzzword technologies are in the serverless space.</comment></comment></comment></comment>


Switzerland: Court Rules in Favour of Google Street View   - <AUTHOR> http://www.swissinfo.ch/eng/swiss_news/Court_rules_in_favour_of_Google_Street_View.html?cid=32861794

<comment><AUTHOR> The headline is actually misleading to a certain degree:

Sure, Google Street View remains legal in Switzerland but Google will have to reshoot all images within three years – among others obligations imposed by the Swiss Federal Court.</comment>


Ask HN: Is there a way of identifying a font from a picture? - <AUTHOR> I know there are tools like WhatFont that can identify fonts used on a website, but that's using javascript and css to figure it out. I have a designer that did some artwork for me and he keeps evading the question of what font and colors were used and while i can use the eyedropper tool in photoshop to figure out the colors from the images he has supplied, figuring out the font is proving to be really hard. I figured that maybe with the increase in AI and things like that, there might be a tool out there that can figure it out? <comment><USER2> [https://www.myfonts.com/WhatTheFont/](https://www.myfonts.com/WhatTheFont/)

</comment><comment><USER3> tjr pointed out WhatTheFont.

An alternative way of obtaining that information is to refuse to pay the designer if he doesn't tell you. If he refuses, tell him that you cannot use his work without making sure that you are licensed to use the font.

<comment><AUTHOR> Thanks but he offered to do it free for the exposure and design credit :(</comment></comment>


32blit: Retro-inspired handheld with open-source firmware - <AUTHOR> https://www.kickstarter.com/projects/pimoroni/32blit-retro-inspired-handheld-with-open-source-fi?ref=b0x93y <comment><USER2> We just launched this project and we're excited to talk about it if you have any questions. :-)

<comment><USER3> "Install updates on your own schedule"

That's good, but why does it need updates at all?

<comment><USER2> Because we intend to continue to improve it. :-)

<comment><USER3> But I mean, what are you changing? Does it run an OS? Is the firmware that complicated? Can we expect things to be changed out from under us such that working games break?

<comment><USER2> The firmware is going to be open-source - I have no doubt that people cleverer than us will know ways to improve it.

The most important factor for me is that we keep our API stable. That said there is tonnes of scope to add new features and improve/tune features without breaking existing projects.</comment></comment></comment></comment></comment>


If you use Tor, the FBI just labelled you a criminal - <AUTHOR> http://www.thelastamericanvagabond.com/constitutional-rights/fbi-labled-tor-browser-users-criminals/ <comment><USER2> Recent discussion of the rule change:

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

</comment><comment><USER3> I would encourage anyone interested to actually read the proposed rule change.

"(b) Venue for a Warrant Application. At the request of a federal law enforcement officer or an attorney for the government:

(6) a magistrate judge with authority in any district where activities related to a crime may have occurred has authority to issue a warrant to use remote access to search electronic storage media and to seize or copy electronically stored information located within or outside that district if:

(A) the district where the media or information is located has been concealed through technological means; or (B) in an investigation of a violation of 18 U.S.C. § 1030(a)(5), the media are protected computers that have been damaged without authorization and are located in five or more districts."

This is not "labeling you a criminal" or authorizing anyone to get a warrant to search your computer (remotely or otherwise) simply because you have a copy of the Tor Browser Bundle installed. The claims in the linked blog post are flat-out wrong.

What it's actually saying is that during the investigation of a crime, if either of those two criteria are met, the government can apply for a warrant in "any district where activities related to [the] crime may have occurred". That's it.

If you think about this for a second, it makes sense. It's not possible to file a search warrant in a jurisdiction that you can't determine until after the warrant is executed. This rule change allows the government to apply for that warrant in a known jurisdiction, that of one of the victims. It does not make anything illegal that was not already illegal. It does not "label" anyone anything. It's a simple recognition of the fact that you can't ask for a search warrant when you don't know physically where you'll be searching.

Now, whether the whole "remote search" thing is a good idea is a different question. I happen to think it's not. However, those remote searches are already a reality and spreading FUD about this fairly innocuous rule change won't change that.

Edit: My quote was FUBAR, sorry.

<comment><USER4> > It's a simple recognition of the fact that you can't ask for a search > warrant when you don't know physically where you'll be searching.

Isn't that in conflict with the 4th Amendment requirement that warrants must be written "particularly describing the place to be searched"?

How do you describe the place if you don't know where it is?

</comment></comment><comment><USER5> Yeah I kinda figured from the URL that this was a less-than-reputable source. But a lot of the other comments bring up a good point, I don't think this is "labeling someone as a criminal by any means" but it is giving them a new type of leverage to identify what "probable cause" means in a digital crime case.

It's very similar to having marijuana in the car - the police need 2 signs to get a warrant (usually red eyes and odor) in this case you'd have to give them 2 signs you were conducting some sort of illegal activity using something like TOR and they'd have a warrant. But what they would be able to do with that warrant is largely subject to each individual case - encryption making it increasingly difficult for them to do their job in some.

</comment><comment><USER6> Awful, clickbait headline. Here is the relevant analysis of the rule change:

" _The amendment would allow them (FBI) to issue warrants to hack into and seize information on a computer if its location has been "concealed through technical means._ "

In other words, if you're using Tor or similar, a judge _out of jurisdiction_ (the critical change - since the jurisdiction of a Tor user is necessarily unknown) can now sign a warrant to have your data/stuff seized.

Problematic, but kind of a far cry from pre-declaring criminality.

<comment><USER7> Honestly, it sounds pretty reasonable. Presuming that the normal standard for probably cause is required, then all this is saying is you don't have to prove where the traffic originated from.

EDIT: I read through and that definitely is the case. Probably cause is still required to issue the warrant.

<comment><USER8> The civil liberties activists are taking a weird stance on this. The FBI already has the legal authority to do what the rule change allows, it's just that it requires a district judge (appointed by the President for life after Senate confirmation) to sign the warrant. The important thing isn't what the rule change allows but who is authorized to allow it. Magistrate judges are administrative functionaries and handle routine court tasks & cases and are not approved by the Senate. The rule change is about judge shopping. It greatly expands the number of potential marks for the FBI to lie to and mislead through technical mumbo-jumbo and obfuscation on their affidavits and submitted warrants. When they did bother to submit warrants for deploying Stingray devices, they were sure to hide their activities behind euphemism and snowjob and went to judges who would rubber stamp the warrants. As courts have come to understand what was happening, they have not been happy. Now they're trying the same tactic with dragnet-style offensive hacking of remote computers.

</comment></comment></comment><comment><USER9> Does "anonymity software" include VPN as well?

<comment><USER7> The rule says "the district where the media or information is located has been concealed through technological means". So yes. BUT, the search still requires a warrant with probably cause. So the thesis of this article would appear to be completely wrong.

</comment></comment><comment><USER10> Might be wrong but it also appears to give the right to access any cluster of (5+) machines that were hacked together AND download the contents of those machines WITHOUT any notice or due process for the owners of those machines.

If anyone feels I'm wrong, please explicitly state the line of logic used.

If true, given the scope of exploited devices in the wild - anyone may randomly get there computer searched and unless they're able to prove the search was illegal anything on the device is fair game.

Worst case, they hack machines to create "probable cause" using shell companies or contractors; no idea how this would be legal, but no idea how this ruling is legal either.

<comment><USER3> See my post in this thread that quotes the rule change. This is entirely about venue for search warrants. A valid warrant is still required, ALL this rule change does is expand which jurisdictions the government can apply for the warrant in.

<comment><USER10> __Yes, read the full ruling and your comment when it was posted. I do not see a conflict with what was said and what my statements.

Meaning currently say there are 5000 devices in NYC the FBI is already legally allowed to hack into them and remotely copy all the contents of those files without due process or notice to the owners?

________

EDIT(Re: "General warrants" comment below)

Just to be clear, me reading of your comment is that "general warrants" that allow the FBI to download the contents of any computer that's in a botnet within the jurisdiction of the warrant provided is legal and the owner is not required to be notified unless that owner happens to be the defendant in the filing. Further, unless that warrant is later proven illegal, owner is legally accountable for the contents of the computer unless they're able to prove that they are not the party responsible for in illegal activities "discovered" in the process.

<comment><USER11> As ridiculous as I find this particular change, in general, warrants do legally constitute "due process" for a search.

EDIT: added a comma after "in general" for clarity.

<comment><USER10> Meaning you're saying that all device owners would be notified of that there computer was remotely accessed and all the contents were copied, right? To me, ruling reads that only the defendants, if known, must be notified.

</comment></comment></comment></comment></comment><comment><USER12> Just about the "government hacking" bit in the article: The government already legally does what would get any of the rest of us arrested for larceny, kidnapping, assault, fraud, or even murder. Why should we be surprised at legal hacking? The jurisdiction question is the only thing that makes it special.

</comment><comment><USER13> What an absolute crock, but an obvious step that had to be taken on the road to criminalizing privacy.

</comment><comment><USER14> The day all Americans will only be allowed to sit in a jail are not far away.</comment>


Advice From a 92-Year-Old Veteran of WWII on Getting Out of a Dark Place - <AUTHOR> http://artofmanliness.com/2012/11/12/advice-from-a-92-year-old-veteran-of-wwii-on-healing-after-war/

<comment><USER2> It sounds a lot like _Big Two-Hearted River_.</comment>


"GitHub is the Instagram of programming" - <AUTHOR> https://www.youtube.com/watch?v=PNXFVEN3Nw0 <comment><USER2> I definitely have an inflection point where my commits stop looking like "asdfskfedj" and turn into "Refactored DNS CNAME verification". I still see plenty of small projects with the former example.

Github, and how it is integrated into the SWE job market is interesting. Some of my best work is locked up in a private repository at a previous employer, and I'm not about to lead an open source project with 2 kids

</comment><comment><USER3> I had a blog I ran for a while showcasing my tech projects. The main page was titled 'Failures' and it held all the attempted projects I had. Some reaching a successful deployment and the final version being posted in 'Successes'. The idea started entirely from seeing so many other blogs and social media posts with these beautifully presented codebases or finely crafted hardware. They showed the picture perfect view of those projects, but not how they got there. I wanted to do the opposite so people could actually see the faults I ran into and hopefully learn from them.

I had a lot of fun with it and learned a lot as well. There were several older projects I posted the failures of that people contacted me about to help or point out what I did wrong. Some became successes! Eventually though, I had a kid and stopped posting. The final Failure ended up being a post about the blog and a loop back to the failures section before the domain expired. I'll rebuild it someday, but I wish that kind of thing was more prominent.

</comment><comment> just-juan-post just make garbage commits to a private repo to get your green squares

<comment><USER4> I wish they'd let users set the green squares to public projects only. I use github a lot for private projects or archival (did a quick thing, write myself a readme and store it in case I need it again). But it looks like I'm doing a lot of work when I'm not. The green squares would be a heck of a lot more interesting if you could see how much they are doing in public repos (where you could see if they are faking their squares).

<comment><USER5> You can set it to only show contributions to public repositories in the "Contributions Settings" menu right above the graph, and I'm pretty sure that's actually the default setting. Note that even with this setting selected, _you_ will still see all your contributions, but a visitor will only see your public contributions.

</comment></comment></comment><comment><USER6> Much like all my online interactions now, it's so much free-er commiting/commenting under a non-identifiable pseudonym.

<comment><USER7> That is social interaction stripped to bare metal.</comment></comment>


Bacterial Transfer Associated with Blowing Out Candles on a Birthday Cake (2017) - <AUTHOR> http://www.ccsenet.org/journal/index.php/jfr/article/view/67217 <comment><USER2> But, the question that takes the cake is whether there is viral transfer associated with blowing out candles.</comment>


Subleases spike in number as SF startups downsize - <AUTHOR> http://techcrunch.com/2016/03/08/subleases-spike-in-number-as-sf-startups-downsize/ <comment><USER2> It may not all be doom and gloom. Landlords have been forcing long term leases (7 years+) on tenants to get space in the city. Once a company outgrows that space they're still on the line for that lease, so they sublease it out and not at a major discount.

<comment><USER3> Right. In fact, last year at least, many companies were able to profit on their subleases, as the long-term (4+ year) lease was at a lower rate than the going price.

Another common situation is landlords happy to terminate a couple-year-old lease, because they know they can easily get a higher rate on the open market.

</comment></comment><comment><USER4> One data point: we signed a sublease 3 months ago at 18-20% lower than market. This was a 10k+ sqft space in a Class A building in FiDi. Also notable: other subleases at the time were ~10% off.

<comment><USER3> I don't know your particular situation, but if your master tenant signed their lease a few years ago, 20% under market rate could still represent a good outcome for both parties. After all, commercial rates have roughly doubled since 2010. (See link below)

For sub-leases in particular, other (non-monetary) factors are important, for example willingness of the sub-tenant to vacate at certain timetables, sub- tenant palatability to the landlord, and existing prior relationships with the master tenant.

[http://my.paragon- re.com/Docs/General/SixtyFortyImages/7-15_...](http://my.paragon- re.com/Docs/General/SixtyFortyImages/7-15_Invest_SF_Office-Rents_by-Qtr.jpg)

</comment></comment><comment><USER5> This article is over 2 weeks old now

<comment><USER6> Has the situation changed in 2 weeks?

<comment><USER7> Totally fine now. The invisible hand did its thing.

<comment><USER8> The magic market fairy gave me another unicorn.

</comment></comment></comment></comment><comment><USER9> Is there any noticeable impact on the residential rental market though? My assumption now is that demand will still far outstrip supply.

<comment><USER10> Whatever slack is created by tech workers no longer in the residential market will be picked up by Chinese buyers searching for safe asset havens.

<comment><USER7> Too bad Ireland can't get back in the game there to take off the pressure.

<comment><USER10> Seriously. I love Dublin compared to SF (or even the more rural parts are nice as well).</comment></comment></comment></comment>


How not using Internet Explorer put me out of touch and cost me dearly - <AUTHOR> http://thenextweb.com/dd/2012/07/15/how-not-using-internet-explorer-put-me-out-of-touch-and-cost-me-dearly/

<comment><USER2> <http://news.ycombinator.com/item?id=4241952></comment>


Bicycle Geometry Terms - <AUTHOR> https://99spokes.com/bicycle-geometry-terms <comment><USER2> The description of trail could be a lot better, given how important it is. It's effectively the degree to which the front wheel acts as a caster. When you push a shopping cart the caster wheels automatically straighten out and _trail_ behind the steering axis in a straight line. The front wheel is doing the same: when moved forward it resists being steered and wants to go straight. The degree of trail effects how much it wants to go straight.

Racing bikes etc. are high-trail bikes because by going straight the steering is stabler at high speeds. High-trail bikes can also be ridden no-hands because the wheel is effectively on autopilot. Any time you need more nimbleness and precision in steering -- perhaps a mountain bike? -- you want to lower the trail. Porteur bikes -- bikes that carry big boxes of flowers over the front wheel say -- also need very low trail because they're already hard to steer due to all that inertia. And with small wheeled bikes it is very difficult to achieve significant trail without a very shallow head tube (steering) angle, so many folding bikes by necessity have a very "live" steering. One of the dumber bike decisions I can think of is Brompton's inclusion of a rake on the front wheel, thus making its steering _worse_.

<comment><USER3> Trail on road bikes, racing and not, seems to be universally in the range of 55-60mm (across frame sizes, too). I suppose it depends on what kind of racing you're doing, but some kinds of bicycle racing involve cornering agility / nimbleness, and you want a shorter trail for that.

<comment><USER4> Randonneur bikes (also road but with fatter 650Bx42 tires) typically have longer trail (typically in the seventies) because they carry front loads.

<comment> et-al Long meandering post on trail.. after rim brakes vs disc brakes and wheel size, trail is probably the next most contested subject in bikenerdom.

SeanLuke provides a good example with the caster. I also recommend reading Dave Molton's blog (who's built frames longer than most people here have been writing bloated JS SPAs) for more:

 _Trail, fork rake, and a little bit of history_ \- [https://davesbikeblog.blogspot.com/2007/05/trail-fork- rake-a...](https://davesbikeblog.blogspot.com/2007/05/trail-fork-rake-and- little-bit-of.html)

Now porteur bikes _and_ typical randonneuring bikes often have _lower_ trail. People are often focused on the trail numbers, but the simple reason is to position the front load (handlebar bag or stack of newspapers) on or right behind the front axle. Framebuilders do this by increasing the rake (fork offset) to stretch out the front axle, which results in decreased trail. The reason is that you want the weight at the fulcrum to reduce any "inertia" when steering--so the bike remains easy to steer with the additional weight.

If you're not intending on riding your bike with a front load most of the time, then you probably do not want a low trail bike as they are more sensitive to rider input on the handlebars when there is no weight. Also, randonneuring is just an activity, so you can ride any bike with any geometry you want. But in America, especially on the West Coast, there is a bit of bike-cosplay in the randonnerding scene, so folks like to ride bikes built in the old French Constructeur style.

Lastly, SeanLuke is probably not familiar with mountain bikes, but modern geometry for XC and enduro bikes is towards slacker headtube angles (resulting in _higher_ trail) for stability when descending.

For anyone interested in geometry, I highly recommend browsing Bike Insight's category section: [https://bikeinsights.com/categories](https://bikeinsights.com/categories)

<comment><USER2> > Lastly, SeanLuke is probably not familiar with mountain bikes, but modern > geometry for XC and enduro bikes is towards slacker headtube angles > (resulting in higher trail) for stability when descending.

I'm certainly not familiar with modern mountain bikes. Very interesting that some have slacker headtubes for downhill, but it definitely makes sense.

</comment></comment></comment></comment></comment><comment><USER3> As a bicyclist, I'm amused this made it on to the HN front page.

I'm not sure I agree with the description of stack. Cockpit height can be adjusted with riser stems and different handlebar shapes; it's not solely a function of axle-crown and headtube length.

Without getting into it too much, some other descriptions are not great either. The general overview is ok but they make some overly strong claims.

I'm not sure I've seen wheelbase used much in a bicycle context, although it makes sense. You see it used for cars a lot.

Edit: The go-to source for bicycle information I'd point others at is Sheldon Brown's webpage, [https://www.sheldonbrown.com/](https://www.sheldonbrown.com/) .

<comment><USER5> Everyone should think about this comment the next time they're wow'ed by some link here.

When you're knowledgeable about something and read an article/blog/whatever about that topic, it's shocking how much is either somewhat off-base or just plain _wrong_.

The articles that aren't about your areas of expertise are no different.

<comment><USER6> I agree with your general point but I think OP is being a bit picky about this particular page. The descriptions are pretty good and wheelbase is indeed a common bicycling term (I see it all the time in reviews and it's listed on the product pages for the last three road bikes I bought—I just checked).

This website overall is a great resource for bike nerds, specifically their bike database; there's nothing else like it AFAIK.

<comment><USER3> > I think OP is being a bit picky about this particular page.

That's fair. I didn't look at the other pages on the site, and in general the descriptions are solid.

To be clear, I was amused that it made the front page not because of inaccuracy, but because I don't think of HN as a community very interested in cycling.

</comment></comment></comment></comment><comment><USER7> Great explanations!

It's really silly that seat tube length is used as the single measure of frame size. Much more important is reach and standover height, since those can't easily be changed. A longer or shorter stem will adjust reach at the expense of changing how responsive the steering is, whereas a short seat tube can be fixed with a longer seat post. Seat tube length is also measured differently by different manufacturers — sometimes it's center to center (of the tubes), sometimes center to top, etc. Seat tube length is convenient but it's not what people should focus on when trying to find a bike that fits.

<comment><USER8> My thoughts exactly. Being on the shorter side what matters is the stand over height - too high and it greatly limits on/off/standing manoeuvrability and agility. I was surprised to learn that the smallest adult bikes tend to have a stand over height of 68-70cm. For some bikes, it's even higher. For the lower tail of the adult height distribution, this is too tall to use comfortably.

<comment><USER9> Look into bikes with 650b wheels for this.

<comment><USER3> Pay attention to BB height, specifically. That'll dictate ground clearance and comfortable saddle height. 650B wheels are often fitted with bigger tires, and _can_ have the same effective diameter as 700C wheels with smaller tires (depending on specific tire size).

<comment><USER9> This is correct. I was in a hurry and didn't explain at length as i should have.

</comment></comment></comment></comment></comment><comment><USER10> Although I'm an avid reader, this is my first ever comment. I built this site [https://comparemtb.com/](https://comparemtb.com/) to give people a way to visually compare the geometries of many different mountain bikes. I'd be interested in any feedback. Thanks.

<comment><USER4> Also [https://bikeinsights.com/](https://bikeinsights.com/)

<comment><USER10> CompareMTB guy here. Thanks for sharing your site. Didn't know you existed. Nice work.

<comment><USER4> It's not mine, I'm merely a user. It was featured on the Path Less Pedaled YT channel.

</comment></comment></comment></comment><comment><USER11> If you are interested in messing around with these settings and many more, look at the great parametric bicycle cad system "Bikecad". Brett curry maintains and updates it for eons now. And crazy licensing — one time payment gets lifetime of updates.

<comment><USER12> Nice! [https://www.bikecad.ca/](https://www.bikecad.ca/) Costs CAD500 is a one time fee. Runs on Linux, Mac and Windows.

A Free online version is also available. It takes >5min to load, just be patient.

<comment><USER13> There is also _rattleCAD_ app developed by Manfred Rosenberger.[0]

 _rattleCAD_ <= 3.x was fully free & open-source, but actually _rattleCAD_ 4.0 is proprietary with freeware/demo version & few subscription modes.[1]

[0] [http://www.rattlecad.com/](http://www.rattlecad.com/)

[1] [http://www.rattlecad.com/download.html](http://www.rattlecad.com/download.html)

</comment></comment></comment><comment><USER14> This site is fantastic !

The "compare" part is really great - with a little scatterplot price vs estimated spec level - I've used it massively when choosing my bike.

<comment><USER15> Very useful site, the geometry comparison amazing!

</comment></comment><comment><USER16> For a deep dive into all things bicycle, I always recommend Sheldon Brown's delightful knowledgebase, which started in the late 90s:

[https://www.sheldonbrown.com/](https://www.sheldonbrown.com/)

(sadly Mr. Brown is no longer with us, but his web archive lives on)

And there's always Bicycling Science for the serious nerds among us

[https://www.amazon.com/Bicycling-Science-Press-Gordon- Wilson...](https://www.amazon.com/Bicycling-Science-Press-Gordon- Wilson/dp/0262731541)

</comment><comment><USER17> This is great.

One thing I do notice missing is the affect of stem length on steering, particularly for road bikes.

It's not uncommon for road bikes to have both a steep head tube angle and a longer stem e.g. > 110mm to increase stability at speed.

Narrower and lower handlebars give you better aerodynamics but also affect both comfort and steering.

</comment><comment><USER18> There are so many opportunities for new businesses that want to provide people with high quality well maintained bikes. In my hometown Oslo, Norway, you can see super expensive e-bikes and carbon frame roadbikes everywhere. If your bike needs repairment, you have to wait at least one month.

</comment><comment><USER19> Do you think people who fix bikes or are bike enthusiasts know which of these components affect which aspect of riding? I can imagine knowing all the specific names for the parts is difficult but their affect on biking experience seems very relevant. Something that was not so obvious to me.

<comment><USER20> There are professional "bike fitters" that know how to adjust all these things (those that can be adjusted) and more in such a way you get everything set up the best given your body and goals.

For instance, given a bike and a rider, one can adjust seat height, seat position, stem length, handlebarhheight, crank arm length and possible more things to get the correct reach and stem height. However, all that also has to be adjusted to account for body size (limb lengths), mobility etc, in order to level the hips, get the knees correctly over the pedals, aero position, correct weight on the hands, no chafing in the butt etc. It's really an art to adjust everything at once, as fixing one thing affects the others.

So while a bikefit can cost about $300, it's money well spent if one is serious about the biking (and one has then probably spent ~20x that on bike+gear anyways.. ). I'm about to head out for a ~120km ride today, so I've found a bike fit invaluable.

<comment><USER3> Professional bike fitting is sort of a sub-discipline of physical therapy, at least in the US. (That might not be obvious to people who haven't had a professional bike fit; it wasn't to me before I did.) To the extent your health insurance covers PT, it covers PT bike fits.

</comment></comment></comment><comment><USER21> What is missing is a way to convert your body's geometry to the bike's geometry.

Like, you give it your inseam length (sole to taint) and the highest pull-up bar you can grab without jumping and the site tells you what bike geometry parameters determine the correct bike size for you.

<comment><USER20> I wrote a lengthy comment here about bike fitters. They can also help with this. It's however often more complicated than just a few measurements. They often have a special bike where literally everything can be adjusted (google retül bike), and then when the fit is done (~1h) they got lots of parameters that can be put into a DB to spit out bikeframes+gear that will work for the rider. However, my experience is that the system still needs a human expert to verify and tweak the results.

However, for a basic fit your method works. For instance when buying a Canyon they ask for your measurements for some things to recommend frame size. But this of course if very rudimentary and already assumes you want that model.

</comment></comment><comment><USER22> If you are choosing a bike based on stack and reach then note that they are related. The reach and stack are measured from the same point (join of top tube and head tube). So if you see a bike that has 20mm more stack and 10mm more reach than another then it actually may have 16mm more reach _at the same stack height from the bottom bracket as the smaller bike_ , (depending on head tube angle) so it's longer than you think.

</comment><comment><USER23> Odd how it does not give the weight of bicycles in the specs.

<comment><USER3> Weight can vary quite a bit for the same frame based on easily changed components like (1) wheels, (2) groupset (gears, pedals/cranks, brake/shift levers, that kind of thing), (3) handlebar/stem/seatpost material.

I recently bought a medium-spec build of a lightweight frame bike, and could shave 2+ lbs with upgrades, if I wanted to. Not paying for those upgrades out- of-box saved me ~4800 euro up front, and the bike is 17.9 lbs instead of 16.2 lbs. Meanwhile, I could stand to lose 15 lbs myself. :-)

</comment></comment><comment><USER24> It's been an interesting few years in relation to MTB geometry. Low bottom brackets with slack head angles and steep seat tube angles have really taken off. My last MTB purchase was in 2018 and it's geometry seems pretty conservative to newer bikes.

</comment><comment><USER25> I dont ecen know where to begin. So much of this is alightly incorrect its maddening. As someone who has setup race motorcycles please look elsewhere for correct terms and physics.

</comment><comment><USER26> I love this site - it is very informative.

I wonder if anyone has done something similar for music - i.e. "Musical Geometry terms" ..

<comment><USER27> Are you able to elaborate on what you'd hope for from a "Musical Geometry" site?

I have a side project on the backburner that tries to understand the building blocks of music in order to answer questions like "What could I call this chord?" and "What notes are in the key of C?". Hence my interest!

<comment><USER26> I've seen lots of 'music explained' types of sites, but if someone were to use their mad graphics skills to explain the geometric/arithmetic relationship between various components of music, I'd pay for it. There are sites that show you the mathematical differences in scales and harmonic series - to represent this with visual geometry would be divine.

</comment></comment></comment><comment><USER28> Great explanations!</comment>