C++ and Rust are both relatively complex. If you have aspirations to working on large native projects, then C++ might be the way, with Rust becoming more prevalent in the future.
Fair warning, as i wish someone had told me exactly this when i got my own TN-1: Any given border agent has the power to repeal said visa for any reason, without oversight. If they have a bad day at the border, they may elect, at any time, to permanently repeal it.
The main issue you'll have is resume screening -- so try to network to a job instead (or have a very compelling programming job application that makes your unrelated BA make you look well-rounded.)
There are also remote jobs in the US. Most would probably hire from Canada.
I was able to obtain TN status at the time through the Sci/Tech category. It was a little bit different then the traditional Analyst category but it worked.
The gross annual amount of an employee's base salary is very different than the cost of hiring an employee with said base salary. I know CA != US, but payroll taxes, benefits, retirement contributions, unemployment and disability insurance, etc can't be that alien of a concept. Or is it? In the US estimate 130%-160% of the salary for base employment. Or is circa 30k for an intermediate engineer normal in Vancouver? In which case what would the entry level position make?
I wasted probably six months going down blind alleys with this approach. Here are some of the lessons I learned:
1) A small group of beta testers will not give your product the time and attention you need to find product-market fit.
2) High quality collaborators, willing to devote all their spare waking hours to your vision, are extremely hard to find (and even harder to get up-to-speed). Especially on a budget. You'll probably see several promising co-founders come and go before you find a good match.
3) Even if you have a really sexy MVP and a great team, it's nearly impossible to fundraise until you can point to a handful of satisfied early customers. You might think you can raise $100k (chump change!) to fund your first six months of operations, but you're probably wrong about that.
The only thing you should be doing right now is getting your product into as many customers' hands as possible. In your post, you say you plan to "charge money and earn revenue from day 1".
Today is day 1. Go get some customers!
Read "The Lean Startup":
If someone told me that they will make $1mio in sales on a $156k investment, and they wanted that investment from me (not just do it themselves), I would think it was some kind of scam.
Does what I need, and their google-drive integration makes it easy to keep track of the diagrams and share them with folks.
This is not how HN works.
Rails is 'immune' in the sense that it doesn't let you directly drop HTML onto pages from strings without escaping it first, and if you would like to do so, you have to explicitly mark the string as safe. This isn't to say that XSS is no longer an issue though, Rails and other frameworks help prevent these occurrences in many cases in simple applications, but larger scale applications have a lot more code and a lot more ways to punch holes in that protection. In fact using Express with with Node.js doesn't sanitize your strings by default (as far as my quick research has shown), which leaves a potential attack vector.
While XSS is a very well known vector, XSS attacks are not uncommon in non-boilerplate web applications. Fortunately sanitization is easy and bugs can often be fixed quickly.
Browsers can prevent some methods of XSS, such as by preventing loading JS from a remote untrusted source. If you find a way to drop JS directly onto a page that the browser can't catch (such as the entire JS source being delivered by the server), there's still vulnerability.
OWASP tends to be the place to go to learn about web security. They have lots of examples of potential exploits.
 https://www.google.ca/about/appsecurity/reward-program/ http://stackoverflow.com/a/3932440 https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)
