The Problem with Full Stack - <AUTHOR> http://www.heydonworks.com/article/reluctant-gatekeeping-the-problem-with-full-stack <comment><USER2> > "We need to address the undervaluing of HTML and CSS for what it is: gender > bias."

And with that, an interesting article, putting forth an already controversial proposition, lost any hope of rising above a comment flame war.

<comment><USER3> I think one of the comments on the article summed it up pretty well.

> I think I disagree with half that statement. I agree that HTML is > undervalued, but I've never seen that as gender bias along that line. [...] > I think it's an issue of, "declarative languages simply can't be hard"

</comment></comment><comment><USER4> IMHO it's a huge misconception that full-stack dev has to always equal a one- man band. Yup, if you're building small sites as a freelancer you probably do everything alone, but on any bigger projects you'll have a team - and there full-stack is simply a player who can play more than one position good enough. You have that in sports too, e.g. in basketball that might be a player who plays mainly a wing but can double as a playmaker. In programming it's say a node dev who can jump in before a big presentation and help out the react team to finish the project faster. You can move between positions, you can communicate with different teams on an equal level, you can understand the wider picture because you know their work and that is good for the team.

Another misconception is that full-stack dev has to be a wizard in everything to be helpful - no, you just need to be good enough to get the job done and be a useful member of the team, just like everybody else. If you're a wizard great, but I'd trade a wizard for two responsible and capable average seniors anytime.

</comment><comment><USER5> "CSS, which makes things look 'pretty', is considered feminine"

What an absurd statement. In my entire professional career and in my entire time reading tons of great discussions about CSS on HN, I've never seen anyone say anything like this.

