Reddit Rumored To Be Raising Money, At A $400 Million Valuation - <AUTHOR> http://techcrunch.com/2013/01/06/reddit-rumored-to-be-raising-money-at-a-400-million-valuation/ <comment><USER2> With all the acquisition write-offs we see, it's pretty awesome to see that this one has worked out so well for Condé Nast. It was such an unconventional acquisition, and now it's worth about half of the New York Times.

Other giants in fading industries should take note.

<comment><USER3>
      > (...) and now it's worth about half of the New York Times.

It's one of those cases where I can't help but think, you know, maybe our metrics are way off.

<comment><USER4> Why is the NYT this wholy grail, that no company ever can aspire to be worth more than?

For me personally Reddit is much more important than the NYT will ever be. If the NYT disappears tomorrow I couldn't care less. There's other publications that will fill its place. Reddit has allowed me to meet great people, have in- depth conversations on topics that no one in my near vicinity cares about and expand my knowledge into fields I never knew possible. It's a great place.

<comment><USER5> NYT is one of the very if, possibly only, newspaper media companies with a worldwide brand recognition to actually have value/goodwill in its own right. That is why it is considered to be worth more than other media companies; it is due to its brand and reputation. Not to say this couldn't or won't change at some point.

<comment><USER6> And now Mark Thompson, who is tied to the Jimmy Savile sex abuse scandal at the BBC, is CEO of NYT.

