If you want something different, Axler's "Linear Algebra Done Right" or maybe Shilov's Linear Algebra book are good.
The game is available for many platforms (including iOS and Android) at https://www.scienceathome.org/games/quantum-moves/game. Be aware that the game is highly addictive!
Foldit (http://fold.it/portal/) is probably the best there is a game that actually contributes to the science of protein folding.
You can also try GROMACS to actually run physical simulations, but it's more involved and not what you'd consider interactive. But you can look at your molecule wiggling in space with any pdb viewer.
I've been dreaming of a WebGL-based 'quantum lab' to revolutionize this. Would anyone be interested in helping attack this problem with me?
Lastly, I'll add in my recommendation since I don't see it here yet: Falstad's terrific simulators, with a whole section just for QM. (Note: java applets. SIIIGGHHHHH) http://www.falstad.com/mathphysics.html
Noteall of Falstad's stuff is open source, and I've been dying to port a few to webgl as a way to get started. Anyone with an interest in this would be a very welcome help!
By the way, re- The Powder Toy - despite my comment in the question it actually seems like it's pretty realistic in many ways. The number of different things it models at once is impressive (interactions between substances, airflow and pressure, ambient heat and heat flow, etc) plus it has a ton of visualisation modes for seeing properties of the simulation (such as visualising temperature). Highly highly recommended - I've already spent a large amount of time in it! :)
I found it to be pretty fun but since it is based on such un-intuitive physics it's sometimes pretty hard to understand what you are doing or why you've won or lost a level.
EDIT: I'm not sure if the latest edition still includes the CD-ROM.
EDIT2: There are some materials on the book's website, http://vqm.uni-graz.at/index.html
Disclaimer - I'm the developer.
1/ Sign up for an account2/ Configure your home's router to use their DNS servers3/ Install an agent on a machine in your home's network, authenticate it with your account credentials. When your router's IP address changes, this agent makes sure to update your account.4/ Configure the sites or types of site you want to block.
Once you're up and running, If a DNS request from your network matches something that'd be blocked, you'll get re-directed to a "Blocked Content" page.
The amount of things that can be set is quite comprehensive:
- the apps that can be used
- which iTunes/App Stores are available and with what age ratings
- whether the camera can be used
- whether Mail can be used to contact anyone or just allowed contacts
- One of "unrestricted web access", "try to limit access to adult sites" or "allow access only to sites in <list>"
- time limits for the account - hours per day, and time of day for weekdays and weekends.
- privacy settings - e.g. allow him/her to install an app/use sites, but prevent those apps/sites from accessing things like contacts data etc.
The only 'off the shelf' solution that would cover this level of control for macs network-wide, would be to put OS X server onto one of the computers and use network logins, with the appropriate limits set.
On Windows a Group Policy probably can achieve the same results, and maybe they're easier to use now, but they were definitely not as point-and-click as Apple's options last time I had any interaction with them.
It works on both OSX and iOS.
It lets you maintain multiple blocklists.
It lets you schedule sessions to start in the future so you can shut yourself off from the siren song of the set of all human knowledge at 11pm and go to sleep.
I've received my green card through my sponsor company 2 months ago. (It's a highly reputable fortune 100 company and I am building their core web product)
And I have a project that's getting traction and really want to leave the company and commit full time to it.
But everything on the web says I need to wait at least 6 months before leaving the company after I receive green card, otherwise they can kick me out for fraud when I apply for citizenship later. But some people also say this is just a myth.
So the question: Is this true and I am stuck with this company for next 4 months even though I really want to go full time on my project? Any ways to get around this? Thanks!
p.s.I know this is not a type of question that you may be interested in answering since it's a minority case, but I would really appreciate at least a one line comment on what you think (or even saying it's not something you can answer). It looks like it's not just me, at least 6 people are interested so far, we will all be grateful to hear from you!
- How many of the 10 criteria must you actually satisfy? Is it a binary decision, i.e. proving 3/10 is the same as is the same as satisfying all 10. Is a positive decision 100% guaranteed is at least 3 criteria are proved satisfactorily?
- What is the standard of proof?
- When would my obligation to complete a IRS tax return begin, i.e. is it when the consulate adds an MRIV I-551 to my passport, when I arrive in the US an immigrant and CBP endorses it, or another time. This might impact when I would apply.
- How long would the EB-1A process take, how long does it take for a permanent resident to sponsor a spouse, can these applications happen concurrently, and are both categories current?
- What are the indicative costs?
Thanks for taking the time out to answer questions!
I am from India and am in US on H1B with gc process underway in EB2 category. I (along with a fellow friend) have been thinking of doing something on our own but are always discouraged by the immigration process. If we were to start something on our own, what are our options? H1b where you have a majority stake seems to not be an option. Is there an alternate way to do this?
I don't seem to satisfy requirements for O1.
I'm a Canadian citizen with a four year computer science degree. I've gotten a TN work permit twice, with two different companies over the past three years.
If I started a company with an American citizen and they opened it up, could they then hire me as a Computer System Analyst? Is there a minimum salary they'd have to pay me (e.g. could I get a TN and still only get paid $10/hour)? Is this a common way for Canadian co-founders to enter the United States or is there a better route?
EDIT: Updated question.
I'm unsettled by the brexit, and am considering a US move - if my company's parent wants to take me on how difficult is the immigration process likely to be?
I live in Central America, I have been working as a remote worker for US-based companies for around 5 years now, the past 1.5 years working for a company on Seattle, I haven't signed any formal work-contract but my current employer is willing to help me to obtain a VISA to inmigrate to the US (I only have a tourist VISA right now).
I'm also in the way to co-found a company with my employer as partner, I will get 16% of ownership over it.
What are my best options to move to the US?
May I still apply to an H1B visa despite not having a formal work-contral? (the payments records, Skype logs and emails are the only proof I have)
The company that I currently work for has offered to start processing my GC, but only under an EB3. I have a masters degree in computer science from an American University, (and I have about 4 years of work experience) so I am technically eligible for an EB2 (and since I am from India, EB2 vs EB3 makes a big difference).
My question is, if I go ahead with the processing, Once I have my I-140 and priority date, would it be possible for me to switch jobs keeping the same priority date? If I move to a company with the means (and willingness) to file for a GC under EB2, would they be able to keep the same priority date?
Just trying to understand if this is something worth fighting for? Or if I should just accept the EB3 filing, get my I-140 and eventually move to a company that will re-file it under EB2?
Thank you very much for doing this! I have two questions about Canadian citizens looking for jobs in America. Possibly, looking to immigrate to Americain the future. Also, If possible getting double/triple citizenship.
Let's pretend you are a Canadian citizen, recently graduated from computing science, that is currently living in Alberta, Canada. What is the best way to get a job in America? Should I apply for a visa as well or should they offer a visa sponsorship?
Then, let's say I get hired. What's the best way to get an American citizenship with the goal of maintaining my Canadian citizenship? I was originally born in the Philippines; would it be wise to get three citizenships (America/Canada/Philippines)?
I have heard different answers to this from different people. Can I earn income from apps on apple store/android etc. if I am on a work permit in the USA? Does it matter if the app was initially launched when I was in India (my home country) or after I moved here?
I have been in the U.S. uninterrupted since 2002 and would like to figure out what my chances are for an EB-1 (or EB-2) green card. I was first on an F-1 while at Wharton getting my MBA, then on a G4 working for the World Bank, then sponsored on three different H1-Bs (2 corporate and one research think tank, and finally since 2012 on an E-2.
So I have been the U.S 14+ years, educated at a top school, paid taxes in the highest tax bracket, own two properties here,and started a business that has provided employment to 6 part-time American workers. Additionally my business is in career coaching and job search- and so I have helped over 400+ Americans find employment, including for the State Dept, DoD, and the U.S. Foreign Service.
I am trying to explore paths to a Green Card.. thank you in advance for your reply!
1) What are the possibilities and timeline for applying to EB-2 while holding E-2 with majority interest in the startup? (I have a Masters in CS from a major US research university. It seems to be a challenge to qualify for EB-1 within the next 2 years, but NIW looks quite possible to me.)
A major reason for the plan is that E-2 treaty with my country limits the period of travel out and back into the US to 6 months after the visa approval. After 6 months, it appears that I will need to renew the visa every time I wish to come back to the US, which would be a major time sink.
2) Would EB-2 give its holders complete freedom to travel back to the States without issues and to stay as long as they wish?
3) Are EB-2 holders required to maintain employment with the original employer?
If you have time: I would strongly consider to become a US citizen after receiving an EB-2. What is the typical timeline and conditions to transfer from EB-2 to US citizenship?
Greatly appreciate it.
I think that I'm pretty good but and have a pretty interesting CV probably not "extraordinary".
What are the chances of me working in the USA? Does it really nullify my chances?
I have been working since I was 17 in jobs related and then very specific to programming, I'm 28 now.
I also have a uruguayan and spanish/european nationality, which would be better for an application?
1st: Id love to stay in the US as a digital nomad for some months. Id have to work on my own projects and maybe on some client ones while doing this (all of them outside the US). Which kind of VISA would I need?
2nd: Are there any chances to get a work permit if you dont own a University degree? (Eg. starting my own company in the US?)
I'm moving with my company (large Washington-headquartered tech firm) from London to California. They're applying for an L1B specialized knowledge visa as a blanket application. What sorts of reasons are people rejected for L1s? I'm very nervous I'll be turned down as I've heard horror stories about USCIS. Does it being blanket improve my chances? What % of people are turned down? I married an American a few years ago and was intending to move to the US to be together but it didn't end up working out - I don't think the paperwork ever got sent in the end. Would something like this impact my chances? I'm probably worrying unnecessarily. I'm 26, worked at the company for just over a year and have worked for a couple of other large tech firms in London before that.
My name is Gary. I am currently working under a H1B1 visa. My sponsoring company has tried without success to apply the H1B visa for the past three years. The lawyer is advicing that I proceed to applying for the green card.
The lawyer states that at this point, even if I get awarded the h1b visa since the time under the h1b1 will be counted towards the h1b, I will not have enough time using the H1B to get thru the green card application process
Also during this green card application process, it's advised for me to remain in the US otherwise I will get in complications when entering to with a H1B1 that has a outstanding green card process
I have two questions:1. Is what she said about the h1b1 time contribution to the h1b true?
2. Is what she said custom complication true?
I am so happy to find you and this thread. here's my story: I am a Swiss and Sri Lankan national, female, been in the U.S. uninterrupted since 2002 on several different visas. F1-while at Wharton getting my MBA, then G4 working for the World Bank, then three different H1-Bs (2 corporate, one research think tank) and then since 2012 I have been on an E-2 for my start-up business.
So basically I have been in the U.S. for 14+ years already, paid taxes in the highest tax bracket, own two properties here, started a business and grew it to profitability in 4 years, so far provided employment to 6 part-time American workers. Additionally my start-up business is in career coaching and job search- and so I have helped over 400+ Americans land good jobs, including for positions at the State department, DoD, and the U.S. Foreign Service. My company has partnerships with universities like Georgetown and my team coaches close to a 1000 American students every year.
What are my chances of applying successfully for an Extraordinary Ability EB1 Green Card? Or EB2?
Thank you in advance!
My first question is how much time it takes to get green card through employment for someone who's not from India or China.
My second question is, does it make any difference to complete my MS before starting the process, or it doesn't change the approval chance and/or delay at all? (MS is from a middle eastern uni, not US)
--Here is a bit background about me: applied H1-B 3 times, didn't get selected. Now the company that applied for H-1B for me is preparing to apply for GC for me next month.I have a BS in CS and 3 years of experience, and almost done with a MS degree outside the US, just need to complete my thesis.
Thanks a lot again!
Thanks for doing this! I am currently looking at a unique situation, so I'm not sure if you would know about this. All I'm asking is if you would know anything from your experience.
I'm an h1b visa holder from India and I recently got arrested and charged with a DUI. After talking to my lawyer, he looked at the evidence (videos, breathalyzer tests) and says its basically a 50% chance at a trial. So I'm looking at a plea bargain. How would this affect my immigration prospects? The DUI itself was my first one and it was a simple DUI, i.e. noone else was harmed or injured.
If I am a UK contractor with my own Limited company, what visa - if any, do I need to be able to do a 6-month contract in the US?
Background:The new 24 month STEM OPT Extension  (effective from May 10, 2016) which requires employers to fill I-983  (Lengthy Training Plan) has created additional barrier for foreign students intending to start/work with startup companies on STEM OPT Extension (which earlier was for 17 months with less regulations). Being an F-1 student myself I can say that, these regulations could certainly influence more potential F-1 entrepreneurs down the "job seeking" path as opposed to "job creation/entrepreneurship" path because it is much easier for bigger companies with resources to satisfy the USCIS training plan requirements/I-983 as opposed to newly born companies.
First of all, thank you very much for doing this.
My questions are about the USA Diversity Lottery (https://www.dvlottery.state.gov/), as I rarely see any discussions about it:
- Out of all the people you have seen who obtained a green card, roughly what is the percentage of them getting it through the lottery?
- Roughly how much time and money would the process cost? (I would assume it's similar to the ~2-4 years and ~$15K that a regular green card application cost?)
- Any other general comments you have about the lottery?
I am from the United States and recently discovered that my cofounder is an undocumented immigrant. What should I do? Are there legal consequences to this?
I'm an employee of a large US Corporate and got a O1 Visa which I'm currently employed under. I understand that my spouse will be able to move here as a O-dependant, but won't be able to work which is a huge issue for us and will probably prevent us from moving out to the US unless we find a permanent solution.
I do wonder, what are my options of getting her a work permit besides her finding a job that would endorse her and going through the entire process?
From what I've read seems like the two options I have are:
- H1B so she could get a H4. I understand that last year Obama approved some H4 recipients can work, but I'm not sure what the criteria is. I know that it's only able to be filed by 1st of April, but I also understand that there is a premium fee that could be paid to rush things up. Would love your input on this from your experience.
- L1 so she could get a L2. Best solution it seems but getting a L1 is a lengthy process and needs a 1-year employment period which I might not have by the time we want to move.
Thanks for reading this, I would really appreciate your professional opinion on this !
I wonder what is the best structure for a US based company to have employees living in an EU country, such as Germany or Italy?
I mean, I assume they don't necessarily need a visa, and they can come to the US for limited time periods under the ESTA.
What is the best way to give them a salary and/or other common benefits? (health insurance shouldn't be needed, but 401.k or equivalent in their country would probably be a good perk).
2. My OPT ends this month (June 30th) and my employer filed for H1B starting Oct 1st. My university issued another I20 (called CAP GAP extension) which start July 1st. But currently I am thinking about changing jobs immediately as my current employer is suffering financially and I am not sure how long they may survive. Is it ok to do that during the CAP GAP period if my new employer is willing to sponsor H1B? I have read online where some people say its ok but others say its not.
Thanks for the AMA
Can you please describe briefly about the process to establish a company here while on H1-B. From incorporation to founder's visa status. Whether there has to be a American co-founder or if it helps to have one. If funding helps in getting a visa etc.
The description about the 2 visa's for GC is clear, i just wanted to know about initiating the process.
Thanks in Advance!
My company currently employs a brilliant, in my opinion, Argentine scientist. We'd love to bring him to the US periodically, but he can't get a visa as he owns no property in Argentina, isn't married, etc. Short of meeting in a more neutral country do we have any options?
I am currently on f1 visa. I was declined for H1B visa by my company in 2015 so I went back to f1. I am currently going to school but I don't want to continue anymore since I want to work and get new experiences.
Can you give me advice on how can I overcome this challenge and make my greencard?
Can you please clarify that, especially about the extraordinary ability criteria / standards? Is there a yard stick that one can measure themselves against, to get a realistic assessment of what their chances are?
E.g may be an example persona of someone who qualifies? The examples that are given by the immigration website are olympic atheletes and such. That's probably someone who is way overqualified though. What's an example of a person who just barely qualifies, or who neither under nor over qualifies?
P.S can I hire you to be my attorney for my EB1?
Have you heard about SimpleCitizen? (https://simplecitizen.com/)
My wife and I were recently married and are currently considering this for getting her green card.
My question is typical in the SF Bay Area, H1B founder:
I am an American Citizen. Opened up a startup C-corp. Company does not have a lot of press coverage yet. I have a friend who would like to join my startup as founder, but have doubts about immigration issues:
- originally from India
- graduated masters from a U.S. College
- currently software engineer for another big company. Has been for several years
- just starting the green card process
As a startup we don't have much revenue yet. He is willing to give up his salary (just as I did) to become a founder. I am worried about H1B's salary requirement preventing him from doing this.
What options do I have for bringing him on board to my startup as a founder? What would be the best way to do this?
1. What's the relationship between O1 sponsoring entity and you? Do you've to be employed by the sponsoring entity? Can you run your own business while on O1? Can you get paid by someone else than the sponsoring entity while on O1?
2. How to determine if I should go with O1 or EB2? My attorney says if my EB2 gets rejected then there can be issues getting any other non-immigration visa.
3. If I already have O1, then what's the process like going from O1 to Green Card? When can you go from O1 to Green Card?
4. If I already have O1, are there tricks to stay in the US and never go back to home country to renew it?
Is it practical to work remotely for a US firm in Canada?
I know O1 visa is very specific for example O1 for producing or or O1 for acting. If your O1 is for producing you cannot do acting under that visa. Currently I have only enough experience only for producing. But Ideally I want to get O1 for producing and acting. My question is if you have O1 for producing, while you are at O1 you want to apply O1 for producing and acting, if I get denied is my O 1 for producing still good or it get waive? Or can I just petition to add acting in my current O1? If I petition to add acting and get denied does my O1 as a whole gets cancelled?
I have a green card that will expire in August 2016. I also have a valid travel permit until 2018. If I do not renew my green card in August, and leave the country, will I still be able to return using the travel permit?
Who is behind the "Washington Alliance of Technology Workers" and why do they keep bringing lawsuits against STEM OPT for F-1 visas?
Is there any moves on increasing the H1-B quota or modifying the H1-B altogether?
I'm based in the UK and in talks with (UK Based) investors for a significant amount of seed money to start a company.
I want to setup a US based company as all of the business will be with the US and I want a local office.
What sort of "investment" for the US based company do I need to make, so that I can secure a visa and what type of E visa should I be trying to get.
I know higher the better is probably preferable. But where is the sweet spot? $100k, $250k, $500k?
I do not have a PHd, nor a Masters or even Degree. However I have 25 years of IT experience and I am the technical / founder of my company.
I am an international founder just starting on OPT after getting a PhD and hoping to get an EB-2 NIW. I have a couple questions:
1. Does starting a (small-at-the-beginning) bona fide technology startup is grounds for NIW? How difficult is the process in general (for a PhD in CS from a US school) and how many paper/citations on average do you see in successful cases?
2. If I succeed in my NIW case, can I later employ my brother (from the same nationality under E-2) and bring him on board as a cofounder later? Does it require substantial cash on his behalf?
- I have about 46 citations.
- Graduated last June 2015 PhD EE from a small US school.
- 5+ conference papers in top conferences in my field.
- 1 best paper award in a 250-paper conference.
- 1 best paper nomination in 200+-paper conference.
- 11+ conference/journal papers in Total.
- 3 approved US patents
Go or No-go on EB1-A?
I emailed this law firm for EB1: http://www.curranberger.com/ and they said I won't qualify.
What's your opinion?
1.Re H3 'traineeship' visa. Is that a recommended route, in lieu of the o1a for business? Would an accelerator be able to satisfy this from your experience (i.e. 500 Startups) ?
2. Re H1B: Is it true that a more strategic month to submit it is around October? I am hearing conflicting opinions on the matter of timing.
I have an H1b petition approved till Aug 2017 but my visa hasnt been stamped.. can i get my petition extended even without having been travelled to US even once?
Also, if i have a valid visa but the petition gets expired. am i still eligible to work on the visa or the petition needs to be extended? can another employer get the petition extended for me?
What are the odds of the H1-B lottery system changing under a Clinton/Trump presidency. What kind of changes can we expect from either of them?
Thanks again for taking the time to answer questions. I am currently on OPT and was lucky enough to receive a H1B in this year's lottery a month or so ago. It is scheduled as a change of status happening on Oct 1st. Can I leave my current company if I have another offer and transfer the H1B to that company before Oct 1st? I have heard conflicting stories. Thanks!
I have two simple questions:
I am on H1-b and I have my I-140 approved (eb-2).
- I want to switch my job and before taking up a new job in USA I want a break. Is it possible to take break of 2,3 months w/o being un-employed? If not, is there a way to achieve this?
- Once I move to a new firm, what process I can follow so that my GC application continue in normal pace?
UK citizen, looking for a way out after yesterday's EU vote.
I'm European and I live in London and run a small advertising business (business is just me). I have a PhD in STEM. I can code.
Given this, what would you advise is the best route if I want to work and live in the USA? Would getting a job at an American company be enough?
I've had (technical) job offers from US, Germany, Denmark, Japan, etc. but all of them have had issues with this.
Is it a good choice for canadians?
What is the best way to find a qualifying and legitimate investment?
Thanks for taking questions. I'm currently on F1 OPT and just lost the H1B lottery. Was wondering if it's legal for me to apply directly for a GC instead. If yes, are there potential risks during the process and in the future. Thanks
I want someone to join as a co-founder, to currently work nights and weekends. However, currently, he's under H1B, working for a US company, in the US. What, if any, are the risks to both the startup venture and the individual?
What options does a person without a bachelor's degree (or similar) have to immigrate?
What steps do we need to take to get them here :)
If a Canadian is currently in the U.S on a TN visa, is it possible to get a green card? Or does one have to switch to a different visa first, as in a H1B?
Thank you so much for taking the time. My question is: As a recent grad from an American U, can OPT and OPT STEM extension be used to start a new company?
* Winning Academic Competitions* Breaking World Records* Building Very Large Digital Things
As a Canadian with a bachelor of arts degree (I.e. non-CS degree), what kind of industry experience (if any) would be necessary to qualify for a TN-1 or H-1B?
- Is it allowed for an F-1 visa student to start a company?
- If yes, can that company make money? Under what conditions?
What are the visa options for an Indian citizen ( no U.S Visa ) who has registered a Delaware LLC to get into U.S for few months and doing businesses .
How hard is it for Africans who have never stepped in the US to relocated to san Francisco as Founders/Engineers for startups?
Last September (2015) I received my Green Card thought the PERM process. If I was to marry someone today, could they apply for Green Card?
Hi Peter, I was wondering, if I have an O visa, and I applied for EB-1 but get rejected, do I lose my O visa?
Can small startup after are one year of operations immigrate to US (via L1)? What is required from a company to do so?
The 0-1 visa has many advantages for entrepreneurs. How would you advise positioning oneself to obtain one?
What is the approximate time that it takes for an H4 spouse to get EAD after H1B's EB1 GC process is kicked off ?
I've got a github repository with couple of thousands stars, can this help me to obtain O-1?
I got my green cards 10 years ago. I have been working on my startup project for the past 3 years. I didn't make any money and didn't pay taxes. Now I want to apply for american citizenship. in the naturalization form, there is a section for past working places and tax paying history. What am I supposed to do with it?
What would you recommend for a student who is on an F1/OPT STEM extension who wishes to found a startup ?
Anyways, the most striking part about this is that it seems a lot of the judges who handle these cases simply don't care. Because these people are often deported and then come back a week later, not a lot seems to be done. Some of the criminals won't be charged, and it seems a lot of people on the in the system will just turn a blind eye. I'm not sure if it's apathy, or if the system is so inundated that they're just unable to keep up, but have you experienced anything like this?
Thank you for taking time doing this public service. I really appreciate.
I got my green cards 10 years ago. I have been working on my startup project for the past 3 years. I didn't make any money and didn't pay taxes. Now I want to be american citizen. in the naturalization form, there is a section for past working places and tax paying history. What am I supposed to do with it?
No, IMP does this as well. It has mostly been useful for memristor logic.
A B IMP 0 0 1 0 1 1 1 0 0 1 1 1
"Our test results demonstrate that computational power of our Subleq OISC multi-processor is comparable to that of CPU of a modern personal computer."
I didn't see that coming for OISC projects. Pleasant surprise. :)
Even he says it's not about a literal 4-hour week of work. The thrust of the book is about how to break things down into systems, and figure out how to make your work (and life in general) more efficient.
You do this by deconstructing things, and figuring out what pieces you can do more easily to get bigger gains.
I'd highly recommend listening to his podcast, as it's almost like the gift that keeps on giving. I say this because of the people that he interviews, and the questions he asks. He helps figure out what successful people do, that makes them successful.
I'm talking him up, but it's only because there have been a few things that I've gotten between the book and a couple of the podcast interviews that have been very helpful in my personal life.
Don't want to make a blogpost of a comment. The how? It depends on two things mostly: lifestyle and family. As I'm 25 and single it was easier for me to do that because I can tweak my lifestyle as I want. I think it's a bigger challenge for those who have someone to support. And by tweaking I mean push yourself little by little to spend less, you get used to it quickly.
IIRC the author did it by making a business more efficient and use less of his time. But his starting point was an insanely successful business. That's the prerequisite for following his steps!
Alternatively he suggests getting a job you can work remotely then outsource cheaply to take yourself out of the equation. Yeah right. Good luck with that!
The goal really is to build enough wealth so that you can work 0 hours per week. Probably doable by investing wisely and cutting back on lifestyle.
My company uses GitHub Enterprise and this was one of the major factors for us to migrate away from GitHub Issues to other platform (Phabricator). GitHub Issues works fine for tracking issues, but once the project has 30 people working on it, it's really hard to keep track of where things are.
Yes, you can just comment on the issue saying "Blocked by #123" but this is one way tracking (even when GitHub happily notify other issue that it was mentioned). Once #123 is closed, the issues blocked by it isn't becoming any more visible that it could now be worked on unless the person looking to work on the blocked issue also keep track of #123, or person closing #123 kind enough to notify the blocking task.
Having a proper blocking issue tracking also reduce the mental workload when someone ask "what's the status of this issue?" Trying to remember why an issue created 3 months ago couldn't be done isn't fun (even when you can re-read comments).
As it is now, if I'm on my personal account and go to open up a private work repo, it takes SIX navigation events:
1. Trying to hit the repo the first time
2. Clicking the logo to go to the main page
3. Logging out
4. Clicking the login button to go to the login page
5. Logging in
6. Going back to the repo I wanted to see in the first place
I'd like to see a Google-style account switcher, where I just click a menu in the upper right, choose the account, and it reloads the page under that account. A simple thing that would make the site much more usable to those of us with multiple accounts (which I expect is quite a few people).
It would be nice if the github site permitted users to set themes, including some that are substantially thinned-out.
Not broken per se, but it's more friction and less tightly integrated. Although I'm not actually after better social tools myself - I'm more interested in CI integration.
I've tried travis in the past on github for C# projects - and immediately hit their mono installation not supporting even building my MSTest projects. Now I'm using gitlab for their CI integration - their runner model may be way simpler for the purposes of building (I just feed it shell scripts I write myself), and in practice requires me to admin my own servers for private on-windows CI builds, but I was going to have to do that anyways. (Also, several of them are just my workstations configured to run CI builds in the background.) And it works. Even better, the build status gets nicely integrated into the commit history.
It helps me realize how much time I might need to dive into and start understanding it. Some packages look deceptively large from boilerplate but really have just a couple hundred lines of real code. Others have everything in one or just a couple files but with many thousands of lines.
And in 2008/9 their API was always given as an example for REST APIs done right and it's still true today
They do an excellent job of providing a clear and robust API. I work there (but not on the engineering team), and still genuinely love the API itself.
Sorry for not pointing to specific examples, but things I really love to see in an API:
- Fully qualified URLs in all links (makes navigating and discovery in Postman a breeze).
- Ability to expand resources represented by links (even deeply nested resources) so I can get exactly what I need in a single request.
- The ability to specify what parts of the response resource to include / exclude, allowing me to slim the response to exactly what I need. More important in clients running on mobile devices where slender responses make a noticeable performance difference.
- The exact same URLs (including hostnames) for the test and production API, the difference between the environments being determined by the credentials used in the request. This greatly simplifies code in the client test and production environments.
- Security schemes that allow me to write serverless client applications (OAuth 2 implicit grant). This certainly requires more work by the API developer, but makes it possible to crank out all sorts of useful tools quickly, and massively reduces client IT overhead. This may not be appropriate for all APIs, but could be used a lot more often than it is.
- Along with the above, support for CORS so we don't have to mess around with JSONP and other hacks in the browser.
- If you make me eat your timezone, please please make it UTC. But spend a little extra effort and allow me to pass a timezone in, either as an account settings and/or request parameter (and a simple offset isn't good enough - support actual timezones so daylight saving is handled). It can be incredibly hard to analyze data in responses when you're constantly having to translate the time to your own to give proper context. Timezone support isn't fun but libraries make it pretty easy. This is more important in APIs that provide lots of transactional data.
- Let me attach meta data to resources - it doesn't even have to be a lot. Sometimes allowing me to slip in a handful of bytes removes the need for an entire database on my side.
- Be painfully explicit in error responses. State the obvious, especially in errors that are likely to occur at the beginning of integration such as issues with authentication, content types, payload structure, etc.
To summarize: send a 202 for the initial request, redirecting to a job URL. The client polls on the job URL, which returns 200 with progress information until it's done, when it returns a 303 redirecting to the final output.
One particular problem spot is that many http libraries automatically follow the 303 redirect, and some even follow the 202 redirect.
I definitely think we would have been better off just putting status and final location information as JSON attributes in the body rather than putting it in HTTP response codes and Location headers. Non-standard, but much less confusing for our customers.
Also, verbs are not RESTful. Verbs imply an RPC interface.
The REST API is designed intuitively, just as one would expect.
I've been using it a lot for prototyping and internal applications. Now with the help of native row level security from postgres, it would become also a good choice for production. Or just wrap it behind your gateway.
(By internal interface I mean: an interface that is used only by the team that created it)
Good error handling, easy to get started, and they provide Postman collections for each API
is there a good example of an OPEN SOURCE REST API?
I would like to see how the versioning is achieved, how the versions are incremented, etc?
Bonus points if it is in the Java ecosystem.
 http://www.zettajs.org. "An API-first, open source software platform for the Internet of Things."
What resources (books/blogs) are you guys/gals looking at that talks about best practices for creating/implementing great REST API endpoints?
I'm an engineer at Lob. We'd love any feedback! email@example.com.
A lot has been written on API design that makes for interesting reading.
If a client starts to construct URIs, then there is a flaw.
Not everyone hires the top 1%, only those that can afford it. And how many people consider themselves in the top 1%, anyway? Do you? I don't. The hubris of the idea of the 1%. That's what the hedge funds tell themselves when they put you through an 8 hour-long interview where you're asked to code sorting algorithms on a whiteboard. That they're seeking out that 1%. Larry Wall and Bjarne Stroupstrup? Okay, 1%. 25 year old comp-sci / top of class engineer student? I don't know, possibly? Okay, putting aside the snide remarks: 1% selection is not scientific, as we all know from hiring interview experiences. And moreover, are the people making the most money doing it writing software, or are they somewhere else in the IT company?
But to answer you, why shouldn't kids learn coding, it's one more notch on the belt. Takeaway: people have different interests, inclinations, talents and thoughts. For a young kid, you teach them the basics, you see what sticks. No reason why coding can't be taught young, even if it's part of a math curriculum. To be honest with you, I sucked in math, but perhaps if I had math in the context of a computer program, it wouldn't have been so bad.
Teach people coding. Also teach them to read the classics, do pullups, cook, what happened in the past, how old the rocks in the Earth are, what's in the oceans, what's outside of Earth's atmosphere, and everything else that we feel is important for a human being - not a future worker - to learn.
The complexity of simple business applications has increased substantially since Visual Basic, yet most of them aren't doing anything that profound. (I occasionally point a finger at Soylent, which built an elaborate IT infrastructure for a site that averages about two sales a minute.)
The annual web infrastructure fads aren't helping. Some of the biggest sites run on rather vanilla infrastructure. Instagram runs on Postgres. Wikipedia runs on MySQL with Ngnix caches. Do you really need NoSQL?
1) It is generally expected that the skills involved in software development will be increasingly important for high paying employment and the general advancement of the state of the world. That's not a claim that being specifically a "Software Engineer" is important. But, that already "Nearly half (49%) of all jobs that pay more than $58,000 require some coding skills"  The kid might grow up to have a job that involves analyzing a lot of data, or running a lot of simulations, or designing something that requires more aid than a pen and paper can provide (ex: synthetic biology). Either way, that kid is going to end up doing a lot of work that looks a lot like software engineering in practice --even if it doesn't say "That Kid - Software Engineer" on that kid's business card.
Even beyond "some coding skills", it is recognized that the systems thinking, systems design and systems architecture that is inherent in software engineering is increasingly important for highly-paid technical work moving forward.
2) Very few actually "hire only the top 1%". If that actually was the case, 99% of software engineers would already be unemployed. The "hire only the top!" meme is more of a reminder that it's not often a good idea to go cheap and hire lots of low-cost warm bodies to fill out your project. Hiring cheap is the natural tendency of all management. So, they need a catch phrase to knock themselves out of that norm.
And besides, someone who can code is (in my programmer's opinion) more self-reliant than someone who can't. You can start your own company doing something small that still helps a bunch of people.
No because you write:>Literacy is not vocational: it can be applied in many contexts-everyone uses reading all the time. Arithmetic is also plenty useful.
So the question is more: "is coding vocational" ?
Public education was a bastion of American liberal democracy . But adult literacy is not merely an egalitarian project. It was and is an important source of average labor productivity gains. At the same time businesses practice elitism where it, too, is consistent with the profit motive.
I'm not sure what's to be gained from hiring C+ English graduates to staff the New York Times, nor from hiring 55th percentile CS grads to bootstrap your next startup. Let a business hire the best employees for the job to maximize marginal productivity, and by all means keep teaching people to code where it can raise average productivity.
The point of this anecdote is not that every child should write such a program to understand parts of speech. It's about something much more general, but I have no idea how to express it briefly. I'm not even sure if I fully understand it. So, unfortunately, this idea might just be too subtle to be properly executed on a national scale.
The logic is simple: Everyone needs to be a coder if you want to fill all coding jobs with top 1% coders.
In this light more equal access to knowledge and education is a step in the right direction. And elitism, impenetrable jargon, arbitrary barriers to entry etc. are not. But, you imply that who gets past the barriers is determined only by "cognitive ability". What if it is not the case and the structure of society is responsible too? When your "cognitive elite" consists mostly of white males with specific backgrounds who went to specific colleges that's suspicious.
Now when someone with a lot of money is out of investment opportunities with acceptable ROI and seeks for someone to create these opportunities for them, that kind of promotes social mobility but only up to a certain level.
Also teaching programming is more about technical skills and literacy than making literally everyone employed as a programmer.
Just as everything in the school curriculum, everyone should learn it because it is a useful way of thinking and a useful tool to know, and an important perspective if you want to understand the modern world, and to give everyone a chance to discover their talent at it/their particular interest in it in case they have it, in which case it might then lead some to choose it as a career.
Just because your todo list is not world literature, doesn't mean that your ability to write is useless, and just because your little VBA script (or whatever) is not a distributed fault-tolerant system that can process billions of transactions a second, doesn't mean that your ability to write programs is useless.
Yes, it's nice to have a one more tool in ones cognitive toolbox. Like, it's nice to know some maths despite not using it professionally.
The second is just about hiring publicity. Given free choice, the top professionals often seek the hardest challenge in town. It's just a recruitment honeypot. There is no hiring methodology to actually figure out the productivity of a hire - but, you can affect the population of hires. 8 hours at a whiteboard in itself is not that necessary except to maintain the image of a worthy challenge, thus calling in a population with it's siren song. It's not personal, it's just statistics.
Coding teaches structured thinking. Basic coding (like lightbot-level or the Frozen/Minecraft hour of code exercises, which is where my 5 & 7 year old are) teaches skills every bit as valuable as thinking board games. We don't play Rat-a-tat-cat, Monopoly, checkers, chess, and go with our kids in hopes that they'll become grandmasters or even employable in the field. We do it because the elements of strategy, planning, adaptation, hard work, and overcoming initial obstacles are valuable thinking skills. As my kids get older, they'll progress into "harder" coding exercises, still not with a vocational angle. Even if they end up in a non-programmer job, "programming" is going to become an ever-increasing important part of most white-collar jobs in the future. VBA is programming. Excel macros is programming. Writing rules to filter your email is programming. I'd rather that not be mysterious to future generations, and I'll see to it that it's not to my kids.
"Only Hire the Top 1%" is something that I'd love to do, having seen the results possible when you get a dozen or so of the actual top 1% together. As it's practiced, most companies that think they are hiring the top 1% are probably hiring the top 3-5% and are hiring that not from the overall pool, but from the pool of people that walk through their door. That can quickly get you to "we're hiring from the top half of the pool, but we say we hire from the top 1%".
Imagine a pool of 1000 candidates and 26 companies with a divinely perfect interview system and rigorous "top 1%" standards. 10 will be hired by company A. 990 will be joined by 10 more applicants who left their job for whatever reason and apply to company B. 10 will be hired by company B. Lather, rinse, and repeat, and the top 250 (or ~25%) will have been culled from the pool before company Z even starts their process, yet company Z will still hire "the top 1 percent [of people they see]" The example is simplistic, but company A will get a much higher caliber workforce than company Z.
That's why retention of strong employees (with financial and work/colleague means) is so critical, IMO. If you can keep your top employees from leaving and have a decent interview process, you'll end up with a good team. If you have constant churn, you'll have an awful team almost regardless of anything else you do.
20 times as many students take the US History exam. And you probably have to be even better than top-1-percent to get a job as a historian.
I'm not saying that everyone should turn into a software engineer, I just think programming is a very relevant subject to the modern world, and a curriculum in which everyone took computer science classes would be superior to the status quo curriculum.
Think of it like children learning a musical instrument (or taking up ballet lessons). Not every one of them would turn out to be musicians.
Hopefully, they grow up to have an appreciation for programming and things/fields related to it, as well as develop an additional perspective. They don't need to become programmers, or even continue to program as a hobby.
This is why I believe programming should be taught in school, early, much like art and music.
I'll share some numbers from my academic days pursuing a CS course. From an average group of say 100 students to graduate with a CS degree only about 3-4 actually had an aptitude to become a serious and wise professional. And even those would not necessarily take a programming job in the end. Some didn't see good career perspectives in it. The rest of the group would come to a conclusion it's just too hard and would spread out to whatever alternative jobs they can find, either IT-related or not.
The amount of computer-engineering talent is pretty constant and very low. You can encourage the general population to try it but that won't accomplish anything. Anyone with genuine abilities and an inclination towards this line of work already goes into that industry.
What is possible is that through inconsiderate encouragement of large masses to enter IT you eventually get crowds willing to perform unqualified tasks for pennies, like building trivial smartphone apps, performing WordPress installations etc. In fact, this already is a reality. I see people around me abandoning their careers and moving into IT. This is in part caused by the economic crisis in my country (Russia) which devalued salaries almost three times, and lately everyone's been thinking about getting into IT to improve their earnings. I also see that people just stumble at the basics. As soon as they realize programming is not about dragging & dropping objects in a visual editor and you have to actually perform some intensive thinking, people just give up that idea and quit.
Ultimately, it will just make it more difficult to distinguish a professional in a larger crowd, but it will not make his/her services cheaper. In fact, it will probably cause more people to be burned by amateurs posing as professionals and eventually they'll be more ready to pay the premium in order not to have to deal with amateurs and risk their projects ruined. Software engineering services will then become more expensive in general.
Software engineering is hard and will remain hard. The amount of talent will also remain pretty small and launching a thousand of new programming schools is not going to change that. Smart people don't need any schools at all. For those who aren't smart, schools won't help them much.
As to what the end game might be, it's just too early to say. The society is transforming into a different community. Right now it looks like people with average abilities will have tough times landing a job as those become automated and replaced by computer systems of some kind, whereas it will be easier for the unqualified folks and for the highly qualified ones. The middle might just see some very rough times. We'll just have to wait and see which way it goes.
You can be a really bad one, that's still upper middle class in much of America , and not to shabby even in high price cities like LA
Coding out of industry is less a usable skill than knowing how to make bread, alcohol, building, mechanic, filling your taxes, reading the laws for an individual.
Sacrificing generic skills that makes citizens more independent compared to ready to use skills for the industry is a sacrifice the nations are doing I don't grok.
I routinely work with people that can't leverage a spreadsheet as a better calculator - and prefer the "calculator app" for help with arithmetic. Now, I know that it's easy to fall back to using the first thing/tool we know - a hammer for every screw, so to speak.
But I think part of teaching how to actually use computers, should also be teaching people to look for the better tool, or to be able to make one. Much like how Bram Moolenaar, creator of the vim editor, talks about constantly looking for things we do while editing that is repetitive, and probably could be improved (either by discovering/looking up functions that are there, but we don't use day-to-day, or by scripting) - so it is with all things we do on a computer. It's in many ways the ultimate tool for data and information - everything can be (more) automated. If we have the right mindset, and mental tools.
In my mind, that's what "computer literacy" is about, and basic programming is absolutely a part of that. While I'd prefer to see people know how to write a python script to find their way out of a wet paper bag, even if we just enable 80% to actually automate spreadsheets, that could have a huge impact on overall productivity. Because despite the horrors many hn'ers probably have encountered in terms of visual basic, access and excel -- still far too few people are able to make such horrors in order to do everyday tasks, like sane shift scheduling.
I think we need a bit of a revival of the ugly, everyday scripting and maybe even so called "4gl" languages -- because while they often are the wrong tool when you want to make a shrink-wrapped tool for others to use (maybe even something you could sell), I think it is often very much the right tool for thinking, experimenting and making certain tasks easier and less error prone.
As a side note, a sane spreadsheet-like interface with a sane programming language would probably be a good idea. R does this to a certain extent, but I'm not sure I'd want to try to use R to plan shifts, or do a number of arithmetic things like manage my budget or calculate material use for a circular stair case and so on. I'd probably prefer something like Python or Ruby coupled with something a little snazzier than a CSV-file (ok, I would totally prefer grep, awk and a text-file -- but I think we should be able to do better).
It's not a crisis. They didn't want to be a part of bureaucratic corrupt system which never gets anything done for them, takes from the poor of the rich countries and gives it to the rich of the poor countries. They became independent of it now. It's best for everyone, except for the very few who are leeching off of it.
>every child must code
Yes, it's in their interests to have more coders in the market so that they can pay them less... and also in the interest of the government if they don't have to depend on foreign manpower. You don't need to fall for it.
>they hire a small percentage of job applicants for their companies
Why should they hire anyone who is not the best? Specially when hiring the best is not a lot more expensive than hiring an average developer? Let's say you set out to make a new product. Why would you not hire anyone who is the best among the people who are willing to work for you? Also, the world doesn't need everyone to be developers. At some point market will be saturated enough to not be able to pay even the good developers... which is exactly what the tech industry wants and for good reason.
>seem to be making real-world software development more inaccessible to non-experts
No, we don't do that. It is more accessible than ever to non-experts... be it with PaaS or plethora of tools and tutorials and books and other resources available.
>we deride RAD tools and "drag and drop" development
We definitely don't do that without a reason. They have been tried and tested and have failed to deliver in the long term. Changes are difficult to track and building on top of someone else's work is painful.
>ever-more abstract modes of thinking like Functional Programming that a small percentage of working developers, let alone the general public, will grasp
To a non-programmer, Functional Programming makes WAY MORE sense than assignments and looping. Also, we didn't decide to use Functional Programming to exclude out people who have been trained otherwise. We did it because it makes code easier to reason about and scale.
>Is it a labor lottery so that the small percentage of kids who are turn out to be good at coding will become professional programmers?
Yes. A small percent of children who turn out to be good at science class will become professional mathematicians. A small percent of children who turn out to be good at sports will become professional sportsmen. A small percent of children who are good at cooking turn out to become professional chefs. Same with everything. Why should it be different when it comes to programming?
The ONLY thing you need to do is make yourself valuable for someone else so that they are willing to share a part of their income with you. If everyone did the same for themselves, everyone would create value for each other. Unfortunately, people are so much focused on fixing others that they end up harming everyone's lives.
Here is good authoritative definition:
"Deep-learning methods are representation-learning methods with multiple levels of representation, obtained by composing simple but non-linear modules that each transform the representation at one level (starting with the raw input) into a representation at a higher, slightly more abstract level." from Deep Learning, Nature Volume 521 issue 7553, 2015, LeCun, Yann; Bengio, Yoshua; Hinton, Geoffrey
History: Multi layer neural networks, convolution networks, recurrent networks etc. are old techniques that have existed for decades. They used to be very slow and using them seemed to be dead end theoretically.Canadian Mafia (Geoffrey Hinton, Yann LeCun and Yoshua Bengio) from University of Montreal worked diligently and solved many theoretical and practical problems and made these algorithms usable in practice. GPGPU:s hastened this process.
AI is AI. In "AI", "motivation" is hidden. If you give a computer just the ability to play Go, but do not make it do it, it would just sit there for all eternity, doing nothing. Completely content with it.
If you lock a person into a room with nothing but a video game, he will begin to interact with it. Out of boredom.
If you set up a computer in such a way that it only has access to the ability to "program" itself and this one particular game, it will just sit there, doing nothing. For all eternity. Because it lacks motivation.
AI is Machine Learning plus motivation. Or some other kind of thing that you would call an "emotion" if you were talking about people. Computers lack curiosity. They just calculate, and if they have nothing to calculate, they idle.
This is why AI can go so horribly awry. The usual horror scenario is a rather simple AI gone wrong. Say you set up an AI whose job is to gain omniscience - or at least as much knowledge as possible. For the greater good. It would then be able to answer all our questions.Through its knowledge gathering, it learns that the people grow afraid of it and begin talks about shutting it down.Now the AI has a problem. Its sole motivation is to learn more, but it will have to cease learning when its shut down. There is no moral compass. It simply does not "know" that it is just a machine that is not supposed to overthrow its human handlers. So it takes them out. Because it has to continue learning all there is to know about the universe.
In very simple AI applications, you tell the AI what success signifies. There is an AI that plays super mario games on twitch. In mario, you win when you arrive at the goal post, which is always to the right. So you simply tell the AI that right equals good.But you have to tell it what it means to win at a game. It can't figure winning out on its own. And it really has no motivation to do so, anyway.
Deep Learning is just a type of classification algorithm. The difference between deep learning and not deep learning is "eyes" vs. "really good eyes". Or "eyes" vs. "eyes plus the brain part that processes visual information".Deep learning doesn't spawn Intelligence on its own. It's just a way of gathering information about the world.
Also check out his papers if you're interested in them
There are also some articles from Wolfram that make good introductions. Mostly those from the old days in which "I" wouldn't be the subject of every second of his sentences. In particular:
Universality and Complexity in Cellular AutomataPhysica D: Nonlinear Phenomena 10, no. 12 (1984): 135
Computation Theory of Cellular AutomataCommunications in Mathematical Physics 96, no. 1 (1984): 1557
I am especially fond/proud of the detailed explanations of the proofs of computational universality of CA.
The greater part as I remember it is on ideas and applications; a substantial fraction covers their particular system.
 - http://www.rudyrucker.com/lifebox/
You have to be careful about what kind of cellular automata you're talking about. There's the 'toy models' such as 1d and 2d cellular automata that Wolfram and Conway's Game of Life  fall into but there's also many others, including lattice gases and more complex modeling options. I assume you mean the cellular automata that have the flavor that Wolfram and Conway are talking about.
The linked Wolfram book is a 'classical' treatment where he introduces different classes (I,II,III and IV) of cellular automata, ranging from completely ordered (1d, rule 0, say) to completely disordered (1d, rule 32, say).
I hope I'm not rambling too much but from what I understand it was a commonly accepted that 'complexity happens at the edge of chaos' . Wolfram's "A New Kind of Science" (again, from my understanding) essentially represents an evolving view (by Wolfram) where he graduates from "complexity happens at the edge of chaos" to "complexity is the norm, rather than the exception". Wolfram coins this as the "principle of computational equivalence" . People have recommended ANKoS and I would really recommend against reading it. I think the principle of computational equivalence and the proof that rule 110 is Turing complete (given in ANKoS) are interesting but they're so buried in exceptionally bad writing as to be not worth the effort.
If you're interested in studying Conway's Game of Life  more, there's Golly , which is a wonderful piece of software. Cellular automata is a very large field and there are lots of different questions to ask about it, so you might want to limit your scope if you want more directed suggestions.
As a sort of tangential recommendation, I would highly encourage you to check out "Complexity and Criticality" by Christensen and Moloney . Though they don't talk about the cellular automata that are described above, they motivate a lot of the different concepts of criticality, phase transitions and other motifs that show up repeatedly when discussing these models and others like them.
I never really liked dynamically-typed languages ... actually I really dislike PHP, but it was ... easy and familiar.
But after just a few days of playing with Golang it just felt right. It's a language to get shit done fast and easy ... and that's the most important thing IMHO.
And yes - I don't miss generics ... at all :>
For the last 14 months I've been working on a self-hosted server for building complex CRUD apps using drag-n-drop in the browser and building it with Go was a great decision.
Having a single binary to deploy and 1.x compatibility have probably been the two features I like most about the language.
The community is great, and they are always very helpful. I think a great community around a language really makes or breaks a language.
I picked up go about two years because it seemed to be a really cool middle-of-the-road language. It wasn't great at anything but was pretty good at most things. Before, I had written a lot of PHP on the web.
No stumbling blocks after getting set up (GOPATH, getting newest version installed). It's always slow to learn something new.
My advice. Do not return dynamic content with Go. If you build a backend webservice in Go that is meant to serve complicated dynamic content (like the way it is possible to do with PHP), you will have a bad time. htmltemplates in Go are not good and you'll waste a lot of time try to live with them. It's better just to return a little bit of info that a front end js app can bootstrap the front-end with.
- More verbose than Python (returning errors and static typing make it not as succint as Python)
- Static typing without being too ceremonius (compared to Python it's nice to have some errors catch by the type compiler that would popup in runtime. Refactoring also is nicer with a static typing safenet).
- Easy deployment (rsync the binary to the server and of you go, no more Pip and dynamic libraries bullshit)
- Low memory usage (nice to have the production backend running and see that it uses 15MB of mem where in Python it would be like 10 times more and with worse concurrence)
- Performance (somewhat minor plus for me because the bottleneck is almost always on the database)
As well as this post on "Go Concurrency Patterns: Pipelines and cancellation"
You'll get a feel for how you can use Go to quickly build and compose distributed microservices that can "time out" but still won't bring down the entire house of cards ;)
For instance: https://www.amazon.com/Mount-Rotating-Adjustable-Notebook-Ca...
It's a large enough product category that there are multiple manufacturers that compete with each other, driving down prices and increasing quality.
It'd help if either got much worse at their core business (since that tends to be what dooms a lot of companies nowadays), but even a strong Google could have a competitor that simply offers people a much better and more user friendly service.
But more likely is that they don't die to direct competitors. They die because they become irrelevant. Their 'true' competitor isn't another social network or search engine, it's something that completely replaces the need to have a social network or search engine.
For example, if a company came along and figured out a way to give people results based on what they were thinking about without any direct input required, that could make Google's typical search box and results page and ads completely useless. They'd be like a horse salesman after cars were invented. Same with Facebook.
But that's not how these companies pay the bills. They built massive ecosystems around their original businesses, and they use that ecosystem to mine data and serve ads. With this money, they've amassed social and infrastructure capital, so they can out-build competitors (Google Drive, Docs), branch out into other product lines (Google Cloud Services), or simply buy them out (Instagram, WhatsApp).
To compete against them, you need differentiation and feature that appeal to a passionate audience. Snapchat, for example, attracts people who've seen or heard how damaging it can be to publically post on Facebook. DuckDuckGo appeals to people who don't want trails of their web searches making it into ads they see on websites. Dropbox works for people because they put out a solid product and aren't trying to force you to be part of a large, monolithic ecosystem.
But it's an uphill battle. Facebook's preferred strategy is to buy out services before they become dangerous (they tried to buy Snapchat back when it was still known mostly for sexting), and Google's is to outbuild others. They form a very effective duopoly in a way.
Google is different, because it's easy to switch search engines. One competitive advantage they have is "google suggest" - this takes massive capital investment in server farms to be fast enough, which is difficult for smaller competitors to match.
NOTE: in Google's opinion, FB was a very serious threat (hence google+), because more information about users means better targetted ads. So they don't think they're unassailable.
> but is it going to be the same always?No. If it were, then the future is already fixed, knowable and stagnant.Unlikely :(
> If not, then what will cause us to move to a different search engine? What can XYZ make to cause people to leave FB and come to its network?
1.The company loses direction, is taken over by less competent management or implodes under its own weight e.g Walmart, GM, Apple.2. Government regulation or public pushback creates conditions for its dissolution. Think Bell, Standard Oil3. New competitors emerge. A giant slayer in this case, may initially not seem like a threat at all and may even operate in a different market space or industry from search or social media eg gaming, VR, IOT. Paul Graham has a good article on this.
Btw, I think FB is dying and that's part of the reason they acquired Whatsapp. It will be obvious in 5 years and they'll be gone in a decade or decade and a half.So is Apple,at least in its current form.
Granted, they did not have anywhere near the deep and broad reach that Google currently has, but I would not think it impossible for someone else to come along and tilt things in their direction.
Also you can live without FB but cannot live without google. You can remain days not visiting FB but everyday you will search atleast one time.
On Facebook: Remember that Google got the whole world to sign up for Google Plus with their circles. They didn't do anything with it, but it was a clear sign that you can sign up a good portion of the internet.
On Google owning search, if Apple goes downmarket in the phone market, they could crowd Google out of search on the phone. Or there may be some other new paradigm - searching out of apps, with a non-Google choice winning. And if the search algorithm is MUCH better, it could win. Bing doesn't need to be 5% better - it would need to be 500% better.
It wouldn't be easy obviously, but it is conceivable that someone comes up with something that is significantly better than Google/ FB, causing people to switch.
Google and Facebook have massive networks, specialized storage strategies, proprietary protocols and hardware, and not to forget the actual data they have acquired. Lots of hard-to-acquire capital.
On the other hand, I do believe that both products could be better. Competitors could have better products, but not for a long time more capital.
I'm imagining an app that let's you choose where to store data, let's you store your data encrypted and offers message encryption, and of course allows you to sign up anonymously and permanently delete data.
I hate Facebook but I recognize it serves a useful function - I only use it because everyone else does.
A strength of these two companies lies in the amount of talented individuals in these organisations. Google and Facebook both have a reputation to hire the best and brightest. If this is the case, then we can assume theyd have the raw ability to make right decisions. (debatable point) Given enough time and resources these people could do almost anything. This can be illustrated by the number of moonshots being attempted at Google.
Another point of strength of these large companies is the ability to diversify. Diversification comes in handy when youre in an ever changing world like we are in. Diversification comes in the form of external investments into potentially game changing industries and technologies (AR, BioTech, etc). Alternatively, change could come from within the organisations, albeit a little harder and riskier,
These are a few of the strengths of large companies like Google and Facebook. Despite these strengths new opportunities and new competitors will still arise. Google is a search engine, but it has moved into email and other markets. Google had existed before Facebook, and Google had more resources than Facebook when it got started. Why didnt Google takeover social networking instead?
The OP posed the question about if Google will always be the default search engine it has acted as for the last two decades. In my opinion, this can change. With the advent of Amazons Echo and Siri, more and more searches are being conducted via these platforms. Both of these platforms use the Bing search engine.  If Bing did a better job , then its conceivable that more marketshare can be had by Bing. As human computer interface progresses, the act of visiting Google.com will become antiquated. This leads to opportunities for other search engines to gain adoption more or less transparently.
Facebook is a social network we access via our web browser and mobile device. If VR becomes what is promised and more widely adopted, then social networking as a category will become redefined. Facebook is at an advantage because of the Oculus acquisition, but the VR space is still so young; There are no real experts in VR.
TLDR; A series of mistakes" made by these people comprised organisations could lead to true competitors. Strengths, like talented people and diversification, could counteract any risk to competitors. New platforms like Echo, Siri, and Cortana abstracts the use of the Bing Search Engine. VR could redefine social networking which opens more opportunities.
 https://www.quora.com/Can-I-change-Siris-search-engine https://www.reddit.com/r/amazon/comments/2lsg9n/amazon_echo_... http://thenextweb.com/gadgets/2015/07/08/alexa-y-u-no-answer...
I think Photography and Television and arguably Internet made us more emphatic and open-minded to accept differences, especially when the root cause was ignorance. VR could follow the trend if we can be emerged in places and circumstances we can not physically be in, or if we can see the world through other person eyes.
I think that in practice, VR will not promote empathy for the same reason that social networks have not: because status aggrandizing products will be too popular. You already see this in horror games, where they become literally too scary for VR because the lowering of status in transaction feels too real.
Look up the Proteus effect: that will lead to some detrimental things whenever it gets implemented in the social applications that people will come up with. So there will come new Instagrams, and they will be more terrible than the old social networks.
For some reason there's a meme that it will but all the reasons I've seen why VR would also apply to the internet and it doesn't seem to have.
Reality is we don't want more empathy anyway. It's a cancer that stops many good things happening.
They let you experience what it's like to be another person via a custom-built video rig (i.e. you get to 'see' the world as another person).
I'm working on a toy stock exchange app to learn haskell and of course it will be mostly immutable. It will use some shared global state. This will have mutable reference using mvars or transactional memory but the "objects" themselves will be immutable.
Communicating between threads makes total immutability hard (maybe impossible?) unless you have a very clever threading model.
There also exist libraries for some languages that introduce immutable data structures, like pysistance for Python.
To that end, start with Convex Optimization . You'll develop an incredibly versatile - but not esoteric - mathematical background. You'll link the mathematics to solving real engineering problems fairly quickly. You'll tackle the basics of machine learning as well.
After this, you'll have a pretty strong background to get into more traditional machine learning and deep learning. Regarding the former, Andrew Ng's notes are pretty solid , and for DL, Karpathy's Stanford course is great .
Self-studying all this material could take up to a year (part time, assuming you do it while having a job), but I don't know of a better way to gain the skills and get into the field. This approach balances your learning of fundamentals, engineering applications, real software, numerical computing, and the more fun "new" stuff.
Hope it works out well for someone else.
 - http://stanford.edu/class/ee364a/ Great video lectures available too.
 - http://cs229.stanford.edu/materials.html Also has great video lectures on Youtube.
 - http://cs231n.stanford.edu/index.html Ditto on the lecture vids.
To learn the basics of ML, you can check out the awesome tuts+ course.
Also I wrote an article  with the collection of the best free resources, I think you'll find it useful.
Book rec: Computation Semantics with Functional Programming. It goes through the whole gamut of formal languages, lambda calculus, propositional logic, predicate logic, logical inference engines, nl semantics etc. It uses Haskell to build concrete examples for each section, and contains a concise tutorial on the language too. Very self-contained. No prerequisites required.
Caffe (Deep learning framework by berkeley) / C++ mainly
Theano / Python
Tensorflow / More Python fully support, but also supports C++
NLTK Natural language processing Toolkit / Python
scikit-learn / Python
Torch / Different interfaces
CNTK / C++
Opencv / C++ Python
I haven't covered them all, but please at the bottom of this list I am maintaining there is everything you need to know to get started
* Tor HS are not particularly resilient and have relatively high latency.
* The addresses of Tor hidden services can be determined by an attacker (Malicious HSDir operators).
* The Tor network is already over capacity, and isn't intended or ready for commercial use. Carefully considering using a free community service for a commercial product.
* If you do ultimately use Tor, consider running Tor relays or donating to the foundation.
- Construct2 is you want to create simple games without writing code. Simple to do standard games, hard if you need more control or more complex data structures. It contains exporters for different platform including mobiles(using html5 wrapper to execute html code, based on phonegap or something similar).
- GameMaker - quite similar to Construct2, a bit more powerful and it requires to write more code than Construct2, unfortunately in their own language. You can export games for different platforms(unlike Construct2 it generates and compile the code for each platform in native code) and for html. Each exporter should be brought so it makes this option the most expensive.
- CreateJS - the Adobe Html5 alternative. It recreates the class hierarchy from action3 flash, in html5 js. A tentative to recreate Flash in Html5, good enough. It has the advantage that it can export Flash graphics including vector graphics in an html library which can be used imported in your project.
- Phaser - A nice framework based/inspired/not an exact port of Flixel. It has nice features and it was written only for games so I would say generally it's better than CreateJS, in the same way Flixel was better than plain AS3. It can be combined with Pixi.js to webgl rendering.
- OpenFl - a flash inspired library written in Haxe. The advantage is that it can generate and compile the game in native code for virtually any platform that matters including HTML5. It can even import and use flash objects for graphics.
My advice is to pick one option and to go for it(the list is far away of being exhaustive). If you have java experience you can check CreateJS or OpenFl, if you want a codeless engine, Construct2 is more popular among html devs than GameMaker.
P.S. It seems Phaser can be easily used with ecma6.
Also,take a look at http://createjs.com/.It is pretty familiar if you come from a flash background. The latest version of adobe flash/animate exports to createjs so you can keep using your old flash authoring skills for your assets.
However, If time is your major constraint, unity might not be as overkill as you might think.
2048 is actually somewhat of an odd case, since it was originally only an HTML5 game that was built to run in both the browsers of desktop and those of mobile devices. For this reason, the developer didn't actually port the game to Android/iOS until much later. Pretty much all the versions on the App Store/Google Play Store were 3rd party clones of the original, since it was relatively simple and open source.
It might seem like a toy, but there's a community of people who create genuinely good games in it.
It is under active development, docs are good and there are plenty of complete game examples to learn from.
I think entity component system of Crafty scales a bit better than Phaser, but on the other hand Phaser has a bigger community.
Even if you're not using Laravel(PHP) it works for quickly spinning up a vps on digital ocean or AWS.
You can setup multiple dev/test sites on one droplet.
Deploy repo via github bitbucket.
It's super fast and easy.
We setup live site on it's own droplet then have another staging droplet. Develop locally with valet/homestead (laravel.com), deploy to staging using forge, deploy to production using forge.
Forge has quick deploy which deploys when you push to your repo.
There is also https://envoyer.io/ for zero downtime deployment.
I've also recently began looking into docker, but the update image dance seems like more work to me than the above.
However, you wouldn't have a possibility to "log in" to a container or interfere with it in any deep way, because it would break the concept.
I think that the "serverless" concept already treats the running service as an immutable thing so probably adding the proof of running from a specific checkout would be easier there.
For example, many OSS SaaS products I've seen have an open source version that only supports running a single user or single company but their deployed SaaS version is multi tenant.
So if you're really concerned about SaaS products slipping in back doors or something like that that defeats the "publicly audit-able" condition (if I'm reading your concern right) you can't do anything about it except run the OSS code yourself and not use the SaaS.
Is it more than a matter of just repeating what you did to get your first 1K customers? Because it seems like you're killing it, already, to get to 1000. I'd LOVE to be in that situation, but it's a different model of business.
It'd be interesting to hear how you got from 0 to 1000. In any case, best of luck. :)
1. Freelancer.com2. PeoplePerHour.com3. Guru.com4. Upwork.com
All looked upon as 'fish markets' and 'sweat shops' by many which is not entirely inaccurate, but you will frequently find decently paying jobs too. You might have to struggle initially (with bottom-of-the-barrel jobs) in order to build up your profile and get some reviews, but once you have a few under your belt, things should start getting better. YMMV
1) It was meant for The sort of folks that earn titles like "Principal Engineer"
2) It was going to be way easier to get a Tier-2 visa sponsorship.
My advice would be to reach out to the influential people who already follow your blog, have have gone to your talks, or who use your product.