Viskell: Visual programming meets Haskell - <AUTHOR> https://github.com/wandernauta/viskell <comment><USER3> Cool! I'm also working on a visual functional language conceptually similar Haskell. I'm a founder of [http://www.filterforge.com](http://www.filterforge.com), and I want to develop a proper (i.e. Turing-complete, strongly typed with type inference, pure, lazily-evaluated) visual language for the next major rewrite of Filter Forge. Here's what I've been able to achieve so far:

A simple program (with equivalent Haskell and Racket code): [http://i.imgur.com/dsNJYyx.png](http://i.imgur.com/dsNJYyx.png)

List of strings, with element insertion GUI: [http://i.imgur.com/Re64IJE.png](http://i.imgur.com/Re64IJE.png)

A more complex program, a function definition, and some sugar for infix math: [http://i.imgur.com/KoxjoOM.png](http://i.imgur.com/KoxjoOM.png)

Fold using a lambda, with equivalent Haskell code: [http://i.imgur.com/avQNHXS.png](http://i.imgur.com/avQNHXS.png)

Complex signatures, polymorphism and typeclasses: [http://i.imgur.com/cZ4KMzt.png](http://i.imgur.com/cZ4KMzt.png)

<comment><USER4> Congratulations, you're now a member of the elite club of people who've (possibly accidentally? :P) made a subfeature so cool it needs to be a first- order thing in its own right.

I'm sure you've seen all the back-and-forth on here about open-source vs. closed-source in programming languages and taken note of current trends. :D

What I _will_ say is that this looks very, very complete, and it would be a tiny shame to limit its awesomeness and usefulness just to Filter Forge.

An as-is officially-alpha build of whatever produced those shiny screenshots would certainly go down very well.

<comment><USER3> Thank you, that's very encouraging!

The feature was not accidental. I always wanted to expand the possibilities of Filter Forge's nodal language, but until I met Haskell I didn't know how to do that. And now, after trying Haskell, it's simply impossible for me to think in terms of non-general, domain specific visual languages. The Haskell paradigm lends itself very well to a visual syntax, but there's a lot of problems to be solved, and that will be an excellent challenge for me in the coming years.

Despite looking complete, it's really, really far from that. There are serious conceptual problems that remain unresolved yet. We do have a visual tool for constructing and typechecking programs, but it's not yet ready for any release, even an as-is alpha. Actually, the screenshots I posted are my Excel mockups: [http://i.imgur.com/WYeLJJr.png](http://i.imgur.com/WYeLJJr.png)

As for the open-source / closed source, I spent some time thinking about that, and discussed the idea with the team, but we're not ready to make the decision yet.

On one hand, I'd be immensely pleased if our research on visual syntax for functional languages could be useful to the wide world. Functional programming really deserves wider adoption, and if our research can help that, I'd be very proud. Also, open-sourcing this may bring a lot of benefits to our commercial product, because it will allow us to access the global talent pool of functional programmers, who, collectively, have vastly more expertise than all our developers combined. I also think that many of these programmers are in academia, and would welcome a visual tool that could help them teach functional programming to their students.

On the other hand, we, as a company, have absolutely no experience in starting and maintaining open-source projects, and we have no idea how to do that properly, and what resources will it require from us. I'll have to read up on that.

<comment><USER4> > the screenshots I posted are my Excel mockups

 _ba-dum-tss_

...I see :P. Well, you've definitely got a really nice visual design so far, at the very least. I say keep it; the aesthetic (Excel-ness and all) looks good. (That said, now I know that it's Excel, I do strongly associate the visual style with Excel... so there is that. Could be me though.)

To open or not to open is certainly not a decision that can be made lightly, so careful consideration FTW.

On the one hand, this is a fairly unique, original idea, and not something that's been explored all that much, so there isn't that much competition. It would make for a very special product (if you made it standalone) or component (if you just used it in FF) and put you in a very unique position.

But if you stay closed, development and evolution would be driven soley by the experience level (and available time) of the development team behind FF.

On the other hand, language design is incredibly nuanced because of all the offerings that are available out there, and it takes a lot to make a language succeed, both design-wise and implementation-effort-wise. There's also a lot of technical competition - people will flock to whatever's easier to use, less buggy, more developed - and, lately, what's more active.

On top of that, visual languages are a very special case scenario. Considering there's so little out there in terms of visual languages, in a field where academics and tinkerers are constantly trying every possible combination, it's clear that for systems like this to make it, they must provide just the right amount of flexibility/functionality: too little and they'll be frustrating too use, too much and they'll lose design coherence. I suspect the sweet-spot for this level is less generalized than that of common programming languages.

There are people out there that _really_ know language design, know the pitfalls, have made the mistakes, etc, and it would be ideal to be able to get anchoring design/implementation advice for the core system from this hivemind, especially considering the experimental direction you're trying to go in. (This would logistically be significantly trickier, if not absolutely impossible, in a commercial context.)

A few open-source models I can think of off the top of my head, which I've observed and taken vague mental notes on over the years (I feel like I'm forgetting the important ones):

\- Fully open, code released as-is; no support, patches/PRs only - <USER2> among burnt-out developers (possibly with soul-crushing jobs)

\- Periodic (weekly to biyearly) code-dumps released as-is; full commercial support - the codebase is open so people can tinker with it, but everyone knows the party's where the private repo's at, and the open code dumps are so badly far behind in the dust, there isn't much activity on the open codebase

\- Open-source version as-is but supported; commercial version has added magic unicorn pixie dust - interact and make the open-source version feel like it has a nice big community/hub atmosphere around it and you'll eventually attract contributors. (Proceed to spend 90% of your time breaking up catfights among said contributors.)

\- Fully open-source; random company decides it's the perfect thing to base their internal stack on - development track must be well-defined in order to to compartmentalize personal goals while prioritizing contracted feature requests

\- All program source and related assets placed into the public domain - developer is insane

I write the above as a more-or-less-non-developer with no real-world practical experience. I'm still collecting ideas and methodologies and working out which ones to use where.

One thing I've seen reiterated various different ways is having clearly defined limits. Without this, I've heard you can can wind up having to deal with types who'll send in the support request equivalent of leaving a 10lb dumbbell on the accelerator and walking away... yes, open source can occasionally _look_ like a perpetual motion machine, but that's largely an optical illusion, there _are_ real people behind the support buttons and algorithmic magic.

Something that will be incredibly useful in my case is cultivating consistency: I'm currently figuring out how much public-facing interaction (commit frequency, reply latency, general visibility) I can handle on a really bad day/week/month, so I can then stick to that level regardless of where I'm at. On a good day keeping up everything will only require very little of me, on a bad day I'll still be able to poke stuff without getting too badly bitten. I expect you've already established this with FF, but this type of thing needs to be more explicitly defined in an open-source context (where there's a lot more interaction).

Another useful thing that I think might be relevant here is the idea of closed betas: the code is _technically_ open source, but everyone agrees to keep the lid on it until some specific point in the future. This is ideal both for solidifying project design and incubating an initial userbase who will not be able to help but share it when it goes open :D (I will mention, however, that I'm aware of projects out there that have been invite-only for years (due to licensing issues, looks like) and it's driven me crazy that I have to commit to signing up to the (free) project's beta in order to take it for a 30sec spin. The ideal solution to this, I think, would be keeping it predominantly private and only doing limited publicity; with good ideas, this won't be damaging.)

<comment><USER3> > _a really nice visual design so far, at the very least. I say keep it_

Thanks :) This is basically Material Design / Flat design, and I consider it to be perfectly good-enough for an MVP, so yep, I'm keeping it :)

> _To open or not to open is certainly not a decision that can be made > lightly_

Absolutely. Thank you for your write-up on open source models - you just saved me a lot of work. I'm bookmarking your comment for reference.

A concern I have about the entire open-source thing is that it will put a lot of maintenance burden on us, while not providing enough benefits in the 'breakthroughs departnemt'. For example, I'm sure the contributors can optimize performance or implement relatively minor inprovements, but I doubt that the community will be able to implement big systems (for example visual support for higher-kinded types). Is this generally the case, or I'm being too skeptical due to my lack of experience with open source?

> _On top of that, visual languages are a very special case scenario. > Considering there 's so little out there in terms of visual languages, in a > field where academics and tinkerers are constantly trying every possible > combination, it's clear that for systems like this to make it, they must > provide just the right amount of flexibility/functionality: too little and > they'll be frustrating too use, too much and they'll lose design coherence. > I suspect the sweet-spot for this level is less generalized than that of > common programming languages._

These days, there are two kinds of visual functional languages in use by general (non-programmer) public:

1\. Node-based image / video processing systems. Examples: material / shader editors in any modern 3D modeling app (3DS Max, Modo, Maya, Houdini etc.) and compositing apps (Shake, Nuke etc). Node-based (i.e. functional) workflow is nowadays a standard in these apps. Language-wise, these are simple funcional languages without higher-order functions, recursion and flexible type systems (they do offer strict typing, but you cannot construct custom types).

2\. Excel. Yes, Excel. Basically, it's a tree of formulas, which are mostly pure (except for certain functions that access time, random numbers etc.). The evaluation order depends on the functional dependency, not row/column order, just like in a pure lazy functional language. No recursion, no reusable functions (though Simon Peyton-Jones proposed adding spreadsheet-defined reusable functions to Excel). Weak typing, no custom types, no recursion, no turing-completeness.

What I'm aiming for with my language is not full generality. It will be somewhere in between Haskell and Excel. It will be fully turing-complete like Haskell, but in terms of 'side-effectness' it will be more similar to Excel and Filter Forge: the program is entirely pure, and the only elements that access or produce side effects are the inputs and outputs of the program. The program is executed momentarily, just like in Excel and Filter Forge, and there's no notion of time or waiting.

</comment></comment></comment></comment></comment><comment><USER5> This is cool, but not really the problem I have, nor many I've talked to have when actually doing something 'real' in Haskell. (Granted we're a rare breed, actually trying to _use_ Haskell for real-world use outside academia)

Show me how much memory a program will actually use. If it uses a lot, show me _why_ it did, and _where_ it did.

This is a solved problem for most mature languages, and the lack of tooling making it even remotely possible to figure this out in Haskell speaks volumes about how ready it is for "real world use".

<comment><USER4> It might be worth starting a discussion on this subject (here or elsewhere) to make more people aware of this problem.

(It was buried at the bottom of the comments here, not many people will see this)

</comment></comment><comment><USER6> Has anyone been following Lamdu[1] and can comment on its status? I had expected to hear about it more often when it was announced 2 years ago...

[http://www.lamdu.org/](http://www.lamdu.org/)

<comment><USER4> TIL about this, this is very cool.

FWIW, "Latest commit ... 4 days ago," so it's not dead, which is nice. (And 4 days certainly gives lots of hope!)

</comment></comment><comment><USER7> Unison bears linking in this thread I think.

\- [http://unisonweb.org](http://unisonweb.org)

\- [http://unisonweb.org/2015-05-07/about.html#post- start](http://unisonweb.org/2015-05-07/about.html#post-start)

</comment><comment><USER8> For me visual programming adapts quite nicely to many FP concepts.

I can easily imagine some graphical tool similar to digital circuits design, where the basic build modulus are the lambda calculus basis.

</comment><comment><USER9> It might not be clear, but here's an application to generate cities 'procedurally' using data flow operators

[https://youtu.be/PDrALvAqsaI?t=254](https://youtu.be/PDrALvAqsaI?t=254)

The possibilities of this 'paradigm' are pretty unbouded and not tied to the usual programming data types.

<comment><USER3> That's not just an application for procedural cities, that's Houdini ([http://www.sidefx.com/](http://www.sidefx.com/)), a relatively well-known 3D modeling, animation and rendering tool based on the node-based (a.k.a. functional) approach. I investigated them, and while I found the tool itself very powerful, its language is not a proper general-purpose functional language, and I don't think it's turing-complete (if you exclude their integrated Python scripting).

<comment><USER9> Yeah, I didn't imply it was a tool dedicated to this task, it's just a non- traditional example of dataflow (most of the time I see signal, maybe image composition, very regular data types).

You're right that the node-based part is not a proper GPFP. I just wanted to link a 'complex' application of the visual ~functional (if piping is function composition is correct) kind.

</comment></comment></comment><comment><USER10> Visual programming is always well-suited to audio synthesis, would be cool to see something like the Synthesizer library in there: [https://wiki.haskell.org/Synthesizer](https://wiki.haskell.org/Synthesizer)

</comment><comment><USER11> I can add Scheme Bricks:

[http://www.pawfal.org/dave/index.cgi?Projects/Scheme%20Brick...](http://www.pawfal.org/dave/index.cgi?Projects/Scheme%20Bricks)</comment>


USCIS Completes the H-1B Cap Random Selection Process for FY 2016 - <AUTHOR> http://www.uscis.gov/news/alerts/uscis-completes-h-1b-cap-random-selection-process-fy-2016 <comment><USER2> IMHO, fix this by replacing the 'random' with 'highest salary' (or total comp). Just go down from the top.

\- It would alleviate (though probably not solve) the downward pressure on salaries.

\- It would ensure that companies are well motivated to find domestic workers since they would, theoretically, be cheaper.

\- It would ensure that H-1B's go to the people who would add the most value to the economy (or else the company would be less competitive due to overpaying).

\- It would favor the most talented foreigners rather than putting them in a random lottery with new grads.

\- It would allocate the H-1B's to the companies that need them most (since they're offering the most money)

\- It would maximize the future tax take of the US government (maximum income => maximum taxes paid)

Ironically, this might have prevented me from getting my own H-1B as I got it fairly early in my career.

<comment><USER3> I think this hits a snag (as do many income-based schemes) when you consider the effect of region. This results in lots of H1-Bs going to San Francisco, and almost none to Atlanta, because salaries for the same position are twice as high in San Francisco.

<comment><USER4> You could try and maybe normalize salaries based on the location I guess, but this also hits a snag when you take into account occupation. Some occupations generally pay lesser than others. Do they then not warrant H1Bs? Don't think so.

<comment><USER5> If an occupation has a lower salary, then perhaps its time for the occupation to pay more to attract local candidates. Otherwise the H-1B is being used to suppress wages.

</comment></comment></comment></comment><comment><USER6> I'm originally from France, came to the U.S. for undergraduate studies in 2010. My first year here, I fell in love and started dating an American student, and have been dating her ever since. Similarly, I fell in love with the United States, and wish to spend my life here. Currently, I am currently on OPT, applied for the H1-B process this year with my great SF company, and now am waiting to hear back about my 28% chance of getting a visa...

I'm not trying to scam the U.S., or cheat Americans out of a job, and my company is paying me the same amount as the americans who started at the same time as me. Instead, I want to be an American, and be a part of this country. Despite this, I am now at risk of being deported if I don't get the visa, and having to leave behind my whole life here, and my girlfriend here who I intend to spend the rest of my life with.

The worst part about this is that I am completely powerless, and at the whim of chance.

<comment><USER7> You're not completely powerless compared to others: you can marry your girlfriend ;)

<comment><USER8> OP if you read this, if you decide to get married, you REALLY need to do it before your visa expires (by as much as possible).

If you do it after you'll technically be in the country illegally and they will reject your marriage visa automatically (i.e. you'll have to go home to apply for your marriage visa, they won't even accept your application while you're still illegally in the US).

It may already be too late to do this without having to leave the country. A marriage visa can take anywhere between six months and a year and half, unless you can get them to rush it though (which they've done before, but normally at foreign embassies rather than at the NVC, and without kids, a dependant, or either of you being US military it will be hard to get an expedited process).

PS - Maybe consult an immigration attorney in your case.

PPS - If your visa is expired try not to get "caught" with it expired. Sneak out of the country to avoid a ban, rather than getting a ban and trying to fight it. It could save you a long fight and literally years banned from the US.

<comment><USER9> Hey armchair lawyer, you're wrong. You can apply for adjustment of status immediately after exchanging vows. This gives you an independent legal immigration status while the application is adjudicated; "pending adjustment." Unless you are already in removal, you're good to go. Even if you are already in removal, if you haven't actually been deported, then you can make the same application for adjustment directly to the immigration judge.

And as long as you entered the country legally (e.g. not without inspection or fraudulently), simply having being out of status is forgiven when sponsored by a US spouse, so long as there are no other bars to the application.

That said, going out of status is never a good idea. But as long as you apply while you have a valid immigration status, there is no out-of-status time period.

Anyway, OP would be advised to consult with a qualified immigration attorney rather than HN commenters.

<comment><USER10> > Hey armchair lawyer, you're wrong.

Here's an actual lawyer that says you're in fact wrong (they're right):

[http://www.alllaw.com/articles/nolo/us-immigration/apply- for...](http://www.alllaw.com/articles/nolo/us-immigration/apply-for-green- card-on-expired-visa.html)

Key quote:

> If you are in the United States with an expired visa, then you most likely > are not eligible to apply for adjustment of status.

But the whole article, start to end, almost mirrors the above comment and contradicts most of what you said. Key question: Are you a lawyer? You implied you are but are giving legal advice which contradicts a proven law firm specialising in immigration law. You also criticised someone else for being an "armchair lawyer" (implying you're not).

> You can apply for adjustment of status immediately after exchanging vows.

"Applying" sounds great, but you are in no way granted anything while the process is on-going. In fact they very specifically recommend you avoid travelling to the US while your visa in processes, as that could result in a "misunderstanding" and them junking your visa because they believe you're living in the US already.

That's the advice I was given in person by someone at the US embassy in London. She said "make sure if you travel you, you have a return ticket, and don't take too much luggage or it could cause your application to be rejected."

> simply having being out of status is forgiven when sponsored by a US spouse, > so long as there are no other bars to the application

Even though they tell you many MANY times when applying that applying from within the US without legal status will automatically get you rejected? This is the NVS and the US embassy. Where are you getting your information? Can you cite a source which proves that they forgive fiancee visa applicants for visa violations?

> That said, going out of status is never a good idea.

Why? They forgive it according to you. Kind of contradicts what you said before...

> But as long as you apply while you have a valid immigration status, there is > no out-of-status time period.

Unless you apply for an extension on your OLD visa, you almost certainly will be out-of-status given how long fiancee visas take under normal circumstances.

> Anyway, OP would be advised to consult with a qualified immigration attorney > rather than HN commenters.

I agree. Your comment here is full of misinformation and dangerous misinformation at that. At least the above comment is suggesting they follow the documented visa process (leaving, apply, then re-enter when it is accepted). You're proposing they ignore visa law because of some "magical" clemency you claim that fiancee visa applicants are granted.

Your advice is just dangerously terrible and wrong.

<comment><USER11> actually cplease is RIGHT and you are wrong

from your own link, here's the part that cplease is referring to (SPOUSES)

> Despite the general rule that people whose authorized stays have expired > cannot use the adjustment of status procedure to get their green card, the > following types of people may be able to stay in the United States and > adjust status:

> Immediate relatives of U.S. citizens, namely their spouses, parents, and > unmarried minor children (under age 21). Immediate relatives may adjust > status even with an expired visa – but not if they entered the United States > illegally, without a visa or other authorized form of entry.

once Synroc marries, he becomes a spouse and _should_ become eligible for adjustment of status

</comment></comment></comment></comment></comment></comment><comment><USER12> I'm one of those 233k this year. Was an intern with a J1 a couple years ago, came back to my country to finish grad school, and my former employer wants to hire me back.

From what I've been researching, there are several of these so-called "consultancies" that hire mostly Indian guys (please don't take it personally, no offence intended), fake their resumes, and give them shitty life conditions in the US. Lots of people also pay for these consultancies to apply for them with fake jobs as to increase their chances in the lottery.

Its a shame that us with real, good-paying jobs have to go through that. I'm being hired because they cannot find someone in the US to fill this spot and because they already know me and think I'm a good fit for the company.

</comment><comment><USER13> The worse part is that there are a lot of applicants filing multiple applications. They pay some agencies just to file H1B applications for them. This itself is against H1B application policy. There is an ongoing petition trying to get government's attentions: [https://petitions.whitehouse.gov//petition/remove-and-ban- ch...](https://petitions.whitehouse.gov//petition/remove-and-ban-cheaters-who- sent-multi-petition-h1b-lottery-selection)

<comment><USER9> Multiple petitions with multiple legitimate sponsors is not actually disallowed. That being said, there are few situations where a legitimate sponsor would be on-board with an applicant simultaneously filing another petition. I'm not sure if an applicant is legally (as opposed to morally) required to disclose this to sponsors. It is certainly abused all the time.

<comment><USER14> It's a tragedy of the commons. In order to have a chance against 233k other petitions, if people can get multiple petitions filed on their behalf, they would be stupid not to. Which then inflates the overall number even further.

The people it really hurts are highly qualified individuals sponsored by a single well known tech company ... like I was two years ago. Luckily I got my H1-B then and am now well on the way to a green card.

</comment></comment></comment><comment><USER15> I was going through this painful process two years in a row. Last year there were around 170k petitions filled. A year before that, around 125k.

We did not win the lottery both times, and opted for L1B instead this year. It is available only to the companies who have international offices in order to bring people from abroad to the US. Still waiting on this...

I'll probably write a blog post about the whole experience, once everything is over. Stay tuned.

P.S One thing is certain - US immigration desperately needs fix.

</comment><comment><USER16> So, let's say Google wants to move you to US and wants to pay you $200.000+ because you're a unique scientist that filling a position that can't be filled by a US citizen. After spending time and money for the interview process, they apply for H-1B on behalf of you. Than there goes the lottery, than no luck, than what?

168.000 is pretty decent number to turn down after your own companies spend all those resources just for the selection of those applicants.

<comment><USER17> For Nobel Prize winners and champion soccer players there's O-class visa. H1-B is for the plebs.

<comment><USER18> actually, Miguel de Icaza, from Gnome and Mono fame, got an O visa, I wonder what was the initial Visa that Linus Torvalds got, but he could well apply for that O, with no objection from me.

</comment></comment></comment><comment><USER19> Does anyone know or have an estimate on how many of the 233,000 total are filed under the Master's cap?

<comment><USER20> If we can extrapolate from the numbers at [1] (not sure how representative it is) then about 29% of the 233,000 total petitions would be filed under the Master's cap. That'd be around 67,337 Master's cap petitions.

[1] [http://redbus2us.com/trackers/h1b-visa- tracker/](http://redbus2us.com/trackers/h1b-visa-tracker/)

</comment></comment><comment><USER21> If any of you are in the SF Bay Area, I'm organizing a hackathon[1] on May 29~31 in SF focused exclusively on immigration. Shoot me an email at my HN username at gmail dot com and I'd be happy to give you a generous discount code.

[1] [http://www.up.co/communities/usa/san-francisco/startup- weeke...](http://www.up.co/communities/usa/san-francisco/startup-weekend/5961)

</comment><comment><USER22> Why this is important:

Because if a tech company wants to hire a foreigner, the visa process (regardless of skill^1) is basically worse than a coin toss. Which means companies have a much more limited pool of applicants. And let's be real, this country doesn't have nearly enough STEM professionals to meet demand.

1)Exceptions: Master's degree (another lottery), extraordinary ability (pretty tough).

<comment><USER23> > let's be real, this country doesn't have nearly enough STEM professionals to > meet demand

... at current salaries.

<comment><USER24> what in your opinion the current salaries are and what they must be in order to attract enough professionals? I mean do you see a lot of people who aren't STEM professionals because they feel the salaries are too low? If they aren't STEM professionals than where they are?

<comment><USER25> I see a continued loss of excellent, experienced -- 10-15 years into their careers -- engineers from sf to Seattle, Chicago, Colorado, Boston, and Austin driven by an admixture of the poor wages in sf/peninsula compared to housing costs, poor transport plus long commute times, very high education costs for children, high daycare costs, and family unfriendly work policies. Three friends and at least nine acquaintances over the last 24 months.

Compare the housing prices of what a three bedroom condo in sf (what a 2 child family wants) vs the other cities, plus the ability for mothers to take a couple years off work. Losing 15 to 20% of your salary to save 50% or more of housing costs is often a great deal.

<comment><USER14> The Bay Area is fundamentally broken in that cities refuse to build new housing and schools. Supply is limited, demand exceeds supply, and engineers are competing against each other for that very limited supply.

So if all us engineers' salaries went up, it wouldn't help. We'd just end up spending even more to out compete each other. (Well, I guess it would help push non-engineers out of the Bay Area, but is that really what we want?)

<comment><USER23> If there is nowhere to house new engineers, why do companies apply for H1-B?

<comment><USER14> That's mostly orthogonal to the H1-B question - why do they hire anyone? (Most of the hires are not H1-Bs.)

I'd guess the answer is, marginally, hiring people is still good for companies. But combined with the lack of housing development, it's slowly but steadily making life worse for everyone in the Bay Area who doesn't yet own a house.

If it continues this way, eventually people won't move here without ridiculously high salary offers, and companies will be forced to expand in cheaper cities instead.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> I had to resign from my job in San Francisco in order to go back to France for a couple months due to family issues.

My H1B was revoked by my employer in January. My I-94 is valid until September 24, 2015.

What are my options to go back and work in the US now? Is there anything besides filling a new petition in 2016?

Or is transferring the previous H1B still an option?

<comment><USER27> You don't have to go through the lottery again if you have already gone through the cap selection process once

</comment></comment><comment><USER28> When do they reach out to people if their application has been selected in the lottery or not?

<comment><USER29> It can take months. Got my approval in August.

<comment><USER28> Is approval notice the same as getting picked up in lottery? I think you can get picked up in a lottery but approval is not guaranteed.

</comment></comment></comment><comment><USER30> Now it makes sense why there are so many foreign Masters students.

</comment><comment><USER31> They still need more than 6 months to answer the H1-B extension request, with the consequence that those candidates either cannot travel anymore or have to leave permanently.

</comment><comment><USER32> In simple words, US Immigration system is quite messed up.

<comment><USER33> Rather it is companies gaming the system to get below market labor, and it has a huge negative impact on the entire market.

</comment></comment><comment><USER34> Do L-1 visas have caps? Why not hire oversees for a year and bring them in after that as a L-1 visa holder?

<comment><USER15> Almost 50% of all L1 petitions get RFE (Request for evidence). It's becoming harder to use this visa to bring people to the US these days, too. It's especially difficult for big outsourcing companies (proving and supplying enough evidence for the "specialized knowledge" (L1B) category is really non trivial for the companies and often not clearly understood by the USCIS officers, hence the RFE).

However, USCIS has recently released a new L1B adjudications policy for public feedback ([http://www.uscis.gov/news/uscis-posts- updated-l-1b-adjudicat...](http://www.uscis.gov/news/uscis-posts- updated-l-1b-adjudications-policy-public-feedback)) where they clearly define the "specialized knowledge" category. Maybe this will help companies to properly understand what's needed to demonstrate the specialized knowledge in the future, but I really doubt it.

</comment></comment><comment><USER35> How does this affect TN visas (if at all)?

</comment><comment><USER36> Can someone translate to human language?

<comment><USER37> In the good old days, it wasn't so easy to hire a foreigner that studied computer science in an American university: They'd get an automatic 1 year practical training visa, and if after a few months you saw that they were a good hire, you'd sponsor them for an H1-B, and eventually a green card. That's how many senior people that were born overseas got to their spots.

Now, thanks to low quotas, and some rather unsavory consultancy companies, the H1-B program has now become useless for this purpose, as you have less than a 50/50 chance of getting an H1-B approved, just due to quotas. So while an honest company that wants to hire a good developer will not be OK with the delays and the low percentages of hiring someone in those conditions, a mill that interviews thousands of people and will place them in third party customers as consultants will gladly just keep flooding the market with applicants that probably will not get anywhere.

TL;DR The H1-B program used to be defensible, and maybe useful. The way it works now, it only works for companies who abuse it.

<comment><USER38>
       it wasn't so easy

I think you meant "it wasn't so hard"

</comment></comment></comment><comment><USER39> This is the process I went throught back in 2005 to get a job in IT after graduating in Business in Poland: 1\. Got a position with an Indian company that promised a job after paid training ($5k) 2\. After 3-month long training they totally and completely faked my resume. I.e. included 5-years experience, fake credentials, fake references. 3\. Got me a job with large, large bank. 4\. Got half my salary for 6-months. 5\. After that I was on my own as I couldnt stand lies anymore.

From my experience 90% + people from H-1B is on these terms in the US. We had trainees on our "camp" that _literally_ haven't seen PC keybaord before. Ending up as IBM tools specialists in Fannie Mea, Freddie Mac, Capital One.

This much about H-1B. And this much about interview process int the US too. And actually about dumb Americans who can't get a job in that country too.

<comment><USER32> I see your point here, and it is valid -- to some extent.

Yes, the "Indian" consultancies have been exploiting this system for ages and US Govt has been trying its best for past three years to not grant visas if USCIS can not establish Employer-Employee relationship. But still these consultancies always find loop holes.

I have come to this country as an immigrant as well. I went to an average university first in midwest and then transferred to a top 10 engineering school. I have seen "Americans" who can not do basic algebra in Calculus 1 classes. And I have studied/work with "Americans" who are at the top of their game. It is really subjective. Unfortunately, American media is exporting "Booty Culture" (think Kim K.) to the world rather than preaching about their rockstar scientists and engineers.

</comment></comment><comment><USER40> OK and why is this the top of HN? Because of the number of applications?

The number of applications is slightly higher than last year, but still I fail to understand why it is on the top, because this same thing was happening for the last 4+ years.

My application was picked up in the year 2013, so I have been following both HN and the USCIS at that time. Never saw it make top of HN.

<comment><USER32> Because HN caters to tech audience and majority of the H1-B petitioners are tech workers. Get it?

<comment><USER40> I myself am an immigrant. I seriously don't see any need, because all the new immigrants will keep their eyes and ears open to see if their application is selected. All citizens/ existing immigrants, don't really care.

<comment><USER41> Speak for yourself. There are plenty of us who care.

<comment><USER40> It is ironical, in asking me to speak for myself you are using the "royal" us.</comment></comment></comment></comment></comment>


Want to learn Rails? Start here. - <AUTHOR> http://zackshapiro.com/post/31672964808/want-to-learn-rails-start-here <comment><USER3> Somewhat tangential, but I wish there were more comprehensive learning resources for Clojure, particularly getting started with web development. Given that there is no equivalent of Django or Rails, and web development in clj is really about assembling a collection of libraries (Ring, Compojure/Moustache, Enlive/Hiccup etc), it is much harder for the initiate to understand how everything fits together. The fact that Rails is so opinionated also really helps the new developer become productive in a relatively short timeframe.

I'd imagine this would apply to just about any other language as well really. The Ruby community really is fortunate to have such brilliant free resources out there for learning Rails and the language.

<comment><USER4> Um, why exactly would you use something like Clojure if you're not comfortable building up your own particular set of libraries that you like for your project?

Clojure to me seems like a language culture that would likely tend towards smaller libraries that do specific things than something with batteries included and such like Rails.

If you want something on the JVM with more of a batteries included approach Play Framework for Java and Scala is pretty nice and Lift for Scala is cool if you're willing to take a very different approach to your web stack.

<comment><USER3> > Um, why exactly would you use something like Clojure if you're not > comfortable building up your own particular set of libraries that you like > for your project?

I decided upon Clojure as I think it meets the needs of my project well, which is basically an expert system. I need to consume a number of domain specific java libraries, and the native support for logic programming with core.logic and datalog is a big win. Clojure certainly wasn't the easiest choice - <USER2> would be much further ahead if I started with Ruby.

> Clojure to me seems like a language culture that would likely tend towards > smaller libraries that do specific things than something with batteries > included and such like Rails.

I should clarify that I think Clojure's favouring of smaller composable libraries is ultimately a better approach than the monolithic framework. It is much more difficult to get to a point where you're productive however.

</comment></comment></comment><comment><USER5> Usual things in rails is really simple but doing unusual things requires going down a rabbit hole of google searching, rdoc, blogs, etc due to the modularity (I had this issue with thor) of rails.

<comment><USER6> This _exactly_ describes my experience with Rails. It was so easy to do very normal things, and finding and extending gems was so much easier than doing the same with apps for Django, because in Django I basically had to rewrite every app I wanted to use (plugabiltiy was really bad, at least back in 2009-ish).

But with rails as soon as I wanted to do something less than extremely typical I was in a world of terror an _ambiguity._ It was so hard to figure out the "right" way to accomplish a lot of tasks.

<comment><USER5> The ambiguity wrt choices is what gives rails it's large ecosystem (as well as semi high 'addon' churn). It's both bad and good, bad due to the huge amount of reading needed to fully understand a stack such as devise and good in that it allows such modularity.

<comment><USER7> This is a lot of the reason that I don't recommend that students use something like Devise right off the bat. Putting things in middlewares is pretty great for separation of concerns, but it's confusing as hell if you need to figure out how something is done, and it's nowhere to be found in your source.

</comment></comment></comment></comment><comment><USER8> Very solid approach. As an incoming Fall '12 DBC student, I've found Ruby Koans (<http://rubykoans.com/>) and Ruby Cookbook ([http://www.amazon.com/Cookbook-Cookbooks-OReilly-Lucas- Carls...](http://www.amazon.com/Cookbook-Cookbooks-OReilly-Lucas- Carlson/dp/0596523696)) to be incredibly helpful in grounding and adding more context to my Rails Tutorial experience.

</comment><comment><USER9> <http://schneems.com/ut-rails>

</comment><comment><USER10> So basically

1: Study it

2: When you're lost, research and ask someone

?

<comment><USER11> I think the real take-away is to give yourself an actionable/completable project, that you can devote significant blocks of time to, and then feel good when you complete them.

<comment><AUTHOR> Bingo, Rolandal

</comment></comment></comment><comment><USER4> I'm a big fan of the giving myself some kind of challenge to prove out a framework or technology. Like, "build a meme site" or "build twitter" or something like that. It does two things. One, you are forced to use the technology for a real thing to solve real problems. Two, it becomes very apparent how good the documentation/community/libraries are. Both are critical because most any technology can solve most any problem you throw at it if you are willing to write enough code, but the libraries, documentation, and community make a huge difference in the day to day experience of using any language or framework.

</comment><comment><USER12> I'm actually in the process of learning Ruby right now. I'm curious though. From the perspective of someone who has hasn't been programming for a long time, would you consider it a good idea to learn Ruby before learning Rails? I'm waiting on my copy of The Well-Grounded Rubyist to arrive so I can get started.

<comment><USER13> Check out <http://tryruby.org/> while you wait. I just ran through it again last night and it's so beautifully crafted I want to weep.

I learnt Ruby kind-of-alongside Rails and wish I'd spent more time focusing on the language itself; I'm going back and deepening my knowledge of it now. But it depends on how your mind works, whether you want to get a Rails project going yesterday, what knowledge you have locked away somewhere, and so on.

</comment></comment><comment><USER14> And some more: [http://pineapple.io/resources/tagged/ruby-on- rails?type=tuto...](http://pineapple.io/resources/tagged/ruby-on- rails?type=tutorials)

</comment><comment><USER15> The article doesn't mention <http://railsforzombies.org>.

Which is a great first tutorial to get some basic with Rails.

</comment><comment><USER16> Here's another good list, and it takes contributions on GitHub. <http://iwanttolearnruby.com/></comment>


Inglehart–Welzel cultural map of the world - <AUTHOR> https://en.wikipedia.org/wiki/Inglehart%E2%80%93Welzel_cultural_map_of_the_world <comment><USER3> At the surface this is a fun visualization and it confirms some vague stereotypes. A closer inspection shows that the appearance of 'cultural regions' is primarily done by the use of a color scheme that is taken from beyond the data plotted. Note that India and Poland are next to each other in the data space. If you ran a clustering you would find the Indo-Polish cultural group to be very hard to split. That said, I suspect that it would be very hard to convince anyone that India is more like Poland that say Bangladesh, or conversely that Poland is more like India than say Hungary. This map is perhaps a fairly arbitrary reduction in dimensionality.

<comment><USER4> And in the 2017 version, Poland no longer borders India, but is caught with Chile and Argentine (South Poland?), while India now is neighbors with Italy. It's certainly not a very stable mapping; perhaps all it does is amplify the noise.

<comment><USER5> or, alternatively, Poland and India have seen large cultural evolutions over a short period of time.

<comment><USER4> It's not only Poland and India. And the attitudes the graph supposedly shows shouldn't change that much in 9 years.

<comment><USER5> There has been some serious changes there these last 9 years.

</comment></comment></comment></comment></comment><comment><USER6> The word choice for the scales is unfortunate. I would've labeled them "religious to mundane" and "locally to globally concerned." Mostly I have a problem with any definition of "traditional" which has Japan at the least traditional country.

</comment><comment><USER7> How on earth are these metrics defined even somewhat objectively? How is it justified that countries such as China, India, and Russia occupy only one point despite being stunningly diverse polities? Why are all 'traditional' values rolled into one category? Why are 'survival' and 'self-expression' considered opposite extremes?

<comment><USER8> In this case it's entirely factor analysis of responses to a particular survey, the World Values Survey [1], which gets periodically administered across a number of countries. The survey data and factor analysis can be done in a fairly "objective" way, in the sense that you do have answers that vary between countries, and you can analyze trends there. Whether the factors pulled out of these particular sets of questions can accurately be labeled with fairly strong terms like "traditionalism" is maybe more controversial. You also have the general issues around self-response data.

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

</comment></comment><comment><USER9> This is based on a certain positivist view of culture, that tries to quantify on certain cultural dimensions. This doesn't look behind coded appearances. As a specialist for Turkey I would say that it is much more secular-rationalist than Germany. But would never voice it as such, which is a form of respect. For sure in quantitative interviews one would not be able to account for that. On top of that this map's cluster is unscientific because it clusters things that are not comparable (provokes a type error). Confucian: religion, English speaking: language, South Asia: continent. I am a PhD student in intercultural management.

<comment><USER10> > As a specialist for Turkey I would say that it is much more secular- > rationalist than Germany.

Wow, that's surprising, can you expand on that?

I had a Turkish girlfriend for a few years, it felt like I was living in Turkey. (For example, we couldn't hold hands in the street–in Australia!–because Turkish people would see and her family would find out. Being married makes a female suddenly off-limits to male harrassment, but public affection with a boyfriend seems shameful and quite the opposite.) I learnt that e.g. changing your religion in Turkey can get you killed. Then the Islamists took over and it felt like things were getting medieval quickly. But I haven't heard news from there for 5+ years.

<comment><USER9> Sure, first immigrant communities are always different. Depending on their context of emigration (from where, how did they emigrate) and also the surrounding society. It can be a part of their cultural identity to do as one thinks a Turk would do. Nevertheless that is exactly a part where I would think that a simplification to compare with a global rational cultural dimension is impossible. Marriage is in Turkey much more important, but most Turks would not counter you with Islam, but with a rational discourse, e.g. a woman can get pregnant, she has to secure her hypothetical children. If she gets pregnant, the family would look like they couldn't take care, and so on. It is another story if this is really something that the family should decide. On the other hand if you would visit Turkey, which is heavily urbanized, and especially Istanbul, which is like 20% of Turkey, you would see that a lot of things are not allowed, but done. Because, well, it is not that much not allowed. I would not take those numbers for granted, but it is a funny indicator in the Durex report, where Turkey has a mean number of sexual partners of 5.3 and France just 3.8 [1]. I would also be very careful when to blame Islamists. Turkey is not a religious country. There are a lot of countries who want to construct here a clash of cultures. And apostasy is not something that gets you killed.

[1] [http://www.durexnetwork.org/SiteCollectionDocuments/The%20Fa...](http://www.durexnetwork.org/SiteCollectionDocuments/The%20Face%20of%20Global%20Sex%202010.pdf)

<comment><USER10> Thanks. But you didn't say anything to persuade me that

> As a specialist for Turkey I would say that it is much more secular- > rationalist than Germany.

And reading [https://en.wikipedia.org/wiki/Religion_in_Turkey](https://en.wikipedia.org/wiki/Religion_in_Turkey) doesn't at all give the impression that

> Turkey is not a religious country.

Neither does [https://en.wikipedia.org/wiki/Apostasy_in_Islam#Turkey](https://en.wikipedia.org/wiki/Apostasy_in_Islam#Turkey) which says

"there are several formal and informal mechanisms in place that make it hard for citizens not to be Muslim. Non-Muslims, especially non-religious people, are discriminated against in a variety of ways. Article 216 of the penal code outlaws insulting religious belief, a de facto blasphemy law obstructing citizens from expressing irreligious views, or views critical of religions."

</comment></comment></comment></comment><comment><USER11> Brazil would have to neighbor all colors for this map to be true, including protestant Europe. For instance, Uruguay is in a place that seems correct (Uruguay was once a Brazilian province, BTW, and still has close ties).

<comment><USER12> The question is whether those polled in Brazil are more or less traditional than those polled in Uruguay

<comment><USER13> Uruguay is a very secular place, should be further up on the graph.

</comment></comment></comment><comment><USER14> Does anyone know what the dashed red line that roughly encloses the top-left quadrant of the map refers to?

The original publication that the diagram was produced for is available[1] (for purchase) from Cambridge University Press.

[1] - [https://www.cambridge.org/core/books/modernization- cultural-...](https://www.cambridge.org/core/books/modernization-cultural- change-and-democracy/value-change-and-the-persistence-of-cultural- traditions/38CE84B8D8C32E588D31A30EE7A5649F)

<comment><USER15> Ex-communist states. Written there on the map

<comment><USER14> Thank you; I saw that label but was unclear whether it referred to the red- coloured area, or the area within the (also red) dashed line.

In that case I imagine that the red-coloured area is former Soviet states (?).

<comment><USER16> The red are is probably the ortodox christian region.

<comment><USER14> That'd make sense too, and would match the 2017 version of the diagram further down the page.

Azerbaijan and Georgia seem to have very different religious profiles though, which could be a counterpoint.

It's a shame the diagram doesn't have a key associated with it (at least on Wikipedia) :)

</comment></comment></comment></comment></comment><comment><USER17> The fact that all of the regions on this map have such odd and arbitrary shapes--along with the fact that they don't correspond to obvious clusters in the underlying scatter plot--does not inspire confidence.

</comment><comment><USER18> This is interesting to consider in the context of Zeihan's "The Accidental Superpower"[1] which says that \- geography is destiny, and \- the U.S. won the geography lottery.

The idea that geography has some input to the rest of the cultures values, as shown in TFA, sounds plausible.

Whether Zeihan actually has the right of it isn't clear, however.

[1] [https://www.amazon.com/Accidental-Superpower-Generation- Amer...](https://www.amazon.com/Accidental-Superpower-Generation-American- Preeminence/dp/B00P2QB8M6/ref=sr_1_4)

</comment><comment><USER19> Very interesting, I would love to see level-headed discussion on this, although it might be politically fraught. I'm curious how these two axes were decided, if anyone knows.

Also, it makes me wonder about cultural relativism, since it seems there's this implicit sense of "progress" by the way the map was constructed. It lines up with my values, but is that my Western bias?

<comment><USER5> It is stats 101, or maybe 201: simply the first 2 principal components in a PCA.

That is acceptable as they accounted for 70% of the explained variance, as explained in the wikipedia entry.

If you want, you can also use the first 3 PC and do a 3d plot on (x,y,z) - <USER2> is rarely used as most people have problem visualizing groups with more than 2 dimensions. It could separate countries like Japan, which end up in an interesting position.

To address your second question, if there was any "cultural relativism", it would have been in the question asked.

But when you take the answers to whatever questions, do a PCA and find the PC that explain a large part of the variance, you abstract away any cultural relativism.

You could critique the name used for the axis (it depends on the correlation structure), but not the axis themselves (they comes from mathematical results)

</comment></comment><comment><USER20> Interesting concept, but seems quite subjective and Eurocentric. Out of the 7 labels given, 3 are Europe-focused (Catholic Europe, Protestant Europe, English speaking). If a Muslim made this map, for example, would it make sense for them to split the world into Sunni, Shia, and Arabic speaking?

</comment><comment><USER21> Interesting that Cyprus is in South Asia according to the 2017 map. Clearly, the hand-painted clusters are not super insightful or thoughtful.

</comment><comment><USER22> They should have at least flipped it left-right, and it would look like a badly drawn world map.

<comment><USER23> But then Western Europe would not be in the top right quadrant, where it belongs.

</comment></comment><comment><USER24> Those belong to the Emperor... embalmed ones... those that tremble as if they were mad...

</comment><comment><USER25> "Out of Western world countries, the United States is among the most conservative (as one of the most downwards-located countries), together with highly conservative Catholic countries such as Ireland and Poland."

Abortion is now legal in Ireland[1a] – it is illegal in Poland still[1b]. (Yes, abortion was only recently legalised in Ireland but that's because it required a constitutional amendment to change the law and those sorts of votes only come round once a generation, attitudes had long since shifted.)

in 2015 Ireland became the first country _in the world_ to approve same-sex marriage by popular vote[2a] – Poland does not legally recognize same-sex unions[2b], either in the form of marriage or civil unions.

Ireland ranks 3rd in the world in the Human Development Index[3], 6th in the world in the Democracy Index[4], and 15th in the Press Freedom Index[5] – Poland ranks (32nd, 57th, and 59th) and the USA ranks (15th, 25th, and 48th)

The view that Ireland is a highly conservative Catholic[6] country is, I would argue, a very outdated view. It's a stereotype that needs to wither on the vine, along with other crude stereotypes of the place. Of _course_ there remain conservative pockets, but the same could be said for any place.

My point being, if the chart (and article) are that off base about a country I know about how can I trust it is correct about other countries I am less familiar with? It all seems hopelessly reductive, almost a stereotyped distortion of reality.

[1a] [https://www2.hse.ie/abortion/](https://www2.hse.ie/abortion/)

[1b] [https://foreignpolicy.com/2019/01/08/poland-is-trying-to- mak...](https://foreignpolicy.com/2019/01/08/poland-is-trying-to-make- abortion-dangerous-illegal-and-impossible/)

[2a] [https://en.wikipedia.org/wiki/Same- sex_marriage_in_the_Repub...](https://en.wikipedia.org/wiki/Same- sex_marriage_in_the_Republic_of_Ireland)

[2b] [https://en.wikipedia.org/wiki/Recognition_of_same- sex_unions...](https://en.wikipedia.org/wiki/Recognition_of_same- sex_unions_in_Poland)

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

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

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

[6] [https://www.cso.ie/en/releasesandpublications/ep/p-cp8iter/p...](https://www.cso.ie/en/releasesandpublications/ep/p-cp8iter/p8iter/p8rrc/)

( Though 78% self-report as Catholic only 35% attend Church on a weekly basis which I would argue is a truer measure of religiosity. [https://en.wikipedia.org/wiki/Religion_in_the_Republic_of_Ir...](https://en.wikipedia.org/wiki/Religion_in_the_Republic_of_Ireland) )

<comment><USER26> The grouping is arbitrary made by some human or algorithm trying to make a pretty map.

As said in the article, the locations on the graph are based on the answers to the world values survey [0]. I have no idea about how exact they are or biases they might include but by that it seems you guys answer the same even though the playing field of society has changed.

Maybe we will see Ireland start trending towards the upper side if it is redone in another 10 years time?

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

</comment></comment><comment><USER27> I don't think Quebec is going to like that ;)

</comment><comment><USER28> Where is Israel on the map?

</comment><comment><USER29> The fact that Europe and it's colonies (with around a tenth of the worlds population) fill up half of the map hints at some Eurocentrism. Shoving all of Asia and all of Africa into tiny equally sized corners is quite strange.

<comment><USER5> Are you familiar with the methodology used?

> The fact that Europe and it's colonies (with around a tenth of the worlds > population) fill up half of the map hints at some Eurocentrism

It reads to me like "results of a 2d plot using matrix multiplication do not match my biases, it hints at some Eurocentrism"

But to answe the question, No, it just means there is more variance there in whatever cultural values where measured, then analysed by PCA.

I will try to give you similar counter intuitive examples.

Likewise, Africa has more genetic variance than the rest of the world, even when adjusted by population. It does not mean anything, except that there are more separate groups who did not intermingle much there.

If I remember correctly, Papua New Guinea has the most genetic distance to the rest of the world. It does not mean anything either, except that it's far away to the rest of the world, so had fewer contacts.

> Shoving all of Asia and all of Africa into tiny equally sized corners is > quite strange.

No, it means that both 1st and 2nd PC had close values. Maybe if you look at the answers to the questions themselves, there would be little variance.

What is interesting is that we can make cultural clusters while we wouldn't have expected any to remain after PCA.

It shows geography impacts the diffusion of cultural values, which is fascinating - and more so for the exceptions, like Uruguay.</comment></comment>


Micro-front ends in Webpack 5 - <AUTHOR> https://github.com/sokra/slides/blob/master/content/ModuleFederationWebpack5.md <comment><USER2> We already kind of solved this problem at IMDb using Webpack 3 and 4 (with tons of hackery). It was, all things considered, a terrible idea.

We ended up with a web page with 10 nearly identical sections implemented 10 different ways by 10 different developers across 10 different git repositories.

Micro-frontends are cancer, please don't fall for it. You can get much more done for less with a single webserver and a graphQL service, not matter your project's scope.

No front-end on earth needs multiple teams to build it - if it does, your product is convoluted and needs to be split up and/or simplified.

<comment><USER3> I don't understand anything here about the microfronted.

Why would you do that ?

You can already share and resuse components, modules, stores, functions ?

What I don't see here ?

<comment><USER4> The use case I've seen is for iteratively moving away from a legacy system.

Say you have monolithic front end and you want to move to a new framework/version/etc. Instead of rewriting the whole app, you can approach it feature-by-feature and slowly replace the legacy app, Ship of Theseus style[0].

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

<comment><USER5> This is exactly what we're doing now. Some of the problems we've seen thus far is how to maintain packages but allow for high-iteration development. It is cumbersome using a packaging service, so at best it's being able to decide what to keep in a shared rep, versus things that are being rapidly developed in it's own rep. Any component that needs specific tweak then becomes duplicated and sadly, code-reuse and maintainability suffers.

Another problem is tracking down inter-component bugs, especially if the code is behind a repository. How am I to make small tweaks? Bleh!

I haven't digested what Webpack 5 is doing, but I'm skeptical, mostly because I don't like Webpack's plugin implementation.

</comment></comment></comment></comment><comment><USER6> Maybe this is good and useful for some people: but to me it feels like a continuation of the dark slide that frontend tooling is going on. Way overcomplicated, likely brittle and buggy, significant barriers to just sitting down and building stuff.

<comment><USER7> I agree with the general sentiment of frontend tooling becoming more complex over time, but the thing about features like this one is that you don't ever have to use them or even think about them if you don't need to. But they sure are nice to have if you _do_ need them.

Personally, I'm looking forward to implementing this at work, but I don't think I'll ever touch it for my personal projects.

<comment><USER8> It's a great point that you don't need to use these things if you don't want to in your projects, but the caveat is that you will often end up working on projects other people created, and they might have done things like use a feature just because it seems cool, or create the project from a template that includes the kitchen sink and eventually rusts through.

In those cases, you have to understand the rusty sink at least well enough to fix it, and hopefully well enough to assess if it was the right tool for the job, and how to safely remove it if it really wasn't.

A great example of this is actually create-react-app. Many people who have no idea what they're doing start off an app using this toolset and end up with a boatload of things they aren't even aware of, like a half-baked service worker that by default caches the app's code in localStorage to enable offline app functionality!

My own experience with that specific issue was of people building a production system on top of an ejected create-react-app, who ended up with deployment issues where some users arrived to a blank page after some deploys. It just seemed to happen randomly.

It turned out that after some deploys, for some users, the default CRA service worker's cache and the webpack js minify+chunk configuration, and the 404 redirect configuration for firebase, didn't play well together. You could end up with new code calling cached code which requested chunks that didn't exist anymore, and getting served html 404s with status 200, so the cache wouldn't bust properly. Understanding this, debugging it, and solving it safely (in part by safely deregistering the service worker for all users) took ~days!

The really upsetting part is that no one involved in building this app (neither founders nor original create-react-app-running devs) ever wanted service workers, nor a progressive web app offline code cache, nor code chunking, nor optimistic 200-html pages in place of 404s. But those were all default options and packages and stackoverflow copypasta that got cargo culted in, and it produced a bit of a tower of crap.

<comment><USER9> The worst software hairball I've ever had to untangle was a react/redux/saga monstrosity that was excruciating difficult to debug or improve. I finally got permission to rip most of that out and the resulting plain react app was fairly pleasant to work on.

So yeah, software development fads matter whether you personally follow them or not.

<comment><USER10> I was recently brought onto a project to add a couple of simple screens to an app. Any other react project it would have taken a couple of days so I was surprised the previous estimate was for weeks of development effort. Opened up the hood to find saga, and quickly discovered why it would was weeks of effort.

</comment></comment></comment></comment></comment><comment><USER11> This is basically micro-services ideology but applied to the front-end. To me, all of this reads as:

"We couldn't agree on a programming language, framework, or set of common development practices, so everyone gets their own individual silo and never has to worry about what everyone else is doing."

Does anyone pay attention to the organizational problem that underlies all of this? You have to agree as a team on this stuff. Microservices is not a way to solve a technical problem, but a way to bandaid an organizational/people problem. You simply couldn't get 2 different front-end or back-end teams to agree on some policy or framework, so now you put an explicit rift between them with this microservice bs.

We did monolith->micro-services->monolith. I will rewrite a system from scratch before i put it into a leaky box and try to wrap an API around it ever again. You can try to sell this as some sort of way to migrate away from legacy without rewriting code but that is a bullshit siren song that is never true in any reality. You will likely save more time over the long haul building 1 coherent system (both frontend and backend). Keeping legacy around and pushing it further and further into container inception is not a rational technical solution if you actually want to pay down your technical debt at any point.

</comment><comment><USER12> Honestly, that looks like the most horrifying piece of tech that I really wanna learn and try...

In my org, most teams that need it have like one front end dev that's shared among three other teams, and like one or two people who can hammer out some React and don't hate JS to help out with most of the stuff. I suspect this would be an utter madness for that kind of a team.

And yet I feel like I wanna try that for our next project.

<comment><USER13> Good luck coordinating. A result of acquisitions, my product has a combination of Angular, React, Vue and server-rendered pages. And each front-end is deployed as it's own node app, so no shared CDN, which complicates module federation further. Certainly not Webpack's fault.

<comment><USER14> > my product has a combination of Angular, React, Vue and server-rendered > pages.

This is intended by Micro Front.

Most Billions Dollars SaaS are based on this Frankenstein type of architecture, the goal is simple :

\- Support legacy code with Zero Effort

The result for the end user is absolutely horrendous , it create slow and bloated web pages with Megabytes of JavaScript with UI of various style and behavior similar to Confluence/ Jira etc...

This architecture fits perfectly fit the state of the current market :

\- Push lots of stuff out "as fast as possible"

\- Turn over in software in +20%, people who build Jira 5 years ago aren't there anymore , they cashed in their stocks and went somewhere else to get a bigger paycheck

\- The people who build those apps , most of the time , don't use them...

Leaders of Atlassian use Gmail and GDrive , I'm pretty confident that they don't even use Jira or any of their own software...

Those apps are so slow and bloated it's astonishing...Yet when something is the "norm" in the industry , it's definitely not an issue.

<comment><USER13> Let's not bury the lede here. The problem is with coordinating, not the colorful selection of technologies used. Most teams use abstractions on top of Webpack, because they are not interested in how a bundler works, and would rather focus on product features (from a business perspective: I can somewhat appreciate this sentiment). Since most teams haven't ever picked up Webpack, and barely touch facades surrounding it, good luck telling them to add module federation to their configuration.

</comment></comment></comment></comment><comment><USER15> The goal of micro-frontends (different teams being able to deploy "their" parts of an application) is nice and all, but I still don't see how this is going to work when the shared modules release breaking changes. So now all those different teams that work on different parts of the same applications will still need to do one massively coordinated release in which they all migrate to the newer version at the same time, and a single team delaying things can put the work of all other teams on hold.

<comment><USER16> Couldn't you version shared modules to avoid this?

<comment><USER15> What do you mean by "versioning" them? If you mean running two different versions of the same library and putting them in different shared modules, then: maybe, that depends on the library. I'm quite sure that that's not possible with React, though, and I've experienced the same problem at a previous employer that insisted on using Polymer: Web Components have their own tag name (e.g. <google-maps>), and you can't run multiple versions of them at the same time because they'll both want to claim that tag.

</comment></comment></comment><comment><USER17> Can we please stop overcomplicating the terminology around frontend architecture? The whole Isomorphism craze was bad enough - lets not make this stuff more complex than it needs to be and create confusion by over-loading existing terms like containers.

Whats being proposed here are dynamically linked shared libraries, they expose some functionality & also consume dependencies (that may be shared). Theres no need to be talking about containers, federation, orchestration etc...

</comment><comment><USER18> Of all the possible ways to write it, "Micro-front ends" definitely isn't the right one. I thought it was about Webpack 5 dropping support for something.

<comment><USER12> Well, a lot of style guides prefer "front end" and "back end" instead of one word (similarly to a web server, and not a "webserver").

If that's given, "micro" creates a compound noun that comes with a dash. Hence, micro-front end. Whether it's correct, that, I strongly suspect, depends more on your style guide than anything else.

As far as I'm concerned, whatever makes the technical writer happy is good for me...

</comment></comment><comment><USER13> I opened a PR to upgrade my project to webpack 5 in 2019. Still haven't merged it since Webpack 5 still isn't released. If they have no further breaking changes, they ought to release and do a 5.1 with further non-breaking new functionality.

</comment><comment><USER19> The Webpack dev team's time would be much better spent on making their code strongly typed, with configuration especially having a strong type definition. We need less Webpack to deal with, not more.

</comment><comment><USER20> A poorly organised company will always be a poorly organised company regardless of the tools it uses.

</comment><comment><USER21> This seems like something useful that I hope to never have to debug

</comment><comment><USER22> So this is like Server Side Includes (SSI) but with shared state and built on top of JS modules?

<comment> iso-8859-1 Yes, but please, can you avoid going around saying that? My children depend on the money I earn by selling support for this. Complexity is a virtue of our industry, and by embracing it, we will all be richer and happier.

</comment></comment><comment><USER23> Does it finally work magically out of the box like Parcel does?

<comment><USER24> Webpack, just like Parcel, has always "worked" out of the box without installing anything extra. You do still have to write a tiny webpack.config.js. Bundles code just fine by just including `webpack` and `webpack-cli` in my project.

<comment><USER25> In addition to needing to write a config, you also need to find and install plugins (loaders) for various file types, and those plugins need to be configured as well. The idea is that parcel handles that for you automatically. For Webpack, there's often competing plugins, and beyond that competing workflows e.g. TypeScript via tsc, or transpilation via Babel and typechecking via tsc.

Still, parcel is not 100% seamless in the sense that whilst parcel doesn't (generally) require plugins, you do still need to add/install regular file type dependencies. "typescript" for .ts files, and "sass" for .scss files and so on.

<comment><USER24> > you also need to find and install plugins (loaders) for various file types, > and those plugins need to be configured as well

No, you don't _need_ to find and install plugins, unless you need it because you're going further beyond than the core use case of webpack.

You're comparing two tools that have different focuses and compare them on the axis of "working out of the box" which some specific use case in mind. Parcel might work out of the box for React, because it was created to provide that experience. Webpack wasn't created for that, but to provide customizations for its users. Of course Parcel is gonna be better at providing that experience

</comment></comment></comment></comment><comment><USER26> Please change my mind: I think that sharing modules on the run is not related on microfrontends. Actually what you can achieve with module federation it's achievable with npm modules. The main difference is that are accessible at run time and that them are sharing common dependencies. But it would be a hell to handle deployment and breaking changes.

</comment><comment><USER27> Like <Frame/> but better!

</comment><comment><USER28> I'm hoping that module federation will enable multiple, separately deployed services to reuse assets so that users moving between those services may do so without redownloading the same things over and over.

We've been able to achieve this to good effect using Webpack 4 with some hackery ([https://www.matthinchliffe.dev/2020/06/03/taming-webpacks- co...](https://www.matthinchliffe.dev/2020/06/03/taming-webpacks-content- hashes.html)) but I'd love to be able to point to something documented and official instead... this sort of looks like it might meet this need. Fingers crossed.

</comment><comment> globular-toast This title was quite hard for me to parse. I was thinking, what is Micro-front and why is it ending?

</comment><comment><USER29> Micro-front ends sound like a bad idea, and exactly like the sort of thing our architects would think is a good idea. Does anybody know of any horror story blog posts so I can show my manager, just in case?

</comment><comment><USER30> Nice. Now all the clients pretending to develop microfrontends (by breaking up the repos) but shipping one big js bundle can stop fucking lying now.

</comment><comment><USER31> what software used to create the diagrams in the article?

<comment><USER32> looks like [https://excalidraw.com](https://excalidraw.com)</comment></comment>


This Chart Shows the Staggering Human Cost of Staging a World Cup in Qatar - <AUTHOR> http://www.motherjones.com/mixed-media/2015/05/chart-fifa-deaths-qatar-move-it-to-the-united-states

<comment><USER2> But aren't those 1200 people who died in the construction industry and not just World Cup related construction projects?</comment>


Breakthrough ultrasound treatment to reverse dementia moves to human trials - <AUTHOR> https://newatlas.com/ultrasound-dementia-alzheimers-human-trials/57725/ <comment><USER2> Ok so the article says this successfully destroys the amyloid plaques, but does it help cognition or slow the disease?

Specifically for "slowing" it seems entirely plausible that breaking up the plaques will allow misfolded proteins to migrate (due to reduced size).

Ignoring entirely the there have been multiple drugs that successfully reduced amyloid build up, with no actual benefit. Eg they did exactly what they were designed for to no avail.

<comment><USER3> There's a theory on beta amyloid that it's merely the by-product of other causative agents, and that as a surrogate end-point for Alzheimer's outcomes, it's not nearly as useful as symptom reduction, as you state. My professor who studied AD and dementia likened beta-amyloid to the garbage leftover in a stadium or outdoor concert: you know something went down, this leftover trash isn't great, but hard to determine what actually did occur just based on beta- amyloid.

Of course, the AD research field is still divided and there are many competing theories. Solving AD and dementia is one of the greatest challenges in modern science.

<comment><USER4> Plaque on your teeth is a symptom too:

Do what you can daily, but let a dentist break it up periodically.

</comment></comment></comment><comment><USER5> Alzheimer is weird in that plenty of treatment works in mice but fails in humans. I suspect it's primarily because we do not fully understand the cause of Alzheimer.

<comment><USER6> This is because our mouse models of Alzheimer disease are terrible. And pretty much everything we've tried has been aimed at beta-amyloid.

I think there is a better chance for this therapy because of the way it works, by transition the microglia over to an anti-inflammatory mode.

If this procedure passed safety trials I wouldn't be surprised if a similar therapy worked for schizophrenia, anxiety, and depression.

<comment> jf- I agree that various kinds of immune modulation will be a huge part of medicine in the future. Promising results vs cancer, seems plausible you could teach or program the immune system to attack anything in the body once you've identified it. Controlling autoimmunity will also be a challenge.

<comment><USER6> They've already started doing this with cancer. The problem is the cancer evolves to stop producing the identifiers the immune system was using to determine what to kill.

</comment></comment></comment></comment><comment><USER7> Is there speculation on what this would do to a healthy brain?

<comment><USER8> Probably more harm than good- you probably don't want ultrasonic waves shaking your neurons around without a good reason. This sounds like a "kick a TV and it works again" sort of technology.

<comment><USER9> You might not need ultrasound though, eg [https://www.nature.com/articles/d41586-018-02391-6](https://www.nature.com/articles/d41586-018-02391-6).

I can't find the link now, on mobile, but I found reference to using low frequency sound/light and that (anecdotally) individuals had tried this with their Alzheimer suffering relatives and had great success, like miraculous recovery of memory.

I wonder if there is a natural occupational exposure (CRT TV?) that could give evidence here, like if fewer people long-term exposed to low frequency sound/light get Alz?

Related: prenatal ultrasound could be significantly damaging, [https://www.pnas.org/content/103/34/12903.full](https://www.pnas.org/content/103/34/12903.full).

<comment><USER10> There was a great Radiolab episode about the lower-frequency stuff. IIRC, the hypothesis there is that you can stimulate certain types of brainwaves that tend to run on similar frequencies, so that seems like it's probably working via a separate mechanism from the proposed effects of the ultrasound treatment, since ultrasound is way too high-frequency to correspond to any known brainwave frequencies. Perhaps both treatments could be complementary, though, assuming they both pan out.

</comment></comment></comment></comment><comment><USER11> Sounds promising and I hope it works. But until its proven to work well in humans I won't get exciting about it

</comment><comment><USER12> [https://www.foundmyfitness.com/episodes/dale- bredesen](https://www.foundmyfitness.com/episodes/dale-bredesen)

<comment><USER13> Rather than just posting a link, it would be helpful if you would give a brief explanation of what you find useful or interesting there.

</comment></comment><comment><USER14> [https://www.youtube.com/watch?v=qQhUxd82Rr0](https://www.youtube.com/watch?v=qQhUxd82Rr0)

</comment><comment><USER15> Wow. This is amazing. My 96-yo grandmother could really try this because anything that could potentially improve her QOL would be good.</comment>


The JetStream 2 Benchmark Suite - <AUTHOR> https://webkit.org/blog/8685/introducing-the-jetstream-2-benchmark-suite/ <comment><USER2> As anecdotal evidence, their results seem to be indicative of the real-world browser performance I'm seeing with my (largish) application. There is a perceptible difference between Safari, Chrome and Firefox, in that order.

I really hope that Firefox catches up with JavaScript performance, BTW.

</comment><comment><USER3> lazyweb: arewefastyet.com from mozilla used to visualize performance differences between chrome, safari/webkit and firefox. Safari used to come out on top. Is this still the case? Is there perhaps another site where one can follow these browser races?

<comment><USER4> Safari doesn't run on Linux and hasn't supported Windows in a long time. Opera and Edge have or are switching to be Chromium based. iOS doesn't allow apps to implement performant browser engines so they all skin Safari.

Technically you could load Firefox, Chrome, and Safari on Mac but Firefox and Chrome have wildly different performance on the same hardware running on Mac vs Windows.

So in short no, there aren't really any useful comparisons to be had beyond what arewefastyet currently has.

<comment><USER5> Arewefastyet has Mac results, but it only includes Firefox on Mac, not Safari or Chrome.

</comment></comment></comment><comment><USER6> > All numbers are gathered on a 2018 MacBook Pro

Worth noting that these results may vary on Windows or Linux.

</comment><comment><USER5> A lot of this article is about benchmark construction methodology and performance optimizations. If you just want to see a cross-browser JavaScript performance comparison, scroll to the bottom.</comment>


Linux.com: How to get a Windows tax refund - <AUTHOR> http://www.linux.com/archive/articles/59381 <comment><USER2> >> "You can't return the operating system because the computer can't work without it."

That is a very annoying misconception. I tried Windows Vista, and in attempt to be fair and be sure I gave it a fair chance, I even called support to see if there was a way around the things that annoyed me. When it became clear that instead of helping me fix the problem they wanted to explain that I didn't want what I thought I wanted, I said, "if there really is now way around this, I just won't use Windows". And the response was basically, "you can't run a computer without Windows!"

It's sad that the employees answering the phone don't even realize they have competitors. If more users realized there was an alternative, MS would certainly have to try harder to make a decent prdocut.

<comment><USER3> I guess they know they have a competitor. Which doesn't allow their OS to be installed on any hardware without a bitten apple on it...

<comment><USER4> Desktop Linux is still a competitor that you can instill on windows HW.

<comment><USER3> Given the market share, I'd say Linux is as much as a competitor as OS/2, right now...

<comment><USER3> looks like Linux fanboys hate to know the truth - that all desktop Linux distros combine eat up less than 4% of the market!

Or am I missing something here? Please enlighten me before downvoting, thanks!

<comment><USER4> In most open markets 4% is a fairly large market share. Depending on where you define the edges of PC market, windows has a 70 - 90% of the market share, but it's far from the only game in town. Windows market share is also steady shrinking and has been for several years.

However, OS/2 is such a tiny fraction that it's hard to estimate accurately. So comparing Linux to OS/2 is vary trollish behavior.

PS: Windows market share is being consumed both at the high and low end. As an investor that's a major reason to become concerned and has nothing to do with being a fain boy. Companies that simply ignore their competition tend to be eaten over time. Feel free to look at other sectors of the computer market over time to see how fast this transition can happen.

<comment><USER5> And, of course, the PC market is so enormous, that 4% means millions of machines.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> > Getting your Windows refund may take several hours of work, after which > you'll get a small amount of money.

I'd rather spend the time working and get a larger amount of money.

</comment><comment><USER7> I don't know if I'll want to get a Windows refund but it sure is a great guide to dealing with phone reps.</comment>


Distinct acute effects of LSD, MDMA, and D-amphetamine in healthy subjects - <AUTHOR> https://www.nature.com/articles/s41386-019-0569-3 <comment><USER2> I sometimes feel that my psychedelic experimentation has permnantely (or close to) alteted my visual processing and other less tangible mental mechanisms in a negative way. I also falsely recognize people and faces in things that are not which often makes me jump like Cramer from Seinfeld. Psychedelics still hold such a special place in my heart.</comment>