- Ask a hefty penalty amount for signing non-disclosure agreements (NDA's) - this is crucial for short term contract work
- Charge more. Figure out your hourly rate and average hours per day and extrapolate that out to a weekly rate. I reckon a fair amount is $50 an hour, while still staying very competitive with other software shops. See: http://internationalfreelancersacademy.com/why-you-should-ch...
- Be honest in what you can and can't do. Advise your client to contract out such work, whether it's designing the look and feel, designing logos or write content. Figure out or develop an advantage over other service offerings. Specialization is of key importance in consulting/freelancing work.
- Beware of overly stingy or difficult clients - it's sometimes necessary to fire them!
I guess it depends on how averse you are to risk and how long you can go without getting paid.
Never forget that a contract is meant to be negotiated - a contract's first draft typically contains a bunch of unreasonable or vague requests and wishes from the party that created the contract. Don't sign a contract until the vagueness has been clarified or defined.
It's up to you to negotiate the contract in your favor. To put it plain and simple; unless you negotiate a contract in your favor, you're going to have a bad time. Like the video said; if you have no contract, you're left with the sympathy card and that rarely works.
Another bit of advice: Keep track of all communications and have all word-of-mouth agreements put on paper (before you commit to anything, like signing the contract). I keep a projects folder per client containing communications, documents received etc.
Hourly billing only works when you keep a detailed log of what was done. It's definitely a lot easier to get paid for work if you provide a breakdown on what was decided and done. The descriptions should prove as motivations of why the work was necessary.
It must be IE gathering its numbers to face off against Spartan in the IEpocalypse.
Another theory is that corporates/governments are switching over from XP to Windows 7 (with Internet Explorer 8 as default) because XP was declared "dead" (end of life on April 8, 2014 - no more security updates) and the existing PCs aren't capable of running UEFI required for Windows 8...
Windows 7 and Windows 8 is going to get a free upgrade to Windows 10; it's not far fetched to believe some people are installing a fresh copy of Windows 7 on a clean machine to make use of the free upgrade.
Windows 8 will run on anything that ran Vista and does not require UEFI. Placing a sticker proclaiming Windows 8 certification or something like that on a new computer requires UEFI.
There's definitely a huge difference between supplementing your HTML with some JavaScript and writing a JavaScript application.
JavaScript as a server side language is a new playing field, with different trade-offs, obstacles and design. I built an API service last year using Koajs (alternative to express), Gulp (alternative to grunt) and a bunch of other things.
Recently I've been looking into isomorphic JavaScript single page applications and have been learning a bunch of new things, such as webpack, yahoo isomorphic flux stack (fluxible, routr etc.) and application structuring.
You'll be surprised by how little you really know about JavaScript as a programming language till you start with server side and SPA development.
I'd suggest you start off with building a traditional web application in Node.js (with gulp) before attempting SPA development. Also take a look at React and Babel.
I've setup this fundraiser on behalf of my friend (and donated myself). I know this is not exactly the right place to post this to, if you have recommendations on where to post it will be greatly appreciated
Over the past few years of being a HNer I know that the community can be compassionate, and for this I admire HNer's.
If you can help in anyway it would be greatly appreciated. He's located at Clovis, CA, and in need of shelter, food, some medical supplies and a job. He was employed as a (Network?) Technician at Schneider Electrical and previously Comcast.
Sorry to say, but the design is change intolerant and will most likely fail to meet expectations. Changing the questions or answers will cause all current responses to be invalidated or lost when a question or answer is deleted. The sizes (e.g. varchar(200) for a question) aren't necessarily accurate - what about really long questions or answers?
Typically I'd expect to see:
- Survey (details + configuration)
- Questions (details + configuration; incl. the order)
- Answers (details + configuration)
Survey 1 - * Questions 1 - * Answers
A separate audit table is preferred if you plan to track who changed what and when (ref: "updated" on tables). I'd rather include a "started_at" and "completed_at" on the "survey_response", other metadata like user agent, IP, client time zone etc. would be pretty useful. There's other configuration that's also missing, e.g. from when to when is the survey available? what's the limit of responses? can someone complete the survey twice (or more)?
Overall I'd rate the current design 3/10. It might be good enough for a beginner tutorial, but for production purposes it's not. I'd suggest you go back to the planning phase and review how your design meets your (clients) goals and how realistic it is in terms of usage/ability to change/future needs that can be accommodated now (typically things such as how long it took to complete a survey, or other details - you can't get that data later on if it was never recorded when it was made available).
Kellros, I think you just didn't read carefully that this is the first part of the series which final aim is to give us a complete and correct database model. So, maybe wait with your comments and marks till the last episode and a final model, OK?
In the spirit of OSS I forked httprouter instead of just keeping the changes locally. I hope that the implementation can prove as a reference in improving httprouter or other Golang muxers.
I like httprouter, but dislike how the dependency on httprouter.Params pollutes your packages that need to expose httprouter.Handle.
I also dislike the non-standard handler, even with map[string]string parameters. From what I read the proper way to "scope" things in Go is to pass "it" as a parameter to a method; so the dislike is just personal preference. Currently the only way to retain the standard (http.Handler) interface compatibility is to use a synchronized reference map e.g. map[*http.Request]map[string]string, similar to Gorilla Contexts' implementation with only the parameters associated with the request.
Anyway, after all those changes it was a short jump to implement basic middleware helpers and expose an initializer with a standard implementation to associate the parameters with the request.
I hope that answered your questions and thanks for showing interest :) P.S. Check the updated example usage
Learning after school is self-study. Don't expect anyone (even a mentor) to teach you what you need to know.
Every job comes with different challenges and requires learning new things. You'll spend the first few years getting comfortable with the technical side of things. When the business side becomes a more important/bigger challenge than the programming side; that's when you know you're a developer.
My advice is this: identify role models in the fields/technologies you are interested in and follow them. Try to find someone who is more passionate about what you do than you (i.e. someone doing the same things as you but is better than you) and learn all you can.
One of the books I can highly recommend is Evan's Domain Driven Design, it makes it easier to reason abstractly about business.
From what I can tell, the IIS team is embracing OWIN. Be sure to check out Project Helios (http://www.infoq.com/news/2014/02/helios). *Helios can be compared to OpenResty in the sense that the application runs directly on-top of the (core) web server, instead of a plugin/pipeline.
In my humble opinion, self-hosting is useful as long as it's feasible to reinvent the web server wheel. In terms of IIS that can include url rewriting, caching, compression, performance tracing, critical error logging, request logging, endpoint configuration including SSL (and SNI), zero downtime deployments, graceful shutdowns and much more.
The programming tendencies nowadays is to build highly specialized software (high cohesion), with only the needed dependencies (low coupling) and a small surface area to promote faster iterations (micro services).
Based on the above observation, the approach of Microsoft to release and endorse a cross-platform <core> .NET is commendable and is exactly what we need right now.
There's much to say about the downsides of the bring-your-own-x composition approach, but I truly believe the issues we face today will be addressed over time as the discipline and dedication of the programming community as a whole increase due to the increase in responsibility.
I second this and would strongly advise this approach.
The courses available on Khan Academy help you visualize the math and gain a better understanding on the 'why' (reasoning) while also teaching you the 'how' (application).
There's sufficient math courses available to teach you everything from pre/primary school arithmetic to first year university/college level calculus/linear algebra.
I've also been involved in teaching similar material as Dr. Drang and agree completely with his critique.
I've come across students who've had similar sloppy teaching and had to re-teach material so they could unlearn what they'd learnt and get a proper foundation for moving forward. Consistently, they would have very poor assignments for the first few weeks until they had that foundation.
- Watch this video: http://creativemornings.com/talks/mike-monteiro--2/1
- Have a contract that stipulates what will be delivered and when, when payment is due etc. See this: http://www.docracy.com/topic/1e6bi5l90z/open-source-legal-do...
- Ask a hefty penalty amount for signing non-disclosure agreements (NDA's) - this is crucial for short term contract work
- Charge more. Figure out your hourly rate and average hours per day and extrapolate that out to a weekly rate. I reckon a fair amount is $50 an hour, while still staying very competitive with other software shops. See: http://internationalfreelancersacademy.com/why-you-should-ch...
- Be honest in what you can and can't do. Advise your client to contract out such work, whether it's designing the look and feel, designing logos or write content. Figure out or develop an advantage over other service offerings. Specialization is of key importance in consulting/freelancing work.
- Beware of overly stingy or difficult clients - it's sometimes necessary to fire them!