Please try to find anything remotely resembling this attitude in this recent post, for example: [https://news.ycombinator.com/item?id=18753358](https://news.ycombinator.com/item?id=18753358)

</comment><comment><USER6> Full-stack is what you get when you can't afford to have team members specialize. Of course you won't get the same quality with one guy doing the work of three. Or with three guys with exactly the same skill set rather than three specialists with overlapping specialties. I don't know why people seem to think this is even worth mentioning.

But we really shouldn't look a gift horse in the mouth. If you look at the stratification of specialization other fields have you wouldn't wish it on yourselves. 500 mid-sized arenas compete for the attention of 5 highly-skilled sound engineering specialists and the 50 other guys knocking at the door can't get jobs. If one of those guys makes a career-ending mistake, his career is well and truly _over_ , no arena is hiring him again.

Great for the 1%, horrible for the 99%. The fungibility of software talents works as much in our favor as it does for businesses. I personally don't mind working across the entire web stack, but ask me to switch frameworks and you'll be looking for someone else soon.

</comment><comment><USER7> I don't particularly believe in full stack (a team with some specialists should be better than a team without any), but plenty of us have to be and maybe aren't as entirely terrible at it as is stereotyped in the article.

Though I also think the author fails to appreciate business trade-offs that are involved in some of what's complained about, particularly in environments that need to use full-stack developers. Perhaps it's not ideal, but doing perfect "beautiful" CSS/html is often not the thing with the greatest marginal benefit, particularly with time considerations involved. And the places that need this kind of developer don't feel that they need the quality of output that would come with larger, more specialized teams, or can't afford it.

(Though I also don't believe that anywhere with more than a half dozen or so developers is avoiding appropriate specializations.)

</comment><comment><USER8> I don't like the general premise of this. Cooking dinner, driving a car, paying taxes, and doing laundry are all VASTLY different tasks. Yet we can trust most able-bodied adults to do these things without much trouble. Just because tasks are different, doesn't mean they require a specialized human to do them. Humans are quite capable of being competent in many areas.

Hyper-specialization, while probably useful at Google, NASA, and Honda, is just not something I think most business software needs.

<comment><USER9> Sure, I can do all of those things.

But I have no competitive advantage doing them. Any time I spend driving the car (O($10)/hour job) is time I'm not spending developing software (O($100)/hour job).

The counter argument to that could be that if I don't enjoy some Dev/Ops task, I'm more likely to automate it away, so maybe it is good to have devs doing tasks they don't care for.

<comment><USER4> But if you combine the right skills it can be a huge advantage. The money is in the cross-sections of your expertise, that's niche where you rule. Say a translator with an inside knowledge of a particular industry is worth her weight in gold, ask anyone who had to deal with the technical translations done by non-technical people.

</comment></comment></comment><comment><USER10> First, there is no guarantee that a backend and frontend developer together perform better than 1 full stack developer. It really depends on who's doing the job. I'm a full stack JS developer, and yes I can do pretty awesome CSS if needed, or is that considered to be impossible?

Btw, how would the author go about building a nodejs SSR React application? 1 backend, 1 frontend and 1 HTML/CSS guru? I've actually never seen that, even in large companies.

I see there is some frustration about CSS in JS while writing in object notation is not any more difficult than CSS or SCSS, my 12 year old daughter would learn that in a snap. I can imagine it is frustrating for people that are good in HTML and CSS that there is not much work if you cannot actually code, but that doesn't mean there is a problem with full stack.

</comment><comment><USER11> I don't see anyone saying CSS is sexist except people like this, propagating it from an imaginary world where no quotes or references from significant industry figures are made.

I've worked with more women who were doing systems, back-end, or app work than front-end, and I'm a front-end web developer.

I'm wary of people who make everything political without looking at root causes, which this article is a fruit of said tree.

</comment><comment><USER12> The thing is, considering the current state of web development, "front- end/back-end/full stack" labels just don't hold up. Knowing cache strategies, all the subtleties of consuming full blown services, orchestrating computing distribution, etc. used to be deemed "back-end" because the webserver did it. Now with service workers, background workers, fetch api, indexedb and many new browser apis and frameworks, you can run all that in a browser. Does that make it in fact "front-end stuff" ? And all the complex tooling to set to do efficient SSR/code splitting, with all this transpiling and bundling, forcing you to understand http, resource and module loading, file system, componentized architecture... Is it more "backendy"? I recently interviewed for a "full stack" job, first thing I did was asking what they imagined the daily tasks to be. Turned out, it was mostly about dealing with stuff involving data and request flow orchestration spanning on both services and browser, and wiring up some react components to handle the data flow / rendering. The "UI" components are handled by a team of specialists in UI/UX/semantics/accessibility/animation... So what should the job be called ? Client-server app developer? Glue developer? Backend guy who knows the browser as an app platform? Developer of all the stuff you can't see on screen? I've seen other companies using "full stack" for other meanings. "UI guy who knows how to deploy", "service guy who knows enough to diagnose and patch the front when UI guy has higher priorities", "guy who make templates render data", "guy who will be able to perform maintenance tasks accross all the layers while specialists handle the features"... So for me, the true problem is that we are collectively bad at describing what we do, and give to non-tech people some umbrella terms that spread more confusion.

<comment> em-bee indeed.

a decade or so ago, we had designers who did html and css, and back-end developers who nudged the html into templates and did all the rest.

i used to be a classic back-end developer.

nowadays i am happy to code front-end, because my work hasn't really changed, it's just that many things that i used to do in the back-end are now done in the browser. i am still working with designers who do html and css, and i am still nudging the html into templates.

the one reason i don't like working with css is because most decisions to be made around it are design decisions, which, not having any experience in design are decisions i feel unqualified to make so i dread making them.

</comment></comment><comment><USER13> In the 1990's, being "full stack" in web development wasn't that hard: HTML 3.2/4.0, the first release of CSS, some modicum of JavaScript and jQuery, Apache and CGI or PHP, and the database, which was probably the biggest surface area of all. If you hired someone to build a web application, it was entirely reasonable that they would be able to do that.

Fast forward to today and you can complicate that stack beyond belief. Meanwhile the business side says, "I could hire a full stack developer to build a web app twenty years ago. Why can't I do it now?" It's an entirely reasonable assumption on their part that somehow saying that's not reasonable anymore is prevarication and trying to hide the fact that we screwed up.

It's interesting trying to make the case that we haven't. Off the top of my head:

\- We added accessibility, which makes it possible to comply with the Americans with Disabilities Act or comparable legislation elsewhere. \- We know that faster interaction improves conversion rates, so we can make a case for at least some of the JavaScript to speed up a user's interaction. \- Video and images can have better conversion rates than just text, but that can adversely interact with the last point, so we have to work around that.

So the web accessibility guidelines and semantic content, form validation on the fly and any other interactions that can be done within page that would otherwise require a page load (imagine if commenting on Facebook required a submit button and a page reload), and image sets and HTML 5 video.

What else can we justify this way?

</comment><comment><USER14> I used to be fully convinced around 2010-2013 that full-stack was the way to go. I've since then become much less convinced. All aspects have become more complex. Back then you need to know CSS, HTML and jQuery and the front end was under control (at least if you knew how to deal with some of the browser weirdnesses). On the back end you frequently had a monolith Rails server. Now on the front end you frequently have a single page app where JS is much more integral and comes with its own range of frameworks and it's own pipelines that seem to change every few years. On the back you now likely will have a bunch of micro services that want to be orchestrated. Not sure if the world needs to be more complicated, but it certainly often times is.

<comment><USER15> You could just ignore the JS churn and stick with enough jQuery to be useful. Most SPA apps don't need to be SPA. Backends don't need to be micro services.

</comment></comment><comment><USER16> I had in mind a similar argument when I wrote "The problem with HTML". An excerpt:

" _I spent 1995 learning HTML and putting together simple websites. I was thinking this is something I'd like to do professionally. In 1996 my father and I went to a demo in New York City, where Adobe was introducing PageMill, their Web page creation software. My father was impressed. My dad wasn't in the tech industry, but he was pretty smart about technology trends. He said, "Anyone who knows HTML just lost their job. This will replace the need to know any of the underlying technologies." But that turned out to be wrong. Even now, in 2017, most companies building Web software still rely on individuals to hand-write their frontend code. Indeed, from the point of view of business productivity, everything has been going in the wrong direction. This category of software, creating Web pages, was eventually taken over Dreamweaver. The software came from Macromedia which was later bought by Adobe. In many ways, Dreamweaver is a great piece of software. It makes it easy for beginners to get started, and it let's them do some sophisticated things. But it ran into some limits. Many of the limits have to do with HTML, and the fact that HTML is extremely fragile in regards to the how elements are placed on a page._ "

[http://www.smashcompany.com/technology/the-problem-with- html](http://www.smashcompany.com/technology/the-problem-with-html)

I agree there is an element of gender bias here. People working with Dreamweaver were graphic designers who were more likely to be women than the current situation with React developers.

The right path forward, for the tech industry, is to have a technology that is actually meant to improve productivity for graphic designers, empowering them with more of the production process. And for us to get there, it is important that we get rid of HTML. As I said in the previous essay:

" _The problem isn't with Dreamweaver, the problem is with HTML. It was originally meant to be a markup language for describing the structure of a document, but it later became the language people used to build graphical interfaces for most apps going over TCP /IP. Markup languages are a terrible choice for graphical interfaces. As much as possible, when creating a graphical interface, you want to use a declarative system. Ideally, a declarative configuration file can specify your entire graphical interface. The entire tech industry is largely in agreement on this. Consider that Quark Express and Adobe InDesign do not use markup languages, internally, to specify the graphical layout of the documents that they create. Also consider that before Oracle bought Sun and killed JavaFX, JavaFX was going in a very exciting direction, with a highly declarative system for specifying graphical interfaces. Also consider that every web framework ever invented has systems for specifying a graphical interface in a declarative format. If you have used Ruby On Rails or Symfony (PHP) or Grails (Groovy) or nearly any other Web framework, you are aware that you can build a lot of the graphical interface by specifying configuration data in a YAML file. But you are probably also aware that all of these systems fail at some point, and they fail because of the limits of HTML._"

</comment><comment><USER17> > HTML, CSS, JavaScript, Python, C#, and SQL may all be code, but they're > really quite different kinds of code and are suited to different kinds of > people.

What does "kinds of people" refer to? What "kind of person" does it take to code in CSS? The correct frame is to think of all these as skills that anyone can grow. If a project requires all these technologies, I don't see why it absolutely must be done by more than one person.

I'll agree that someone coding in various technologies will be stronger in some than others. The question is, how much of a problem is that for what's being built? Or to put it another way, does the success of your project truly rely on the CSS and SQL being top-notch?

BTW, HTML is not a metalanguage.</comment>


Tech billionaire's gnarly fight with California surfers over private beach - <AUTHOR> http://www.theglobeandmail.com/technology/tech-news/tech-billionaires-gnarly-fight-with-california-surfers-over-private-beach/article22601381/ <comment><USER2> No such thing as a 'private beach' in CA. No matter how rich you are, you cannot own a beach in California, though you can own the adjoining land and be a real dick about closing long-standing beach access paths.

Nothing new, see: Malibu.

<comment><USER3> why is he the dick, when its not him using force to access property not owned by him?

<comment><USER4> Because the scope of property rights in the property he bought did not include the right to deny beach access, and the fact that it did not was factored into the market value of the property when he bought it.

And because he is the one using force to prevent access to the public to property belonging to them.

He wants to be treated as if he bought something that was never for sale, and which he didn't buy, and which would have added significant cost to what he actually bought had it been for sale and been included with what he bought.

</comment></comment></comment><comment><USER5> Is there _any_ other side to this story, or is Khosla really a third-tier Bond villain?

Usually, news stories that read as black-and-white as this one are spun somehow. But here I can't figure out how. Beyond it being odd for a billionaire to embark on a legally futile quest to kick people off a beach at the expense of nearly his entire reputation.

<comment><USER6> Here it is [http://www.sfgate.com/science/article/Vinod-Khosla-blames- co...](http://www.sfgate.com/science/article/Vinod-Khosla-blames-costly- demands-for-Martins-5645423.php)

"Khosla said he kept the beach open after the sale despite the $500,000 to $600,000 a year in costs for maintenance, liability insurance, infrastructure and other expenses. He said insurance alone was $30,000 a year, but he kept the beach open for two years even though he was losing money....Most of the beach has eroded away over the years and it is often dangerous, with sneaker waves and riptides, he said. He said only two or three people a day were visiting the beach and it was unreasonable to expect him to pay the costs to maintain public access....Khosla said he tried for three years to get a hearing with the Coastal Commission in an attempt to come up with a reasonable solution, but the organization refused."

<comment><USER7> Wait I'm confused, does he own the beach or just the gate which accesses the beach? And why is he responsible and needs to be insured for people using the beach, or maintain it?

It feels like either you own the beach and can do whatever the heck you please, or you don't, and then it's not your dime nor your responsibility...

PR nightmare though, anyone made a flash-game where you try to sneak upon Khosla's beach while being hunted by him and his security guards yet?

<comment><USER8> > does he own the beach or just the gate which accesses the beach?

Just the gate. All beaches in CA are public property.

</comment></comment></comment></comment><comment><USER9> You know, where I am from (northern Italy) if someone like this decided to antagonize their whole neighborhood like that, they'd end up having to move. Not because of threats or property damage: people would simply shun him to starvation. It's no fun to be unable to buy groceries or gas.

<comment><USER10> I've found Americans pretty apathetic about injustice like this. They just think there's nothing they can do, nobody raises a fuss... currently dealing with this on the opposite coast...

<comment><USER11> Well when many effective firebrands like MLK, RFK, MalcomX and the like keep getting assassinated, you get a population that knows it shouldn't get uppity.

<comment><USER10> Not even talking about grand scale things like that. Little things -- the construction next door has been negligent and constantly wreaking havoc on neighbors, the environment, etc. Nobody other than me complains. Nobody files complaints. Nobody cares. Police don't care. Americans are brainwashed into thinking complainers are losers/weak and we all just have to "suck it up" and deal with it.

</comment></comment></comment></comment><comment><USER12> Edit: That's what I get for not reading carefully enough! Maharaj is the protestor, not the owner, and as such my comment below is inaccurate and erroneous. Thanks to mortoc for pointing this out to me. Off to get a coffee and focus...

>"You can't thwart a billionaire," Maharaj said in an interview after a stroll along the deserted sandy coastline on Jan. 15, a day when the gate leading to the beach was locked.

One day you'll get what's coming to you if you keep up that attitude, plutocrat. Noblesse oblige is the only thing that spared Andrew Carnegie and is sparing Bill Gates the universal, effortless scorn and ridicule they would otherwise deserve. You'd do well to remember that.

<comment><USER13> "Maharaj" is a protester, the billionaire is "Khosla". I think you got them mixed up here.

Khosla is still a dick though, so the rest of your point is valid.

<comment><USER14> Not sure why you're being downvoted. You're absolutely correct that OP misinterpreted that.

</comment></comment></comment><comment><USER15> In Brazil, all beaches are public by law. The owners are obliged to leave a path open so the public can access the beach. Not that we also don't have our bunch of billionaires, millionaires, judges and assholes in general that try to prevent it.

<comment><USER16> _The owners are obliged to leave a path open so the public can access the beach._

Can you be held liable in Brazil for things that happen on your property? For example, if somebody hurts themselves on the path, can they then sue you?

</comment></comment><comment><USER17> I wonder if this is just a big misunderstanding and if Vinod Khosla is just a nice, upstanding, Old Testament kind of guy. He is a successful investor after all.

<comment><USER18> There are studies (such as [1]) that show that the more you think about money, handle money, etc the more selfish you become. Given that logic you would have to say that most professional investors are more likely to be on the selfish end of the spectrum.

[1] [http://www.livescience.com/1128-mere-thought-money-people- se...](http://www.livescience.com/1128-mere-thought-money-people-selfish.html)

</comment></comment><comment><USER19> One of the best things about living in Scotland is that stuff like this is illegal. Everyone has non-motorized right of access to almost all land and water, with notable exceptions such as gardens, airfields, golf clubs and crop fields. If someone tried that here I could legally just hop the fence.

<comment><USER20> It's illegal here too. Didn't stop Khosla and his billions.

</comment></comment><comment><USER21> Correct me if I'm wrong, but the public can get on the beach if they go around his property, but they want to be able to go through it?

<comment><USER22> As I understand, the situation is precisely unique because that is not an option. The beach is not easily accessible otherwise because of cliffs.

</comment></comment><comment><USER23> I don't understand why you wouldn't want to make the best of the situation and turn a profit with the beach.

<comment><USER24> One possible explanation is that he values the privacy more than any gain he could receive from turning a profit on the beach.

<comment><USER4> If he values privacy so highly, he probably shouldn't have bought coastal property in a jurisdiction with public access laws to which that property was subject.

Basic due diligence shouldn't be a foreign concept to a VC.

</comment></comment></comment><comment><USER25> Why is a Canadian newspaper covering this and not the San Francisco Chronicle? Have you guys seen sfgate.com recently? There is no news of interest anymore, it's a wannabe Buzzfeed. Unbelievable how far it has fallen.

<comment><USER26> They did cover it, back when it was news. [http://www.sfgate.com/search/?action=search&searchindex=gsa&...](http://www.sfgate.com/search/?action=search&searchindex=gsa&query=vinod+khosla+beach&sort=date) Looks like 50+ articles on there, from March 2013 to January 6, just a couple weeks ago. Edit: better link</comment></comment>


Show HN: License key verification tool written in Go - <AUTHOR> https://github.com/furkansenharputlu/f-license <comment><USER2> Mongo DB seems like a bit of an odd choice for such a simple tool. A simple sqlite DB that you can just persist in a file seems like the easier choice.

<comment><AUTHOR> Thanks for your feedback! In future, I am planning to add customer management feature to the tool. That's why I use MongoDB. Here is the current roadmap: [https://github.com/furkansenharputlu/f-license/issues/1](https://github.com/furkansenharputlu/f-license/issues/1)

<comment><USER2> Any SQL database will do that just fine and is built for queries like "give me all the licenses of this customer who paid for the current version". It also gives you stricter verification for things like unique license keys and cross table queries for different kinds of licensing schemas.

If you abstract away the DB with an interface you can also easily switch out which DB you are using.</comment></comment></comment>


Windows is doomed - <AUTHOR> http://theweek.com/articles/721988/windows-doomed <comment><USER2> Windows is doomed as soon as:

\- there is a _viable_ alternative to Microsoft Office on the desktop. This doesn't mean one that gets most of the way there; LibreOffice and company, Office on mobile, etc. don't quite cut it. Macro jockeys and VBA scripting are huge game changers for corporate clients, especially in the finance and accounting worlds.

\- common CAD software has been entirely ported to a new platform and has complete feature parity. Considering how conservative engineering/manufacturing firms can be, this will likely never happen. No large engineering corporation will ever risk, or run the risk of ever having to run the risk, of even the slightest of hiccups in a large software migration. The only big swinger even making an attempt in this department is Siemens NX, and even we're still quite far out from feature parity for even that single package.

\- Active Directory has a viable counterpart for a competing operating system. Some people are trying, none are truly succeeding.

Those three points alone are enough to prop up Windows for the next couple decades. Don't get me wrong, I'm not a fan of Windows, Microsoft, their business practices, or many of their ideas on how things should be done. However, it _drives me up the fucking wall_ when people make dumbass claims that Windows will die within any reasonable timeframe (20-30 years).

EDIT: As a quick clarification, I bring up CAD not because it attracts a large userbase (it doesn't), but because switching away from Windows means that the manufacturing base of the entire world will undergo a massive change that could prove fatal in many ways. This means that any company with a significant CAD userbase will be using Windows, even if the HR, IT, etc. doesn't, in an attempt to consolidate overhead. This also means that many companies that work with engineering/manufacturing companies will stick with it for compatibility's sake. Many people are commenting that CAD/manufacturing doesn't account for many users, but that's beside the major implication. Engineering and manufacturing customers alone could ensure at least a workable level of Windows support, all while indoctrinating most of their employees in to Microsoft's ecosystem.

<comment><USER3> Just for fun; I recorded a macro in LibreOffice Basic that sets the text in a cell.

This is a sample:

      dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

      dim args1(0) as new com.sun.star.beans.PropertyValue
      args1(0).Name = "ToPoint"
      args1(0).Value = "$C$7"

      dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

That first line is confusing and obsolete. Sun doesn't exist any more, it is two generations of branding from being StarOffice, and good luck figuring out why the service is named after a card game. Even a programmer isn't going to figure all that out without knowing the history of the project.

Now in MS Office I'm pretty sure this would be something like ActiveSheet.Cells(1, 5) = "foo". There is nearly no discovery for the LO Basic equivalent 'sheet.getCellByPosition(3,16) = "foo"'.

It really is worlds apart. I don't see how a moderately sophisticated user can learn to write LO macros without finding a reference manual and investing hours orienting themselves. I've seen people teach themselves to a useful standard using MS Office macro recordings.

 _EDIT_ More importantly, a novice wouldn't necessarily understand that the recorded macro isn't the accepted way to select a cell. Even realising that a cell can be selected with one line is hindered by the LO macro recording.

<comment><USER4> Macro-programming Office documents is one of those things that should immediately elicit the question "Is there a better solution?" There almost always is. Office documents are an extremely poor workflow and a terrible artifact for data.

Which is why replacements seldom have more than the most trivial of automation -- the people who are making the move usually change their workflows. The offices that built around Office 95 are, however, still doing things the way they always do.

EDIT: What a changed world when _this_ is a contentious comment.

<comment><USER5> The thing is, it can be done by a "non programmer" without IT or admin overhead. Building or buying a new solution outside of Office requires far more buy-in and cost.

It may not be the best workflow, but it is the most accessible one for an individual to start with.

Edit: for what it's worth, I agree that it can be a hindrance to a company when it becomes a core operating process. However, that doesn't mean that it is inherently wrong for many needs

<comment><USER4> Sure, I get where it comes into play. A team usually has the "techie" guy who decides to roll some macros, and soon it becomes embedded. In the last decade and before this was the engine of an enormous amount of end user computing.

But in 2017, it is almost always a very bad sign. Which is why the competition have mostly abandoned automation of the 1990s Office sort.

</comment></comment></comment></comment></comment><comment><USER6> How many times are pundits going to keep repeating that cellphones/tablets are going to kill off laptops and desktops before they realize how ridiculous that is?

The only one that has a remote chance of killing either one at this point is Microsoft themselves through continuum and X64 code running on ARM. Even then, phone horsepower is still not enough to fully replace my laptop and desktop usage. I don't see that changing anytime soon with the issues fabs are having getting to smaller process sizes.

<comment><USER7> Doomed and killed off don't mean the same thing. Everyone in tech who isn't busy knocking down poorly constructed strawmen acknowledge that post-PC has already happened. That market is no longer expected to grow.

<comment><USER8> "Doomed" to me doesn't sound like "not expected to grow". It sounds more like "expected to die off". I mean, tv sales have been dropping for the last few years, but we're not saying the tv market is doomed because we don't expect that market to die. I think a better word for "not expected to grow" is "saturated".

In any case, the use of the word "doomed" is hyperbolic or at the very least ill defined scaremongering.

<comment><USER7> The TV market as a growing interesting market for innovation is almost dead. If you are in the tech industry and looking for the next big thing, you aren't look around TVs.

I really don't think many here actually read the article and instead just focused on the byline without any context.

</comment></comment></comment></comment><comment><USER9> Meh, Google doesn't really offer much by way of a platform for development (sure, I know some here code on Chromebooks) and severely risks demonopolisation; Apple will have to pull some magic out of the bag if it wants to stem the flow of developers and professionals leaving its platform and Windows is still on a significant number of productive workplace desktops (such as mine here).

Phones are not computers and are deviating ever more from being mistaken for devices that can be used for actual productive work.

So Microsoft lost the mobile handset/OS race.. so far.

I'm not encouraged that any of the reasoning in this article represents nails in MS's coffin.

<comment><USER10> The main argument is economical; desktop computers are stale (well, thanks AMD for stirring it up recently a bit), most people now treat computers as home appliances that need replacement once in 5-10 years. In mobile, market still grows (even if showing signs of saturation), there is still a year-to-year progress making newer models appealing and there are more mobile devices that computers with faster replacement rate. So what MS was getting on new end user licenses is lost; they lost mobile as well; the only move left are subscriptions which individual users hate and businesses love.

</comment></comment><comment><USER11> No it isn't, this is bullshit.

As long as finance managers want to download their financial data from SharePoint to Excel, their reports generated on Crystal Reports and edited on Word and as long as finance managers are the ones paying for new software and computers then both Windows and Microsoft have a bright future ahead.

It is called synergy. The same "walled garden" approach that Apple uses for consumer market is working very well for Microsoft on the enterprise market.

</comment><comment><USER12> Every time I see headlines like these (likewise regarding Mac OS etc.) I'm left wondering if people realise where the software for these platforms come from.

Without Mac OS there'd be no iOS apps (or at least, many fewer). And without Windows there'd be many fewer Xbox and likely Android apps too.

Non-mobile computing is needed until (at the very least) the bulk of development for mobile is done _on_ mobile (hint: I doubt that will happen any time soon).

<comment><USER13> This is what I don't understand. I understand that most consumer activities (e.g. mail, social, search) can be achieved on mobile without missing a beat. Static content and most dynamic content have been solved for mobile devices for a while. What they seem to miss is that any substantive work is a hassle to complete on mobile.

If you ignore the lag from the CPU or memory constraints, the interface is just not conducive for working. Who wants to edit text documents or spreadsheets, used a shell, or edit code on a 5 inch screen? Who wants to use a soft keyboard for any non-trivial amount of work? It's not that it _can 't_ be done; there are much more attractive options readily available.

There there's the argument about connecting mobile devices to monitors, using adapters/bluetooth for peripheral devices, and thin client setups. If that's the case, why don't you grab a cheap laptop? Mobile is gimping you at that point.

<comment><USER14> Once you accept the fact that the meme of the dying desktop and mobile only comes from people who are "creative" by answering mails/reacting on social media and dragging things from A to B, you will quickly understand that the desktop on which most of the grunt work gets still done will still be there for a long time.

</comment></comment></comment><comment><USER15> You might want to add "and 2017 is the year of Linux desktop" as long as you're at it.

</comment><comment><USER16> Windows was doomed in 2009, 2005, 2001, 1993, etc.

I think the rule is if you're marked as doomed incorrectly more than three times over the course of a decade, then you are too big to fail and are, by definition, not doomed.

</comment><comment><USER17> I dunno, I'm going to keep upgrading my Windows box and version so long as it stays the primary gaming platform. Consoles are fine and all, I even have a couple modern ones, but there's still no replacement for mouse & keyboard for hi-fidelity input, and the only desktop that lets you play the vast majority of m&k games is Windows.

That'll keep it in the home, and AD & Office will keep it in the workplace. Seems not so doomed to me.

</comment><comment><USER18> As a developer, my interests are in maximizing the value of my skills. I want my expertise to be applicable across multiple platforms; I want projects which I develop to be portable across multiple platforms; I wish to minimize the amount of pointless superficial interface information I must learn as platforms rise and fall and instead focus on deepening my comprehension of computer science fundamentals.

I hate that the platform vendors cannot ally themselves with those interests and must instead always attempt to lock developers in, damaging us economically and wasting our time and human potential.

When a vendor suffers because their lock-in attempts falter, I can't help but feel schadenfreude. Now, if only their competition were consistently better...

</comment><comment><USER19> Off topic: Microsoft was not only accused of monopolistic moves, it was found guilty.

</comment><comment><USER20> I'd contend that the desktop OS in general is doomed. Besides a mention of iOS's aid to MacOS's popularity all the author's arguments apply to mac (and Linux desktop).

</comment><comment><USER21> If Microsoft hadn't created Azure and started shifting their efforts to be an enterprise development company a few years ago, they'd be the next RIM.

But...even if Windows goes away, there's AWS and Google Cloud, but the ability to migrate existing legacy enterprise applications into Azure, as well as leverage new features like machine learning and cognitive vision, will let Microsoft stay alive.

How successful will it be in the long term is the question.

</comment><comment><USER22> It feels like Microsoft is entering the next stage of the IBM lifecycle -- technology eliminates the value of the monopoly, and they're forced to find new ways to make money, while they coast for a few years on market inertia.

Ultimately MS (like IBM) will not to be able to sell anything outside the C-suite, because anyone closer to the technology knows there are better cheaper solutions.

(But Xboxes...hmmmmm...maybe my view is a little to simplistic.)

<comment><USER23> Have you heard of Azure?

<comment><USER24> Yes. An compared to AWS it's been immature, buggy, unreliable, and caters to the admin acting like a button mashing monkey that tries to solve problems by turning things on/off in the Web UI instead of using a programmable repeatable, scriptable "environment as source". Hopefully, others have had better experiences, but so far I'm wanting to run away screaming.

<comment><USER23> > instead of using a programmable repeatable, scriptable "environment as > source".

[https://docs.microsoft.com/en-us/azure/azure-resource- manage...](https://docs.microsoft.com/en-us/azure/azure-resource- manager/resource-group-authoring-templates)

Thanks for the time capsule experience though, sometimes I miss the legendary zealotry of Slashdot.

</comment></comment></comment></comment><comment><USER25> No, actually. Today's Windows is more attractive than ever. As a developer, I even prefer it - unlike macOS, it has WSL, and you see it's evolving quickly unlike macOS, which feels dead. Also, given .NET and PowerShell run on Linux and macOS, they are a worthy investment. I only wish Chocolately had a vibrant community as Homebrew - it lags behind, and even for basic features, you have to cough up money.

</comment><comment><USER26> This article rehashes the well-known challenges and missteps that have made Windows much less relevant.

It totally misses the scale and intertia around Windows in the enterprise. It may not show up as the hot platform for new applications on HN, but it's not remotely "doomed".

</comment><comment><USER27> I do agree with the article, but it doesn't seems that Windows will be going very soon. Too many applications are still dependent on it, and PC gamers, both casual and hardcore, generally prefer using Windows and are a large portion of the market.

</comment><comment><USER28> Windows is doomed as soon as .exe is. But really how did it make it so far?

</comment><comment><USER29> Mobile is not a major threat to desktops, they serve different purposes. People who have desktop PCs aren't getting rid of them because they bought a phone or tablet. Even though Microsoft has questionable practices they still have the best desktop OS. This is clickbait trash journalism.</comment>


Fatal Dose – Radiation Deaths linked to AECL Computer Errors (1994) - <AUTHOR> http://www.ccnr.org/fatal_dose.html <comment><USER2> >>As a result of the Therac-25 accidents, the FDA now requires documentation on software for new medical and other products: a paper trail, in other words, that can be examined by an independent body and retraced for flaws.<<

Anyone have any idea if this can be looked at by the end user? I'm not a radiation technologist of the flavour mentioned in the article, I'm on the diagnostic side. I use an MR scanner with numerous software bugs that I have reported but which remain. Similarly, the scanner can be made to display data which it says it is going to use in the next scan, but which it isn't. I suspected a bug and found the way to reproduce it. My last email listed 24 similar bugs (I've found more since) but other than a "thanks, we will forward this on" there has been no reply or comment. It is hard to imagine when this could be a safety issue, but it is a waste of valuable time, it is a waste of money and it's frustrating when I have gone to the trouble of working out the exact way of creating the issues. If anyone is interested, the interface is so god awful that instead of having an on off button or switch interface, the scanner gets the user to type 1 or 0 for on and off into a text field. Some fields take other values like 1, 2 and 3. Some take decimal values like 0 to 1 in 0.1 increments. There is no pattern to what the user is expected to type. Yuck. This data is not properly sanitized either, and you can make the scanner say its "doing" something it's not. Type in 1.999, and error message appears, the field corrects to 2.0 but the scanner does the thing that a setting of 1 would produce. These sorts of bugs occur all over the place.

Edit: The "thanks" email is the most positive I've ever got, my previous reports were me with statements like "we have some very experienced users who haven't had this issue" when there were clear safety problems with earlier scanner implementations (The scanner was producing axial slices at a location different to where I asked for them to be, on a spine patient due in theatre - good luck operating on the correct vertebral level). Its FDA approved and its on the latest software release. I have undergone manufacturer training and have had additional training half a dozen times at my request and at the manufacturers request after my bug reports were met with "you're doing it wrong". I'm not, the software is buggy and I have some excellent and amazing screen shots and camera phone video of the bugs in action.

<comment><USER3> My son the hacker used to work in the medical device industry as a summer employee while he was a student. The code he wrote for a medical device user interface was to be submitted for a line-by-line code review by the FDA. He estimated that the product would actually come to market more than three years after the summer he worked on it. And maybe that is what you are encountering --the person at the company who built in the bugs you have discovered has moved on, and doesn't work at the company anymore, and the other employees there are trying to figure out how to debug that old code and fix the problem. (Similarly, my son groused about the code in the device he was working on, which was acquired by his company from another company that had originally developed the device.) Always comment your code. You never know how long after you wrote it someone else will have to fix it, especially if the code is embedded in a medical device.

<comment><USER2> Thanks - this has been in the back of my mind and is a reason I'm trying to be patient. A 2 line message saying what was happening would remove my frustration. Usually I get a corporate speak reply with a suggestion it is my fault though. What does the FDA code review do? If it isn't catching bugs that take the scanner offline for hours at a time, what is the point?

<comment><USER4> I've worked on several FDA-regulated products and have never had the FDA review my code. I would guess this only happens in extenuating circumstances. The FDA does not have the resources to do this for most products out there.

We are required, however, to review our own code and maintain records of those reviews.

<comment><USER5> Exactly. FDA doesn't review code!

If there are complaints, FDA does sometimes review is the mountain of device related documentation. Design, assembly, maintenance, end user manuals, etc. Checking the paper trail. Is the paperwork done correctly, signed by a competent employee and reviewed by appropriate persons. There also needs to be watertight trail of employee training. Failure to have that does not end well!

Traceability (both physical and code) is another thing you better get right as a medical company. You need to know where, when, etc. each major component of the device came to be.

Medical companies literally generate so much paperwork, that separate storage facilities are needed for it. While you'd obviously have it in digital format for yourself, all of it is also printed out and signed.

</comment></comment></comment></comment></comment><comment><USER4> The Therac-25 case study is a tragic one, but fortunately it is not forgotten.

I work on medical devices (and have worked on radiotherapy devices previously) and the standards for quality systems and regulatory hurdles (which I occasionally see bemoaned here on HN) are there with good reason. In fact, Therac-25 is often cited when training new hires on quality (as required with any ISO-13485 compliant QMS).

<comment><USER2> Diagnostic imaging guy here - we point our recruits to this, balding patients when doing diagnostic tests shouldn't happen. [http://www.ajnr.org/content/31/1/2.full](http://www.ajnr.org/content/31/1/2.full)

</comment></comment><comment><USER6> One of the more infamous classes in Computer Science at Cal Poly SLO is "Professional Responsibilities", is taught by Dr. Clark Turner. The class delves into Therac-25, and similar cases that have happened since. I found the class really interesting because it does make you question and think about the ethics of what you are building and what others have built.

Knowing about, and thinking about, the ACM Code of Ethics, Stuxnet, Therac-25, the Windows Security Patch Policy, and other problems our programming culture have come across is important. Realizing that the code we write can affect people in both positive and negative ways on a long and short term scale is something that can change both your product and how you build a product.

</comment><comment><USER7> There was an article that appeared in the NY _Times,_ a few years ago, that discusses the malfunctions of radiology equipment. There was one story, in particular, that stood out for me. It describes a, reportedly not unusual, malfunction/crash of a linear accelerator used for Intensity Modulated Radiation Therapy (IMRT):

"An error message asked [the medical physicist operating the device] if she wanted to save her changes before the program aborted. She answered yes."

How many programmers read that and cringe? I know I did. My guess is that the operating system being used for the device is some standard OS (Windows CE, maybe?) that is being repurposed to run the application and provide the GUI for the device. It's not that this is necessarily bad, but I would think the most important thing to do would be to strip the OS (or UI) of the various "user conveniences" that in a life or death situation could have all kinds of unintended consequences.

If a person is coding or doing graphic design -- or typing up cooking recipes -- and a crash happens, it's a good thing to have the opportunity to save your work. If 1 teaspoon of butter gets changed to 1 tablespoon because of some kind of data corruption, big deal. So your cookies come out terrible!

It's quite a different matter if the application is coordinating 120 moving parts to direct a radiation beam onto a human body.

The article is here:

[http://www.nytimes.com/2010/01/24/health/24radiation.html?pa...](http://www.nytimes.com/2010/01/24/health/24radiation.html?pagewanted=all&_r=0)

</comment><comment><USER8> Thanks, I hadn't read this before.

For those that haven't read it, here's Levesons article on the Therac-25: [http://sunnyday.mit.edu/papers/therac.pdf](http://sunnyday.mit.edu/papers/therac.pdf)

<comment><USER9> This one made me think about public outrage against tobacco companies.

One minor theme in this article is that AECL denied knowledge of any reports of Therac-25 malfunctions even when, looking at a timeline of publicly-known events, such ignorance might be described as "implausible".

They don't seem to have been punished for this, and while I agree that it isn't laudable I also agree that it's not the greatest infraction. AECL really did care about the proper functioning of their machine. They really did look for problems. They cooperated with the FDA to a very great extent. It's hard to fault them for not thinking of testing "what if we enter incorrect configuration information, and then correct it within 8 seconds?"

But tobacco companies are routinely vilified for sitting on cigarette mortality data, as if this was by itself enough to make them irredeemable. They didn't even get off with a light punishment, much less the zero punishment AECL received. I suspect the difference, in the minds of many, is that AECL was a benign company advancing a useful purpose, while tobacco companies sold a product whose only use was to kill the operator. But that was legal then and remains legal today -- how can it be the justification for punishing them extra-hard for otherwise minor problems? AECL's misrepresentedly-unsafe product didn't even kill the operator; it killed random sick people who trusted the hospitals.

<comment><USER8> Didn't the tobacco companies also spend money to discredit scientists and peer-reviewed articles and seed misinformation about the real risks of smoking, all while they were sitting on that mortality data? I think that was the real problem.

<comment><USER9> All of what you've said is also legal today.

</comment></comment></comment></comment><comment><USER10> Related reading: [http://www.amazon.ca/Set-Phasers-Stun-Design- Technology/dp/0...](http://www.amazon.ca/Set-Phasers-Stun-Design- Technology/dp/0963617885)

</comment><comment><USER11> At the time of Therac-25, FDA was only budgeted to investigate 6 percent of device applications.

Currently, the same mistakes made in the eighties with Therac-25 are being made in many radiation therapy devices. The two NY Times articles (Pulitzer Prize winning) in 2010 and 2011 describe some of the newer cases.

What's shocking to me is that the incidents are always reported in isolation. People become briefly outraged, then the furor dies down until the next death.

Many of the comments in this thread suggest that people can't or won't face the fact that this is a current, ongoing problem of great complexity.

A couple of comments mentioned the coverage of Therac-25 in schools. Very little of what is taught in schools makes it into the programming of radiation therapy devices. History has shown that schooling is not a sufficient solution.

Other comments claim (erroneously) that the FDA is attending to the problem. The FDA has been carefully defanged by the medical device lobby. The FDA has gotten smarter, but has nowhere near the funding to keep pace with its charge and never will.

I wish I could say that I see some hope but I don't see it.

<comment><USER12> Why hasn't the hardware failsafe for overdoses become mandatory? Why don't we apply defense-in-depth to all worst-case scenarios involving deadly things?

Of course, sometimes hospitals aren't logical, air circulation between rooms comes to mind. And here, I'm sure everyone just trusts the machines because they paid a lot of money for them and it's always worked in the past ...

<comment><USER13> > Why hasn't the hardware failsafe for overdoses become mandatory? Why don't > we apply defense-in-depth to all worst-case scenarios involving deadly > things?

Because money

</comment></comment></comment><comment><USER14> "A professor in computer engineering at the University of Toronto told me that, as a matter of course, his undergraduate students are warned about the risks of incrementing numbers in a computer program."

As someone with a computer science degree who was warned of such risks and studied the Therac-25 in my classes, this sentence made me realize how far we have to go as professionals. Something seemingly so simple as incrementing a number, one of the most common things done in a program, can cause serious problems (of course we have more help with this now than in the mid 80's). Other people must read things like that and cement any distrust they have in computers and computer programmers. And they're probably right to.

</comment><comment><USER15> _The Therac-25 's software program, relatively crude by today's standards, probably contained 101000 lines of code. At one error for every 500 lines, that works out to the possibility of twenty errors._

I'd say 200, not twenty.

<comment><USER16> I think the article was OCR'd. There were a few other mistakes that were clearly misinterpreted characters. I think the 1 in the thousands place is actually a comma on the source.

<comment><USER15> Good point. There are many hints that article was OCR'd, for instance an ".4ECL" instead of "AECL".

</comment></comment></comment><comment><USER17> I had a professor read this case study in a lecture.

It amazes me that merely one programmer was trusted with building the software for a radiation beam canon.

<comment><USER18> I think a manager for a product would give as much work and responsibility to one person as possible if they say they can do it, and sometimes even when they say they don't know if they can do it but they'll try. An experienced manager might know how realistic the workload is and downsides of having only one person on task x but every manager sees the upside, fewer people = less cost.

</comment></comment><comment><USER19> 101000 lines, 500 lines per error gives about 200 errors, not 20

</comment><comment><USER20> We covered this in my CS courses as well. I feel bad if anyone comes out of a CS program and isn't exposed to the Therac-25 incident even if superficially.</comment>


Indian ISP Blocks A Bunch Of Websites  - <AUTHOR> http://www.techdirt.com/articles/20111228/03233017212/indian-isp-blocks-bunch-websites-to-try-to-prevent-file-sharing-single-movie.shtml <comment><USER2> The title is not correct. A movie studio, Reliance Entertainment, won a case in the court where the judge ordered ban of a few sites such as Megaupload. Given that it is a court order, ISPs (all of them) had to block it.

In this case, it is the court which is responsible for such sweeping judgement and not a single ISP. I guess the fact that Reliance also owns an ISP resulted in a confused title.

</comment><comment><USER3> I'm one among those unlucky Reliance subscribers who were thrown this 'website blocked' page a couple of days back. The only reason I'm still with Reliance is that they don't have any data cap on the usage and has decent customer service.

Though they 'thought' they blocked these sites, I was able to access them by just removing 'www' from the url (Lucky me :)). FYI, they are using Netsweeper for filtering and the admin login page for the same is open to the public ;)

</comment><comment><USER4> Insane. Indian lower courts are crazy. If someone appeals to higher courts it will get overturned in no time. Thankfully, things are working from other ISPs, so it's a reliance only thing.

</comment><comment><USER5> I'm using Reliance broadband from India. www.megaupload.com is working for me right now.

Perhaps it's relevant that I'm using 22.214.171.124 for DNS?

<comment><USER3> They were all blocked on 23rd December and I think only for that day or may be two. Pretty old news actually ;)

</comment></comment><comment><USER6> Needs more information about the court order and which court issued it..

</comment><comment><USER7> It's working from BSNL, only Reliance might have blocked it.

</comment><comment><USER8> I'd call and say 'Fuck you Reliance'!! And I'd just switch my ISP , there are people waiting to give you a internet connection. Just because they have power doesnt mean they can misuse it. And I'm sure this blockade won't last long.

PS:Is Reliance trying to recreate Godaddy scene in India ? :P</comment>


Fan death – belief that death can be caused by sleeping in a room with a fan - <AUTHOR> https://en.wikipedia.org/wiki/Fan_death

<comment><USER2> Canonical article explaining the phenomenon and people's misunderstanding of it:

[http://askakorean.blogspot.com/2009/01/fan-death-is- real.htm...](http://askakorean.blogspot.com/2009/01/fan-death-is-real.html)</comment>


Let's build a full-text search engine - <AUTHOR> https://artem.krylysov.com/blog/2020/07/28/lets-build-a-full-text-search-engine/ <comment><USER3> >To query the index, we are going to apply the same tokenizer and filters we used for indexing

From developing a Lucene-based search engine years ago, I learned a very useful trick for things like stemming and synonyms: _don 't_ use the same tokenizer/filters that you used for indexing. It's much more flexible if you instead expand the query terms, replacing a given term with a list of OR clauses with all the synonyms.

So during indexing, if the document has "fishing", then you just add that to the index.

Later, during querying, the user can search for "fish" with optional stemming enabled, and their query will get re-written into

"fish" OR "fishing" OR "fishy"

This way, the user has control at query-time, and you can manage your synonym/stemming database without having to rebuild your index.

Of course, I had to write a custom parser for this but it was well worth it imo.

<comment><USER4> how do you populate/maintain the synonym/stemming database? is this something that "standard" datasets exist for? asking because this problem will fall on my plate at work sometimes in the next few months :-)

<comment><USER3> There was a standard set of synonyms that everyone was using at the time (around 12 years ago) that came in the form of a Lucene index. I'm not sure if it's still around or where you'd find it.

IIRC the stemming was done by an algorithm and not from a database...but I don't remember the exact details.

<comment><USER5> when I was building this in circa 2006, I used porter stemmer. I do not know if that is still state of the art, but it worked really well for my purpose.

<comment><USER6> These days we use Snowball stemmer. OP also used it.

</comment></comment></comment></comment></comment><comment><USER7> Recently i've been writing a sort of archival focused SQL database. Partly out of want, partly out of learning desire. FTS would be of great benefit if i added it.

So i ask, where do FTS and SQL constraints or implementations differ greatly? Why does Lucene exist rather than having the same features in MySQL or Postgres?

I'm asking in the context of road bumps, things to watch out for - should i try to merge the ideas and implementation of a SQL DB and FTS.

 _(Note: I am aware that some SQL has FTS, but i imagine it still differs or has weaknesses when compared to a strictly focused FTS engine like Lucene)_

<comment><USER8> One major "weakness" of rdbms is that all internals are black blocks.

You can do "SELECT * FROM table"

but, weirdly, can't "SELECT * FROM A_Index".

NOTHING in the relational model requiere this limitation. Is purely accidental.

BTW, I'm building a relational lang and also, very long time ago, try to port lucene to Delphi.

So, what you need to support FTS and other kind of structures is... support them.

For interfacing, you can consider ANY key-value as a relation of exactly 2 columns. Any scalar, a relation of 1 column, 1 row. You can put relations in relations, so you can do recursive data.

Maybe the hardest is to have not only storage of btrees but also other stuff. I think you can fit FTS data in btrees anyway, but probably tweak it.

When building the relational lang I stumble upon how support a n-column data inside a btree. You can split:

        pk=key
        values=col1 col2 col3

or as I later "get", just store the full row and change the functions that do the comparing. In rust start with:

        pub struct Tree {
            index: usize, <--signal which column as key
            data: BTreeSet<Vec<...>>, <-- Store all row
        }

<comment><USER9> > but, weirdly, can't "SELECT * FROM A_Index".

In all honesty, most DBMSes have some sort of "hinting" mechanism that accomplishes roughly the same.

It's a cludge, though, usually in the form of specially formatted comments or some sort of syntactic "piggy-back" on top of the regular SQL, or even outside SQL (e.g. SQL Server plan guides).

I'd love to be able to specify the physical access path with more "first- class" syntax, and mix-and-match with logical access more easily.

</comment></comment></comment><comment><USER10> As you get into this, you'll want to improve the tokenization to something less naive. (The naive approach is fine for the educational purpose of the article.)

I've made the mistake of simply splitting on spaces or punctuation, and eventually finding that will do the wrong thing.

Eventually I learned about Unicode text segmentation[0], which solves this pretty well for many languages. I believe the default Lucene tokenizer uses it. I implemented it for Go[1].

[0] [https://unicode.org/reports/tr29/](https://unicode.org/reports/tr29/) [1] [https://github.com/clipperhouse/uax29](https://github.com/clipperhouse/uax29)

<comment><USER11> Yea agreed, as to my tokenization example. Back when I was doing search for a price comparison service. The model numbers of the products were sometimes entered as LGA775 or LGA-775 or LGA 77-5 or LGA—775 (unicode dash) or "LGA 775"

And that is just one example :) I ended up by developing a suite of "search tests" so whenever we were doing tuning (daily basis) we had a set of automatic search tests of about 80 weird/prev-wrong search cases we could check in a blink of an eye. One could specify the top X result needed to include at least Y number of products in XYZ category or have "brand" as ABC etc.. One might say it was "test-driven-search-tuning"

</comment></comment><comment><USER12> This is a great intro to full-text search.

These techniques were the basis of some of the early web search engines (pre Google).

More of this stuff is explored in Witten Moffat and Bell's book "Managing Gigabytes" which dates from the era of those early search engines and when "Gigabytes" was something unimaginably large that certainly wouldn't fit in RAM and perhaps not even on a single disk.

<comment><USER13> Whatever terabytes or petabytes of data we have in indices today, is it all served from memory? I remember Google saying at some point they went fully in memory searches, don't know if they have kept at it or if it's the standard.

<comment><USER14> A petabyte of ram is less than $5MM - using just ram costs and consumer ram as well [0]. So given how much money they make and how many servers they have, I think it's highly probable. The caching of images and web pages might be more difficult.

Plus, Google could easily just cache the the results for the top million queries without much ram at all by comparison.

[0] - [https://www.newegg.com/team-32gb-288-pin- ddr4-sdram/p/N82E16...](https://www.newegg.com/team-32gb-288-pin- ddr4-sdram/p/N82E16820331396?cm_sp=homepage_ss-_-p4_20-331-396-_-08042020)

<comment><AUTHOR> What kind of motherboard could take a PB of RAM?

<comment><USER14> 8,000 of them networked in a data center.

Back in 2011 it was thought they had a million servers, so 8,000 is easy for them.

[0] - [https://www.datacenterknowledge.com/archives/2011/08/01/repo...](https://www.datacenterknowledge.com/archives/2011/08/01/report- google-uses-about-900000-servers)

</comment></comment></comment></comment></comment><comment><USER15> If you used a Trie for the inverted index, you can do fuzzy searches on tokens. This can help handle typo errors. This is the approach I've taken with Typesense: [https://github.com/typesense/typesense](https://github.com/typesense/typesense)

</comment><comment><USER16> > Most well-known FTS engine is Lucene (as well as Elasticsearch and Solr > built on top of it)

What makes me attracted to these services are their hit highlighting[1] capabilities so you can show where the search query matches are. This is especially helpful in long documents but it appears in this case, the documents are just one-liners and the entire document is returned in the search results.

[1] [https://www.elastic.co/guide/en/elasticsearch/reference/curr...](https://www.elastic.co/guide/en/elasticsearch/reference/current/highlighting.html)

<comment><USER17> Glad to see this mentioned! I worked on open sourcing the unified highlighter for Bloomberg along with Lucene/Solr committer David Smiley. It's a very important feature for longer documents--in our case legal documents. We gave a presentation about it at Lucene/Solr Revolution in 2016.[1]

[1] [https://youtu.be/tv5qKDKW8kk](https://youtu.be/tv5qKDKW8kk)

</comment></comment><comment><USER18> Not the point of the article, but the slow-down from using regular expressions can be avoided in this case by instead generating each case permutation and searching on that. Although its actually a bit more complex because you need to cut off doing this for long strings to avoid too many permutations but you get the idea.

Posting just in case someone thinks they need to build an index in order to case-insensitive search a few gigabytes of text. Its actually how tools like ripgrep tend to work (assuming it can do literal extraction of the regular expression). The moment you get to 10's of gigabytes though an index is probably what you need.

I actually have some Go code (since the example was in Go) which does this and assuming you are doing literal searches is a drop in replacement for re.FindAllIndex [https://github.com/boyter/cs/blob/master/str/index.go#L110](https://github.com/boyter/cs/blob/master/str/index.go#L110) which also does simple case folding for you.

</comment><comment><USER19> Not sure if the OP will see this, but _thanks_! I was looking for an introduction to building basic FTS just last week, and didn't find anything at the right level for me - this article was absolutely perfect to understand the basics.

Not sure if you intend to write more articles, but I'd love to see this turned into a series where you gradually add different capabilities and techniques (e.g. using tries)

<comment><USER20> Have a look at ElasticSearch. I was taken aback by how fast it was performing complicated full text queries in a dataset of 300 million web pages.

It was essentially a matter of scrape - clean (remove HTML) - index (add to the DB) - search. Easy as that. If you have prior experience with JS and scraping it should be a day's work for the basics. The documentation is really well done and easy to follow and the API is intuitive.

</comment></comment><comment><USER21> Pretty fun - I also often recommend people explore the earlier versions of Lucene, still on Sourceforge -

[https://sourceforge.net/projects/lucene/](https://sourceforge.net/projects/lucene/)

<comment><USER22> Agreed. Even configuring Lucerne used to be enough to give you a pretty deep understanding of how it works under the hood. Arguably that's a bad thing, but I found it very enlightening.

</comment></comment><comment><USER23> Pretty neat. I was considering doing something like this to create full text search inside of some newSQL type databases I've been looking at but don't support full text yet, like CockroachDB or YugabyteDB. I know some people use another system for search and try to synchronize everything but personally more things to manage and rather have a single source of truth.

Really wish I could find a prefect system where if you got popular wouldn't have to worry about changing the application where you just throw more servers at it, with incremental backup (sorta disappointed some charge extra for this and not included in the open source community version but I guess in the future could upgrade once your making $$$ and have a large enough dataset where backups are slow), full text search, reference integrity (so you can't delete a foreign key that's referenced - so no dangling references), etc... I guess can't get everything you wish for, but things are clearly better now than they were even a decade ago. So if starting a greenfield project, a lot more choices thankfully though.

<comment><USER24> I'd be happy to work with you to make it happen in CockroachDB if you were so inclined :)

I added array inverted index support a little while ago in this PR: [https://github.com/cockroachdb/cockroach/pull/45157](https://github.com/cockroachdb/cockroach/pull/45157)

A simple full-text search engine would not be too different at the lower levels.

<comment><USER23> Interesting, a bit over my head. Haven't got into Go, into Typescript/Node but there's been some really cool Go project's I've came across. My idea was to just store an array of strings in JSON and generate a query by parsing the search query string, probably separating words out too could work do handle things like "required" or -required for boolean search and filtering out stop words.

I keep changing my mind on things and still super early on my project still, so far I'm thinking CockroachDB for storing more transactional stuff, inventory, accounts, etc and then use MongoDB for chat, social feeds, logging, etc.

I guess if I implemented my own search logic this way, could then give consistent search experience regardless if what they are searching is in the SQL or noSQL database too.

I guess store things in lowercase too, last I looked CockroachDB didn't have PG's CITEXT but for search lowercase makes sense anyways, but maybe you want to search someone's fist name in support probably enter it lowercase while preserving the original casing for display uses.

</comment></comment></comment><comment><USER25> The next step is usually to use tf-idf or bm25 to rank the matches [https://en.m.wikipedia.org/wiki/Tf%E2%80%93idf](https://en.m.wikipedia.org/wiki/Tf%E2%80%93idf) [https://en.m.wikipedia.org/wiki/Okapi_BM25](https://en.m.wikipedia.org/wiki/Okapi_BM25)

<comment><USER26> I've always found these things push poor quality results to the top. The merits it ranks upon are redundancy and repetition.

They are the "next thing taught" but they aren't useful

<comment><USER18> What would you suggest then?

Assuming you only have the term frequency values I cannot think of any other algorithm you can apply that gives reasonable results. Of course this breaks down as its easily gamed, but unless you are building a public search engine it should work.

Heck tools like lucene/elasticsearch use tf/idf and bm25 although they can include vector space on top of the query as well.

<comment><USER26> The next thing should be talking about the different classes of documents and searches.

Sometimes thesaurus searching is appropriate, sometimes it isn't. Sometimes removing logical modifiers (ex: not, excluding, etc) is appropriate and other times, not.

Sometimes verbatim searching is right, sometimes not.

Sometimes approximation searching is right, something it's not.

For instance, I was on Amazon the other day and I was looking for bubble mailers, 8x12, 50 pcs ... I wasn't able to get amazon to exclude the other unit and lot sizes ... maybe that's the right answer sometimes. A "better" search system however, would see the numbers, know the frequency distribution of those values and present ranges for me to choose.

Google has a focus ambiguity with a similar "one search" approach: it ignores more focused words to give you more generalized results. which might be the right answer sometimes ...and sometimes not.

Here's another classification example: On Google books, when looking for say, "constitution" in older texts, OCR will sometimes misidentify it as "conftitution" because of the long-s in older typography. For this search, I shouldn't have to be manually searching both terms to get the results ... the search query in this case should do something different still, swap letters with common OCR missteps and then aggregate them into a single result.

I ran my own OCR on documents and wrote a small python program to do this using Damerau–Levenshtein distance. It's not hard, could easily be taught to undergrads.

Here's yet another example. let's say I have a garden and I found holes in say, my basil leaves and am trying to find bugs that may be causing that. In this search it would be fine to say "basil is an herb (that's the class of object to search), it finds that say, cabbage loopers eat mint, which is also an herb and returns those results" \- this indirection is correct here, assuming these caterpillars eat both plants (they do).

Now let's say I'm looking for a recipe with my basil plant and it uses the same indirection logic and returns mint recipes. Or I'm looking for songs by Toni Basil and I get Toni Thyme and Toni Lavender in the results ... now it's the wrong decision.

Here's another example: suicide by tylenol overdose is common and prompt medical care is extremely important. Often people mix up the terms "aspirin" and "tylenol" and many use them interchangably, big mistake here.

Pretend someone finds their friend passed out and incorrectly searches on the web, "aspirin overdose". It doesn't look like it is life-threatening meanwhile the time is ticking. The engine should be saying "yo, are you sure it isn't tylenol? that'll kill you". Getting that right (similar terms, far more common event, extremely dangerous) requires multiple of the above systems I spoke of combined together. Sometimes right, sometimes wrong.

Anyway, multi-method classifications of documents and search intents, totally the next step.

<comment><USER18> Got any papers that go though this in terms of pros/cons and such?

While I agree with you I have to wonder given what a lot of people have in terms of search problems are easily solve-able though the use of tf/idf or bm25 because it improves where they are starting to a level thats often good enough.

<comment><USER26> I don't have a doctorate and I'm not an academic. Let me try to be helpful.

IDF is old, like 1950s-1970s for most of the work. You have to put things in context. Digital storage was for surveys and structured documents; things that could be computed upon. Wasting computers for literature and opinions wasn't part of the application space. Why would you be storing newspaper opinion columns on your univac?

So if we are looking at say, demographic population surveys, essentially almanac data, then IDF serves you well. If I was searching "Duluth", then the document concerning the measurements taken in Duluth will have that word in it frequently.

Academically there's something called a "Zipfian" distribution and some math to back it up, but I have very little confidence in my mathematical formalism skills (been working on it for 20 years, still not very good) so excuse me for skipping over it.

The pros/cons appear in "application" sections when describing a technique. You can find these on wikipedia. Here's wikipedia's category on it: [https://en.wikipedia.org/wiki/Category:Information_retrieval...](https://en.wikipedia.org/wiki/Category:Information_retrieval_techniques)

I think, as a whole, we've understated the human interface problem in search. There's some technical tools that if are exposed and used can dramatically improve results.

For instance, a swap operator.

In some of my search systems I permit a syntax:

      "s(phrase[0]:...:phrase[n])"

That's because sometimes you can have a phrase say "x y z" where "z y x" and "x z y" are common but have different meanings and you only want a subset.

Then you have polysemy and homonomy ... so sometimes you want an exact terms, sometimes you want to fuzzy search, sometimes you want a collection of exact terms. So we can do exact with say "=", collection with a "|" and so on...

      's(=x:y0|y1|y2:z)"'

Now pretend you also want a range in there:

      's(=x:y0|y1a..y1z|y2:z)'

and so on. This syntax is also quite fast to process. You can permute all the elements without too much effort, look them up, and aggregate the results in very little time but we are really starting to get into a RegEx like query system which means a decent amount of technical knowledge is needed and that's where we have the interface problem.

These systems are _relatively_ easy to code and run on modest hardware (as in, something you can easily fit under a desk) but require more from the user - <USER2> level that frankly you just aren't going to get, let's be real here. I've found lots of otherwise competent programmers who struggle with say regex and bpf, I think I have some natural talent there that is not super common.

This is an example of why I think search is maybe, 50% a human interface problem.

</comment></comment></comment></comment></comment></comment><comment><USER27> bleve is a FTS engine written fully in go. [https://blevesearch.com/](https://blevesearch.com/)

<comment><USER28> And, going for the HN gold, Toshi is a FTS server written in Rust: [https://github.com/toshi-search/Toshi#readme](https://github.com/toshi- search/Toshi#readme) (backed by the FTS library [https://github.com/tantivy- search/tantivy#readme](https://github.com/tantivy-search/tantivy#readme) also in Rust)

<comment><USER29> Adding to this, here's a couple more options (also written in Rust):

Meilisearch - [https://meilisearch.com/](https://meilisearch.com/) Sonic - [https://github.com/valeriansaliou/sonic#readme](https://github.com/valeriansaliou/sonic#readme)

Sonic is slightly different in that it returns the indexes to the documents that you use to go and get from an external store, but the engineering behind it is super cool: it uses finite-state-transducers to build the trie's which are then search.

Edit: updated to correct link

<comment><USER28> Thanks for reminding me about MeiliSearch!

I think you meant your 2nd link to be [https://github.com/valeriansaliou/sonic#readme](https://github.com/valeriansaliou/sonic#readme)

<comment><USER29> Yes I certainly did, thanks for the catch.

</comment></comment></comment></comment></comment><comment><USER30> I found that the notion of token is very English centric. What you really want to do is to convert each sentence to a set of features, be it words, n-grams or prefixes/suffixes, etc. When searching, the way I implemented was to use those features for only narrowing the candidates, and apply a post processing to filter out inexact results.

</comment><comment><USER31> 2 major issues;

        Google is doing near real-time indexing of ~200,000 websites; It's expensive for others to do that;

        Google PageRank has matured over period of time to prevent https://en.wikipedia.org/wiki/Google_bombing

</comment><comment><USER32> what about the opposite? given a large block of previously unseen text: check if the text contains a word in a given list of bad words. I'm thinking ... profanity filtering, for example. So user inputs a page or two of text, we check it for profanity.

<comment><USER33> You could build a bloom filter with the profane words, then check your tokens for the page against that filter.

<comment><USER34> That would make sense if your list of expletives was too large to fit in memory, which would be... impressive, to say the least.

<comment><USER19> I'm Scottish, and I'll say it's definitely possible :p

</comment></comment></comment></comment><comment><USER35> Now someone do the same in Rust.

<comment><USER36> Does this count? [https://github.com/valeriansaliou/sonic](https://github.com/valeriansaliou/sonic)

</comment></comment><comment><USER37> for some reasons this sounds kind of like Gopher</comment>


$1K iPhone app - <AUTHOR> http://www.techcrunch.com/2010/01/17/most-expensive-iphone-app-barmax/

<comment><USER2> I think another important thing to note is that $300 of it goes to apple. Time to buy apple stock!

</comment><comment><USER3> Classic market waiting to be disrupted. Every lawyer I know did BarBri.

</comment><comment><USER4> They could have started out at like 49.99 and then just charged for in app purchases.

<comment><USER5> I think people might have been a little upset to find that they needed to pay a further $949.01 to access all the parts of the course :)

<comment><USER6> You have to look at the market. People that buy this app are going to be "in the know" and be serious about the bar exam and thus willing to spend some serious time AND money preparing for it. For the target audience this is not random purchase.

<comment><USER7> Not to mention that they're going to need nearly all of the material in order to properly study, so it doesn't make much sense to break it into pieces (at least in the case of the bar exam).

</comment></comment></comment></comment><comment><USER4> hunch: this is how the textbook market should be in general (obviously not 1,000 per app). i have a feeling the tablet will be the platform for content like this/textbooks.

</comment><comment><USER8> To be honest, I'm a bit surprised that after forking out x * 10^5 or even 10^6 dollars on tuition fee, you have to spend thousands of dollars on apps and textbooks to stand a chance on the exam. There is something very wrong with the US higher education system.

<comment><USER9> " even 10^6 dollars on tuition fee"

there are people who spend a million dollars on tuition? references?

<comment><USER8> Ooops... I meant 10^4 or even 10^5... I fail at basic maths.

</comment></comment></comment><comment><USER10> Quite interesting: I don't think I have seen (serious) software for handsets that's more expensive than the hardware (for PC's this isn't uncommon). If you want to run this, the costs of an iPod Touch to run it on are almost negligible (well, about 20%).

<comment><USER11> Buying topo maps for handheld GPS devices can easily cost more than the device itself. Garmin charges $120 for topo maps of the northeast alone, for a device that costs 100-200.

I've seen a lot of commercial uses for rugged palm pilots too, the special case software for that is probably quite expensive.</comment></comment>


Show HN: Take a 1 min pre-diabetes test for a chance to win $20 Amazon Gift Card - <AUTHOR> We are trying to spread awareness about the diabetes epidemic in America. 1 in 3 of us is pre-diabetic and 90% are unaware!
Try our chatbot and let us know what you think:
Text: 1-415-917-4663 Facebook: m.me/diagnoserai Telegram: t.me/diagnoserbot
Help us diagnose and help people avoid type 2 diabetes.
Take the test and share it with your friends & family. <comment><USER2> Nice! Would you recommend self-administered OTC blood glucose testing for a more definitive result?

<comment><AUTHOR> Hi Jordan -- once we assess the user as high risk, we connect them to a A1C clinic to confirm the diagnosis. If the client is pre-diabetic, we can also refer them to a Diabetes Prevention Program, covered by Medi-Cal starting January 2018.

</comment></comment><comment><USER3> Privacy?

<comment><AUTHOR> Great question. Currently we just store your risk score for state info.

The questions we ask are from this website: [https://doihaveprediabetes.org/](https://doihaveprediabetes.org/)

Do you have anything specific we can do to address your concern? A privacy policy at the beginning maybe?

</comment></comment><comment><USER4> Done</comment>


Substeps - simple DSL for anyone to code Cucumber-style tests - <AUTHOR> http://substeps.technophobia.com/index.html

<comment><USER2> It would be useful if the site made it obvious which language this is for. For anyone else wondering, it's (apparently) Java.</comment>


North Korea Is Dodging Sanctions with a Secret Bitcoin Stash - <AUTHOR> https://www.bloomberg.com/news/articles/2017-09-11/north-korea-hackers-step-up-bitcoin-attacks-amid-rising-tensions <comment><USER2> I'm sorry, but a country of 25 million people is "dodging sanctions" with tens of millions of dollars in bitcoins?

That's not really an amount of money to dodge much of anything at all.

<comment><USER3> Imagine going long - very long - with a stash that big.

The pundits-in-the-know often semi-seriously state they expect 1 BTC to rise to $100,000 USD within 10 years - looking at the past 5 years that's not an unreasonable statement to make. This is based on BTC's deflationary nature, and its increasing prevelance in the world. Imagine if you owned one 28,000,000th of the Internet economy - that would still be a _lot_ of money. What if you owned 10x or 100x of that? In BTC it's still an amount affordable by a large organisation or nation state, but in 10 years' time it would be like having your own Fort Knox.

<comment><USER4>
      pundits-in-the-know

That's an oxymoron. And I'm not even trying to be cynical. People in-the-know aren't pundits, they're the ones the pundits are talking about. You can tell because pundits suddenly have alot less to say, and are much more circumscribed, when they're discussing topics with which they have contemporaneous, first-hand knowledge--pretty much the complete opposite situation of someone publicly predicting the USD price of BTC 10 years down the road.

<comment><USER3> There are people like John McAfee who clearly understand Bitcoin and frequently post punditry to their Twitter feeds - and make jokes about BTC's future price: [https://twitter.com/officialmcafee/status/887024683379544065...](https://twitter.com/officialmcafee/status/887024683379544065?lang=en)

</comment></comment></comment></comment><comment><USER5> Isn't this a tenet of bitcoin? Not being outright controllable by the will of a government?

<comment><USER6> Except they still need to be able to spend the bitcoin and ship goods back to NK. If a country is willing to trade with them, then it doesnt matter if its using bitcoin or trading with something else. The important part is that bitcoin is something with monetary value that is able to be stolen easily.

<comment><USER7> Huh? Could you explain? Perhaps the exchange is unsafe, but the coin itself is most certainly not.

<comment><USER6> In the article, it basically talks about NK straling the bitcoin. My point is that to spend the bitcoin has the same hurdles as spending other money or trading something because the other country has to ship NK the physical goods they bought. Its less that nk is using bitcoin to get around sanctions and more its convenient for them to get a hold of.

</comment></comment></comment></comment><comment><USER8> Have you guys actually read the article? it's not claiming they're mining the bitcoins, they claim they are stealing them

</comment><comment><USER9> Cross ref with Jaime Dimon's comments on bitcoin ... interesting .

"You're wasting your time with Bitcoin! Virtual currency, where it's called a bitcoin vs. a U.S. dollar, that's going to be stopped," said Dimon. "No government will ever support a virtual currency that goes around borders and doesn't have the same controls. It's not going to happen."

</comment><comment><USER10> > "They also breached an English-language bitcoin news website and collected > bitcoin ransom payments from global victims of the malware WannaCry, > according to the researcher."

the article claims they can steal btc from any wallet. thats preposterous and if they could do that, stealing btc would be the least of my worries because that would prove several cryptography building blocks might be obsolete.

<comment><USER11> The article says no such thing.

</comment></comment><comment><USER12> There's a lot of ETH and BTC volume at South Korean exchanges. There's probably a reason for it aside from excitement

<comment><USER13> Korean exchanges don't have any fees on trades, only withdraw and deposit, so they're used almost exclusively for wash trading and other manipulation.

</comment></comment><comment><USER14> Mining makes much more sense - if they could acquire mining hardware from China (where it's manufactured) in trade, they could use that to mine cryptos, which they in turn can spend on the (relatively) open market.

Getting funds to agents in foreign territory is particularly easy if you're doing this.

<comment><USER15> I don't think North Korea has the electrical capacity to mine cryptocurrencies. They don't have enough electricity to keep their cities lit at night.

<comment><USER14> I'm certainly not an expert on the capabilities of North Korea, but my intuition says that if they can build a hydrogen bomb, they can power a few shipping containers full of ASICs.

My impression was that they aren't electrified because it isn't a national priority for them to be, not because they lacked the capable to develop the infrastructure.

<comment><USER16> On the contrary, it's probably part of their operating plans. Electricity and other creature comforts of modern society give people the free time needed to plan a revolt.

It's in their interests to keep the people alive yet stagnant.

<comment><USER3> If the NK elite want to continue to live in luxury they will have to do something about their underclass eventually. Bill Gates, et al, wouldn't have their present lifestyles if they didn't have well-educated (and well- nourished) people doing their work.

Serious question: If you're an elite NK party member with your own private home theatre set-up, who do you call when your Plex server stops working?

<comment><USER17> Kidnap some Japanese techs?

</comment></comment></comment></comment></comment></comment><comment><USER18> This is indistinguishable from old time FUD to me.

There have been a series of articles in a specific type of media lately trying to link NK or China or Russia with Bitcoin and blockchain technologies.

It reeks of fear. To me this means that Bitcoin is winning.

<comment><USER19> You should consider reading the article.

</comment></comment><comment><USER20> The proof they provide is "Fireeye said it." Must be legit, it's not like they're a company run by an Air Force vet with ties to the FBI, and there's no chance they'd make a ton of money off a cyber war with North Korea.

</comment><comment><USER21> Unfortunate display of the intrinsic value of bitcoin as an anonymous[1], decentralized store of value.

1\. Please don't tell me that btc is not anonymous; the fact that I can trace transaction histories is irrelevant, since I still need to deanonymize the initial address.

<comment><USER22> That's not anonymity, that's pseudonymity.

<comment><USER21> No, by the conventional definitions of anonymous [1], the protocol is fully anonymous. Saying that it is pseudo anonymous is in my opinion misleading. There is a different word to describe the weakness of a deanonymized address. I dont know what that word is, but we will confuse and possibly turn interested parties and laymen away with the misnomer of pseudoanonymity.

I would compate this mislabeling to claiming that btc is insecure because of the mt. Gox hack; the fact that you can steal bitcoin's from people doesn't mean that bitcoins are insecure. Similarly, the fact that I can trace your transaction trail does not mean that your transactions themselves weren't fully anonymous.

1\. Dictionary.com/browse/anonymous

<comment><USER23> pseudo anonymity != pseudonymity. In laymans terms, "pseudonymity" means "fake name" whereas pseudo anonymity would mean "fake anonymity". shemnon42 is using the exact terminology you are referring to.

In this case, the conventional definition of anonymous is less useful than domain-specific definition of anonymity, since different currencies have different levels of anonymity. Recent HN discussion: [https://news.ycombinator.com/item?id=14672691](https://news.ycombinator.com/item?id=14672691)

<comment><USER21> I have been misreading that word for a few months now. I didnt catch that people were using the root pseudonym.

I didnt even know that pseudonymous was a word until today, thank you.</comment></comment></comment></comment></comment>


Welcome to the 'Hood - <AUTHOR> http://weightshift.com/memo/welcome-to-the-hood

<comment><USER2> This is very interesting. Are you considering doing it yelp/groupon style, with a representative in each city? I'd be willing to be my local (san diego) rep, as I'm looking into getting more involved in my local dev community (and this seems like a great way to do that)

<comment><USER2> Sorry, meant to add: if you're interested in discussing something like this, please contact me via the email in my profile. Thanks!

</comment></comment><comment><USER3> Some integration with meetup would work well too, I would think - it already has an established audience of local developers in specific languages.</comment>