At my company, we_almost_ fit that bill. We're not small, but we're not a large team either. The company was started as a PHP development shop 15 years ago but has switched tech and brand and name and grown so much in just 10 months. We have an HR lady who is teaching herself to code, a social networking boff who started several of his own websites and owns a custom PC build shop, our marketing lady writes a lot of technical journals, the CEO/founder, co-founder, creative director and technical director all code (and have very intense backgrounds I might add), and some of our dev team are independent contractors, one of which owns a music production company on the side and is in 2 locally famous bands! :D
HN user
declandewet
Software developer @io-agency
http://declandewet.com @declanjdewet on Twitter @declandewet on Github
It's certainly something you could do, but don't be discouraged when you realise that your potential clients aren't too fond of being told their current online presence sucks. Perhaps also approach local businesses that don't even have an online presence at all and sell them on getting one to supplement for that risk.
Yes, that would be cool. I am curious as to how such a search would be performed by the user. Perhaps entering a duration in minutes and seconds and using arrow keys to shift the buffer bar location left/right until the correct scene is found, or searching for known dialog text and mapping transcript to location in the video that that specific part of the transcript was said in dialog might be a useful addition to the already-available "thumbnail search" most video players provide today (when you hover over the loading bar, a thumbnail image of that scene appears in a tooltip).
Something useful I've seen in very few places are video players that maintain a history of the duration of the video that was watched, so if the internet ever cuts out or the video stops loading the page could just be reloaded and the duration in the video will be maintained, albeit 1 minute prior just as a quick recap of what happened. When this feature is not available, and the connection is shoddy, watching videos can be very frustrating because having to find where you were previously can sometimes take ages, especially if the loading bar has no indication of what duration in minutes the video is at the location you hover your mouse on the loading bar.
What else other than this could add any real value to the act of searching a video? Perhaps mapping words to visual cues, for example searching "helicopter explosion" would take you directly to an overdramatic scene of a helicopter being blown up in magnificent ember by a missile that is clearly too small to do much damage to a bicycle let alone a helicopter, that would be cool.
Hobbyist mechanical engineering with a career in law enforcement.
I know that you only have one controller, but I don't think it's wise to reference each and every controller in one single angular.module(...).controller() declaration... Perhaps read this: https://github.com/gocardless/angularjs-style-guide
Also, it might be worth looking at ng-annotate so you don't have to specify the array of dependencies. It's not necessary but it does help speed up development a little bit, not having to type that out all the time - it can get quite unruly sometimes. :P
Further than that, you need to implement unit testing, as well as end-to-end testing with Angular Protractor. I've been on a large scale Angular project without any testing in place, and boy did I give the lead my two cents about how much trouble that caused us. The project was delivered 2 weeks late because of buggy, untested code. Prevent this as soon as you can.
The factorial example is used in many programming tutorials, not to teach you that you need to understand complicated mathematical theory to become a programmer (you don't, so don't worry), but instead to teach you one of the more advanced paradigms of beginner programming: recursion (having a function call itself again and again until it's to-be-returned value is adequate enough to finally be returned).
Learning more about the language is always going to help, though. I would suggest doing the CodeCademy track a second time to see if you've improved. Focus on writing efficient solutions that are better than what you would have done your first time around. Once that is done, give these resources a go:
- http://codeschool.com - http://lynda.com - http://teamtreehouse.com
I would also suggest purchasing these books, as they are somewhat the standard learning and reference resources:
- JavaScript: The Good Parts - JavaScript: The Definitive Guide
There are other books that will help tremendously, and a list of free ones can be found at http://jsbooks.revolunet.com
Other books I recommend:
- Eloquent JavaScript - Effective JavaScript - High Performance JavaScript - Maintainable JavaScript - Principles of Object-Oriented Programming in JavaScript - JavaScript Patterns - The Past, Present and Future of JavaScript - JavaScript Enlightenment - Secrets of the JavaScript Ninja
The reasons we don't are pretty good ones. The first, and most important reason, is that native implementations of methods like `.forEach` are extremely slower than their native-for-loop equivalents. For casual side projects, this does not really matter, and some might argue that in newer browsers the efficiency loss is minimal. But when you're developing a particularly JavaScript heavy client-side application, predominantly use .forEach, and your users will notice. The second reason is browser compatibility. `.forEach` is not supported in Internet Explorer 7 or 8. That is an extremely large chunk of potential users.
All that being said, there are definitely ways to gain the same functionality using a utility library like Underscore (or the much-faster-than-underscore Lodash). Instead of `array.forEach` it's simply `_.forEach(array, function(item) { });` - http://lodash.com/docs#forEach
Agreed. Plus, underscore's implementations are not as fast as their native equivalents. At least use lodash if you're going to be using an entire library, as it is faster. Otherwise, you could just use the .reduce, .forEach, and .map constructs that are built into JavaScript (of course browser support is an issue there - but they are available for use in most modern browsers and definitely in node)
That all depends on what you want to do, which direction you wish to go in. Do you want to start your own company? Do you want to settle for a stable job? Do you want to study? Asking other people what you should do will be of no benefit to you if you do not provide the context of where you wish to be headed. I could have very easily decided to troll this thread and written a reply that told you to spend the last of your money on fine Scotch, but instead I wrote this.
If you want to start a business, then start one. If it's a software business, learn to code however you want or do not learn to code at all. You already know marketing, you already have experience in a startup environment, the only key things to follow now would be to find a product idea and iterate, iterate, iterate.
Note that I said "find" a product idea and not "think of a product idea". Thinking of one is a waste of time, because that requires that you spend valuable time finding a target market and then more time finding product/market fit through market evaluation & validation. Rather find an industry of easily contactable people, and ask them what pains them about their job. By doing so, you will have identified a problem as well as the market validation of the solution to that problem. From there you can come up with a product, which you can use to wireframe. Discuss the idea with your chosen businesses, get their feedback and ask if they would pay for it. Verbal financial commitment = done. Some might even invest. All that's left to do is hire the people to build it and the rest is all up to your skills and experience.
If you want to instead study, rather than create your own startup - heed this warning: You get what you pay for. That being said, you can easily learn material online, as a degree in tech is not necessarily important in tech (you're already qualified, and that is at least something that puts you ahead of many others). I wouldn't recommend sound design and music production - all of my DJ friends (amateur or professional) don't even have a day of high-school level musical education to their names. Some have a knack for it, others don't.
If you just want to pay the bills, then get a job. I've found that asking previous employers for a simple paragraph of how, in any way, I benefited the company - and use that in a resume under your the work history section, does help get you that little bit farther.
What you should NOT do under any circumstance is delay. You are not getting any younger and money don't grow on trees - get up, get out, and do something to get you back in the system.
He could apply for an H-1B visa - this is a work permit. Getting one is a challenge, as only 65,000 are awarded each year (and they disappear fast, 63,000 of the 65,000 for 2013 were gone by November 2012).
The requirements for obtaining one involve having an industry-relevant qualification from a U.S. college or the international equivalent (which is a qualification + work experience) and the company needs to offer proof of sponsorship for the applicant (which means they kind of need to prove that hiring you over a U.S. citizen with the same qualifications is the only way forward).
A good way to go about this is to find a company that is active on Github with open source who have created any kind of framework that they use internally. Get your friend to learn the framework and he will then have a huge advantage over any equally-qualified person who does not have knowledge in the framework.
I am in no way a proponent of racist culture, no matter who propagated this ad, it is still wrong and it is still gaining traction among the uneducated. Fake or not, it is becoming a factor in the decision process.
This country needs to change. Here we are, almost twenty years down the line from stopping our racist ways, and yet we've arrived at this.
The current government needs to get it's head out of it's ass and stop spending what little tax money we have on their big fat mansions.
I was born in 1993, so I am by no means an expert on Apartheid, nor do I have any experience with it - but after twenty years, surely you'd think things would have changed?
I visited Cape Town before and after the DA. After the DA got hold of it, it feels like an entirely separate country. No potholes from Kimberly to Cape Town. There are street cleaning machines. Free wifi in so many places. Accommodation is cheap now (a 10 bedroom 7 bathroom apartment prefurbished with water + electricty for R3500 a month. in Camps Bay was on sale). In my entire stay there I encountered 0 homeless people. And young people, especially white people, are opening businesses there, and creating jobs - despite Black Economic Empowerment.
And then we have the ANC...
Fake or not, it is gaining traction and I've seen over a thousand comments agreeing with it, all from the lower class uneducated ethnic population. The ANC is currently under threat because the DA has taken the whole Western Cape and are very close to taking the Gauteng province as well. If this happens, the ANC will have lost it's two biggest economic powerhouses - so convenient that this pops up right before voting time.
Hah, I wish. I'm barely in the $100K group. Soon, though. Soon. evil smirk >:)
They're there, you're just not looking hard enough. I commented on the author's post - what I spoke about might be of use to you too. Also, remember that as a person with internet access, you're not limited to simply sitting at home, reading and practicing. Developers of these tools you use make use of Twitter and IRC and Github specifically so that people who are learning the ropes can contact them and ask (see: pester) them for help. They don't at all do it for experience or recognition in the industry ;) Sometimes the best way to solve a problem is to have a simple conversation with someone a little more experienced in the field. In fact the author's post is a great example of this working. He asked for help, posted it to hacker news, I saw it, I helped. :)
This article is pretty old (2009) but as a born 'n bred South African I can definitely tell you this: The pigeon is _still_ faster.
It's an interesting idea, but I'm not sure how the gender inequality expressed in the introduction will fare. Ladies cheat too.
Remember that any websites styles are easily overwritten with a browser extension, GreaseMonkey/TamperMonkey user script or Stylish stylesheet, and the chances of someone already having written one are fairly good. If not, create your own. :)
In the meantime why not create a Chrome extension or Userscript to do this for you?
Less than 50, unfortunately charging anything more in this country (South Africa) as a freelancer is tough unless it's a PHP/CMS system project. But that's sublocation dependent. I'd probably be able to charge more in Cape Town than I could here in Johannesburg, as CT is more tech-oriented.
I am heavily of the opinion that they are a blight on society. My father started a market research company years ago, and business was booming. Then there was a divorce and a crazy new ex girlfriend and an unmaintainable house and he had to have his company absorbed by an international conglomerate, who has since absorbed all of his salary and the crooks have stored it all offshore. They do no work. They work him to the bone. They misguide him. I'm sure there's evidence of tax evasion too. He cannot leave because of a non-compete agreement. Market Research is all he knows other than Military Strategy. If he left, he'd be 60, unemployed, and have less than $50,000 to his name.
Node.js is not a framework for developing web applications. Express.js is a framework for developing web applications on the Node.js platform. As per the question, I tend to go towards Node with Express. It doesn't do all the abstractions in terms of controllers and associations in models, though - so development is not as quick for trivial apps.
One reason I choose Node over Ruby/Rails is the Websocket libraries available in Node. Here's an example of why: I've been exploring a lot of JavaScript lately. Backbone.js is nice, but it doesn't have nice data-binding. Angular.js is really nice, but it's "templates" (directives) cannot be parsed by a server, so you couldn't serve the same content from the server. Ember is nice, but it's a little slow compared to the other frameworks (from my experience with it, I know it will improve).
I prefer Backbone + Handlebars because I can serve the same templates as views from the server if I adhere to a rule that essentially means each page of the app is a separate Backbone template associated with it's own view. These can still have subviews, but the client will handle that. The only thing I don't like is the data binding.
So, lately in my apps, I've found myself writing simple data binding "plugins". But instead of detecting regular events - I bring socket.io into the mix. This makes for really fast data binding, plus everyone can see the changes.
Having everything in JavaScript prevents me from straying between different programming languages and distracts me less, and for the socket work it just makes so much more sense to me.
I wish I had the time to write cleaner code at work - the company ethos is to strive for progress and not perfection, as that could come later... Buncha nitwits. At least there's the open source community, who tend to follow style guides in their respective programming languages. I tend to follow those guides if I contribute to that project, and reading up on the different style guides for the same language has given me a decent perspective on what is generally expected. Following those is a good way to write clear, concise code. I also tend to try to explain the code I'm writing in the actual code without needing comments (I still do comment code though), so any function/variable/property names are verbose in that respect. My usual goal for this is to make the code clear enough to be understandable if it had no comments at all, but add comments in anyway to elaborate on what is happening.
It's worth noting that Sun Micro-systems is pretty far up the corporate ladder and likely had the resources to prove the candidate was irreplaceable during that time. This might not be the same for OP.
I'm not a criminal attorney (which is who this question should be directed to) but my opinion is that the sentence is too short to validate such a program.
If I were involved in upper management of a VC I would want to know as immediately as the information was found out, but I would also want to know that the founders were competent enough to discuss the matter in full with each other before making a decision.
I don't think any of those except "years of experience" are valid points against the use of Node.js, and even that isn't really on the mark with reality. This is because Age !== Experience. Perl has been around longer than Python, but it sounds like you wouldn't want to use it. Granted, Node.js is still considered fairly new, but remember - it was released in 2009. We're a few months away from 2014, and this has been more than enough time for Node.js to mature just enough to be suitable in a production web app.
I'm not advocating the use of one over the other for you (personally I'd go with Node because my expertise in it outweighs my expertise in Python), I'm simply stating my opinion that these are not valid reasons to disregard the technology. The Node.js community is bustling, the amount of modules available on NPM are in the tens of thousands, and many open source projects use it (Yeoman, Grunt, Stylus, Jade, Roole, LESS, Bower, CoffeeScript to name a few).
Development speed is likely the most probable of your points, but even so - you can write a Node.js app in CoffeeScript, which you might be more inclined to do since your love of Python is so prominent, and CoffeeScript borrows many ideas from Python, such as significant whitespace and chained comparisons. A manual compile step isn't necessary as this feature can be done by most IDE's implicitly. Express.js also helps big time.
The only reason I would use Python over Node (if I was in your position and actually knew enough Python) would be if the web app in question required intensive mathematical or scientific calculations - Python would shine over Node in that respect.
It would be much more straight-forward than it would be in Rails. Passport is very easy to use compared to libraries like Devise, and it gives you the option to write your own middleware to use along with it. Middleware in Express is literally just a function you call in between the route parameter and the callback, like so:
app.get('/dashboard', ensureAuthenticated(), function(req, res) { });
Your ensureAuthenticated function would look like this:
function ensureAuthenticated(req, res, next) { if (req.isAuthenticated()) { next(); } else { res.send('You are not authorized to access this page.'); } }
Passport provides a few of these utility middlewares out of the box. It seems intimidating at first and I could spend a long time explaining it, but it would be much better just to dive in and give it a try. You can even head over to their IRC, which is #passportjs if I remember correctly, and ask which strategy would be best for your application and get started from there.
I've found that Passport is much easier to work with, as it is just Express middleware, plus there are way more strategies should you ever want to support any other form of authentication. There's a plethora of points made on Passport over EveryAuth (that might be biased - but worth a look) by the author of Passport over here: http://stackoverflow.com/questions/11974947/everyauth-vs-pas...
He also mentions that if you just want API authentication then Passport has two sibling projects for that purpose - OAuthorize and OAuth2orize.
You would most likely be using bearer tokens issued by OAuth2 to implement this, and Passport supports this pretty well, with the bonus that it's actively maintained: https://github.com/jaredhanson/passport-http-bearer
I personally prefer Ubuntu, my brother uses Linux Mint. I haven't found much difference between the two in terms of workflow, but Linux Mint does keep the Linux ethos more closer to it's heart than Ubuntu does, as Ubuntu has taken the direction of trying to create an easy-to-use-for-the-non-technical OS that can serve as a replacement for the likes of Windows/Mac (while not quite exactly there just yet).
One can easily find motivation in commitment. If you commit to learning something, (as an example; by investing money in it) then you would be more likely to be motivated as you would not want your money to go to waste.
Think of your time as money, as personal self-development. Also, lower your goals when you start out. If you fail to achieve a certain goal at a certain time that you expected to, you'll be frustrated, and it is this kind of frustration that is a demotivator. By avoiding frustrations, you're optimizing your ability to remain motivated.
As an idea of lowering your goals, try this: Instead of trying to achieve, simply try to be productive. You can still have Netflix on in the background while you work. Once you've reached a consistent productivity level, then try to learn more, but don't just read - work while you learn. Then begin trying to achieve.