Ask HN: First visit to Bay Area. Where should I go? - <AUTHOR> I have dreamt of coming to this place for over a decade. Here I am. Staying with a friend for a few days and have time to explore the area. I've been on a road trip from Salt Lake City since 9/9/18, went up through the Rockies and over to the Pacific Northwest, now down to Bay Area.<p>I'm interested in history, culture, food, yoga, Buddhism, science, technology, design, music. <comment><USER2> Sleep over and party with the other tourists at the Fisherman's Wharf hostel; Wake up to the a calm, detached serenity within the city that gives the Marina district's urbsn calm refuge a run for it's money. Meet a stunning New Yorker. Sweep her off her feet, literally, and swaddle her to place of, more, our own. Watch her later disappear, her a sugar cube, into your teacup; meet another from Texas whose taken to your dumb, musical pining, there in the dining hall. Carry her too. Scale an apartment building to watch the stars and muse on how, maybe she should switch majors to math, maybe. These stars, never a spectacle for a Texan, but here lending to me a perfectly stunning, halcyon glow over the whole situation, after all this time royally without romance, a cliffside's breeze before a warm washing Pacific sunset. All at the Fisherman's Wharf hostel...

<comment><AUTHOR> Funny thing. I met a beautiful woman from Melbourne, Australia there while watching seals. We spent the whole day together, she had tickets to the aquarium so we went and then I got her a clam chowder bread bowl for the first time. We Uber'd to Golden Gate Park and walked over the Haight and bar hopped. I got her a Moscow Mule (she never had one and now that's her new favorite drink) and we got real cozy. Her old friend from Australia who she is staying with met me and said we look good together and our meeting story is very romantic. She gave me a goodnight kiss after one more drink in Union Square at a swanky bar called Rye. I got on the last BART back to my friend's house with a heavy heart...I really wanted to spend the night with her but it was better if we didn't. She wanted to see me again and I wanted to see her again.

We hung out for a few hours today too. We met up in Chinatown around the Financial District in the Mission area where we laid out in the park and held hands while talking about life and work. She was cold so wore my alpaca sweater. After we ate some amazing Mexican food and then got to go up one of the tallest buildings in the city where one of her friends had an office. We had coffee up there and talked about the Bay Area while looking around at all the buildings in every direction! After that we got a tour of Golden Gate Bridge and the hills around it around sunset. We took some more pictures together. I got the three of us some burgers and I had to say goodbye one more time.

Tomorrow we are going to hang out ALL DAY and then go to Alcatraz the day after and then rent a car to camp together at Yosemite.

What. The. Fuck. She is gorgeous, a social worker. I notice a lot of people looking at us, girls especially. Guys checking her out and trying to talk to her, a female bartender at an Irish pub giving me props.

I got a lot more stories too but I'm a little stoned right now off some California weed and going to go to bed. Gotta catch the BART tomorrow from Pleasant Hill to meet her again. :)

I love this city.

</comment></comment><comment><USER3> Definitely don't forget the Presidio hiked all the way to Ocean Beach.

Computer history museum in Mountain View. Call ahead and pick a day they're actually open.

Google campus. It's different. Find a fellow alum or something and get them to buy you lunch at one of their many free eateries.

Sand hill road between I-280 and El Camino. Just to realize how densely concentrated the plurality of the world's VC is.

Stanford mall. This is where the really rich shop. Downtown Palo Alto shopping district for comparison & contrast.

A driving tour of Cupertino including Apple's first and second campuses, and drive on out to Santana Row to see where many a Bay Area dollar gets spent. Cupertino is Stepford but with a slightly Buddhist vibe, so maybe you'll discover some of that.

A few half-decent baylands trails, and some mountain state parks, but other than the forested parts of SF, the really beautiful stuff is coastal. Make it out to San Gregorio if you can for some good beaches. Half Moon Bay is decent too. Follow this rule of thumb: If the weather in the city is iffy, it'll be worse at the beach. If it's too nice to leave to the beach, the beach will be spectacular.

</comment><comment><USER4> Bay Area is massive. If you are in SF or visiting SF, make sure you walk - that is the best way to see the city. Walk through the city and observe neighborhoods change. You could walk from Golden Gate park to Downtown, or Mission to Downtown.

</comment><comment><USER5> I just wanted to add: if you can find parking, you can actually walk across the Golden Gate bridge. It's windy, but very beautiful. And there's also little placards showing the history of the bridge's construction on the south side. (Although it's a little easier to park on the north side.)

</comment><comment><USER6> Not sure if there are any aquariums in SLC, so check out Cal Academy of Sciences in SF and the Monterey Bay Aquarium.

Santa Cruz is a beach/hippie town.

California cuisine (fusion/organic), Asian, Mexican food.

Buddhism? San Jose has a Japanese Buddhist temple but I do not know if you can visit.

Redwood forests.

</comment><comment><USER7> Drive up to Point Reyes (Inverness) and take the Tomales Point trail. Tons of huge Tule Elk.

</comment><comment><USER8> I highly recommend eating at Wursthall in San Mateo. It's J. Kenji López-Alt's (from Serious Eats, author of The Food Lab) restaurant.

</comment><comment><USER9> Consider the Lick Observatory. Just be sure to drive carefully.

</comment><comment><USER10> Go visit San Fransico and take the cable car and walk around (Market Street, China Town, Fishermans Wharf, Golden Gate, Golden Gate Park, maybe Twin Peaks, maybe Alcatraz, ...)</comment>


Living under a tarp next to Facebook HQ: 'I don't want people to see me' - <AUTHOR> https://www.theguardian.com/us-news/2017/mar/31/facebook-campus-homeless-tent-city-menlo-park-california <comment><USER2> I spent the morning talking with a guy who was telling me about growing up in San Jose during the 60s and how amazing it was playing in all the orchards (hoping the sherif didn't catch them). Anyone who looks around and likes what the valley has turned into is suffering some kind of cognitive issue. This is a disaster of urban planning. A sea of parking lots, 8 lane streets, freeways, and warehouses. There is no shortage of space. We could have had a chain of interconnected walkable towns with high frequency rail connecting them up and down the peninsula catering to three times the capacity it caters to today. The amenities and quality of life would be better for everyone. It's not infeasible to get there now but at this point it requires serious leadership to get us there and Google, Facebook, et al. need to start spending money to make that happen.

<comment><USER3> Why would it make any sense for them to do that when they can just open up offices in different cities?

<comment><USER4> They have invested huge amounts of money in the bay area. Reducing costs and making it more livable is a pretty smart decision. You don't lose employees who can't stand the commute, or want to be able to afford more than a tiny apartment at some point. You can improve your public image. Homelessness can be reduced. It's good for the environment. Etc...

</comment></comment></comment><comment><USER5> I am sure a FB employee will invite her to stay at their house. I saw some of them protesting at the airport when the travel ban happened, and they looked like they really wanted to make a difference in the world. I bet this will happen, they had #resist signs and stuff, I am willing to hold my breath.

(Starting now)

</comment><comment><USER6> If homelessness continues and we need temporary measures, should we be building public fresh water wells in key encampment areas?

</comment><comment><USER7> Anywhere there is tremendous wealth, there is going to be a bigger disparity in income inequality. The Bay Area has a housing supply problem right now (and no, starting a company that is cramming five+ millennials into an empty luxury apartment is not a viable solution) that needs addressed, and I don't think we should conflate it with the homeless problem.

The homeless across the nation all congregate in California because of the weather, and its a much harder problem to tackle that requires more than just the involvement of a private tech company to solve. The solution needs to be the government creating more of a safety net for mentally ill, not private companies somehow equalizing them in wealth (read: redistributing) with some of the smartest, hardest working people in the world. I got the impression that this article is pointing the blame finger at Facebook, and I don't see how Facebook has any more responsibility than anybody else for helping the homeless. Facebook shouldn't feel compelled to offer software engineering jobs to skid row, that's not the solution. There are many actors here, it's hard to point the blame at just one.