...Apple makes really great hardware and good software, but would you expect them to make the best social site in the world? Maybe, if they really put their minds to it they could, but it's just not part of who they are. For instance, they have one of the world's biggest captive audiences in their suite of music software, but can't add basic 1.0 features and interactions to their repetitive attempts to make a music social network inside of iTunes. It's not even funny anymore, just really sad.
...Google is very smart at algorithms and dealing with massive scale, but would you similarly expect a bunch of smart nerds to build the best possible platform for sharing or rating stuff with your friends? What limited social success they've had with YouTube they've had to just buy, and even this they almost screwed up with their ridiculous abortion of a Google Plus integration.
It's not that these companies don't have talented people inside who are capable, just there's probably a lot of corporate momentum and interference from managers on top who dictate that things need to be done a certain way.
We did make one change to Arc proper: we added syntax for binding thread-local variables in function signatures, analogous to how optional arguments are declared. This adds a limited kind of dynamic scoping to Arc. That is useful when you have some 'top level' state (e.g. the basic parameters involved in making an HN web request: username, item id, etc.) that you'd like not to have to pass down every chain of function calls that's going to need it at some point. We originally added this as an experiment to see whether it would simplify or complicate the code. It simplified it very nicely, so we kept it. I can describe this in more detail later if anyone's interested.
You can use websockets to broadcast/listen for changed data and updated the DOM accordingly (if you're on the web).
The idea of testing code was never covered in any of the introductory books I read. I learned the basics of C, Fortran, and Pascal while doing a physics undergrad in the 90's, then I learned Java and Python in the 00's on my own from books and websites. None of the introductory books I read introduced the concept of testing. It wasn't until I started reading programming blogs on a regular basis that I started writing tests for my code. Once I did, the quality of my code immediately improved and I felt much more confident in the code I wrote.
When I wrote an introductory Python text recently I included a chapter on the most basic aspects of testing. Beginners don't need to write tests for everything they write, but they should definitely be aware of the concept.
I try to avoid it and over time I've done a better job of approaching things dynamically.
This should be done sooner rather than later.
He has a friend at another big-4 in NY, also a cloud architect, he is making $400k
I think that the $1 million package is incorrectly calculated. This is perhaps the total package for 2-3 years, including signing bonus (vested over a couple of years) and RSUs (vested over a couple of years)
Annual total compensation for any big-4 Sr software engineer with a lot of experience in SF I assume is around $300k and can get up to $500k if you are really good.
I don't know of anyone who is making $1 million a year, even senior directors at big-4s. Perhaps if you are a Phd who worked at Google cloud / AWS / Azure for 5 years, wrote their software, talk at cloud conferences, wrote "Cloud computing for experts" type of books and published a seminal paper on distributed computing, then perhaps you will get a total compensation nearing that.
If you are just a cloud architect at a big-4 I think the lower part makes sense in total comp, the upper bound sounds completely ridiculous. I have friends who got offers from Amazon and Google for very, very senior cloud positions, way more than "just a cloud engineer", and the total comp is around $300-$400. If the stock goes up though, then the RSUs might be worth much more.
If LinkedIn / Facebook are offering engineers an annual $1 million I'll be very surprised.
Making 300k+ in total comp is pretty easy at the big Tech companies. Most level 5 Software Engineers make around that and there are >10 thousand of L5 SWEs at just Google; and I don't think Facebook, Microsoft etc pay any less. This might change if there is a downturn and these companies stop giving out significant annual stock refreshers since the base salary part of the 300k is only about 140-170k. But as of now, the numbers are"normal". To reach the close to 1 million level, you need to be at least a level 7, and there are very few of such.
Now salary is a different matter. A 300k+ salary is very rare, and you probably need to be a director at least to command that. As you rise up the ranks, salary goes up at a much smaller rate than the annual stock grants/bonuses.
He describes a boundary around $250k at "senior", and to get above it you'd need to become some kind of principal/lead.
I can disclose that, in a recent past job as VP in a tech company, I had a very generous package which was a bit above $0.5M, all included (base, bonuses, options and RSUs) - then the stock went down (options became worth nothing, stock lost more than half its value), and the actual annual comp went down by about $70k-80k.
I am sharing this here to benefit the discussion, please do not make a big thing out of it.
I know it's a ton of money, but I'm pretty sure that most purely technical jobs don't surpass 300k-350k. 1M is simply foolish.
Furthermore, if you consider income taxes, and the cost of living in SF, the number is still high but not as nice as it seems at first.
Netflix, however, consistently pays way more than any other company in the valley - and yet, it is still an exception.
Also, any key hire like a scientist/data analyst/PhD working in a big company would easily get $1 million offers from other big companies.
You won't get that sort of offer at an illiquid startup (except as un-valuable options) - but it's certainly within the ballpark of reason for people hiring experienced engineers at highly profitable companies.
at this point I do not believe this unless you are the lead architect.
for exaple this job posting I cannot see payin more than $165,000 in dc/ny/bay areas... but maybe my previous exposure to the big four has been limited... was anyone able to find a job posting that pays this much?
to throw around some figures too.
I've heard of SALES ENGINEERS making that kind of money, but not technicians.
The moment a programmer is working at home remote making $300K per year, the employer will find some offshore person to do it at 10% of that price.
Reference Disney and the H1B debacle etc.
The only way somebody as a technician is making that much money is the company they work for hasn;t found a way to get rid of them yet and replace them with cheaper options.
They can find themselves out of a job very fast at that price range.
Once you do the initial setup and things are stable(documented), they will kick you to the curb and replace with $50K worker.
I've seen it claimed that Couchbase should be on this list, but I've never seen a primary source which verifies that they were rejected from YC.
 - https://blog.blockcypher.com/what-adam-saw-that-sam-didnt-a0...
 - https://pando.com/2013/10/11/superhero-laundry-founders-laun...
EDIT - Citations
They were prepivot (Kindrid Prints) and YC didn't like their idea
I teach community college and sometimes I wonder about the thought processes behind some of my students' papers. Paul Graham linked an essay he wrote in Stypi, where you could watch him write it in real time. This was clearly the greatest computer-assisted tool for teaching writing ever, and I immediately incorporated Stypi into one of my writing assignments. I wanted to know how much my students proofread, how they structured essays, and what they struggled with as they wrote. I was so excited about it that I wrote the entire assignment in Stypi and linked my students to the replay in case they were interested.
It was a disaster. So many students lost essays in browser crashes or were flat out unable to use the software. I ultimately had to apologize to my class, give everyone an extension, and cut Stypi out of the project.
Apparently they were acquired though, so I guess they made someone happy.
I did a quick check using Mattermark data of which YC companies got the most news since 2013 that are not still alive. It yielded (num articles / startup):67Homejoy13Tipjoy13Buttercoin6Tutorspree
* The community is great.
* Documentation is amazing, and up to date.
* Examples actually work.
* Installation is simple. Runs on multiple platforms.
* Clustering is easy. Sharding is easy. Management is easy.
* Built for today's needs, not for what we were doing 30 years ago.
If you haven't yet taken a look at RethinkDB, do yourself a favor and spend a couple hours dinking around with it. You may just be impressed.
*  http://rethinkdb.com/
Oh yeah, and something that is a cross between SPARQL and SQL 1999.
a) simple laziness. A good review takes time and thought to write, and the time isn't necessarily in the writing the review, but in processing the experience after graduation. By the time you have a more balanced (ie, graduated, employed/unemployed) perspective, you've probably moved on to other things.
b) in my case, it's mostly due to general ambivalence about the experience. There were things I liked, things I thought weren't done well, and the overall effect is to cancel each other out. Ambivalence doesn't encourage taking the time (see above) to write down thoughts the way more extreme positive or negative views do.
c) also specific to me: I genuinely liked the instructors and most of my cohort, and writing anything negative seems impolite - not wanting to hurt someone's feelings or seem ungrateful. Irrational, but there ya go.
I imagine many people go into these programs to gain skills to get a job. If afterwards you talk about how the program failed to prepare you for that you're shooting yourself in the foot.
As to why there aren't more positive reviews - maybe it's related?
If you review a bootcamp, you risk a permanent association with having attended a bootcamp.
It lead to several sites emailing me and asking me to write a review or to link to their sites. Here is what I wrote to coursereport:
>By completely ignoring the issue of student outcomes, your resource does prospective students a disservice. How about listing average salaries, listing graduation rates, linking to yelp profiles and linking to student directories for those schools confident enough in their outcomes to share them?
I hadn't looked at any of these sites in a long time, but to the best of my knowledge, very little has changed. They offer a comparison only of the costs of the various options, not the value. The person who emailed me did seem to express some vague interest in adding that kind of information later but two years later it's still not there.
At least for me, the main reason I avoided the "bootcamp review" sites is that I didn't feel any would have given me useful guidance as a prospect (whereas Quora, Yelp and HN threads would have if they'd been around when I applied).
Provide ratings and info to the general public that don't just show rates, but trends, who drops out, comparisons of success rates for different groups, etc. Provide more structured but still anonymous feedback, for a price, to bootcamps as a consultant, or get a grant from a large tech firm. Publish papers in conjunction with academia on a delay.
I think what bootcamps could do, if they were willing to, is be much more agile in changing how they work based on research then a 4 year school, and actually do research and experiments to find better ways of teaching, and improve the industry as a whole.
FWIW: I did a bootcamp, loved it, never wrote a review. Just laziness/generally don't write reviews for things. I would guess many people don't write reviews for the same reason.
By that I mean the entry point for most participants are all different, the expectations for most participants are all different, the experience for most participants are all different (some students work harder than others), and the outcomes are all different.
I felt there was more to learn than there was time (I did a 12 week course), so how I felt after graduating was largely a reflection of my own confidence and ability in contrast to the effort I put in and not a direct reflection of the quality of the instruction.
The Dreyfus model of skill acquisition  is a useful reference here. Any program that claims you will gain mastery over a discipline in a dozen weeks is lying to you. The guys that ran my bootcamp were plain about that. They said they would help me help myself learn... which they did but not to the level I really wanted to get to. And that more than anything is why I am ambivalent about recommending them.
And sure, I'll freely cop to self-interest here. Bootcamp grads get enough shit from people in tech who want to dick-measure. I'm not going to do anything to further the cause of people who already think I'm an incompetent chimp with a keyboard.
Also, like the SwitchUp person already said in this thread, there's no reliable source of data for outcomes. I can tell you how long it took to get a job and what I made fresh out of the course, but why would you believe me, especially if you're already primed, like a bunch of people here clearly are, to believe that bootcamps are bullshit and their grads are rubes desperate to cover up the fact they got bilked? Maybe I'm just a plant; maybe I get paid a combined $200k a year by DBC/GA/HR/Flatiron to fire up 100 sockpuppets and argue that bootcamps are a good investment to con people on Reddit/HR/wherever. (That actually sounds like a super fun, super immoral job. Maybe I can trick them into actually paying me to do that. OR MAYBE I AM STILL MESSING WITH YOU. ~spirit fingers~)
My friend did a local bootcamp and now he's doing ASP.NET work and loves it! I'm just scared of doing that specific one because I don't really have interest in anything microsoft.
This is letter known but AWS has a pen testing service.
I used to do surgical AR. The immediate-now-future is nanodevices, rDNA pharma / gene therapy, and more exotic chemistry. Hardware and software only play a supporting role and smaller role in the final clinically approved therapy. No matter your background all require organic, molecular and various biochemistry or medical skills - probably not as much mechanical engineering as you hope now that CRISPR is here.
I'd love to work on something like this too!
It doesn't matter what kind of project, always include one more week.
Don't be upset if you can't stick to your plan, allow yourself an extra week.
It's not your fault, that's basically software engineerings nature.
You should get out daily, for at least 1 hour.Simply because that one hour is for recharging your brain, which again leads to better performance.
Also what I try to do, when I'm doing a hackathon, is that I'm looking for templates from themeforest or wrapbootstrap.
There are also a lot of good templates for your framework, where auth/register/signup/signin/roles etc. is already done for you.
I don't like reinventing the wheel, I'd rather focus on the business logic.
Also, don't obsess about making the code and architecture good. Get it working to prove the idea works then using what you've learned you can go back and improve it. I see so many side projects fail because many coders obsess about making code perfect over more important things. Releasing a project with imperfect code is vastly better to never releasing anything because you procrastinated trying to write perfect code in my opinion.
- Have a clear goal about what you're building. If you don't know where you're headed, you'll end up getting lost.
- Start the research NOW. It takes quite abit of context switching between research and dev. The sooner you get a clear view of how to build it, the better.
- Use tools, frameworks, other people's code, etc. but consider the learning consequences.
- Layout daily goals and your roadmap for all your features. Put it in your calendar
2- Work in 25-5 bursts. What that means is that you cut yourself completely from any disturbance, which include your phone, emails, social media, family members... for 25 minutes, that you dedicate completely for work. Then take a 5min rest. Its very effective and something that i do myself.
3-Hire a frontend developer or buy a ready made theme to only focus on the backend stuff. Since UI is very important.
Good luck with your project mate!
Also, I have found that at work it is ok if you get sidetracked sometimes because your guilt or sense of responsibility to your coworkers and company will refocus you soon enough. If you are like me, then you have no such thing when working on your own thing. For that reason, I highly recommend keeping regular, well defined work hours. I would even consider one of those apps that won't let you connect to FB, etc. while you work.
As far as technology goes, you can build a solid prototype website in anything these days. Pick the language you know best and also pick a solid foundation. By that I mean do as little as necessary to make the prototype work. Don't fall into the trap of using this as an excuse to try something new (if you want to actually get it done that is). Frameworks are great for this for example.
In the end, I hope you'll become a successful technical CEO and great company because you've learned a lot more than an API or two.
Lay out the entire 20ish blocks and post them here/email to your friends and family or to some other entrepreneurs that you do not want to dissapoint by not getting stuff done.
Every day, update the post/email with a status, did you get the blocks done and if not why not, what did you learn and what will you do differently tomorrow?
You should work each day like you're going back to the office in 2 days.
I did that once, a long time ago, and it took me on an amazing adventure.
check out http://7daystartup.com/ as well. dan occasionally throws a 7 day startup challenge where a bunch of entrepreneurs gather online and start a business in a week
> It chronicles the experiences of a computer engineering team racing to design a next-generation computer at a blistering pace under tremendous pressure.
- The obstacle is the way (Ryan Holiday)
- Meditations (Marcus Aurelius)
- Level up your life: how to unlock adventure and happiness by becoming the hero of your own story
- the six pillars of self-esteem
- so good they cant ignore you
- the power of habit
- how to fail at almost everything and still win big
- soft sell: the new art of selling
- essentialism: the disciplined pursuit of less
- the magic of thinking big
- everything is negotiable
- making things happen
- lean customer development
- what customers want
- inspired: how to create products customers love
- delivering happiness
That sounds so far up the chain of abstraction and generality, that its easy to dismiss the book. Dont! The book is impressive partially because it manages to distill useful truths which are applicable at such a general level.
It's written by Ray Dalio, who is undoubtedly extraordinarily intelligent and remarkably determined to self-improve. He is the founder of the hedge fund Bridgewater Associates and consequently the 69th richest person in the world in 2015.
The firm itself is noted for its unique company culture. He believes that people can only improve through feedback and that there are strong social conventions and cognitive barriers which prevent people receiving the feedback they need. At Bridgewater, every meeting is recorded and broadcasted to the company. At any level in the company, if someone is being considered for a promotion, they will be invited for a discussion. Senior executives will discuss, in front of the candidate, the merits of whether to promote them or not.
The book contains elegant, simple, yet crucially important truths. They seem obvious at first sight, but he fleshes them out in such a way that you realise you don't really act consistently with those truths, even if you perhaps trick yourself into believing that you do. Through reading the book, you can internalise some of his approaches in understanding the world.
Its a book which altered my way of thinking about the world in a profound way.
PDF link here: http://www.bwater.com/Uploads/FileManager/Principles/Bridgew...
>J. Hromkovic: Theoretical Computer Science: An excellent introduction to complexity theory, kolmogorov complexity, automata and turing machine, language and grammar theory
>Harris & Harris: Digital Design and Computer Architecture: Introduction to electrical engineering, graudally builds your knowledge until you could implement a simple little CPU in e.g. Verilog.
Now that I'm working with them,I realize those books aren't fiction: they're documentaries.
Prior to reading this, my politics aligned very closely with those of Sanders and I thought everybody on the right were selfish, evil, close-minded fools. After reading the book, my politics are still left of center (but definitely right of Sanders), but I think I understand and appreciate the politics of my right leaning family and friends.
The Hard Thing about Hard Things by Ben Horowitz
Strategy Rules - Five Timeless Lessons from Bill Gates, Andy Grove, and Steve Jobs by David B. Yoffie, Michael A. Cusumano
These are all timely books and recently written.
https://minireference.com/ 4.5 stars on amazon http://www.amazon.com/No-bullshit-guide-math-physics/product... If you're getting a print version, I recommend the version through lulu.com, since the print quality is better.
How to win friends and influence people -Dale Carnegie (The definitive guide to helping you work better with people, truly great book, should be required reading)
Blink- Malcolm Gladwell
Godel Escher, Bach - (Recursion, but not from a software perspective. Its a glorious book that will change the way you think about recursion.)
Hitch Hiker's guide to the galaxy, - Douglas Adams (Glorious book that is a fun read, when you need a break pick this up and laugh hard)
Foundation Series - Assimov (Great stories from one of the best sci-fi writers ever)
-------------------Software relatedCode CompleteConcrete MathematicsThe Art of Computer ProgrammingThe Design of the Unix Operating SystemIntroduction to Algorithms -CormenDesign Patterns Elements of Resusable OO Design -Gang of Four
It's about Stewart Brand, but really more about the scenes he was involved in, it's not a biography. Covers the Whole Earth Catalog and the WELL, but also talks about the influence of systems theory and Bucky Fuller, and clarified, for me at least, the difference between the New Communalists and the New Left, which were somewhat conflated in my mind. It also puts Stewart Brand as a character, if not an essential one, at some key events. The mother of all demos and the founding of the Homebrew Computer Club are what I'm referring to here.
Gig: Americans Talk About Their Jobs https://en.wikipedia.org/wiki/John_Bowe_%28author%29#Gig:_Am...
If you're interested in project management, Making Things Happen is good.
I've just started High Output Management and so far it seems good. Of course there are always the classics like Good to Great, What Color Is Your Parachute, etc
Some people I have spoken to say his method isn't for them but I've found it useful, even if I haven't implemented everything he suggests.
I'd also recommend "Code: The Hidden Language of Computer Hardware and Software" by Charles Petzold. It starts at simple circuits and builds up a picture of how computers work. It has really helped me get my mental models of what's going on inside a computer straightened out!
When breath becomes airhttp://smile.amazon.com/When-Breath-Becomes-Paul-Kalanithi/d...
Do no harm, Stories of Life, Death, and Brain Surgeryhttp://smile.amazon.com/Do-No-Harm-Stories-Surgery/dp/125006...
The Song Machine: Inside the Hit Factoryhttp://smile.amazon.com/Song-Machine-Inside-Hit-Factory/dp/0...
Why we workhttp://smile.amazon.com/Why-We-Work-TED-Books/dp/1476784868/
One reason I wanted to read the book is Kissinger and Nixon are responsible for establishing relationships with China. My parents generation were able to come to the US because of them. Many older Chinese immigrants have positive opinions of the two, despite them being amongst America's least favorite politicians.
Caro, a Pulitzer winning journalist, is a wiz at writing, so you'll enjoy each page. But more importantly, even though Robert Moses was a bad buy, you don't have to be bad to learn to get what you want, in an organization, by ignoring superficial power structures, and focusing on the real ones.
Plus you'll learn a ton about how NYC was built out in the depression.
Structures: Or Why Things Don't Fall Down. About the engineering of various things, mostly buildings. Highly recommend.
The Elements of Computer Systems (better known as NAND to Tetris). Describes a computer from the bottom up.
A History of the Arab Peoples
Space and Time in General Relativity by David Mermin
Feynman QED: The Strange Theory of Light and Matter
: http://www.amazon.com/Legionnaire-Englishman-French-Foreign-...: https://en.wikipedia.org/wiki/Simon_Murray
This is a novel, but Carlos Ruiz Zafon's The Shadow of the Wind is fantastic.
"Code: The Hidden Language of Computer Hardware and Software", by Charles Petzold
"Rework", by Jason Fried and David Heinemeier Hansson
Ed is an incredible human being! Go read it!
If someone else is familiar with Oz/Van Roy stuff, I have a question.
So if I need a quick scifi buzz, I pick a random story from the megapack.
The Inner Game of Tennis
A Guide to Better Movement: The Science and Practice of Moving with More Skill and Less Pain
Punished by Rewards
Microeconomics: Behavior, Institutions, and Evolution by Bowles
Softwar (Larry Ellison), Matthew Symonds
A Perfect Red, Amy Butler Greenfield
Assault on Lake Casitas, Brad Alan Lewis
This Census-Taker, China Mieville
Whatever, Michel Houellebecq
Freedom from the Known, by Jiddu Krishnamurti
Think on These Things, by Jiddu Krishnamurti
The Bhagavad Gita
The Grand Design, by Stephen Hawking
* Nassim Nicholas Taleb. Antifragile, things that gain from disorder http://www.amazon.com/Antifragile-Things-That-Disorder-Incer...
* Jared Diamond. The World until yesterday, what can we learn from traditional societies http://www.amazon.com/World-Until-Yesterday-Traditional-Soci...
* Frans de Waal. The Bonobo and the Atheist: In Search of Humanism Among the Primates http://www.amazon.com/Bonobo-Atheist-Search-Humanism-Primate...
* John Higgs. The KLF: Chaos, Magic... http://www.amazon.com/KLF-Chaos-Magic-Music-Money-ebook/dp/B...
* Joseph Jaworski. Synchronicity, the inner Path of leadership http://www.amazon.com/Synchronicity-The-Inner-Path-Leadershi...
* Piero Ferrucci. Your Inner Will, finding personal strength in critical times http://www.amazon.com/Your-Inner-Will-Personal-Strength/dp/0...
* William Irvine. A Guide to the good life, the ancient art of stoic joy http://www.amazon.com/Guide-Good-Life-Ancient-Stoic/dp/01953...
* Chogyam Trungpa. Shambhala: The Sacred Path of the Warrior http://www.amazon.com/Shambhala-Sacred-Warrior-Chogyam-Trung...
* Tomas Malik. Patience with God: The Story of Zacchaeus Continuing In Us http://www.amazon.com/Patience-God-Story-Zacchaeus-Continuin...
* Nick Winter. The Motivation Hacker http://www.amazon.com/Motivation-Hacker-Nick-Winter/dp/09892...
* Chas Emerick, Brian Carper, Christophe Grad. Clojure Programming http://www.amazon.com/Clojure-Programming-Chas-Emerick/dp/14...
* Peter Hamilton - The Reality Dysfunction
* Neal Stephenson - Cryptonomicon (his other hit: Snow Crash is surprisingly more history then SF now...)
I tend to push at the first opportunity it makes sense for other people to see my code, and then push again whenever I make enough incremental progress towards the feature to share. Our team has a culture of opening "in progress" PRs early and often to get feedback before we are too far along. This is great to share ideas and feedback about how things should work (instead of just about how they do based on implementation). It also helps keep the final code review size / time down.
If you just updated a typo in some comments, it could make sense to commit it and it could take 30 seconds.
Now if you are always committing as frequently, either you are working on very easy tasks with no dependencies, either there is an issue.
Recipe for disaster. :p
> knew people who pushed / committed like every 30 seconds
Pushing and committing is completely different actions in the git world.
If it's a simple fix then I try to commit and push almost instantly. If it is a large piece of work that needs several days, then I "checkpoint" it by committing at least once/day.
But I try to never checkpoint by committing something that breaks the build or unit tests. Like if my work is rewriting module A to B, then my first commit would be to add module B, second to change all dependencies from A to B and lastly to delete module A from the repo.
But seriously, I commit regularly, and rebase locally before pushing, whenever possible.
It's not really about how often you commit, it's about documenting that commit as a single unit of work so looking at it it's clear what you did, and why. This often requires planning ahead of time, and even possibly creating a separate branch just for off topic commits that you think of while working on the same file.
I'm not perfect though, it's okay not to be perfect.
Here's the code in case you wanted to use it:
if git diff --exit-code --quiet then echo "There are no changes to save, NONE!"; else echo "Stage everything for commit -------------"; addit; # an alias for "git add -A ." echo "Commit all changes with message $@ --------------"; commit "$@"; #commit is an alias for "git commit -m" echo "Push branch to remote --------------" psh; # an alias for git push origin $(git branch | grep "*" | sed "s/* //") fi
Use it like this: savework "COMMIT MESSAGE HERE"
Working on something that will take a week to be atomically complete and testable? (For instance, a major refactoring.) I'll write myself a checklist of steps and commit every time I complete a step.
As someone else said, once every 30 sec is too often, and once a day is too infrequent if you're coding 8 hours a day. When I'm in a rhythm I'll typically go anywhere from 10 min to 2 hours between non-trivial (e.g. typo-fix) commits.
I do not push every commit immediately. Once a day is a good minimum as a backup strategy and if you want to make sure you can work on the codebase from elsewhere or if you have a CI system to warn you of merge conflicts.
I'll also push whenever I complete a ticket (for long-running branches we typically have sub-tickets, or I'll push when I've completed work that someone I'm sharing the branch with can build on.) Git makes it easy to develop those units of work on separate branches, and when you merge them back to the feature branch is generally a good time to push.
In general, I try to be very atomic. As an added benefit, this makes it simpler for someone doing a git bisect later.
Fixing minor typos or copy changes across a few files could result in several commits within 15 minutes.
Working on a major feature that requires research and definition and a lot of conversation or feedback, might mean a few commits over the span of a few days.
Using this model I do work in progress commits as needed for different features using many different branches. Those wips and committed locally and are pushed to the remote fork many times per day for backup. For example I can do a quick push before going to lunch or meeting. I can also fetch, rebase, squash, and force push commits as desired because the only history I am affecting is on my own fork. The final merge to the "main" repository is usually 1-2 commits squashed from all the wip commits. Once that is merged I, since I am usually working on a feature branch, I can delete that branch locally and in the remote fork.
Every 30 seconds seems like a bit much, but it wouldn't be unreasonable to say I commit and push 10x a day.
I'm not sure there's a generalizable pattern there for which has a lower actual time interval between commit/pushes but I suspect that I tend to be spammier with them in personal projects.
30 seconds is too often. Once a day isn't often enough.
I agree with that but i'd add that i'll also commit at any stopping point. Need to leave for work? Commit. Need to go home ? commit. Doesn't matter how broken the code is at that point. I'll rebase the ugly commit away. Usually the ugly commit will have a message like "INTERIM COMMIT - REBASE ME"
I'll also happily push these ugly commits to a topic branch on a remote machine for backup purposes as long as I know that no-one else is working on that branch.
I push whenever I'm about to shutdown the laptop or by the end of they day.
I prefer this over trying to get every commit right the first time. I also feel there's a nice change of pace in the process of stepping back, looking over the previous work, and shaping it into something that communicates the ideas well to reviewers.
You're probably committing and pushing at acceptable times. Screw the consultant.
Committing every 30 seconds seems like it would knock me out of my flow so often that I wouldn't get anything done.
That being said, if I'm working in the same files as someone else, I'll commit every few minutes (and so will they) so that the amount of conflicts we're creating don't get out of hand.
New commit for new logical "part" of feature.
Rebase interactive when feature is "done" (in some way) to fix commit messages and squash some extraneous commits.
Push (as a branch in forked repo).
Sometimes I push before the feature is complete for backup/accountability purposes, but then I rebase anyway and push force the thing once it's done.
push and push regularly, in case you have merge conflicts. Get the continuous integration server building on commits and please have it email the team when the build fails too.
How often do you press "Save Game" during a new level?
"All together, we drive more than 3 million miles in simulation every day."
I would assume they run the logic unit through simulations independently of the other systems in many instances.
I think it would make sense as a community, it does e.g. HN, or maybe an accelerator type thing where you get a few gurus together IRL and help/hack on eachothers projects so that in reality like 5 companies all helpn eachother, but directly. not advice, or not just, but code, legal design, hardware marketing etc. everyone buys in with skill instead of money.
i think helping and learning from people is strong and getting help outside core.
I think you have to get this right in Silicon Valley for it to work everywhere else.
Unlike some simple SaaS that you can build while living in Thailand, this has to appeal to THE place where such ideas can work, before it can spread everywhere else.
What I will do and currently do is keep in contact with guys from old companies and they are welcome to flick me a mail and I'll reply with some guidance as far as is practical
I think it's worth a shot. I think a lot of devs and companies might be uncomfortable with the idea at first, but that's what early-adopters/trailblazers are for (to show everyone the way, and prove that the concept works).
Your company wants to use spark. And you literally have no-one in the company who has ever used spark or wants to read a book on spark.
And there is a company that knows spark, and happens to need a skill you know. And no one in this second company knows it, nor does anyone in the second company want to read a book or learn about it.
something online might work better.
Also .. where are you based (trying to judge cost of living of areas vs mine)?
Congratulations on following your dream, I wish I had the same opportunity.
I'll give it a try and tell you more later.
One piece of feedback - I get a popup to login to Game Center every time I open the app. If I don't want to login, it would be nice if you stopped bugging me about it.
Apart from that, well done on shipping!
One thing: I wouldn't place the bar that counts down a powerup's effect at the top-left beside the score. It's way too small and is pretty much outside my field of view while I'm carefully placing bumpers in the lower portion of the screen.
This is plainly some thinly veiled advertising. This belongs on Reddit imho (it also has a way larger userbase).
@vijayshekhar Mar 4 "@ConversionChamp @vijayanands @RajanAnandan @dkhare we offer recurring on CC too!"
Wrote a blog post to document what I found: http://www.redbridgenet.com/indian-payment-gateways-no-recur....
There's some links in there to discussions of the same. The Quora discussion is starting to fill up with what I think is spam for services that don't exactly solve the problem, but it might be worth checking out.
definitely some more
Edit: actually it looks like the story was submitted at https://news.ycombinator.com/item?id=11222681. Posting your text as a comment there would be a good idea.
In 2016 blogging is just screaming (or whispering) into the void. If there is a conversation around the post, it will be in short comments on aggregator sites (such as this one).
Really though, I need to get together some folks who can do usability tests on my writing. (If, uh, anyone is interested and wants to learn about server configuration, please tell me what you think of https://saltstack-from-scratch/
The web itself seems to be pretty much over, as far as you can consider it to be a community medium, and the death of blogging is just the most visible aspect of that. I still post on my blog from time to time, but it's basically just out of habit, or because I think I might want to find some interesting link again later.
The only area's I have any in depth knowledge are already well covered by others.
I used to blog on & off since early 2000s. It was mostly about my daily life, interests, and photos. It was a lot of fun and many friends read it.
Then I added ads and affiliate links. I hardly made any money from those ads or links but once I accidentally ended up making $200+ from one affiliate link. This got me greedy, and I started to think I can become a professional blogger. I cleaned up my personal stuff from my blog and started to write with a focus of gaining views. This ended up being work and boring. Also my blog suffered negatively as my friends stopped visiting it. I lost my interest too. Started to blog less often.
But this year I will re-start personal blogging. I don't have anything important to say to the world. My blog will be just for my friends & family. Also I removed all ads and affiliate links from it to remove any temptation of making money.
Blogging for personal reasons is still a good option (as many would say), but why spend limited time on writing a blog post when you could be working on a side project instead?
Blogging is just putting your opinions out as fact with no way for readers to disagree. I prefer commenting.
Now blogs are simply the place I put something if I truly write something for enjoyment where that enjoyment needs to be 100% of the reward. This does happen, but rather uncommonly (because: life).
They're all sitting on my laptop, but I worry about keeping topics separate from our employers. I want to keep things classy.
If you've got suggestions how to approach this, let me know.
The other thing is that that there a handful of disjoint subjects that I might like to blog about: a hobby (that I do have a nascent blog for), things learned in tech, etc. But they don't have much to do with each other, and putting them all in the same place feels silly.
I've ran various news sites in the past, and I'm working on one now, if that counts as blogging.
But I don't run a personal blog. Why? Because I don't see the point. Anything related to gaming or tech is already discussed on my existing sites and social media accounts. My personal life is kind of boring by comparison, so no one would want to read about it. And anything political goes on Medium or some other such platform instead.
Players play the game. Commentators talk about it.
Our goal is to optimize the front page for the best stories, and it's fairly random whether or not a good story gets traction the first time it's posted. If we were anal about disallowing reposts, sure we'd get a more deduplicated submission history, but we'd also end up with a poorer front page. Bad trade.
There are things we're working on to reduce the number of duplicates that are appearing. The problem is trickier than it seems, but we'll get there.