[http://www.huffingtonpost.com/2012/11/11/mark-thompson- ceo-n...](http://www.huffingtonpost.com/2012/11/11/mark-thompson-ceo-new-york- times_n_2115399.html)

<comment><USER7> I'm sorry, what does that have to do with their value as a _news organization_?

Furthermore, Jill Abramson is a far more relevant figure than Thompson in this context.

</comment></comment></comment></comment></comment></comment><comment><USER8> It's surprising that Instagam would be considered a billion dollar business, but Reddit a 400 million dollar business.

<comment><USER9> Instagram wasn't "worth $1B". It was worth $1B to Facebook (and even more to Twitter, apparently).

It has to be viewed in that context. A context in which Facebook was botching mobile major time and described it as its major challenge in public filings.

<comment><USER7> > Instagram wasn't "worth $1B". It was worth $1B to Facebook

Which, (given a fixed supply of exactly 1 Instgram) means that it was worth $1B.

Whether Facebook _overpaid_ (ie, whether they would have been better off spending part or all of that $1B elsewhere) is a completely separate question - the point is, the market valued Instagram at $1B.

</comment></comment></comment><comment><USER10> It will be interesting to see what they do with the money. I wonder too if they IPO if they will provide moderators a sum of money like Geocities did back in the day.

</comment><comment><USER11> Doesn't reddit have 400M users? Sounds like someone picked "a buck a user" outta the air and, voila, valuation

</comment><comment><USER12> Reddit is a addictive big-time sink. The only way I can get some work done is by blocking reddit.

</comment><comment><USER13> For what? I hate to be that guy, but I have seen a huge increase in "OP is a faggot" style posts being upvoted in the main subreddits (just in the last 4 weeks). I've always championed finding niche subreddits, and I do, but the result has been me spending _increasingly_ little time on reddit. I check /r/rust, /r/golang, etc but that's about all I can stand.

<comment><USER14> When you see drastic and sudden changes in reddit, it's usually something external. In this case the beginning of December marks the end of the semester for college and high school students, who use reddit more during reading period/christmas break. They will soon start school again and things will return to normal.

That kind of behavior has been pretty much the norm for years at reddit. Not to say it's ubiquitous, reddit still has great content and what I'd call 'safe' subreddits where that behavior isn't tolerated. Also, to be clear to those who don't know, 'OP is a faggot' is supposed to be an ironic meme rather than hate speech. A terrible meme, but I wouldn't want people to misunderstand and think reddit has become a cesspool of hate.

<comment><USER15> I hate this sort of joke. It reinforces the behavior for people who don't see it as a joke. And there's a lot of them.

"Oh, it's OK and funny to call people faggots"

I wish regular Redditors would stamp this shit out.

No, I'm not being unnecessarily precious or PC. I used to laugh at distasteful misogynistic jokes (and worse) but somebody pointed out to me that joking about it normalizes it. And to the depraved part of society the joke is missed and they see it as support for their depravity.

<comment><USER16> Too true. And in the same way we forget "simple" tasks like googling a tech support question are actually advanced behaviors, we become blind to the fact that the vast majority of the world isn't ironically playing with our expectations all the time.

And furthermore, irony and the "it's a joke" mentality can be used to justify the continuation of behaviors that don't meet people's own standards. It's easier to repeat a lame justification for thoughtless behavior than to spend months working to break a bad habit.

<comment><USER17> I have been reading hacker news for over 2 years. I started reading reddit last week when I learned about subreddits. The vast majority of my friends (all between 25-32) don't read reddit but are aware that it exists. There is an insane amount of growth that could happen there. I don't know much about their income, but saying "reddit is dead" or other comments because you don't think the quality is as good as it used to be is a stretch when saying the valuation shouldn't be $400m.

Seems to me like reddit could become the dominate messaging system and could be the best possible choice to replace craig's list if they decided to add classifieds.

It has huge growth potential and should not be underestimated so easily.

<comment><USER13> You may need more than a few days on reddit before saying things like "reddit could [../] replace craigslist"

</comment></comment></comment></comment></comment></comment><comment><USER18> In recent years I've really grown to despise Reddit, so I'm going to get a kick out of the angst that Redditors will feel when they gradually realize that their interests and Reddit's interests diverge.

<comment><USER19> To like reddit you have to unsubscribe from all the default subreddits and swera to never read discussions in them. Then find yourself a nice set of smaller subreddits that you like. Either there are alternatives with stricter rules to the default subs or there are more specific subs.

<comment><USER16> There are important flaws to this approach.

Every interest has different levels of content. Pictures range from works of art that took hours to conceptualize, to images of a cat butt with a text overlay.

As a subreddit becomes more popular, the greatest common denominator's interests take precedence. And while you can attempt a solution by splitting the sub community, say, no text overlays, that doesn't work as well everywhere.

For example, a programming community needs to split into subs for languages, and the technical level of the articles. This makes aggregation more difficult, and ruins an information flow that would include a home for overall high quality posters-- now they have a more difficult time determining where to post, and must question whether the articles they submit meet the requirements for technical depth etc.

Even then, the process of dilution begins again as the lesser posters begin to inflate the sub communities.

<comment><USER19> I tend to use the more specific subreddits. For example gamedev and python instead of programming. But I'm there mostly for the community, not for the generic news articles. That is python tools/libraries, gamedev tutorials/experiences.</comment></comment></comment></comment>


Google gets license to test drive autonomous cars on Nevada roads - <AUTHOR> http://arstechnica.com/tech-policy/news/2012/05/google-gets-license-to-test-drive-autonomous-cars-on-nevada-roads.ars <comment><USER3> To me, there are only a few "out there" technologies that have a chance to change everything. 3-D printing is at the top of my list, but that's going to be a while before it really takes off. The others are robotics (also taking a while) and self-driving cars.

If Google can work through not only the technical but the social and legal problems associated with fully auto-drive cars, it could literally change the world overnight. Instead of driving cars being a time sink, it could change into something along the lines of being in a room that goes places. You could sleep, read, play games, or otherwise occupy your time. It would literally give the nation tens of billions of hours in added productivity time. It could make the elderly more independent, eliminate drunk-driving, and a lot more. Very cool stuff.

<comment><USER4> The wide ranging impacts will be huge, as well as the unintended consequences. I actually think the first thing to go will be truck drivers. There are some social obstacles for regular cars, but once automated driving has proven itself it's only a matter of time until the shipping/delivery industry says "wait I can have 24/7 drivers that have less accidents per million miles than the ones that can only do 11 hour days?" Just this one case has crazy implications: 3.5 million jobs lost in a short time span, but you can order from amazon at 6pm and have at it your doorstep before you wake up, all of the trucks can drive at exactly optimal fuel efficiency, all businesses that rely on truckers will likely go under, do you need distribution centers when you have cheap, never sleeping drivers? this will take consume enormous amount of energy... and I'm sure you can think of more just for that one case.

Personally I think the biggest impact this will have is the energy usage one. Currently we stress about our abilities to meet future demands, but we aren't stressed enough to really innovate. Automated driving will definitely change that.

<comment><USER5> Not sure about the truck drivers. I can see the benefits in making all the long-range truck deliveries drive through the night. This could be encouraged by time-of-use road charges for things like interstate highways, for a discount in registration fees or fuel taxes, I guess.

But delivery trucks will still need someone in them to make the deliveries. But what would change is that the delivery person could be doing things in the truck while on the rounds - this could be related or unrelated work.

Generally, if a technology transition releases a lot of productivity, it also drastically lowers cost of whatever is affected (delivered goods, which is everything). This, by rights, should free up a lot of extra money for people, which they can then spend on other things. The other things generally cause more economic activity somewhere else, which should create the new jobs.

But a portion of truck drivers will lose their job, with it never to return.

However, this can't be, nor should it be, stopped.

<comment><USER6> "if a technology transition releases a lot of productivity, it also drastically lowers cost of whatever is affected (delivered goods, which is everything). This, by rights, should free up a lot of extra money for people"

And here is the problem. What actually happens is the people who control "production" end up with most of this extra money.

<comment><USER7> _What actually happens is the people who control "production" end up with most of this extra money._

This is not true. It's actually a pretty well-understood economic phenomena.

When changes to pricing is forced by changes in upstream costs, as with this example, but also as forced by increased taxes/fees, etc., you can predict who will bear the brunt of the cost (or enjoy the windfall) based on the elasticity of the buyer.

For example, we know that the elasticity for gasoline is very inelastic, because consumption only changes a small amount in response to price changes. This means that an increase in taxes on the petroleum industry will be borne mostly by the consumer, and not the producer.

However, for other industries where consumers are more likely to change their spending habits in relation to price changes, it will be the consumers that are on the winning side.

</comment></comment></comment></comment></comment><comment><USER8> I think this is one of those technologies that will go from "science fiction" to "everyone uses one every day" very, very quickly.

Until a few months ago, I had no idea that the technology was as far along as it is; it seems like they've cracked the hard problems already. That means it's a social problem now - and there's reason to believe that the biggest motivator in adoption of automobile technology (and related public policy) is the insurance industry. As soon as these cars are statistically safer than human drivers (and my expectation is that they may _already_ be safer - <USER2> are crap at driving) then there will be strong incentives to get them to the public.

<comment><USER9> I think you're right about insurance companies playing a big role, we've already seen 20% discounts for having Adaptive Cruise Control in Europe. But I don't think this will be a quick change.

First, people take awhile to replace their cars. I don't know the stats for this, but 10-year old vehicles don't seem atypical. The good news is that gives a chance for reducing costs. It was back-of-the-envelope calculation based on parts only, but one article I read estimated 5-10k would be added to Cadillac's self driving car if they introduced it by 2015. [1]

Second, there are still some hard problems to solve. According to Thrun, they don't have a solution for snowy roads that block the car's vision of the lane markers, and Cadillac's vehicle has the same problem. That'll also be a problem in areas of construction where line markers aren't accurately marking the road.

There's also some major regional challenges. In Pittsburgh, per a convention known as the Pittsburgh Left, a driver stopped at a red light will pause after the light turns green to allow the "first driver in the oncoming traffic... to make a left turn." Thrun's team is working on collecting massive amounts of data to overcome niche issues like that, but is that something every car manufacturer will have access to?

I think we can also expect some legal barriers to be a problem. I don't have the best grasp on this, but from a RAND report I read it sounds like state tort law, combined with the complete lack of state or federal laws concerning autonomous cars, could create liability issues for manufacturers. Maybe that would necessitate some lobbying and court battles before manufacturers risk masses of autonomous cars? It's hard for me to tell how important these issues are because the biggest player, Google, isn't focused on the market now.

Ultimately you're clearly right, autonomous cars are definitely the future, but I'm feeling more of a gradual shift as problems are ironed out and the prices of sensors are reduced.

[1][http://www.extremetech.com/extreme/126841-cadillac- promises-...](http://www.extremetech.com/extreme/126841-cadillac-promises- self-driving-cars-by-2015)

<comment><USER10> I think you're making OP's point quite well albeit inadvertently.

Personal ownership of a self-driving car is a ridiculous concept. Why would the car have to wait around in the parking lot all day while you're at work? It could easily keep running around ferrying people places. And yet many people will want to own one simply because they think they should own a car.

I think the real future is a market for renting car time. Prices will be high during peak periods (morning and evening commuters) but cheap during the mid- afternoon.

The lack of a large up-front cost will likely drive adoption faster than many expect, especially given the new resistance to car ownership coming from younger people: [http://www.theatlantic.com/business/archive/2012/03/why- dont...](http://www.theatlantic.com/business/archive/2012/03/why-dont-young- americans-buy-cars/255001/)

I live in a city, as do pretty much all my friends. I walk almost everywhere and occasionally take a taxi when going out in the evenings. On rare occasions a friend with a ZipCar membership will ferry us out of town if we're going somewhere far. None of us actually own a car. We're the target market for the self-driving cars since we've already made the social adjustments.

<comment><USER11> On the flip side, I'm a parent of four who would _jump_ on this as a way to reduce from two to one cars while also reducing the pain of ferrying kids around to school, lessons, practice, recitals, etc.

True self-driving (as opposed to "licensed driver paying attention but not needing to hold the wheel") will be adopted _very_ quickly.

<comment><USER5> You bring up an interesting point. Would you, as a parent, be happy with a driverless car going to collect your child from school/wherever? At what age of the child would you be happy with that?

<comment><USER11> Eventually, yes, but not until they are of an age that they can reliably recognize their own car and are comfortable being alone forthe trip (sevenish, probably, but also depends on how long the trip is), though I can easily imagine some simple tools that would help pair child and car and comfort the child (nothing like watching videos to keep Tommy entertained on a drive).

</comment></comment></comment></comment></comment></comment><comment><USER12> Since a lot of the discussions here are about the benefits of autonomous cars compared to other solutions, I'd like to point out an excellent Quora question on the matter: [http://www.quora.com/Transportation/Why-do-we-want-self- driv...](http://www.quora.com/Transportation/Why-do-we-want-self-driving-cars- rather-than-better-mass-transit)

I am a roboticist who works on autonomous vehicles for mining applications, and I've always thought the two least obvious advantages are that a) autonomous vehicles will increase the utility of a single vehicle to the point that owning multiple vehicles becomes less necessary, and b) autonomous vehicles will increase the utility of road networks such that their existing capacity will be sufficient for far longer than expected under manned vehicle assumptions.

</comment><comment><USER13> As the only adult in my household capable of driving (due to my wife's vision limitations), I'm quite excited by this - and so is my wife.

</comment><comment><USER14> Google should work with Tesla Motors to implement it in one of their models at least. I figure people who are the early adopters for all-electric vehicles might be early adopters for self-driving cars, too.

<comment><USER15> Also, a fleet of self-driving Model S's would make a fantastic taxi service.

</comment></comment><comment><USER16> Police drones that can fly around your city for two days straight, self- driving cars that can crawl neighborhoods to take photos....

I am not sure I am ready or happy about this future. Maybe I am just old.

<comment><USER17> No more drunk driving. Vastly more efficient shared transportation infrastructure. Greater freedom for people too old (or young) to drive themselves safely.

<comment><USER18> That already exists; it's called public transit and every other civilized country in the world figured it out already.

<comment><USER19> Your bus shows up on your doorstep on demand and will go wherever you want it to go? Your taxi will drive you for two hours to see your parents, then wait around for a few more hours to take you all to the beach and only charge you as though you're the car's owner?

<comment><USER20> I've seen it argued that in TCO terms the taxi (well, two taxis in that use case) is cheaper for that.

<comment><USER19> Perhaps, but add to that all of the incidental trips to the store, to visit a friend, to go to the bank and so forth and it probably starts to level out a bit.

</comment></comment></comment></comment></comment></comment><comment><USER21> I saw a Google Self-Driving car on 280 in the Bay Area about a month ago with 2 people in it. I guess they already have the license for California?

As a side note, I (illegally) took a video of it with my iPhone as I passed by it, but when I tried uploading it to Facebook it was denied twice because I used a copyrighted song as the background (Cars by Devo and then an obscure version of Crosstown Traffic by Living Color, which I thought would have passed the algos but I guess not).

<comment><USER22> How is capturing video in a public place illegal?

<comment><USER23> I assumed it was taken while the poster was driving.

</comment></comment></comment><comment><USER24> Why does Google do it?

I can't understand what business purpose it could possibly serve for Google. And if it is just a side R&D project, how come the shareholders do not revolt?

<comment><USER25> Off the top of my head, they're probably the most widely known brand in both consumer maps and local search. While "not-driving" people will often be online, and I imagine often searching for places to go.

Also, there's the "Bell Labs" of it. How do you know what you can do unless you push boundaries into new places, which necessitate new ideas?

The idea that companies should stick to what they know and that shareholders should expect nothing else of them, is to me akin to the idea companies should be expected to fight progression/expansion for fear of losing the market they have.

Look at the RIAA. Imagine if they had more than a legal arm, but a research group. What if they had been looking into audio compression and transfer? They may have founded the first successful online music store, and before Napster. The industry could have its own iTunes, instead now they try to herd snakes back into a pen that can't contain them, with lawsuits. That, to me, is irresponsibility.

In pushing for new fields, Google pushes for new markets. And in being the popular party doing so, they're seen as "first" in many people's eyes.

</comment></comment><comment><USER26> The license plate thing is interesting. Why is it necessary to explicitly distinguish it as an autonomous vehicle?

<comment><USER27> So people know to be wary.

Not everyone has as much faith in these things as the HN crowd.

<comment><USER28> It's all in the black box. After an autonomous vehicle crash, all of the decision making state will be available so no autonomous car makes the same mistake ever again. Unlike teenagers, which can merely be encouraged to drive appropriately.

<comment><USER29> Even better - not only will the code/telemetry equipment that made that mistake be replaced, ideally the design/implementation procedures that resulted in that mistake in the first place will be reviewed. Given how frequently it will be used, I'd hope to see the same level of methodology we see with Space Control Software. See: <http://www.fastcompany.com/magazine/06/writestuff.html> for a nice article on this sort of software. I like the following comment: "Bill Pate, who's worked on the space flight software over the last 22 years, says the group understands the stakes: "If the software isn't perfect, some of the people we go to meetings with might die."

</comment></comment></comment></comment><comment><USER30> Orthogonal to this trend, is a probable reduction in how much we actually travel every day. Would it make sense if a kid was dropped to a very nearby school, where learning happens by interacting with teachers in close proximity as well other teachers on another continent(not just cheaper ones). It may even be a micro school where just 25 students from the neighborhood attend and have a weekly meetup on a large campus. As technology improves, that actual benefit of being at particular spot diminishes. Of course some professions like nursing/sales may need direct presence every day. For many others occasional meetups would more than suffice. Would we not drive a lot lesser if technology allows us a lot more seamless communication?

</comment><comment><USER31> It's good that Nevada is facilitating this, I'm expecting that industry lobby groups that will be affected by this (truck drivers, taxis, car companies without this technology, insurance companies perhaps) will throw everything they have at shutting this down so it's good to see that at least local governments are open to the idea. It means that it stays in the USA rather than Google launching it in a country more open to the idea.

<comment><USER23> What I love about Nevada doing it is the tie-in with tourism. If it becomes a staple of that city, you expose people from all over the country to it in relatively short order.

</comment></comment><comment><USER32> The google car is great, but I wonder when will they be able to drive with the visible spectrum only, like humans do. No radar, laser range finder, GPS, or pre-mapping the roads. Just the view through the windshield on an unknown road, we can all do that. I would say keep all the other devices if they improve safety, but to really be a human-level driver I think you need to be able to do without them in a pinch.

</comment><comment><USER33> I'm surprised no-one talks about the psychological and social implications of (serious or lethal) accidents caused by autonomous cars. However rare, I think these will set back their adoption by years because people will be too scared to sit in a machine that makes decisions on its own. Decisions that, when wrong, can kill them and they can do nothing about it.

</comment><comment><USER34> This reminds me, even though the technology isn't as cool as Google's cars, of the Phileas Bus in The Netherlands, which also drives by itself, which I sit in daily - see: <http://en.wikipedia.org/wiki/Phileas_(public_transport)>

</comment><comment><USER35> Man I can't wait for this to become mature enough that cars can drive themselves without anyone "behind the wheel". I've never learnt to drive, and I would get a Zipcar membership the DAY that happened.

</comment><comment><USER34> I already imagine a scene where the 2 people, that are suppose to sit in the car, are having a coffee break, and the car starts driving off without them :)

</comment><comment><USER36> I like this... but I like driving too :(

<comment><USER37> No one is saying you can't drive, yet. Presuming that computers eventually are better than people at driving, can we as a society continue to allow humans to self-control death machines in close proximity to each other?

<comment><USER38> We should also ban knives too and let robots do all the cooking.

Also, the presumption that computers can get better at driving is wishful thinking. Good enough definitely, more efficient probably, but better? I don't think so.

From a technical perspective, the human brain is the best pattern matching processor in existence and when driving it's the edge cases that cause accidents ... a deer or child stepping in front of your car, bad weather conditions leading to muddy roads or glazed frost, potholes, traffic congestions, human-powered vehicles (like bikes) and the list goes on, with the number of variables and possible outcomes possible being really big.

And for instance a processor can't know your safety priorities. Say a child steps in front of your speeding car, would your risk pulling the wheel and going off-road to avoid the hit? I would. But what if your own son is in the backseat? Then I would hit the breaks and hope for the best. But what if you're going 90 miles on the highway and a cat steps in front of your car? Personally, I wouldn't even hit the breaks, even though I love cats, because sudden breaking on the highway is very dangerous.

</comment></comment></comment><comment><USER39> OT: What is Ars doing on this page that breaks the Back button?

<comment><USER25> Working fine for me on Chrome?

</comment></comment><comment><USER40> One negative about the self-driving car approach which is inherent to the approach is that most of the hard problems it has to solve come about from the fact that the driving environment is so chaotic, open and uncontrolled. Weather. Pedestrians. Jaywalkers. Animals. Kids. Shopping carts. Bad objects on the road. Other vehicles, many of which are human-driven. Or perhaps automated as well, but malfunctioning.

The obvious alternative approach is to create a transport system where the environment is more uniform, controlled, closed, stable. For example, a system of underground tunnels or above-ground tubes. With some kind of train or individual cabins that can move within it. Like subways but more advanced, efficient and end-to-end. Imagine a single common inter-locked system that everyone could use to do both their local daily commutes, and long distance travel, and round trips to orbital stations (via rides in carrier ships like Virgin Galactic is planning, or something like a space elevator.) There is one particular project like this that I've heard of, that has these qualities, called Evacuated Tube Transport. I like the idea of it. It sounds elegant and efficient and scalable. But has some challenges of its own. (Last mile access, industry pushback, safety/failsafe in the face of emergency situations, etc.) There's a specific company called ET3 which is supposedly trying to flesh out and build an implementation of it.

</comment><comment><USER40> this plus the recent Planetary Resources launch, plus the upcoming SpaceX rendezvous with the ISS are all pretty exciting milestones. some folks out there are pushing the human race forward. not just making trivial fadish photo sharing websites, etc.

<comment><USER41> In defense of the people making photo sharing websites, they are doing leaps and bounds more than the vast majority of the population.</comment></comment>


Lisp for the Web - Tutorial - <AUTHOR> http://www.adampetersen.se/articles/lispweb.htm <comment><USER2> article is from 2008.

I do web development professionally in Rails and am doing a side project in Haskell. I would have been done in a fraction of the time in Rails, but I wouldn't have become a better programmer. Unfortunately it doesn't matter that much how great your language is and even if it has some of the basics of web development down well. At the end of the day it is really about how much existing code can be quickly reused.

<comment><USER3> _At the end of the day it is really about how much existing code can be quickly reused._

I used to think this was true, and then after I became a bit experienced with web development, I realized that the bulk of code (JavaScript, in particular) released for public use ("reusable") is garbage. Complete, utter garbage. Poor APIs, terrible abstractions, namespace contamination, a lot of assumptions that those packages are the only ones in use.

Yes, you can slap something together quickly with the bits of turds available online, but when it comes to customization and fine-tuning, you will either spend a lot of time undoing half of what some other developer did with their package or writing one of your own. For writing my own widgets, tools, and frameworks, I want a great language. And when I build tools with a great language AND with a good language design approach (it takes both), I have things I can reuse.

More available reusable code is not an advantage. I am coming to think that the more accessible a language is for just anyone to use, we get lesser quality shared code.

There are gems, for sure -- I will happily name jQuery as an excellent, extensible framework. A lot of the community's jQuery plugins, on the other hand...

<comment><USER4> I agree, better tools are often very quick to write. I'll plug what I think is a lovely piece of code now ;) Here is a tiny toy Ruby framework inspired by Arc <https://github.com/julesjacobs/Raamwerk> (29 loc, if you don't count blank and end lines). In the examples you can see that even though the framework is a toy you can write interesting applications much more concisely and logically than with e.g. Rails. For example a page that displays a counter, and a link to increase the counter and a link to decrease the counter:

        def counter(i)
          puts "the counter is #{i}"
          link("increase") { counter(i+1) }
          link("decrease") { counter(i-1) }
        end

The quality of the code you're reusing is much more important than the quantity.

Edit. Another example: a stack based calculator.

        def calc(stack)
          tag(:p){ puts stack }
          %w{+ - * /}.each do |op|
            link(op){ calc([stack[0].send(op, stack[1])] + stack[2..-1]) }
          end
          10.times{|n| link(n){ calc([n] + stack) } }
        end

Video demonstration: <http://dl.dropbox.com/u/388822/calculator.avi>

</comment></comment></comment><comment><USER5> It's interesting, though quite old (I think Hunchentoot's API changed since the article was published).

</comment><comment><USER6> This actually does a really good job of explaining to me why clisp macros are important. Something that I haven't really been able to absorb from any of the other tutorials I've read. Thanks.

</comment><comment><USER7> The interesting thing seems to be that he is achieving framework-like productivity by using mere libraries. That shows some power.</comment>


Nasa engineers hope music will help Opportunity rover wake up - <AUTHOR> https://www.newscentermaine.com/article/news/nation-now/nasas-opportunity-rover-has-been-in-sleep-mode-for-weeks-engineers-hope-music-will-help-wake-it-up/465-2e23ecb7-8e1b-457b-b0f0-9c07a080ba3f <comment><AUTHOR> Title edited to fit.</comment>


Ask HN: What are examples of beautiful APIs? - <AUTHOR> <comment><USER2> If you're talking about the basic _Application Programming Interface_ , then I would say anything that implements the API using chaining or the [1] Fluent Interface. Examples include: LINQ, MongoDB and DOM access in HTML and JS.

        createOrder()
          .addItem('Apple')
          .addItem('Orange')
          .addItems('Tomatoe', 4)
          .setHighPriority()
          .sendEmail()

To me it's a beautiful way to _compose complex intention_ from a chaining a bunch of simple commands... like unix pipes... this should be the goal of all API's...

[1] [https://martinfowler.com/bliki/FluentInterface.html](https://martinfowler.com/bliki/FluentInterface.html)

</comment><comment><USER3> Keras (a python deep learning library) provides APIs that I find quite elegant:

      from keras.layers import Input, Dense
      from keras.models import Model

      # This returns a tensor
      inputs = Input(shape=(784,))

      # a layer instance is callable on a tensor, and returns a tensor
      x = Dense(64, activation='relu')(inputs)
      x = Dense(64, activation='relu')(x)
      predictions = Dense(10, activation='softmax')(x)

      # This creates a model that includes
      # the Input layer and three Dense layers
      model = Model(inputs=inputs, outputs=predictions)
      model.compile(optimizer='rmsprop',
                    loss='categorical_crossentropy',
                    metrics=['accuracy'])
      model.fit(data, labels)  # starts training

<comment><USER4> Until you try to do something non-standard but still super common (i.e. Sequence-to-Sequence models). Then it becomes a mess.

</comment></comment><comment><USER5> I think this question may be underspecified. Do you mean web APIs, like their URL structures and request and response objects? Or more like library APIs? I'd have different standards of beauty for them.

One that has always impressed me is the Clang AST matchers API, which allows you to declaratively define a search pattern. You can easily bind a name to any sub-pattern to access this part of the match easily.

[https://clang.llvm.org/docs/LibASTMatchersReference.html](https://clang.llvm.org/docs/LibASTMatchersReference.html)</comment>


Reading and Myopia: Contrast Polarity Matters - <AUTHOR> https://www.nature.com/articles/s41598-018-28904-x <comment><USER2> > _Therefore, reading white text from a black screen or tablet may be a way to > inhibit myopia, while conventional black text on white background may > stimulate myopia._

There you go, supporting all requests for a dark mode everywhere, including HN.</comment>


Things That Turbo Pascal is Smaller Than (2011) - <AUTHOR> http://prog21.dadgum.com/116.html?0 <comment><USER2> And it was learnable. I mean, you could learn every detail of the language with a reasonable effort. Just read through the manuals, which are extremely well written. Not many modern languages you can say that about.

<comment><USER3> There was a conversation in a ruby channel about this recently.

I mentioned that if 15 years ago you had suggested that in 2012 you would need HTML, CSS (and probably LESS), JS (and probably JQuery + CoffeeScript + Backbone), SQL or Mongo and Ruby or PHP or similar just to do a simple form application - we would have laughed.

I got shot down - "it's a web application now, so not comparable".

But I really think it is comparable. The number of technologies you need to know reasonably well to do a basic business function online is nuts.

To make it worse the number of flavours of languages or components involved and the requirement to hire vertical developers (specialising in one language) rather than developers who could understand the full domain means that business web apps are becoming unmaintainable more quickly.

These tools and languages in the hands of startup teams with above average commitment/experience/knowledge are fantastic, but for general business use they are big step backwards.

I've noticed several sites recently that are including more than one version of JQuery (and a copy of Prototype) on the same page - which is a symptom of this to me.

Don't get me started that I could press F9(?) 15 years ago and Turbo Pascal would build in 2 secs on a 386. Takes irb that long to start on this 8 core.

<comment><USER4> I don't know if this is really a fair comparison. You can do simple forms in plain HTML if you want to, after all. No CSS required, no Ruby or PHP, no scripting, no nothing.

If you want to _persist_ the form submissions you need to have some logic (which brings in a programming language) and a database (which brings in SQL, or maybe structured text files), but that's just as true in a single-user or client-server application as it is in a Web application. The only differences are that the fifteen-years-ago application probably used a language like Visual Basic rather than PHP or Ruby, and a simple embedded database engine like Jet (<http://en.wikipedia.org/wiki/Microsoft_Jet_Database_Engine>) rather than a standalone database server. But the basic concept of a form-based application hasn't changed much, and the scope of knowledge you need to build one hasn't changed much either.

 _I've noticed several sites recently that are including more than one version of JQuery (and a copy of Prototype) on the same page - which is a symptom of this to me._

This is more of a symptom of idiots having access to programming tools. Idiots haven't changed much in the last fifteen years either. There were plenty of line-of-business apps written in (say) VB whose code would make you scream "Burn it! Burn it with fire!"

<comment><USER5> offtopic, but because I disagree with the HN policy of not informing people when they've been banned I'm posting this.

iRobot, your account has been banned for over 100 days. Unless someone turns on the "show dead" switch in their profile, they can't see what you post.

</comment></comment></comment></comment><comment><USER6> I was thrown at turbo Pascal at university. Horrible language to be honest as it was utterly painful to produce any reasonable data structures in it. The verbosity usually broke the memory constraints of the machine just before you finished what you were doing meaning hours of search and replace on identifiers to shorten them to clean up ram for the editor. Ick.

It made me actually long to get back to a m68k based sun 3 with a c compiler which took literally 2 minutes to compile hello world if some asshat wasn't running emacs on the same box which was swapping to disk 100% of the time...

However what they managed to cram in was impressive.

<comment><USER7> Hmm, I don't have that experience; TP worked well for me and I created quite substantial commercial projects which made me a 'wealthy' student in university. Especially when they introduced overlays we were able to use all those kilobytes :) I have good experiences with it and I still have all the sources of the software I wrote then (a lot of it is still sold and a lot I ported to Delphi after that and is still sold). Do you have concrete examples of what you are referring to? I used structures, but never too complex as I came from assembler (Z80/68k) and didn't (and don't) really see the use of very complex structures. Reasonable worked fine.

<comment><USER8> That Sun workstation probably had multiple megabytes of RAM and cost 4x more than a fully loaded PC. The 68k had a flat 32-bit address space and even virtual memory.

TP was heroic for what it could do in the 16-bit segemented x86 architecture in well under 640k of RAM. It was the first high level language implementation that made "real" developers consider using something other than hand-coded asm.

<comment><USER6> 12mb :) It cost more but the time to market was much lower and it was multi user so I think the trade off on cost was quite good.

</comment></comment></comment></comment><comment><USER9> The comparisons the article makes are not apples-to-apples. The authors start with a binary file, and compare it to uncompressed text files. For example, zlib.h on Mountain Lion is 80511 bytes, but only 22031 bytes when gzip compressed (around half the size of Turbo Pascal).

The article's tone implies that these were the 'good old days' when compilers were small and fast. However, priorities have rightly changed. We now have computers that can execute billions of operations per second without breaking a sweat, I/O devices which can perform tens of thousands of IOPS, and laptop GPUs that can push 3D content to a 5.1 million pixel display. It's likely that Turbo Pascal was highly optimized to deal with the constraint's of that day's computers. A lot of developer man hours were almost certainly allocated to shaving off extra bytes from the executable. It's usually not worth devoting such man hours to tiny performance improvements, considering the beefy hardware most people have.

<comment><USER10> > The article's tone implies that these were the 'good old days' when > compilers were small and fast.

That's reading a lot into two short paragraphs. Tone doesn't come across well in text, and the shorter the text is, the harder it is to figure out tone.

I don't hear nostalgia for the 'good old days' in the article, what I hear is, "Wow! What a feat of engineering to fit an IDE and compiler into 40k!" We get the same kick out of watching demo competitions. Have you seen the "Elevated" demo? Including the music, sound effects, textures, everything, it's only 4k...

<http://www.youtube.com/watch?v=_YWMGuh15nE>

</comment></comment><comment><USER11> I was a big fan of Turbo Pascal. It was a great learning language, and had a robust library that was really fun for beginners to tinker with! I'd almost call it the Python of its time.

</comment><comment><USER12> "The entire Turbo Pascal 3.02 executable--the compiler and IDE--was 39,731 bytes."

Many _icons_ are bigger than that these days (and with Retina displays, will continue to grow).

<comment><USER10> OS X 10.0.4 was released in 2001 and had 128x128 pixel icons in 24-bit color with 8-bit alpha, at 66k each. It was not typical to compress them.

</comment></comment><comment><USER13> And it's still available for download:

<https://downloads.embarcadero.com/free/turbopascal>

</comment><comment><USER14> Previous discussion: <http://news.ycombinator.com/item?id=3175629>

</comment><comment><USER15> That's a great article! I learned to really program on Turbo Pascal, and if I remember correctly, the small executable made it easier to store programs on the "program disk". Though by the time I built my own computer, it had dual floppies so it wasn't as big of a deal.

</comment><comment><USER16> I used Turbo Pascal and other environments even smaller environments (anyone remember Action! (editor + compiler in 16k and ran on a 48k machine, <http://en.wikipedia.org/wiki/Action!_(programming_language)>)

That said:

* the machine I ran Turbo Pascal on had a 115meg hard drive which was large compared to my co-workers 80meg drives.

* Turbo Pascal could not edit or display Chinese, Japanese, Korean.

* The editor could not search and replace across files with undo like my current editor. Nor do I think it could do a regex IIRC.

* It could not tag 40k+ files and bring up help on any function in near realtime.

* It could not refactor code.

* The machine ran in 80x50 characters. No windows. I could not view both reference material and my code at the some time on the machine, I needed a book. If I didn't have the book I needed I had to either go to a library or find a tech bookstore. (I only new of 3 in all of both Northern and Southern Califorina).

* The machine I ran it on had no networking.

* I had to manually edit config.sys, autoexec.bat and move DIP switches when ever any new devices were added. There was no USB only serial and parallel.

* When my program crashes I often had to reboot the machine.

* There were no fonts, everything was text.

* There were no images except a few icons in my apps. No way to easily display a company logo or screenshots in docs.

* There were few if any libraries. If I needed to read an image or parse a file I had to write it from scratch. If I needed to draw some graphics I had to poke registers. If I wanted to play audio I had to do device specific stuff.

I'm sure we could go on listing all the things those machines did not do nor did Turbo Pascal do compared to today's environments with their large libraries and access to all the stuff we've built up today.

Sure I miss the time when I could basically own the entire machine but I'm happy that today I can just plug in a USB stick or a digital camera and they just work. That I can participate internationally in multiple languages. That 1-20meg images are trivial to manipulate and display. That mp3s, wavs, and other audio is ubiquitous, etc....

Those simple days were fun but a little reflection will show that today's supposed complexity has made it easy to take a lot of things for granted. In the Turbo pascal days. If you wanted to display a photo it would take hundreds or thousands of lines of code, especially if you wanted it to work for more that just your machine. Today it's step 1: copy file from camera, step 2 <img src="path/to/file.jpg" />

I'm not going back.

<comment><USER17> Although I used it in the early nineties, I had a much different experience than you mention. TP had Turbo Vision, a very usable windowing library. You could open code in one window and help in another ... hotkeys opened up the help on the current word etc.

I also dialed into BBSs and downloaded .gifs of elle macpherson, so plenty to do. All on a 386/40. I moved up to a 486/40 at some point.

p.s. You can't go back.

</comment></comment><comment><USER18> And it had an editor too! Turbo Pascal was what I cut my teeth on and to this day I have fond memories of how productive I was in it.

</comment><comment><USER19> Thats pretty awesome! I have written my first program in Turbo Pascal :)

<comment><USER20> My first program was in QBasic, but I actually learned _how to write code_ in turbo pascal. :)

...and delphi. and c#. and java. and perl. and scala. But well, you know what I mean.

(and I learned how _not_ to write code in C++ and PHP.)

</comment></comment><comment><USER21> The stock V6 UNIX kernel is 28,684 bytes, and /bin/sh is 5888.

</comment><comment><USER22> There should be a followup, "Things That Turbo Pascal is Faster Than". Sure to be included are "loading the wikipedia C++ page" and "loading the photo of the iPhone 5 on apple.com".

</comment><comment><USER23> I was really impressed by this, until it occurred to me that the _source_ code for the C64 Forth compiler I used back in the day was probably considerably smaller than 39K. :)

<comment><USER24> 39K worth of Forth is a very large program. Most forth code never grows beyond a couple of screens. That doesn't mean there isn't a lot of functionality, it just means that forth is unusually dense.

</comment></comment><comment><USER17> 39k for the executable? or with libraries?

They had some in those days, they were called "overlays" although that might have been in the 90's and dos protected mode, etc. I'm sure the help, etc were in separate files.

</comment><comment><USER8> Google's home page <https://www.google.com/>

HTML+images is about 42k in my browser.

</comment><comment><USER25> It would be very nice if this was presented in an appropriate graphical format for easier comparison.</comment>


Spotify reaches 50M paying users - <AUTHOR> https://techcrunch.com/2017/03/02/spotify-50-million/ <comment><USER2> [http://www.digitalmusicnews.com/2017/02/02/spotify- bankrupt-...](http://www.digitalmusicnews.com/2017/02/02/spotify-bankrupt- ipo/) \-- those loans are scary

<comment><AUTHOR> > those loans are scary Yeah, they had better IPO soon.

I don't know for sure why they went with such onerous terms but I think that they thought they were growing fast enough and would IPO this year. It turns out that that won't be the case [0], since they still have some deals to make with record labels and others. They have Apple on their heels. I like Spotify a lot but I don't think there prospects are good.

[0] [https://techcrunch.com/2017/02/02/sources-spotify-may- delay-...](https://techcrunch.com/2017/02/02/sources-spotify-may-delay-ipo- to-2018-as-it-rethinks-licensing-deals/)

</comment></comment><comment><USER3> Any adblock + Spotify Web = Everything is awesome!

<comment><USER4> They blocked that with play.spotify.com revision. Redirects now to open.spotify.com and ublock origin doesn't block the ads anymore. Might be a beta pushed to some users.

<comment><USER3> Still works fine for me

</comment></comment></comment><comment><USER5> Best music streaming service out there.</comment>


Ask YC: Outsourced sysadmin? - <AUTHOR>

Hi there<p>We're a small team and whilst we know a little about the server-side of things we're struggling a bit to look after our servers.  We want to concentrate on building our apps and not managing the servers all the time so wondering if anyone has suggestions for outsourcing our server management?  We've had some issues with load past few days and our own knowledge was exhausted. We installed nginx instead of Apache, added a caching app but we're sure a good sysadmin would have pinpointed our problems sooner and suggested ways to improve things quicker.  We don't have the funds to employ someone full-time, so any suggestions here would be appreciated. <comment><USER2> Something needs to be said: You will need to give the sysadmin the ability to suggest changes to your app's architecture. That's where real scalability and availability start.

All I'm saying is that sysadmin for apps is not just installing the right kind of software.

</comment><comment><USER3> Have you considered partnering with someone who does managed hosting? It's not unheard of for startups to get a contra deal.

</comment><comment><USER4> Google "managed server" and you might what you need. Probably cost you between $250 and $600 a month depending on what you want (which is wayyyyy cheaper than an in-house sysadmin).</comment>


Ask HN: online Work a winner takes it all market? Elance vs. odesk - <AUTHOR>

Hello hacker news community,
I am a frequent user of marketplaces like Elance and odesk where I offer my services as a .NET developer. I thought a lot about the nature of hat market and how many platforms  we will have as the markets matures over the next 5 years. The main questions I would like to answer is if that market is a winner takes it all market and what are its characteristics.
For example Facebook is a winner in my opinion. It might get replaced but I do no see multiple social networks co-exist due to strong network effects and switching costs.
For online work and the current platforms available it is not so clear for me. I do not see a big advantage for a developer like me if I signed up with a platform having 15000 or 100000 projects. For a contractor it's kinda the same. A platform with 15000 or 100000 developers does not concern me. I do not see a strong network effect. Switching costs aren't so high as well.
I would expect to have maybe 4-5 big players worldwide. I don't see multiple platforms like over 50+ neither. It would be too hard to maintain for human in my point of view.
However, I have observed something interesting in the data Elance and odesk disclose for the market in USA and Canada. The past two years odesk seems to show a monthly growth rate which is way higher than the growth of Elance if you look at number of projects and number of service providers. I am not sure if odesk managed to steal a market share from Elance since both compani are growing. Anyway, if I look at the exponential growth (oconomy at odesk) it feels like that the reason for that growth can't be only operational excellence which brings me back to market effects/ dynamic.
If you have any more insights I would love to discuss with you because I am personally interested in topic. I think in the future online work will play a big role how humans work.
To sum up, will there be one player one In that market which takes it all?
Is it just a money game? By money game I mean the player with the most funds will win?
A the end I want to apologize for my English. I am not a native speaker which stopped me from posting earlier, but I still hope m points are clear and we will have a good discussion. I am happy to answer any questions. <comment><USER2> One of the problems I heard is that people are concerned about what work actually gets done at outsourcing sites.

Odesk's monitoring enables customers to know that work is actually being completed in a distributed environment, while elance doesn't do that.

If that is the case, then it explains ODesk's growth.

<comment><AUTHOR> This is true but elance offers a monitoring software as well. Both companies show a steady growth but odesk is way more successful in the last two years. On top of that elance started the market entry in European countries. However odesk seems to grow twice as fast as elance.

Is the outsourcing market in USA and Canada still growing that fast? Seems that odesk is stealing from elance AND is drawing from network effects or a different market effect which could be a indicator that it is a winner takes it all market</comment></comment>


DDoS Simulation – Cyber war games available in the UK - <AUTHOR> http://blog.mazebolt.com/?p=201

<comment><AUTHOR> It is equally as important to test your DDoS mitigation system as it is to have one!</comment>


YouTube Outage - <AUTHOR> youtube down in France/Europe? <comment><USER2> Edit: it seems to be working now.

Trying to watch a video gives me a blank page plus the video player which either plays the video or says that the video is unavailable. Comments, Recommendations, and Related videos are all gone for me. Embeds seem to work, although I haven't tested them too much.

I looked around and can't find an official status page unless it is nested under one of the Google Cloud Services[1] or G Suite[2]. Down detector is reporting it though[3].

[1]: [https://status.cloud.google.com/](https://status.cloud.google.com/)

[2]: [https://www.google.com/appsstatus](https://www.google.com/appsstatus)

[3]: [https://downdetector.com/status/youtube/](https://downdetector.com/status/youtube/)

<comment><USER3> Google only has status pages for services with an SLA iirc.

</comment></comment><comment><USER4> Video works but comments and subscriptions are 400 edit: in Croatia

</comment><comment><USER5> Starting videos from a page of search results that I already loaded still worked, but metadata (video info, counts, comments) didnt load; server error 400.

-edit: It's back now-

-edit: I'm in Europe/NL-

</comment><comment><USER6> It's down, I'm from Indonesia

</comment><comment><USER7> Down for me in Berkeley, California.

</comment><comment><USER8> Nothing works in India too

</comment><comment><USER9> Works fine in Seattle WA

</comment><comment><USER10> australia wasn't working up until a minute ago

</comment><comment><USER11> from eastern europe, nothing works.

<comment><USER12> global

</comment></comment><comment><USER13> im in canada and it just went down

</comment><comment><USER14> Back up now.

</comment><comment><USER15> even youtube music was down.</comment>


Barnacle gosling's terrifying cliff tumble - <AUTHOR> http://www.bbc.com/earth/story/20141020-chicks-tumble-of-terror-filmed

<comment><USER2> Sort of like a strange start-up analogy in there...</comment>


Eye tracking in video games - <AUTHOR> https://www.theverge.com/2017/5/7/15561224/soma-tobii-eye-tracking-support-hands-on <comment><USER2> For everyone who hasn't played SOMA, give it a try if you like video games and/or philosphy (related to self discovery).

The game itself has great mechanics, environment and audio. But the story is what makes me like the game more than anything. It makes you think.

<comment><USER3> I 2nd this. Loved the game. Played it just a couple months ago for the first time. It's not as scary as the developer's other game, Amnesia: The Dark Descent, but I actually liked SOMA's story more.

<comment><USER4> I think the game is significantly misunderstood (although fortunately, still appreciated) - IMHO, the developers wanted to make an unsettling game, rather than a scary one, so the typical comparison with Amnesia, which is a pure horror, is somewhat misplaced.

<comment><USER5> I actually really recommend playing it with the mod that makes almost all monsters non-aggressive.

It's great for players who are not into horror games, and I would argue that it makes the game even more unsettling once you realize what the monsters are.

</comment></comment></comment></comment><comment><USER6> Although I don't see eye tracking in games as 'the next big thing' in any sense (the few I've tried were severely lacking in the fun department), I would be interested to try playing Soma with this.

Soma had some flaws to be sure, but damn did it do some things really well. I'd highly recommend it - eye tracking or no.

<comment><USER7> One great application I can think of is depth of field adjustment. Some games have depth of field simulation, which makes far away scenery blurry. Personally I always disable it because I think it belongs to the uncanny valley: it's nice on screenshots, but it doesn't work so well in-game because the focus doesn't change with where/what you're looking at. Eye tracking, by making this feature dynamic, would I think enhance 3D rendering for relatively cheap.

<comment><USER8> Good use of eye tracking could also allow for foveated rendering, drawing the out-of-focus areas with lower resolution and leaving more time to render the areas of interest.

</comment></comment></comment><comment><USER9> Now we just need cheaper dual eye tracking setups and support for lower quality sections in your screen (just lower quality where you're not looking).

Open source community to the rescue!

<comment><USER10> What you're talking about is called foveated rendering and it's already used today in VR to reduce the rendering workload around the edges.

<comment><USER11> I'm not sure I'd quite class it as in use yet, when none of the major commercially available VR headsets use it.

It's certainly being actively researched though and seems likely to be part of a future generation of VR headsets.

<comment><USER10> Eye tracking will require new headsets or new accessories but basic foveated rendering which just goes to the center could be done on today's VR hardware.

</comment></comment></comment></comment><comment><USER12> No mention of GT5? It tells how impressive is this feature when few people remember a game that shipped 10+M units with it, does not it? I figure it could be much more useful in AR applications than in games but, even there, it's a long shot (remember Amazon Fire Phone?).

<comment><USER13> You're thinking of head tracking. Eye tracking is very different and neither GT5 nor the Fire Phone had it.

<comment><USER12> Fire Phone definitely had it (see [https://www.wired.com/2014/06/amazon-fire- phone/](https://www.wired.com/2014/06/amazon-fire-phone/) for example), GT5 called the feature "Head Tracking" but, since it is played on a fixed display it was essentially tracking the direction of gaze in that setup, from the POV of gameplay I don't see much difference between that and true eye tracking.

<comment><USER14> _since it is played on a fixed display it was essentially tracking the direction of gaze in that setup, from the POV of gameplay I don 't see much difference between that and true eye tracking._

Absolutely not. Head and eye movements might complement each other, but they are completely different in execution. And you _can 't_ reliably track gaze from head movements alone.

Focusing on distinct objects by looking at them, for example, is something you can only do with eye tracking (except for the most extremely coarse cases where there's only one object in the general direction of the head).

BTW: Head tracking in games is nothing new, TrackIR e.g. has been around and a staple in sim racers for ~15 years now.

<comment><USER12> In GT5, when you looked in the door mirror, the camera view shifted there. How could that be different with eye tracking?

<comment><USER14> _(except for the most extremely coarse cases where there 's only one object in the general direction of the head)_

<comment><USER12> Am I being too audacious when I interpret your quoting a part of your own previous message as your implying that: a) I did not read your previous message or did not understand it. b) The answer to my question is, indeed, positive as there is no difference but you don't want to admit that?

Thanks in advance for a reply not consisting of quotes of your previous messages.

<comment><USER14> You are correct: I'm implying a), because the GT5 mirror look is exactly such an example.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> I don't think eye tracking will have much use for gameplay. It will have much use for ads though, "your eyes have moved away from the banner for more than 500 milliseconds, please try again, and remember, no looking away for 20 seconds"

<comment><USER16> Very Black Mirror-esque.

</comment></comment><comment><USER17> All the best video games were published before 1990.

<comment><USER18> Citation needed.

This is clearly subjective. There are many aspects of games and many games implementing these aspects. Some pre-1990 games excel at some of them and some newer games excel at others. Apples and oranges. For example, as a medium for interactive storytelling, in my own opinion, only very recently have games managed it in a way that I found more engaging than non-interactive mediums in terms of storytelling impact. Part of this, for me, is that decisions actually impact the gameplay and continuing story and things like lifelike facial animation. When engaging visuals are combined with rock solid storytelling, you've got a great movie, but when you add solid interactivity and gameplay, it really becomes something else. This just wasn't possible pre-1990.

You're obviously talking about the simple "small number of mechanics" pure gameplay games (the tetrises, bombermans, pacmans, space invaders etc), sure, there are some great and long-lasting games, but there are plenty of amazing modern games too in terms of gameplay (eg Rocket league).

<comment><USER17> No citation needed, it's the truth. But of course it's subjective, just like any opinion, which is why asking for a citation is simply absurd. That's like asking for a citation when someone says "I like ham sandwiches".

<comment><USER18> It's not the truth, it's your opinion. You said so yourself, after all.</comment></comment></comment></comment>


Nitter: Alternative Twitter Front-End - <AUTHOR> https://github.com/zedeus/nitter <comment><USER2> Where does the authorization token come from? I notice it appears in quite a few projects on e.g. GitHub.

[https://github.com/zedeus/nitter/blob/8836cf51e8a6b385e1ac0a...](https://github.com/zedeus/nitter/blob/8836cf51e8a6b385e1ac0ace651d330b74a1b2d1/src/api/consts.nim#L5)

The project is cool. The de-crapified interface is nice (no weird JavaScript loading, no nags to login, t.co). But that also makes me think that the hosted version (nitter.net) is pretty doomed, since it directly undermines Twitter commercially.

<comment><USER3> IIRC it was leaked from some older version of the app, and they haven't/won't revoke it.

<comment><USER4> now THIS is something I'd love to see a HN or blog post about...

edit: A google search brings me to this. [https://www.blackhatworld.com/seo/my-bot-has-stopped- working...](https://www.blackhatworld.com/seo/my-bot-has-stopped-working-how- to-handle-new-x-twitter-auth-type-authorization.948228/#post-10144819)

Seems it is from twimg, which I believe is the image host used for tweets with images attached? I wonder why they can't revoke this.

And interestingly, the js file linked in that forum post is still alive... [https://abs.twimg.com/k/en/init.en.37d4e85afd8ede9741dd.js](https://abs.twimg.com/k/en/init.en.37d4e85afd8ede9741dd.js)

<comment><USER5> [https://gist.github.com/shobotch/5160017](https://gist.github.com/shobotch/5160017)

</comment></comment></comment></comment><comment><USER6> There's this lovely browser extension, Invidition[0], which does Twitter to Nitter redirecting (as well as Youtube to Invidious).

[0]: [https://codeberg.org/Booteille/Invidition](https://codeberg.org/Booteille/Invidition)

<comment><USER7> Looks great...

I've been using a different extension "Redirector", and setting my own rules. But this should cover most of them!

<comment><USER8> Another one I add to Redirector is reddit.com to old.reddit.com :)

<comment><USER9> If you're logged into reddit you can just set old reddit in your account's preferences.

If you're not logged in you're only seeing the cesspool of default reddits... I would recommend avoiding that

</comment></comment></comment></comment><comment><USER10> If anyone from Nitter is currently around, pure curiosity question -- what are the hosting costs/usage numbers for the current public instance?

Whenever I see projects like this that are just public, and designed to be available across large regions, I'm always curious what the logistics behind them are. Big companies talk about their infrastructure, and tiny blogs talk about their infrastructure. I don't hear a lot from people in the middle.

I mean, I see the installation instructions, but is this just running on a single VPS? Are you setting up multiple servers and trying to load-balance between them or anything?

<comment><USER11> It doesn't take much to run Nitter really, the nitter.net instance is currently sitting at 310 MB of memory and the CPU requirements aren't too bad. It's running off my dedicated home server with fairly low specs (i3-8100) tunnelled through a cheap VPS to bypass firewall restrictions. It hasn't crashed or (to my knowledge) experienced severe slowdowns despite the huge traffic increase today. Invidious's story is a bit different as the main instance load balances between 10 VPS instances.

Regarding usage stats I don't have any accurate numbers, but the database that stores preferences has 30k rows.

</comment></comment><comment><USER12> nice to see a nim lang app in production. its a great language and this project looks nifty.

<comment><USER13> Definitely on my list for the holidays. Look at this project's Dockerfile, it's a build, then run tiny binary. Done.

Very compelling stuff.

</comment></comment><comment><USER14> That was a whole lot faster than the original!

</comment><comment><USER15> Cool.

But to tweet, you need a Twitter account. And as I recall, Twitter pretty much demands verification through a mobile account. Do virtual mobile accounts typically work for it?

<comment><USER16> I've used Twilio numbers for this purpose in the recent past. Those work 100% of the time so far (assuming the number hasn't already been used).

Many services seem to run checking on whether a number is really a mobile number or not. VK (the Russian social network) for one example is a zealot about that and won't let any Twilio numbers through. And Instagram is a lot tighter (better at fake account creation detection) on authentication than Twitter but you can still sign up for Instagram with just an email account in most cases.

<comment><USER17> Are twilio numbers pseudonymous or can they be reverse-looked-up? or does twilio give or sell this information out?

<comment><USER16> To get the individual user information for a Twilio number, given the short duration they might be attached to a given account, I highly suspect you have to go through Twilio for that info. That is, Twilio is likely to be the sole source for information on which account is attached to what number at a point in time. Obviously any consequential government authority in the US can then get that from Twilio, assuming the required judicial merchandise is presented.

I'd be curious though to know if eg Twitter security sends a request over to Twilio (perhaps in a case of an account abuse investigation), if they'd cough up information very willingly. That I don't know. It's a certainty the government can get at it, however. The best bet is to do nothing illegal using a Twilio number, and to assume if a big external service provider (Twitter, Facebook, et al.) needs to get details for some legal reason, they will.

</comment></comment></comment></comment><comment><USER18> interesting that it's automatically translating [http://2fb.me](http://2fb.me) links to use Nitter instead of twitter.com

There must be some specific logic to translate twitter links over

[https://nitter.net/search?f=tweets&q=2fb.me&since=&until=&ne...](https://nitter.net/search?f=tweets&q=2fb.me&since=&until=&near=)

</comment><comment><USER19> For me this is much slower than the native-app-like speed of the actual mobile twitter website.

How much longer is this anti-JS ideology going to dominate HN?

</comment><comment><USER20> Can I actually see tweets from the people I follow, or only really look at specific profiles?

</comment><comment><USER21> Does anyone know what this might mean?

> Unofficial API (no rate limits or developer account required)

It sounds brittle.

<comment><USER22> Given Twitter's history of support towards their official API, the unofficial one is likely _less_ brittle.

</comment></comment><comment><USER23> Are the Republican political account names randomly generated?

When it shows who retweeted something on a political thread they had comical derogatory names. Is that something you actually spent time on or is that user generated content

<comment><USER11> No content gets edited by Nitter except links being expanded and twitter/youtube links getting replaced (unless the user disables that)

</comment></comment><comment><USER24> Is there a regular version or just this trendy dark mode, that I find hideous?

<comment><USER11> Yes there are various themes to pick from if you go to the settings menu, click the cog icon on the top right

<comment><USER24> Thanks.

Suggestion: put a screenshot of the regular theme in the read me as well.</comment></comment></comment>


A BitTorrent search engine base DHT protocol - <AUTHOR> http://engiy.com <comment><USER2> I personally wish torrent search engines stop using DNS systems (at least centralized ones) and HTTP servers. What they could do instead is use the DHT feeds idea [1]; share their feed URI (a hash of a public key) which is a mutable DHT key, and have that point to a .torrent of their whole crawled database - I doubt their magnet_link -> description database is larger than a few dozen megs. When new torrents need to be updated, the DHT key is mutable and they can point to a new torrent - users will then just get the new stuff. Idea is laid out here: [https://github.com/bittorrent/bittorrent.org/issues/19#issue...](https://github.com/bittorrent/bittorrent.org/issues/19#issue-110508430)

Sure it's more complex than typing somesite.com in your address bar, but it's not that much more complicated.

1\. [http://libtorrent.org/dht_rss.html](http://libtorrent.org/dht_rss.html)

</comment><comment><USER3> Interesting concept. How is it different\better that btdigg.org?

<comment><AUTHOR> [https://github.com/alanyang/dhtspider](https://github.com/alanyang/dhtspider)

</comment></comment><comment><USER4> I use BitChe from convivea.com it's opensource and very performant

</comment><comment><USER5> Here's a machine translation of the about page:

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

About Engiy

Engiy is a BT search engine, in order to solve the Bittorrent protocol itself does not implement resource search function.

Currently Engiy total index to around 200 million magnetic link (duplicates removed), and 200,000 day rate. Just from the data, said, Engiy should index is the most comprehensive resource fastest Bittorrent search engine.

Engiy obtained through DHT network resource information to the user is downloading, including file name, size, etc., specifically, to achieve a Bittorrent in bep_0003 , bep_0005 , bep_0009 , bep_0010 four agreements.

Because of this, according to the Bittorrent protocol Engiy only get information to info torrent file, so Engiy on the server does not save any torrent file, at the same time, the tracker does not provide any service, generally speaking, so that means Engiy at large most countries can legally operate.

Meanwhile Engiy not provide any services in addition to BT resources search outside. Such as video online play (you can use as Baidu network disk ). Engiy search results are usually just a magnetic link, which will help the Internet to share resources for download, you also need to install additional software to download (such as uTorrent , BitComet , Thunder , etc.).

Engiy front end uses on Bootstrap , so pages are responsive, you can use any equipment, such as computers, mobile phones, pad, etc. use it.

Sensitive content

If Engiy index to content infringe your right to justice, or you have the copyright, please contact us , after verifying the information, we will remove it.

If you search for related promotional terrorism, child abuse, bestiality, etc.-humanity, anti-ethical, when anti-moral resources, you have an obligation to promptly us feedback.

Source

Engiy originally developed by Node.js developed, but after running for some time to find, memory, and CPU usage are beyond the control that VPS operators will automatically kill the crawling process. To know Engiy is only running at a minimum of $ 10 per month with a lower VPS. Later, with the Go has been significantly improved after the re-implementation of memory and CPU usage, currently running in good condition.

Engiy will open it? Yes.

Open source Node.js DHT reptile hosted on Github. Related technical details can be seen here , if in doubt you can give me a message on Github.

Source: [https://translate.google.com/translate?sl=auto&tl=en&js=y&pr...](https://translate.google.com/translate?sl=auto&tl=en&js=y&prev=_t&hl=en&ie=UTF-8&u=http%3A%2F%2Fengiy.com%2Ftech&edit- text=)

More (translated) info on the tech: [https://translate.google.com/translate?sl=auto&tl=en&js=y&pr...](https://translate.google.com/translate?sl=auto&tl=en&js=y&prev=_t&hl=en&ie=UTF-8&u=http%3A%2F%2Fengiy.com%2Ftech&edit- text=)

</comment><comment><USER6> That logo is a lawsuit waiting to happen.

<comment><USER7> Just the logo?

<comment><USER3> Does it depend on jurisdiction? Site operated by Chinese person in compliance with Chinese law, then what could rest of the world do?</comment></comment></comment>


Why we're no longer using Core.typed - <AUTHOR> http://blog.circleci.com/why-were-no-longer-using-core-typed/ <comment><USER2> I introduced core.typed to Circle, and I was responsible for most of the early type annotations in the Circle codebase. Because of me, Circle was also the first large contributor to core.typed's kickstarter campaign.

Other commenters are speculating that this kind of tool needs to be built into the language, and planned ahead of time. IMO, this is completely wrong. core.typed fits surprisingly well into the language, and there are no fundamental reasons in Clojure or core.typed preventing it from working well.

I largely agree with the criticisms raised in the post, but it's worth pointing out that core.typed is developed by one guy, part-time while working on his phd. The problems are all related to maturity of the project, and bandwidth. core.typed's version number is currently 0.3.11, which gives you an idea of its state.

Ambrose has shown what is possible; I'm confident that with more help, core.typed can become an amazing tool for finding bugs in production code.

<comment><USER3> > I'm confident that with more help, core.typed can become an amazing tool for > finding bugs in production code.

This is true but I wonder how much Clojurists care about what core.typed offers. If not enough do then many there will never be enough contributors to really make it work. LightTable is a project that seems to have had something similar happen.

</comment></comment><comment><USER4> Over and over I see reports of iteration speed being critical to real-world projects, and that's certainly my experience.

But it's something I rarely see featured in tool design. So many of our tools are still batch oriented: they start from scratch, read everything, process everything, and then exit. That made sense in an era where RAM and CPU were expensive. But now that they're cheap, I want tools that I start when I arrive in the morning and kill when I go home. In between, they should work hard to make my life easy.

If I'm going to use a type checker, I want it to load the AST once, continuously monitor for changes, and be optimized for incremental changes. Ditto compilers, syntax checkers, linters, test runners, debugging tools. Everything that matters to me in my core feedback loop of writing a bit of code and seeing that it works.

For 4% of my annual salary, I can get a machine with 128GB of RAM and 8 3.1 GHz cores. Please god somebody build tools that take advantage of that.

<comment><USER5> The problems I've seen with tools that try to load everything once and monitor for incremental changes -- is it's hard to get RIGHT. These tools tend to be buggy, or worse tell you it's not them that's buggy, it's you that's "doing it wrong" somehow, trying to work the way you want.

The beauty of simple tools is it's easier to make simple tools that work really really well. From loading everything at once, to considering text editors vs "IDE", which is really part of what you're talking about too. When we have new languages and platforms all the time these days... it's important to be able to get high-quality tools that don't take forever to develop.

<comment><USER6> The problem is that our editors are at the core still "text" editors. That forces the tools (IDEs) to continuously synchronize the text with the parsed AST.

It's trivial to get an editor right if it edits the AST directly. You skip the whole tokenization/parsing step which is where most complexity is. However, such an editor will need specific plugins for each language, and these plugins will be easier to write for languages which have a standardized AST (Haskell comes to mind). Also, users would have to give up part of the formatting (whitespace etc), and some people are very religious about that :(

<comment><USER7> The counterpoint to this is that if you're not using text editors then you lose the universal property that most source code is plain text which can be edited with your preferred text editor. Plain text seems to be the most tool- agnostic representation, which for many people is a big plus. Notice that in this day and age there are still people complaining about "bloated" IDEs...

<comment><USER4> I think there's a useful distinction between serialization format and working format (that is, what it looks like in RAM). For a plain text editor, they're the same. But that's pretty unusual.

There's reason we couldn't have an editor that works with the AST while saving everything out in plain text for interchange purposes.

<comment><USER7> True. But the property you mention -- that for plain text editors the serialization and working formats are the same -- is actually a pretty useful and convenient property! I think this is why it's extremely unlikely there will ever be widespread adoption of a different format for source code. Niche tools will remain niche forever, in my opinion.

</comment></comment></comment></comment></comment></comment><comment><USER8> That... is pretty much exactly the list of problems I've expected out of optional typing.

I think other dynamic-type language communities should read this and think really hard. I've said before, I'd rather see a language become the best $LANGUAGE it can possibly be, for whatever that $LANGUAGE is, than try to bolt things on that pull it away from its core focus. Dynamically-typed languages are dynamically typed. Become the best dynamically-typed language you can be, don't bolt less-than-half-assed static typing on to the side. The sum ends up being less than the parts.

And if that means the next ten years is the language slowly fading into history... that is the destiny for all of us anyhow. Let it be with a fantastic dynamic language that was the best it could be, let it be a language that people speak wistfully of twenty years later. Don't make it be remembered as a Frankensteinien monstrosity as it tried to stay current.

<comment><USER9> I disagree. Typescript is an excellent example of an optional static type system that works great. It has none of the 3 problems the OP describes: it's fast, it nicely encompasses the whole language and the Definitely Typed repository includes a TON of 3rd party library type definitions.

<comment><USER10> How big is your Typescript project? Because when I read the first paragraph of this I cringed and knew where they were going.

We have a medium sized Typescript app (~100k lines), and it takes 7-10 seconds to transpile to JS.

Whenever a change is made, that is 7-10 seconds the watch command is running and I'm not testing my changes in the webapp.

In fact, a slow running grunt watch is why I'm on HN right now in the first place.

<comment><USER11> > Whenever a change is made, that is 7-10 seconds the watch command is running > and I'm not testing my changes in the webapp.

Compared with C and C++ build times which are measured in minutes or even hours, 10s is nothing.

<comment><USER12> Huh? My 100,000 lines of code takes seconds.

<comment><USER13> That also depends massively on the used libraries and the structure of the code. A 100kloc c file could build superfast. Whereas multiple c++ totalling about 10kloc that include use use lots of Boost stuff can take ages compared to that.

</comment></comment></comment></comment></comment></comment><comment><USER14> I don't have nearly the breadth of experience in Clojure as the circleci guys, but I found that Prismatic's Schema [0] works well for me vs. core.typed. I can selectively annotate functions with their return types, and test runs will validate that they are returning as expected. It's runtime evaluated, so you lose a lot of static analysis benefits that type checking gives you, but it still provides some good code coverage, forces you to think about types a bit, and (the biggest benefit for me) it serves as documentation for functions that might return somewhat complex types. I can return to code months later and have a good idea of what's going on.

I've found the syntax a little arcane, particularly for coercion (which is a secondary function of Schema) but the documentation benefits have been worth the effort of learning it.

A nice middle ground between nothing, and full-blown type annotations.

[0] [https://github.com/Prismatic/schema](https://github.com/Prismatic/schema)

</comment><comment><USER15> Interesting to compare with TypeScript, which runs into similar issues.

Before TypeScript 1.1, the intelligence was quite slow, but is now fine even for large projects. Third party libraries often have type definitions in the DefinityTyped collection.

That just leaves constructs that work in JavaScript, but which can't be type checked in TypeScript. This is often double-edged. TypeScript's types are not amazingly flexible, so it encourages writing less magical code, improving readability, but it also discourages some patterns that are quite useful, such as passing references to properties using string key names, which are hard to type-check.

<comment><USER16> > TypeScript's types are not amazingly flexible, so it encourages writing less > magical code (...)

you can "cast" anywhere so it's not really an issue :

(<(string)=>string>baz['baz'])('foo')

Otherwise typescript support union types and such ... Even without .d.ts headers everywhere it is still useful. I prefer it to babel and co as it is easier to track ES6/7 integration. Never used typed clojure though ,but I don't know any example of a language that didn't have types before and retrofitted type safety without any issue and breaking backward compatibility.

</comment></comment><comment><USER17> I gave up on core.typed because I've found adding type annotations to most of the forms is significantly harder compared to a statically typed language. (In hindsight this is obvious, I know.)

Not having type-checking doesn't necessarily make Clojure any less awesome for me though. I write unit tests, add (some form of) contracts at least to the public functions and pay attention to documenting public stuff. And not doing excessively clever things like having unnecessary mini-DSL's within the code also help.

</comment><comment><USER18> I feel like I can somewhat relate, I've been adding flowtype [0] annotations to my JS code, which is transpiled with babel. However, since I'm using unsupported ES2015 features and experimental ES2016+ features, it fails to run over my code (which is completely understandable).

The workaround I've found is to use a plugin [1], which converts the type annotations into runtime checks. It's not perfect, but I've found it helps catch some bugs quickly. It's also really helpful for documentation purposes: you know that this function param takes a number param, if you're not passing in a number you've made a mistake. Also, having the inline type is nicer than having it in a jsdoc-style comment above.

I think there's diminishing returns as you add more annotations to your code and you make them stricter, but having basic sanity checks has been helpful in catching stupid mistakes quickly.

[0] [http://flowtype.org/](http://flowtype.org/) [1] [https://github.com/codemix/babel-plugin- typecheck](https://github.com/codemix/babel-plugin-typecheck)

<comment><USER19> Why Flow instead of Typescript?

<comment><USER18> Mainly because I was already using babel (which was 6to5 at the time). Typescript didn't support JSX at that time either. I don't know if TypeScript has full ES6 support yet? (And async/await!)

Overall babel seems to be moving in a direction which I'd consider really interesting. With babel 6 you'll be able to write a plugin to add runtime checks that aren't limited to module boundaries.

</comment></comment></comment><comment><USER20> >In September 2013 we blogged about why we're supporting Typed Clojure, and you should too!

I wonder how many other premature "you should too"s have been issued over the years. At least they had the guts to retract theirs.

<comment><USER21> I wrote that post, and it was very much about why you should support Typed Clojure, not why you should use it. You should support it for the potential, you should decide whether to use it on practical concerns.

</comment></comment><comment><USER22> This bit raises the question, is #1 being caused by #2 and #3?

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

The problems that we have hit with using Typed Closure are

1.) slower iteration time when programming,

2.) core.typed not supporting the entire Clojure programming language

3.) using third-party libraries that have not been annotated with core.typed annotations

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

If #1 is caused by #2 and #3 then presumably #1 will get better with time. But if #1 is caused only by typing itself, then it sounds like, for them, using types was a bit of premature optimization.

It does raise the question, is it possible to create a type system that does not slow a project down?

</comment><comment><USER23> But what about then gradual typing in core.typed? Will it make core.typed more useful? Or is problem not just in gradual typing but more in type oriented system vs data oriented system?

<comment><USER24> The issue I have with gradual typing in most languages is that it's added after the fact and not native. As a result, the integration isn't native and you start seeing issues like this.

This, incidentally, is one of the reasons I like Perl 6 ([http://perl6.org/](http://perl6.org/)). It also has gradual typing, but if a third-party library doesn't have a type annotation, that's OK: it will simply fail at run time instead of compile time.

Another reason to like native gradual typing instead of third party gradual typing is that it can be integrated natively into the system instead of being used as an afterthought. Perl 6 has native type infererence to allow for compile time failures:

        $ perl6 -e 'sub foo(Int $x) { say $x }; foo("bob")'
        ===SORRY!=== Error while compiling -e
        Calling foo(str) will never work with declared signature (Int $x)
        at -e:1
        </comment></comment><comment>> sub foo(Int $x) { say $x }; ⏏foo("bob")

(Yes, that's compile time instead of run time)

What happened above is that the optimizer saw that the call to foo() requires an Int and checks the argument type to see if the call is allowed.

And here's the untyped version:

        $ perl6 -e 'sub foo($x) { say $x }; foo("bob"); foo(3)'
        bob
        3

Interestingly, the Perl 6 core team could allow for powerful type inference with this, but one of the core issues has always been that many languages using type inference have rather opaque error messages because they essentially dump a "proof" of type failure and many struggle to understand them. Thus, the the Perl 6 devs are taking more careful approach, though they know they can do more. For example, this falls back to a runtime failure instead of a compile time failure:

        $ perl6 -e 'sub foo(Int $x) { say $x }; my $name = "Bob"; foo($name)'
        Type check failed in binding $x; expected 'Int' but got 'Str'
          in sub foo at -e:1
          in block <unit> at -e:1

In other words, because it's not sure of the type of $name at compile time, it falls back to run time (though in the simplistic example above, that's clearly not the case). Annotate the $name variable and you get a compile time failure again:

        $ perl6 -e 'sub foo(Int $x) { say $x }; my Str $name = "Bob"; foo($name)'
        ===SORRY!=== Error while compiling -e
        Calling foo(Str) will never work with declared signature (Int $x)
        at -e:1
        </comment><comment>> t $x) { say $x }; my Str $name = "Bob"; ⏏foo($name)

With this, third-party libraries which don't declare types work just fine, but you get type-safe run time failures. If they do declare types, you often get compile time failures (though it will still fall back to run time, and won't check at run time if it knows at compile time that it works).

<comment> bjr- I believe that's where core.typed is going: [http://frenchy64.github.io/2015/06/19/gradual- typing.html](http://frenchy64.github.io/2015/06/19/gradual-typing.html)

Typed and untyped code must (and will soon) be able to cooperate in providing compile-time and run-time type checking in Clojure.

<comment><USER25> There are also tentative plans to integrate core.typed with the Clojure compiler so type annotations can be used during compilation (e.g., type hints through inference).

There was a post about it, but the best I could find is a recent paper: [http://frenchy64.github.io/papers/typed-clojure- draft.pdf](http://frenchy64.github.io/papers/typed-clojure-draft.pdf)

</comment></comment></comment><comment><USER26> Does anyone know how the situation is with typed Racket? Similar problems with speed, annotations being hard to write and tooling being insufficient?

<comment><USER27> Typed Racket (due to different integration into the compiler) is much more incremental -- the speed issues in the blog post would be much reduced. The typechecker still isn't as fast as we would like, though, although we have plans to improve it.

I think the tooling integration is better in Typed Racket, although Ambrose has made some improvements in Typed Clojure as well. As for typed versions of existing libraries, I think that things are bit better in Typed Racket, but also Racket has many fewer libraries than Clojure at the moment, so the scale of the problem is smaller.

</comment></comment><comment><USER28> It seems like something like the dependency tracking and selective reloading in Stuart Sierra's tools.namespace could be used to mitigate their first problem.

</comment><comment><USER29> The code ahead types strongly remind me of the state of UML model driven trends a few years back. I wonder if it ended the same way.</comment>


Why are so many people running for president and so few for mayor? - <AUTHOR> https://www.niemanlab.org/2019/05/why-are-so-many-people-running-for-president-and-so-few-for-mayor-blame-the-media-and-the-internet/ <comment><USER2> If you do look seriously at running for Mayor in most towns you tend to discover that there isn't any budget for doing anything interesting, it is hard to raise local taxes, it is hard to raise debt, and if you cross major business interests you'll get sued personally.

Thus it is a lot of work and a lot of risk but you can't necessarily accomplish anything.

<comment><AUTHOR> That's very true. But remember what former House Speaker Tip O'Neil said--all politics is local. It's a great way to learn and practice. Scalability? Well, I think that went out the window with President Trump (respectfully, not saying anything political) showed you don't need any previous electoral experience to win the Presidency.</comment></comment>


Inside the Intel 1405: die photos of a shift register memory from 1970 - <AUTHOR> http://www.righto.com/2014/12/inside-intel-1405-die-photos-of-shift.html <comment><USER3> Lovely stuff. I wonder how close you could get to making this stuff in your garage now, given a silicon wafer and maybe a vacuum chamber. (I imagine the etching chemicals would probably make you unpopular with your neighbors...)

<comment><USER4> She didn't do anything remotely this complicated, but a few years ago Jeri Ellsworth did do a couple videos of "homemade" ICs.

[https://www.youtube.com/watch?v=PdcKwOo7dmM](https://www.youtube.com/watch?v=PdcKwOo7dmM)

</comment></comment><comment><USER5> Really interesting how chips haven't changed much for almost 50 years - <USER2> for getting (much) smaller. This could have been a modern die photo except for the scale of things...

<comment><USER6> Uhm no, absolutely not. The basic operational principle remained the same, but absolutely everything has been changed many times over. Trillions of dollars were invested to make it happen.

The only constant is probably that it is still made on a silicon wafer. But even this wafer changed a lot, and I am not talking about its size.

Would you also compare a horse carriage to a Tesla?

<comment><USER5> The wafer is a slab of polysilicon, and has been that way for a long time. Most of those trillions you mention were invested to make the lithography smaller, which is how you get more transistors into the same die.

Edit: silicon, not poly silicon. Not sure why I said poly there...

<comment><USER6> No, simply no.

ICs are made of monocrystalline silicon, not polysilicon. There have been massive efforts to understand how to make it cleaner (internal gettering) and how to get wafer mechanics under control (Nitrogen doping). That does not even touch the changes in production technology to go from 10 mm Wafers to 300 mm Wafers. (You just make them larger, right...)

A lot of new concepts and materials have been introduced to ICs during the last decades. Especially since the 130 nm ground rule, lithography has not been the main limiter. Examples: Copper, Tungsten, Diffusion barriers, Silicide, Strained Silicon, High-k, metal gates, finfet, 3d integration etc...

<comment><USER7> 10 mm wafers? Were they ever that small? I've never heard of less than 1 inch...</comment></comment></comment></comment></comment>