<comment><USER8> I think Facebook is here used as a way of illustration and contrast. It's a good way to visualise income inequality.</comment></comment>


Show HN: Send fun prizes to your Slack friends. - <AUTHOR> https://yay.hintsy.io <comment><USER2> I would change the title to actually describe what the service does. It has nothing to do with Unicorns other than the fact that its logo is a unicorn.

From what I've seen, HN people don't appreciate marketing copies and you probably won't get enough upvotes you deserve with the product you've built.

<comment><AUTHOR> Oh, thanks for the tip. I was just trying to have a little fun, but you're right that it's not very descriptive. I'll change it.</comment></comment>


What do you think of goto in php? - <AUTHOR>

I am not a php programmer but when I heard that php would introduce goto's to the core I started to asking myself why anyone would ever think something like this, so what do you think of goto in php? <comment><USER2> In terms of 'goto' in general, I always apply this rule: Use your head.

'goto' isn't exactly elegant most of the time, but there are some cases where it produces cleaner, yet still correct, code. If you understand it and its repercussions, tread carefully.

</comment><comment><USER3> It's not worth adding. As others have said, there are useful cases where the code is cleaner, but the potential for abuse is great. I dont know PHP, but if it has break and continue (particularly with labels), then there is little use for goto.

<comment><USER4> it does have break, yes (and I think continue though I confess I have never used it :))

</comment></comment><comment><USER5> There are corner cases where goto is more convenient than hacking around it using higher-level constructs. It's not inherently evil. It's repeatedly been shown that the developers of PHP regard it as a "kitchen sink" language where every feature is thrown in in some form so adding goto makes sense in that perspective.

</comment><comment><USER6> i think its php's attempt to cater to the procedural programmers, which is still a hefty chunk of its userbase.

don't use it.</comment>


Ask HN: Admitting this is beyond what I can understand in this lifetime - <AUTHOR> Hi,
I sometimes feel overwhelmed by the amount of new things I need to learn. Today it happened again when I tried to understand what happens here (https://github.com/levskaya/jslinux-deobfuscated/blob/master/cpux86-ta.js): http://bellard.org/jslinux/.
I sometimes feel that so much knowledge is something that I will never be able to grasp no matter how much I study. I think I'm a good developer... but this is certainly not something I can do and it makes me feel minuscule.
How do I stay on track ? <comment><USER2> cpux86-ta.js is an emulator for an x86 CPU. If you learn x86 assembly language and read the x86 reference manual from Intel (which tells you what effect each instruction has on the CPU's state), you too could write one. A basic overview of computer architecture would also be helpful (the author provides some references at the top of the file). It could take a few years to get that knowledge (depending on how much you already know), but not a lifetime. It looks like a lot of code, but that's because the x86 architecture has a lot of machine instructions. But it requires no cutting-edge knowledge of computer science to write or understand, just a lot of patience.

 _" I sometimes feel overwhelmed by the amount of new things I need to learn. ... How do I stay on track ?"_

You can't possibly learn everything there is to know. To "stay on track", you need to first define what you want to achieve. It's pretty likely that knowing the x86 instruction set inside out is unnecessary for what you want to achieve. (Which doesn't mean that you shouldn't learn about it, but you need to set your priorities based on what your goals are.)

<comment><AUTHOR> Yeah... goals first... thanks for this @greenyoda!</comment></comment>


Ask HN: What Is a Silver Bullet? - <AUTHOR> We always see poping up in discussion threads that "XXX is no silver bullet" (XXX being anything like React, Docker, Lambda, Scrum, microservices...).
What are examples of silver bullets, direct and effortless solutions to long-standing problems? <comment><USER2> It was coined by Fred Brooks in his paper "No Silver Bullet – Essence and Accident in Software Engineering" [https://faculty.salisbury.edu/~xswang/Research/Papers/SERela...](https://faculty.salisbury.edu/~xswang/Research/Papers/SERelated/no- silver-bullet.pdf)

 _" There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity."_

to expand on @lugg's answer below any promise of a blanket solution (often bolted on top of poorly designed systems) that try to mitigate the problems (without solving the underlying cause)

examples are too numerous really but the paper is well worth a read

</comment><comment><USER3> Possibly a reference to the fictional 'vampires can only be killed if they're shot by a silver bullet' as normal lead bullets presumably aren't effective.

Likewise, it must be a 'wooden' stake through the heart. Etc, etc.

More or less it implies that there is only one effective solution to a problem, and that is what must be used if you want the problem to go away.

</comment><comment><USER4> By definition anything that solves all your problems, so subjectively there are none.

I'm sure there are examples of things that solve many problems, while not silver bullets that might be the closest approximation.

Is that more to what you're looking for with this post?</comment>


Hacktoberfest (2019) - <AUTHOR> https://hacktoberfest.digitalocean.com/ <comment><USER2> What is the deal with limiting T-shirts to first 50 000 participants? (And first what exactly, first to sign up or first to get four PRs done?)

It can't be to combat spam PRs, because that would seem to instead just encourage people who intend to spam to just sign up quicker.</comment>


A Google Maps Mashup of the Ashley Madison Leak - <AUTHOR> http://www.cheatersmap.com/

<comment><USER2> Wow, I'm surprised by the amount even in my small city in Sweden!</comment>


History Flow: the only way to convince yourself that the "wiki" is a valuable medium - <AUTHOR> http://www.research.ibm.com/history/

<comment><AUTHOR> Found this a few years ago and always end up showing people. It really does show the "quality" and "persistence" of wiki data in a way that begs the "ohhhhh, yeah" moment

and if anyone wants to contest the "valuable medium" bit, I'm thinking the wiki hasn't properly come of age yet - for instance see <http://www.scholarpedia.org/>

</comment><comment><USER2> I guess I just don't get why this would be "the only way to convince yourself that the "wiki" is a valuable medium". We use wikis at work without this, and I don't think anyone here would argue that it isn't a valuable resource. The history flow would show persistence of information, but for many sites I think it would be a stretch to claim that proves the quality of information.

<comment><AUTHOR> I really didn't mean the quality of the information, this can be shown to be a social phenomena. What I think this illustrates is the quality/value of the wiki medium itself. I remember a lot of issues from my philosophy courses about wikipedia, the tutors seemed to think that the content of an article would change from day to day, one day taking one angle, the next being rewritten to another. I guess why I like this study is it shows the clear continuity of the information. Even though it is in constant flow. (hmmm....I wonder if there are computable threshold values? i.e. the age of an article, number of views/edits/users etc.)

I take your point, I did mean _wikipedia_ as there is no doubt that an in house wiki is a very good way of content management. But there are a lot of preconceived prejudices about open wiki's among the less well informed. I'm preaching to the converted here on HN, but then I thought people would appreciate the pretty colours =D</comment></comment>


Think you're good at networking? Properly following up - <AUTHOR> http://24waystostart.com/2010/think-youre-good-at-networking-properly-following-up-especially-with-a-vc/

<comment><USER2> I wish the article went into detail of following up with VCs. For example, _how_ to followup after the first meeting? I've felt that a simple "Thank you, I look forward to talking more" isn't good enough. I think you need to go further and answer any large questions that cropped up in the meeting.

</comment><comment><USER3> I log notes about people that I meet along the way, usually on the back of their card. Then I try to input this data in my contact manager and set a reminder in the future to follow up.

This simple process also helps me to measure my progress (internally) by comparing follow up notes with my actual projected growth.

Fwiw, I also digitally convert bcards, follow conversations online and keep a list of people on a 'watchlist' and plan my events around meeting these people at some point.

</comment><comment><USER4> How does one manage all of this? For example, I've successfully followed up and want to re-contact with them in a month with something topical. How do I manage to remember this (when the contact list get's large) and how do I manage what's topical to each individual contact?

<comment><USER2> I've made an spreadsheet with the following - Name, Email, Company, Introduced By/At, Status

In status, write down stuff like "Give Beta," or "Reconnect in one month."</comment></comment>


Japanese Programming Syntax - <AUTHOR> http://www.xamuel.com/japanese-programming-syntax/

<comment><USER2> I've always marveled at the number of synonyms in Ruby. collect() and map() are the same thing, there are a bunch of ways to make lambdas, etc.

We should start the urban legend that each of these synonyms has a different degree of politeness.

       your_lovely_array.collect { |awesomeness| awesomeness.aspect }

       my_worthless_array.map { |x| x.thing }

Bonus points for anyone who can get this meme propagating on Stack Overflow.

<comment><USER3> I have heard speculation that the abundance of synonyms may originate with the Japanese language. I was told that in Japanese (which I don't speak), you might use a different word for "one" when saying "one cat" versus "one house" or "one country," and that the word choice would be made based on which one "sounds best" in that context.

IF that's true (can anyone confirm?), it might have seemed fitting to Matz that using "collect" vs "map" would be an aesthetic choice for the programmer.

<comment><USER4> This is true, and it's not unique to Japanese (Chinese does it too). But I'm not sure the existence of this specific feature in the language supports any particular generalizations about a "Japanese mindset."

To English speakers, using different counters for different classes of nouns is a pretty strange feature, but I'd imagine no stranger than the Japanese might consider our plurals. Japanese (and Chinese) don't inflect nouns for plural agreement at all. From there, imagine how English's seemingly random collection of irregular plurals must seem (feet, oxen, halves, deer, women, mice, children, dice, larvae, alumni, bacteria, etc).

I wonder what features of English-origin programming syntax they might link to this bizarre collection of special cases :).

<comment><USER2> _But I'm not sure the existence of this specific feature in the language supports any particular generalizations about a "Japanese mindset."_

It doesn't, of course!

I thought about making that point explicitly, but eventually decided that the OP was obviously a big joke so I might as well go along with it. ;)

One of the most fun things to do in linguistics class is to identify the supposedly-unique features of odd foreign languages and then find them in English. Using tone to convey meaning? I _think_ you might be able to come up with _some_ kind of example. Using clicks as phonemes? Tsk, tsk, tsk. And so on. And English has formal and informal modes. There's studies showing that, like, people speaking to each other informally, like, use all these, um, little interjections, for which they are sometimes mocked as inarticulate. But put them in a different social situation, and their speech tends to become more formal and those "likes" disappear.

English has lost most of German's fancy gender and case-marking systems, but there are fascinating residues left over. I forget the detailed examples; hopefully I kept my notes from that class.

</comment></comment></comment></comment><comment><USER5> All good except the very final example. If it was really going to be written right to left, top to bottom, then that would only make sense if whole characters were used, roughly equivalent to words in the made-up language, not equivalent to single English letters.

Something like this:

(

weather

WxRAIN

==

?

etc. (Also I moved == after the object since it's going to be postfix in Japanese).

But in any case I highly doubt that any language invented for a computer (ie. recently) would be written top to bottom. Just about every computer in Japan is using left to right.

<comment><USER6> That's probably because the cultures that developed TTY displays developed them so that the cursor moved from left-to-right, top-to-bottom.

If the Japanese had the same position as the western world, our TTYs would probably a direction that more closely matched their language.

</comment></comment><comment><USER7>
        rainGear.grab();
        rainGear.wear();

Isn't this just Java?

(see also [http://steve-yegge.blogspot.com/2006/03/execution-in- kingdom...](http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of- nouns.html))

<comment><USER8> The whole thing really feels a lot like Smalltalk.

Some things don't work as well (can't use `;` for the contexts), but apart from that, a smalltalk-like language works well:

        (weather is: #(#rain? #drizzle?)) ifTrue: [
            'rain gear' haveObject: [
                grab
                wear
            ]
            'door' openObject;
                   walkThrough
        ] ifFalse: [
            'house' stayIn
        ]

</comment></comment><comment><USER9> This exact same line of thinking went through my head a few days ago. Since I'm starting to toy with learning Japanese I wondered how a programming language with a SOV ordered syntax would look like. I guess now I know.

<comment><USER10> Stack-based languages like forth have a SOV (postfix) order.

An interesting property of postfix languages is that the order of evaluation of functions is identical to the order of the function names in the source code:

Functional (prefix, C)

        f3(f1("") f2(""))

OO (infix, Java)

        "".f1().f3("".f2())

Stack-based (postfix, Forth)

        "" f1 "" f2 f3

</comment></comment><comment><USER11> Even though Japanese is traditionally written vertically, right to left, modern Japanese is just as valid written horizontally, top down. Latin characters are never written vertically – so code wouldn't be either.

</comment><comment><USER12> the conditional syntax he describes does exist in many mainstream programming languages

(x==y) ? a : b

<comment><USER8> No. You can't put statements in this, only expressions. It's a limited special case instead of a generic tool (and putting a sequence of conditionals and actions is not going to look good, though I'm sure you can coerce them into it using the "," operator, as long as you don't need to have an iteration as well).

There are languages which have pretty much exactly what he describes (Smalltalk for instance), but "many mainstream languages" don't.

</comment></comment><comment><USER13> don't they have any programming languages in japan? perhaps in japanese?</comment>


Ask HN: Nomad looking for opportunities in this space - <AUTHOR> I've been a nomad for the past few years and I expect this trend to get bigger in time as more people moving to work remotely.<p>I'm looking to start a business around this area - what do you think are the biggest opportunities for remote work? <comment><USER2> I think there is high demand for social apps (dating, making friends while traveling, etc.)</comment>


You're Not Really Playing Pokémon GO in the Real World. Here's Why: - <AUTHOR> https://medium.com/@lcdvirgo/youre-not-really-playing-pok%C3%A9mon-go-in-the-real-world-here-s-why-9d596117f1ca#.lx6gj4ifh <comment><USER2> I've definitely noticed this, too. A lot of the Pokemon Go playing I've seen basically just involves people just standing around in their own world, swiping and not talking to anyone.

Still, I think there's potential for the game. When Pokevision was live I remember seeing a big group of teenagers roll in to a park together to catch a rare Exeggutor. A battle system where you can challenge other players in real time would be amazing.

<comment><USER3> Though it's my two cents, Niantic got part of the Pokemon games but missed out the biggest thing that made it fun. Random Battles! Battling your friends (as early as Gen 1 [2]) You can't weaken random Pokemon at all, you can't just hatch eggs in your bag without Incubators, you can't go beyond the level cap of 40.

Nintendo had spent a ridiculous amount of time and effort for evolutionary charts, catch rates, and so many other things. [1]

If people enjoy the dumbed down game, with not even the "core features", or "new Pokemon", I do believe they'd make ludicrous amounts of money with a near-faithful recreation of mechanics.

[1] - [http://bulbapedia.bulbagarden.net/wiki/Catch_rate](http://bulbapedia.bulbagarden.net/wiki/Catch_rate)

[2] - [http://bulbapedia.bulbagarden.net/wiki/Game_Link_Cable](http://bulbapedia.bulbagarden.net/wiki/Game_Link_Cable)

I digress though, as it's gotten me out of the house having fun.

</comment></comment><comment><USER4> Completely unrelated but as a British English speaker I was amused by one of the linked articles - [http://www.inquisitr.com/3341656/pokemon-go-accident- man-acc...](http://www.inquisitr.com/3341656/pokemon-go-accident-man- accidentally-urinates-on-kid-while-hunting-pokemons/) \- I think the writers don't realise how many asterisks they actually need to use in this article, given some of the more localised swear words being used in the quotes.</comment>


Learn Vimscript the Hard Way - <AUTHOR> http://learnvimscriptthehardway.stevelosh.com/

<comment><USER2> I think my biggest gripe with vim is vimscript... and next is that other languages are optionally compiled in.

VIM with only lua, or, since regexps are weird in lua, guile, or heck, even a fast ECMAscript but garrenteed to be the same on all platforms would be great...

I've pondered the idea of a "VIM redux" project, not being backwards compatible, but throwing out old cruft, such as vimscript, "embed all the languages but unequally so you can never tell what plugins a system will support!", vi-compatible default mode, and put on some different defaults like syntax highlighting, etc.

I don't think I'll ever like vimscript... so maybe I should buy the book. :-)

<comment><USER3> yes vimscript is awful, and I wanted to share a way of dealing with it. Evil is an emacs package that "implements vim on top of emacs". By using that you basically exchange vimscript for elisp (At least I, just started 'using vim' and didn't have any problems). I'm not saying it will fit everybody, just that I didn't actually knew that the possibility existed - so I'm mentioning it.

</comment></comment><comment><USER4> I used his drafts extensively while he was writing it, and had built and epub from the files for my own use. The day I could throw some money at him, I did. If you've been using vim, have the modes and chords down, but would like to eek out some more power and customization, buy this book. It explains vimscript much better than any other resource I've read to date.

<comment><USER5> Part of the problem is vimscript itself. There is not too much external documentation about it.

btw i disagree with you a bit. The best resource to learn vimscript is the sources of popular vimscript plugins.

The next best thing is steve's book, which is brilliant.

</comment></comment><comment><USER6> The title implies there's an easy way

<comment><USER7> My thoughts exactly.

</comment></comment><comment><USER8> Where is the "learn vim the hard way" guide (which this cleary states it is not)? Doing a bazillion examples with random code manipulations might actually allow me to get over the learning hump and remember something of vim...

<comment><AUTHOR> vimtutor is pretty good, actually.

Outside of that, [http://yanpritzker.com/2011/12/16/learn-to-speak-vim- verbs-n...](http://yanpritzker.com/2011/12/16/learn-to-speak-vim-verbs-nouns- and-modifiers/) has a nice explanation of the editing worldview, which ties in with Steve's quote in [http://learnvimscriptthehardway.stevelosh.com/chapters/16.ht...](http://learnvimscriptthehardway.stevelosh.com/chapters/16.html), "The idea of operators and movements is one of the most important concepts in Vim, and it's one of the biggest reasons Vim is so efficient. We're going to practice defining new motions a bit more, because extending this powerful idea makes Vim even more powerful."

Check out [http://www.moolenaar.net/habits.html](http://www.moolenaar.net/habits.html), [http://stackoverflow.com/questions/1218390/what-is-your- most...](http://stackoverflow.com/questions/1218390/what-is-your-most- productive-shortcut-with-vim/1220118#1220118), and maybe [http://vimcasts.org/episodes/archive](http://vimcasts.org/episodes/archive)?

I've been using it for about a decade, so I think I've lost the beginner's mind to evaluate whether these are really the right entry points. Lots of people are passionate about vim, though; some googling should find you the exercises that will help you the most.

</comment></comment><comment><AUTHOR> To seed a comment, here are some VIM links I have enjoyed recently: [https://github.com/carlhuda/janus](https://github.com/carlhuda/janus) is an easy way to pick up some nice plugins. I found it overwhelming the first time I played with it, but I am back around to trying it again and liking it better this time.

A set of crazy tips that made me learn to love the g commands: [http://www.rayninfo.co.uk/vimtips.html](http://www.rayninfo.co.uk/vimtips.html)

I believe I went to that from [http://vim.wikia.com/wiki/Vim_Tips_Wiki](http://vim.wikia.com/wiki/Vim_Tips_Wiki), which isn't as fun to navigate as I would like it to be.

<comment><USER9> As tempting it is to not avoid janus, newcomers to vim should just stick with vanilla vim. If you just decide to install janus, you won't learn anything, you will have bunch of things installed that you will never use and it just is the wrong way of learning vim

If you want to actually learn vim, ditch janus and all the plugins when you start. Start by going to a shell and typing 'vimtutor'. That will get you started. Then build your own ~/.vimrc by scratch by adding some useful options such as:

set number

syntax on

filetype plugin indent on

For other options, you can search around the internet, particularily other people's dotfiles and see what they put in their own vimrc and you can freely take if you like what you see.

and then you can experiment with plugins. You will gain a much better understanding of how they work, what they do and you will be proud of yourself because it's your own personal vimrc and you know every single line that is in it.

<comment><AUTHOR> This seems to be the perpetual back-and-forth that shows up; I searched "site:ycombinator.com janus" before I posted the link, and you'll find this exact same line in history.

For myself, I knew core-vim pretty well, and was coming back to it after taking textmate and sublime text for a spin. Janus was a fast way to bolt on the IDE-alikes I liked from ST2. It was, indeed, too much on a first go, and I uninstalled it. I am back to it, though, and appreciate that it brought together the "big guns" like fugitive, nerdtree, syntastic, &c. as well as things I'm not sure I would have found, like Tim Pope's excellent unimpaired plugin.

Doing things like vimtutor is great for a newbie, but I don't think I care as much whether they have Janus installed or not while they do it.

<comment><USER10> Yes, this back-and-forth is perpetual because there's always someone who advertises Janus and there's always a need for someone else to actually say that Janus (like SPF13 and friends) is a piece of crap and that new users should never install it if they are serious about learning Vim.

<comment><AUTHOR> If you're going to take that point of view, I guess I'd like to hear more about why you think Janus is a piece of crap. I understand the POV of people who say that learning fundamentals is the place to start, rather than starting with the extensions, okay. But for someone who knows the editor but isn't that plugged in to the vimscript ecosystem, what's wrong with aggregating a number of useful and interesting plugins? I don't understand the vitriol.

I don't think I would have been as interested in reading this (interesting!) book if I hadn't seen the power of things like NERDTree and TagBar, and I wouldn't have seen those if I hadn't poked through Janus.

<comment><USER10> Janus and all the other distributions share the same issues so Janus is only one of many, and the most famous.

All those distributions started life as personal configurations. I honestly have no idea what happened that made their authors entertain the idea of turning them into so-called distributions but personal configs are what they are. Those configs are someone else's config: whatever is there may or may not fit your workflow or needs or cognitive capabilities or even physical ones. The plugins featured in those configs are chosen by complete strangers according to unknown criterias. The same goes with options and mappings.

When you use Janus, you basically are walking with someone else's shoes. You'll get used to it after a while but they will never be your shoes.

Do you really need Gundo? Gist? NrrwRgn? Do you really need to interact with Git from your text editor? Are you sure that SnipMate is the best choice for a snippet engine? Are you sure that SuperTab is the best choice for completion? Are you sure that you need NERDTree when you have netrw built-in? Are you absolutely certain that you need an Ack plugin? What do you think of a distribution that comes with two plugins with overlapping features and even provides custom mappings that overlap with both?

Another problem with distributions is that, due to their very nature, they have a crazy architecture with many .before and .after scripts and weird directory structures that make the whole thing hard to debug or customize. Not only you are walking with someone else's shoes but that someone is the only person able to fix them or tie your laces.

New users should steer away from Janus and friends because:

* those distributions actively hide many default features/options

* they teach you how to use CtrlP and not default commands

* they hook you to plugins

* they hook you to options you don't know shit about

* they force someone's preferences on your

* they actively prevent you from learning Vim

Experienced users should avoid them because:

* well, they already have their own config tailored to their needs so why bother using someone else's?

* they already know how to find plugins (vim.org)</comment></comment></comment></comment></comment></comment>


Python vs. Rust for Neural Networks - <AUTHOR> https://ngoldbaum.github.io/posts/python-vs-rust-nn/ <comment><USER2> Nobody writing NN in Python, they are just describing it.

For NN or DL in general, the correctness doesn't really lie too much on the code quality level, like ownership Rust people love to talk about. It is more about Numeric stability under/overflow and such. Choice of programming language offers limited help here.

I don't think Rust has a killer app for ML/DL community to offer as of now, the focus is vastly different.

<comment><USER3> I've had a few Rust lovers come and mention this project to me recently. None of them had any data science or ML experience. None of them knew that Python is just used to define the high level architecture.

At the same time, comparatively tedious languages like Rust will never attract data science practitioners. They don't care about the kind of safety it brings, they don't care about improving performance in a component that's idle 99% of the time.

The bulk of the load in an DL workflow is CUDA code and sits on the GPU. Even the intermediate libraries like cublas would only see marginal-to-none benefits of being reimplemented in rust.

This is a cool project, but it has no chance to displace or even complement Python in the data science space.

<comment><USER4> I am a data scientist and I care. The time when you could just do proof of concepts or a PowerPoint presentation is long behind us. So now we have to start to take it into production, which means we get the exact same problems as SE has always had.

Iff Rust helps us take it into production we will use it.

But it's a lot of land to cover to reach Pythons libraries so I'm not holding my breath.

That said, Pythons performance is slow even when shuffling to Numpy.

<comment><USER3> I must be missing something. Modern data science workloads involve fanning out data and code across dozens to hundreds of nodes.

The bottlenecks, in order, are: inter-node comms, gpu/compute, on-disk shuffling, serialisation, pipeline starvation, and finally the runtime.

Why worry about optimising the very top of the perf pyramid which will make the least difference? Why worry if you spent 1ms pushing data to numpy when that data just spent 2500ms on the wire? And why are you even pushing from python runtime to numpy instead of using arrow?

<comment><USER5> Good lord, hopefully latency isn't 2.5 seconds!

<comment><USER6> I can't even. How could you ever get 2500 msec on transit? That's like circling the globe ten times.

<comment><USER7> Maybe a bunch of SSL cert exchanges through some very low bandwidth connections? ;)

Still, it's more likely a figure used for exaggeration, for effect.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Neural network libraries (Tensorflow, Pytorch) have a C++ backend and a Python interface. Which is great - you get a performant compiled language as the backend and a flexible user-friendly language as the interface.

Rust vs Python is a weird question because in reality no one writes their own neural network with numpy, and no one expects Rust to act like an interpreted language suitable for data science workflows. It would be more apt to compare Rust and C++.

<comment><USER9> Yeah, this is the real point.

Python is an interface to C, C++, and FORTRAN for a lot of stuff. There are even crossover libs for running R.

This is like comparing apples and steaks.

<comment><USER10> "Fortran", since 1990 (FORTRAN refers to F77 :-)

</comment></comment></comment><comment><USER11> This seems to be comparing a hand implemented neural network in python (and numpy) and one in rust. Even in this simple case, the author discovers that in the python case, most of the time is spent in non-python linear algebra libraries.

Most of the major deep learning frameworks for python (tensorflow, keras, torch, mxnet, etc) will not normally be spending the majority of their time in python. Typically, the strategy is to use python to declare the overall structure of the net, and where to load data from, and then the actual heavy lifting will be done in optimized libraries written probably in C++ (or fortran, I seem to recall BLAS used fortran).

<comment><USER12> I think BLAS is a spec rather than one library. So your version may or may not be fortran. I do think the original "reference implementation" was written in fortran, which is sometimes called "The BLAS library" but I think most BLAS you see in the wild are not that.

<comment><USER13> Yes. BLAS was originally specified in Fortran. But many BLAS implementation (like cuBLAS, the CUDA/Nvidia version for GPU's) don't use Fortran at all.

</comment></comment></comment><comment><USER12> >> Is rust suitable for data science workflows? >> Right now I have to say that the answer is "not yet". I'll definitely reach for rust in the future when I need to write optimized low-level code with minimal dependencies. However using it as a full replacement for python or C++ will require a more stabilized and well-developed ecosystem of packages.

I'm not sure rust is really aiming to be something used for data science workflows. I'm not sure the community will be putting much effort into making this a reality.

<comment><USER14> Fine, but it seems reasonable for someone to check. It's much easier to make a decision about whether a programming language is what you want if you've got evidence from someone who has tried something similar to you, as opposed to just hearing people say "Language X is awesome because of unimaginably low- level (from my point of view) feature Y".

Rust seems great, to be honest, just not universally so. Nothing wrong with defining the boundaries.

</comment></comment><comment><USER15> Rust seems more suitable for implementing the next OpenBLAS.

While Julia's single language mantra is great, as long as things like Python exist, there will be a need for C/C++/Rust.

<comment><USER16> Yea, this whole discussion feels weird to me. Different use cases. I love Rust (and dislike Py lol), but from everything i hear a highly dynamic frontend (like Py) has little downsides to authors of ML/etc. All of the hotpaths are in other already because Python is so slow.

The only downside i've seen is _sometimes_ the programmer will want more safety. In such a scenario Rust for the "frontend" would be very useful.

So we have two concerns, frontend and backend. For the backend Rust would perfectly acceptable, but i'm not sure it is fixing a safety issue/etc in other (C/etc) languages - aka, perhaps little value in the backend. For the frontend it only has value in some areas.

Regardless, i love Rust and would totally welcome any tooling to keep me in Rust. However i'm not an ML person hah.

<comment><USER17> A dynamic language can be super frustrating to develop with because you have to keep tensor dimensions memorized in your head or in comments

<comment><USER15> How is à statically typed language going to help with tensor dimensions?

<comment><USER17> Named/typed axes checking - ie. I shouldn't be able to contract along two dimensions of different types (like batch dimension contracted with time dimension)

</comment></comment></comment></comment></comment><comment><USER18> "The first step here was to figure out how to load the data. That ended up being fiddly enough that I decided to break that off into its own post." this is exactly why we have R and pandas!! Julia is doing an increasingly excellent job of it as well.

</comment><comment><USER19> It's going to be tough to beat Numpy, Cython and Numba on speed with Rust.

And this kind of workload really isn't the problem Rust wants to solve.

</comment><comment><USER20> vs C++-14 ? Indeed most DL is in fact C++. The Pytorch recent C++ API is a must. As professionals in this industry, my colleagues and I have switched to full C++. I'd be interested in advantages of Rust vs C++ instead of Python (which truely in terms of performances is C in the background).

</comment><comment><USER21> Nice to see, a Julia implementation should be fun to do, but the point of the article is true:when you work with linear algebra, most of the time is spent in BLAS.

</comment><comment><USER22> I'm a newbie in NN topic and feel surprised to hear that noone uses Numpy in actual NN implementations, although it's written in C++ and highly optimized. Why is that ?

And, how about Gonum (Go equivalent) ?

Finally, I'm currently going through the deeplearning.ai program. I got one week left, and will experiment with building some apps. Which technical stack should I choose ?

<comment><USER23> Most software (including Python and Numpy and Go and pretty much every Rust program) runs on your computer's CPU. The CPU is good at running programs with a lot of different instructions and if-statements and loops and stuff.

But for neural networks, people often prefer to use special hardware like graphics cards, since graphics cards are really good at doing relatively simple math on many pieces of data at once. So they create special libraries like TensorFlow that can send commands to the graphics card instead of doing the math on the CPU. (And they don't use Numpy because even though it's highly optimized, it's highly optimized _for CPUs_ , and graphics cards are a lot faster than CPUs at running neural networks.)

</comment></comment><comment><USER24> In the end, hypothetical future good Rust libraries for linear algebra will just be turned into Python extensions and embraced into the mainstream.

They'll also, equally well, serve the needs of Rust programs which need serious number crunching (presumably a small niche); there is no "versus" in the comparison.

</comment><comment><USER25> I think it's quite impressive actually that someone can pick up Rust and manage to out-perform Numpy in their first project. BLAS implementations are decades-long exercises in optimization.

In my own experience, Rust has been excellent for the more boring side of data science - churning through TBs of input data.

<comment><USER11> > I think it's quite impressive actually that someone can pick up Rust and > manage to out-perform Numpy in their first project.

They didn't. At the end of the article they discuss this.

"In fact it's worse than that. One of the exercises in the book is to rewrite the Python code to use vectorized matrix multiplication. In this approach the backpropagation for all of the samples in each mini-batch happens in a single set of vectorized matrix multiplication operations. This requires the ability to matrix multiplication between 3D and 2D arrays. Since each matrix multiplication operation happens using a larger amount of data than the non- vectorized case, OpenBLAS is able to more efficiently occupy CPU caches and registers, ultimately better using the available CPU resources on my laptop. The rewritten Python version ends up faster than the Rust version, again by a factor of two or so."

The original python code was written to be easily understood; not performant. Shifting more of the work to the libraries improved the performance.

<comment><USER26> That is a different algorithm, though, right? They didn't rewrite the rust code to use matrix multiplication, so it's no longer a direct comparison, and is instead comparing unoptimized rust with a less efficient algorithm to super optimized C++ with a more efficient algorithm (being called from python).

In which case, IMO, it's fairly surprising that the rust implementation is _only_ 2x slower.

</comment></comment></comment><comment><USER27> This approach I think is missing the point. You will write highly optimized libraries in Rust, and then use those in Python.

This is why Python has eaten the world. Not because its the best at any one thing, except bringing all those things together - at which it is unparalleled, and is unlikely to be surpassed anytime soon.

numpy, scipy, pandas, tensorflow all those have very little actual Python code, its c++ and even fortran here and there.

This whole Python vs Bla thing is just silly nonsense. I know Python and some Bla, and so should you. Tonight someone will release SuperFantasticNewThing implemented in Bla, tomorrow someone else will wrap that in Python, and tomorrow night the rest of us will use PySuperFantasticNewThing, and that's exactly how it should be.

<comment><USER28> I think you're being unnecessarily dismissive of discussions surrounding python's fitness, and I find your remark "that's exactly how it should be" confusing.

Python is an ok interface language, in that it's script-like, dynamically typed and simple to comprehend. It's popular, which makes on-boarding efficient due to the sheer volume of tutorials online. And, it has built up a large ecosystem, because of the last two points.

That said, it's naive to suppose that python is the currently-ideal or future- ideal interface language. It's just ok, plus it's popular.

<comment><USER29> Yes exactly: Python is dominant at the moment, because it has a head start, but it's not because Python is uniquely suited to the problem by any means.

This is the same logic one might have used to conclude that the LAMP stack would be dominant forever in web development if you took a snapshot of the world in 2004.

</comment></comment></comment><comment><USER30> I could see how Rust could be a good option for writing the prediction server. In my use case, DL models are trained offline. It does not matter if it's faster by 30 mins in training (maybe when I R&D-ing).

On the other hand, you typically have to reach for something like c++ for a low latency, high thruput environment. It can be a bear to write a server. Anything more ergonomic would be welcome

</comment><comment><USER31> They already have a language to blow python out of the water in ML and it's called Julia.

</comment><comment><USER32> [https://medium.com/@konchunas/transpiling-python-to- rust-766...](https://medium.com/@konchunas/transpiling-python-to- rust-766459b6ab8f)

Its possible to transpile. But the tech is not mature yet

</comment><comment><USER33> I dont think, rust is competing with python in a similar space. The biggest win for Rust would be to have someone in the community rewrite Cython in Rust and get rid of GIL. Its a win-win for everyone.

</comment><comment><USER34> Given work Chris Lattner is doing with Swift it has better chance of becoming a contender in this space vs Rust.

</comment><comment><USER35> Rust isn't going to be used until it has better CUDA support.

</comment><comment><USER36> tldr: The bottleneck is in the linear algebra libraries. Unoptimized Rust is 2x faster than unoptimized Python. Optimized Python is 2x faster than unoptimized Rust because it can vectorize matrix multiplications, but Rust can't.

My takeaway: stick to a GPU where everything is more parallel.

</comment><comment><USER37> tldr "Right now I have to say that the answer is "not yet". I'll definitely reach for rust in the future when I need to write optimized low-level code with minimal dependencies. However using it as a full replacement for python or C++ will require a more stabilized and well-developed ecosystem of packages."</comment>


Subversion clients can now write to GitHub - <AUTHOR> http://github.com/blog/644-subversion-write-support

<comment><USER2> _Because of the way SVN expects on-server merges, you may see some strange looking merge history when working with someone using Subversion._

I'm genuinely curious: what use case justifies this? Correct and clean merges and history are a major selling point of Git. Is this for people on Git-using projects who can't be bothered to learn a new VCS?

<comment><USER3> Yes. The use case is for organizations who have a lot of developers, some of whom want to (or demand to) continue using Subversion for their VCS needs. This can include people who don't really want to use VCS at all, but have become comfortable with some tool like TortoiseSVN or the like. We would obviously prefer everyone use Git, but we want to provide a bridge to help teams get there.

Also, you still have correct and clean merges, but since it's somewhat difficult for me to figure out what your last base version was when an svn client commits, it uses the latest version number of any submitted file as one parent and the current head as the other for anything that needs to merge, so the history may have more parents in it than are strictly necessary. If the merge does not happen cleanly, the server will reject the merge and you have to update and fix locally, like normal SVN. However, since the concept is new, I wanted to leave as much information in the Git history as possible, thus the extra parentage information.

<comment><USER4> Great stuff. I know of many people who look at the GitHub community and UX with great envy but have feared to make the plunge because let's face it, there's just no killer GUI clients for Git yet. Having Subversion support is the gateway drug for those folks. Looking forward to see how this evolves. Congrats!

<comment><USER5> I was looking for the killer GUI for a while and then I found Git X which filled the gap for me.

<http://gitx.frim.nl/seeit.html>

There is also an interesting fork which I have yet to try:

<http://brotherbard.com/blog/2010/03/experimental-gitx-fork/>

<comment><USER4> I use that as well but doesn't come close to Cornerstone or Versions for OS X.

</comment></comment></comment></comment></comment><comment><USER6> Now if only they added a possibility to clone a repository from GitHub to BitBucket (or the other way around) via the web interface, that would be just perfect...

<comment><USER7> Or you could just use this: <http://hg-git.github.com>

Not quite the same, I know, but the best thing if you want to use a combination of hg and github.

<comment><USER6> Yeah - but I meant something easier to use... Like registering on both services and having a choice of "fork on github" and "fork on bitbucket" on every project (and on both services).

</comment></comment></comment><comment><USER8> What? I thought that was an April Fools joke.

</comment><comment><USER9> What's next? iPad running flash?</comment>


Alexa and Cortana now work together - <AUTHOR> https://www.nytimes.com/2017/08/30/technology/amazon-alexa-microsoft-cortana.html <comment><USER2> Alexa, please ask Cortana to ask Alexa this exact same question.

<comment><USER3> Yes... this is super painful and kills the potential for most things outside the basic Alexa functions

</comment></comment><comment><USER4> Sounds great that it benefits end users. But what's the end goal? Like, I understand the point of cross selling so that you keep your users sticky doing more things on the platform, but Amazon/Microsoft won't be happy as 'Yet another Assistant', they want to have the monopoly and at some point, they will have to fight each other.

<comment><USER5> Simple way to do that is to fight together to kill the 3rd. Then worry about 1 and 2.

</comment></comment><comment><USER6> The description of the "Alexa, Open Cortana" or "Cortana, open Alexa" voice commands as "awkward" makes it sound like this evolve over time.

Funny thought: isn't this how the plot for the movie "Her" goes? <spoiler>All of the AIs join together.</spoiler>

</comment><comment><USER7> On a sidenote, interestingly enough since I installed the iOS 11 beta, I haven't used my echo dot nearly as much.

Hey Siri, do this works well enough and is a little more practical since I always have my phone. She can do a lot of the same basic stuff like turn on lights, etc.

Bonus she can play songs from apple music.

</comment><comment><USER8> Seriously? Do people actually use it besides check weather?

<comment><USER9> I have 5 of them. Use them to monitor all my security cameras (with the Show), play music, control lights, my FireTV, listen to audible books, the news, build shopping lists, leave messages for my kid, etc. Essentially it has slipped into our lives.

Disclosure: Work at Amazon but am mostly just an Alexa fan.

<comment><USER10> How do you get time to do all that from home? Do you work from home?

<comment><USER11> Not sure if that's a serious question or not, but it probably looks like this:

Wake up, Ask Alexa for the news, Alexa turn on lights and TV. Cook breakfast, set timer using Alexa. Leave message for kids.

Go to work for x hours.

Come home, Alexa news, alexa audio book, cook dinner, add low items to shopping list, doorbell rings, Alexa check security camera. Sit down to eat dinner, Alexa play Spotify. Alexa turn off the lights. Alexa wake me up at 6:30.

<comment><USER9> Pretty much! And I am not the only person in the house

</comment></comment></comment></comment></comment><comment><USER12> Has nobody watched Colossus, the Forbid Project?

This can't end well...

</comment><comment><USER13> Are they have plan to integrate skype ?</comment>


Anyone looking for an intern?? - <AUTHOR>

I'm a senior in computer science at Oregon State University. I'm looking for a internship to improve my skills and also bring my creative, outside the box thinking to a fast growing company. I enjoy linux development and probably know more languages then C3PO. I'm a hard worker and im looking for the opportunity to prove myself to the software world.<p>Thank you, Kiel <comment><USER2> StartupFriends.com is.. email firstname.lastname@example.com for details if interested.</comment>


YouTube announces ad-free version for a monthly fee - <AUTHOR> Just got this email:
Dear YouTube Partner,
Your fans want choices. Not only do they want to watch what they want, whenever they want, anywhere and on any device they choose, they want YouTube features built specifically with their needs in mind. Over the past several months, we've taken bold new steps to bring these experiences to life. Since inviting hundreds of thousands of fans into our YouTube Music Key Beta, we've seen tremendous engagement. And we've seen an equally enthusiastic response for our new YouTube Kids app, designed to give families a simpler and safer video-viewing experience – it's already crossed 2 million installations in less than a month.
We're excited to build on this momentum by taking another big step in favour of choice: offering fans an ad-free version of YouTube for a monthly fee. By creating a new paid offering, we'll generate a new source of revenue that will supplement your fast growing advertising revenue.
So what's next?
Launching a new paid offering will require us to update your terms through your Creator Studio Dashboard – a process that should feel familiar to anyone who went through a similar process three years ago when we began distributing and monetizing your content on mobile devices. Today, mobile represents over half of all watchtime and mobile revenue has increased by 200% in the last year. Just as with mobile, we're confident that this latest contract update will excite your fans and generate a previously untapped, additional source of revenue for you. Please look out for our notification, review it and let us know your thoughts.
It's an exciting year for YouTube, as we push ourselves into uncharted territories. But we continue to be guided by a desire to deliver the choices fans want and the revenue you need. By working closely with you, we know it'll be a successful journey.
The YouTube Team <comment><USER2> Will be huge for YouTube Kids and the like - I doubt many parents appreciate their children being exposed to advertising in that way.

<comment><USER3> Absolutely - as much as I wish she wasn't, our toddler is currently hooked on the equivalent of 'unboxing' vids on YT ('surprise eggs', if you're curious). We limit her time watching, of course, but I still have to keep an ear open for ads kicking in. I'd certainly pay.

</comment></comment><comment><USER4> Why don't more online sites offer this? I have always hated ads with a vengeance and have wanted this kind of option for any website I visit. There are many websites I use every day that I would gladly pay a small monthly fee to visit without ads, so why is such an option so uncommon that places like Hulu ask for money and continue WITH ads?

<comment><USER5> It's easy to paste in a block of code to insert ads. Accepting payments, tracking them on user accounts, and hiding those ads is obviously a little more complicated.

If Google Contribute ([https://www.google.com/contributor/welcome/](https://www.google.com/contributor/welcome/)) doesn't pull a Google and remain invite only until death, it'll simplify the process and we might see this become a more common approach.

I really don't like the idea of every site attempting to roll out their own solution. It would be nice to have a system to manage subscriptions across a variety of websites. I log-in, and I can see all the sites I'm subscribed to at the moment. I can then toggle individual sites on or off with the push of a button, or I can change payment plans for individual sites (if I switch to the HN $2/mo plan, my username appears in blue). Sites could then query the payment info using some kind of API and user tokens, to see what user is currently subscribed to what plan.

</comment></comment><comment><USER6> One has to wonder if this will lead to a more aggressive policy of preventing ad-blocking users from viewing content without paying up. Several streaming websites already require you to disable your ad-blocker before they will stream content, it seems likely that youtube will follow in suit once they have implemented this method to remove ads.

</comment><comment><USER7> It's about damn time. I hope the pricing will be reasonable, and that it will also remove all those "recommended for you" videos... Though, that sounds very unlikely.

</comment><comment><USER8> Does this mean I can block all the annotations? (As I typed this it hit me that I hadn't even checked if that was possible from the settings)

<comment><USER9> You can do that without any subscription in the settings.

Source: I found out yesterday when trying to figure out if it was possible to make YouTube not choose 4K video by default. Something that you cannot do.

</comment></comment><comment><USER10> If this goes through, I'll be super-excited. I don't want my kids on ads. I don't want me on ads either.

</comment><comment><USER11> So, the ad market is drying up. This is a thing we know. It seems pretty obvious, even predictable, that Google would need to figure out how to transition as many people as possible to paid customers before that market becomes unsustainable. Someday, YouTube ads will just be a way to annoy you into paying up.

<comment><USER12> Who are the "we" who kows this? According to their latest quarterly report, YouTube revenues are up more than 50% YoY, so "knowing" the opposite implies you have access to some serious insider information.

What's obvious to me is that ad revenue can't pay for top-tier content, which still prefers traditional distribution channels, and that YouTube wants to move upmarket.

</comment></comment><comment><USER13> Hopefully this doesn't turn into a revenue sharing deal like spotify.

</comment><comment><USER14> dang. i spend an inordinate amount of time on youtube. i'd spend even more time there if they didn't poison my experience so often with all the damned ads.

i am all for this. take my money, youtube.

<comment><USER15> Get an ad-blocker...

<comment><USER16> This, or download your videos with youtube-dl.</comment></comment></comment>


Show HN: Automatic download hasher and checker - <AUTHOR> https://bitbucket.org/dbenamy/valium

<comment><AUTHOR> Hey all,

I'm the creator of Valium. I'll hang around for a bit to answer questions and read feedback. Thanks for checking it out and for any constructive feedback :-)

Dan</comment>


Does HN "sponsor" YC content? - <AUTHOR> Just saw a post about TripleByte's (YC-backed company) latest funding round, with no comments or voting buttons. Is this a form of "sponsored" content added by the moderators? If so, it would be interesting to know how it's ranked alongside organic content. Maybe a little "more info" button next to the post could point to an FAQ explaining why there's no commenting on that post.
For the record, I think YC has every right to use the platform in this way. I do feel that being transparent about this use would be beneficial in maintaining the faith and respect of the excellent community here.
By disabling voting and comments on this post, the moderators/developers have deliberately made sponsored content distinguishable from organic. That's a good step towards transparency, but some kind of official acknowledgement would be even better. Perhaps such a thing already exists and I'm simply unaware.
screenshot: https://imgur.com/a/tNR4N <comment><USER2> It's a job ad for a YC company. Check the HN FAQ: [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)</comment>


Reverse Engineering a Schematic from a Circuit Board - <AUTHOR> http://www.instructables.com/id/How-to-reverse-engineer-a-schematic-from-a-circuit/

<comment><USER2> I found most circuits are based on generic engineering designs. Note the chip numbers, get datasheets, and draw a basic block diagram. From that, draw up a mock diagram that could work, then reference the board for the details and make changes. The result is fairly accurate.

</comment><comment><USER3> Yep, pretty much a waste of time on 4+ layer boards

<comment><USER4> So true.

I'd argue it's probably a waste of time on greater than 2 layer boards myself (having had the pleasure of doing this on a Telequipment D83 scope amp module) unless you want to boil them and get the laminated layers out and then don't even ask about vias.

What is even more of a pain about doing this is that on traces that carry high frequencies, intentional parasitic inductances and capacitances are sometimes designed into the board and there is no way on hell you're going to reverse engineer them.

If this is for reverse engineering and repair, it's best just to "replace at the border" i.e. replace the controller assembly with something electrically compatible much as they did when they went from relay logic to PLCs back in the 70s and 80s.

<comment><USER3> I think the pros use x-ray

<comment><USER4> You'd think so but they don't see through ground planes.</comment></comment></comment></comment>


Solving 2D equations using color [video] - <AUTHOR> https://youtube.com/watch?v=b7FxPsqfkOY? <comment><USER2> If you want to play with the winding number proof of the fundamental theorem of algebra, here's a toy I made a while back to help my linear algebra students (hopefully) gain some intuition for complex numbers: [https://math.berkeley.edu/~kmill/toys/roots/roots.html](https://math.berkeley.edu/~kmill/toys/roots/roots.html)

If you want to play with a wider palette of complex functions as well as domain coloring of the Riemann sphere, there is also [https://math.berkeley.edu/~kmill/toys/zgraph/zgraph.html](https://math.berkeley.edu/~kmill/toys/zgraph/zgraph.html)

Documentation for each of them is the "Help" link in their respective upper right corners.

One thing I think would be amusing is to be able to change the texture used for the domain coloring, from the contoured rainbow to say a cat.

</comment><comment><USER3> 3Blue1Brown @11:40: "Being wrong is a regular part of doing math. We had a hypothesis and it led us to this algorithm but we were mistaken somewhere. Being good at math is not about being right the first time. It's about the resilience to carefully look back and understand the mistakes and understand how to fix them."

<comment><USER4> This is essentially how I feel also about Computer Science: resilience is the best quality that an aspiring mathematician can possess!

</comment></comment><comment><USER5> 3Blue1Brown is one of my favorite youtubers. It is a nice format that is inbetween "explain it to me like I'm 5" and an open courseware. Grant tends to give enough information to become familiar enough with a subject that you can do good research on your own.

Their podcast is also great, Ben Ben Blue. Which has Ben Eater, another great Youtuber.

</comment><comment><USER6> This is nice and pretty, but it still requires evaluating the function in infinitely many points. Is there an easy fix for that?

<comment><USER2> 1\. If you can calculate rough bounds for the terms and their derivatives in the winding number integral, you can figure out how densely you need to sample the curve to calculate the integral exactly.

2\. If the winding number is zero, there still might be a root in the region because poles and zeros contribute opposite winding number, and they might exactly cancel.

3\. Polynomials are great because the bounds are easy to compute and because you don't have to worry about cancelation since the only pole is at infinity.</comment></comment>


Ask YC: All known sources of seed-stage funding, incubation, etc. for web startups? - <AUTHOR>

There's Y Combinator, obviously.  LaunchBox, TechStars, Garage, Highland Capital Partners, SeedCamp, DreamIt Ventures, Bootup Labs, and BoostPhase.<p>What else is out there?  Note that I'm not looking specifically for YC clones...any source of seed-stage funding (for web startups) is fine. <comment><USER2> Not exactly an answer to your question, but we started keeping track of every funding source that we'd heard of or have contact to in our intranet wiki. After a couple months of just keeping your ears open and taking notes you end up with a pretty long list.

That said, just repeating our list wouldn't do you a lot of good; usually you're looking for people that are either in your area or that you have at least some distant connection to. Think you don't have connections? Yeah, so did we. Then we started paying closer attention over a period of time and realized we had quite a few.

</comment><comment><USER3> I'm sure the biggest source of seed-stage funding is still individual angels.

</comment><comment><USER4> [http://www.prnewsnow.com/PR%20News%20Releases/Technology/Tec...](http://www.prnewsnow.com/PR%20News%20Releases/Technology/Tech%20Computer/IllinoisVENTURES%20Partners%20with%20Mozilla%20Labs%20to%20Expand%20IVentures10%20Program)

</comment><comment><USER5> CRV Quickstart

Lightspeed Summer Grants

IW AlphaLab

Also the Plug and Play Tech Center, they are the only true incubator around.

</comment><comment><USER6> <http://hitforge.com>

</comment><comment><USER7> any good ones in Dallas? I've heard of StarTech, but they seem a little different than these type of seed funds.</comment>


The State of Web Development 2010 - <AUTHOR> http://www.webdirections.org/sotw10/

<comment><USER3> I love graphs and charts as much as the next person but I couldn't find where I would have been able to take the survey if I had known about it before hand, 1402 respondents seems low.

</comment><comment><USER4> I'm surprised to see CodeIgniter up there. I never got the impression it was picking up in popularity.

<comment><USER5> Based on the fact that CodeIgniter is up there, I think we can assume that this survey is oversampling PHP developers. The post doesn't say much about their methodology for distributing surveys, but I'm guessing not too many landed at the financial (web) software firm my friend works at - <USER2> developers strong, all working in .NET. My impression of bias is further strengthened by the numbers working in OS X. While I believe that more than 50% of PHP/Ruby on Rails developers are using Macs, I don't think that number will hold up when Java and .NET devs are included.

Or maybe it will. Who knows? Point is, unless they share their data collection methodology, this survey could just as likely be representative of the 1,400 folks who follow web directions on twitter.

</comment></comment><comment><USER6> 55.11% were using JavaScript as a /back-end/ language in 2008? I find that highly suspect.

<comment><USER7> _In the tables and charts below, the aberation of JavaScript appearing as a language used by 55% of respondents in 2008, and only 7% this survey can be put down to confusion in the wording of the question last year. Clearly, many respondents thought the question applied to all languages they use, not just those on the back end. We ensured this mistake was not repeated this year._

</comment></comment><comment><USER8> Is the Android web browser really called "Android"? I thought it was Mobile Chrome, but I admit now that I look at it that the "Chrome" name doesn't appear in Android.

<comment><USER9> The whole "mobile browser" thing seemed odd. Mobile Safari, Mobile Chrome, RIM's future browser, etc. - they're running on webkit, and that what matters.

<comment><USER10> The problem is, not all WebKit browsers on mobile are exactly the same: <http://www.quirksmode.org/webkit.html></comment></comment></comment>


The Illustrated Transformer – A Visual Explanation for Attention Is All You Need - <AUTHOR> https://jalammar.github.io/illustrated-transformer/ <comment><USER2> Great introductory visualization as always.</comment>


The State of the Jenkins Project - <AUTHOR> http://jenkins-ci.org/content/state-jenkins-project <comment><USER2> It looks like the Jenkins guys are really doing what they can to make the best out of the namechange/backstory, and I'd say it's working. I'm a Perl 5 developer and haven't had anything to do with Java at all for a long, long time, and never had heard of Hudson. But now I know what they provide, and since I see Jenkins' name mentioned regularly in non-Java projects these days, I seem not to be the only one.

So, more power to them. I always like it when open source communities can show their strengths and have it noticed.</comment>