I'm in Sweden, and we(my family and I) use our connection heavily(multiple 1920x1080 streams etc, gaming(with all the assorted downloads etc. In fact, games and stuff install faster over the net than from DVD nowadays), and for my work. Throughout september, we transferred about 3.5TiB inbound, and 1.5TiB outbound, and it was not a very active month.
Yeah, but when you add it all together, cards, switches, cabling, admin work to get it all to work as it should etc, it adds up, fast, especially when you realise that smaller studios don't have the same ability to soak up the downtime from an infrastructure upgrade that a larger studio can, it's bad enough when they have to upgrade machines and software alone.
Actually, fast broadband is more widespread in Sweden than you make it out to be. It depends a lot on municipalities or housing owners however. I know in Boden there are houses that have 100Mbit/s available real cheap, while the house next to them only has access to ADSL, because the individual or company owning it has not wired their house for FTTP/FTTH or similar.
"Only high performing computing and Virtualization servers use more than Gigabit links today, but TenGigabit bundles and higher bandwidth links are used on almost every large network on core connections and core to distribution."
I know quite a few non-science professional fields that saturate gigabit to each desktop, and would go for Infiniband, or 10Gig-E if it was viable outside of big corps. Editing/compositing of HD or greater resolution movies shuffle HUUUUGE amounts of data around, and you need a decent turnaround time for the data....
3 days to get X? Nah. Even on a P3 550MHz with 192MiB RAM you would have that within a day.... Now, if you wanted KDE+OpenOffice, THEN your machine would spend days....
Of course, during a Unix admin course I took, we were two people running Gentoo, and a debhead kept teasing us for our recompiling..
Then he tried to upgrade his Debian system to the brand spanking new 2.6 kernel that had just been released, and found that his system didn't quite work, so he had to compile a lot of crap, without portage/emerge to help him with it.... Ooooh the merciless revenge teasing from us Gentoo users was sooo sweet.... followed up by his "shut up" "shut the fuck up" "It's not funny you dicks" "piss off!"
In the area I live in, there are multiple options:
Multiple *DSL options Cable up to 500Mbit/s down/200 up FTTP/ethernet up to Gbit/s down and 250-500Mbit/s up
I'm currently on 100Mbit/s symmetrical, and pay SEK379/month(roughly $57/month), but I'm considering the Gbit/s option, which is SEK899/month(roughly $137/month)
As an end-user, me and my family uses our 100Mbit/s connection to watch HD streams, play games(including downloading them.... it's at the point where installing straight from the net is faster than from DVD's), I also use it in my work, downloading huge datasets from clients etc, as well as uploading.
I am actually considering upgrading to the 1Gbit/s option.
For the super-power users there's other alternatives. A freelancer colleague of mine(who is admittedly a bit nuts), has skipped SSD's in his workstation.... He just runs a huge honking RAM disk for some tasks... Then again, he has 384GiB of RAM in that monster. He's actually run into some problems where some programs crash at those transfer rates etc, mostly the virtualization solutions(pretty much every one he tried glitched in some ways)
His comment about it all was that he'd managed to make his machine CPU-limited again.....
Esoteric? Nearly impossible to program for? Methinks you haven't read through the actual docs for it. You can use all the standard Intel tools to program for it, which are also MIC-aware, just like you program for a standard multi-core CPU. That includes the threading and math kernel libraries, as well as OpenCL if you want to go that route.
"Regarding integrity, if the customer is really annoying, take a step back and think about whether you could somehow be the cause (e.g. you're not asking the right questions, or not listening enough), or whether they're truly annoying to work with. In the latter case, fulfil what you've promised and then get out as quickly as possible."
Indeed, though some of those parts fall under planning and preparation too, i.e the asking of the right questions etc.
For my part, I always make sure to have some valid escape clauses in the contract, to give myself a clean exit in various situations, most of them relating to customer behaviour etc, for example if a customer provides the wrong hardware deliberately, or show signs of not adhering to the contract etc.
Less demand for it when corps are shopping around for people to hire, and some of the people I know or have been a sort of mentor for tell me that no longer are wages and perks anywhere near as flexible as they used to be.
I'm from Sweden, and I've worked as a freelancer most of my work life. And yes, you can get into freelancing from the start, some people do it while they are still in school. There are many small projects that only takes a few weeks etc.
Many places are happy to toss easy contracts out that way, because they also get to test a potential employees abilities in a real-world scenario that way.
No, you can't jump straight to the big contracts, you start out small. In my case, I started out by doing visualizations of stuff for various clients, including academic departments, since I had a background in 3D graphics, shader and lighting programming in addition to my other programming, so I could rewrite renders to the point that they took 1/3rd of the time, but still had the same look.
Working as a freelancer requires the right qualities... In many ways, they are the same qualities required of special forces operatives: Self-discipline, integrity, communication, planning... And to always remember, Who Dares Wins. A freelancer who is afraid of failure and is thus tentative and overly careful will rarely succeed.
Comp sci is an abbreviation for Computer Sciences, and in conjunction with PHD or grad or similar is used to denote someone who studied that particular discipline in academia.
The attempts to bully lone freelancers is more common than most non-freelancers want to believe. And the worst offenders aren't the big corps, it's often the medium sized corps who want to grow big, and have thus hired the real slimeballs that are too dodgy even for the big corps.
About the milestones, yes, I often do that, either in terms of project achievement, or simply a monthly payment if that is how the contract is defined. That depends a bit on your reputation. If you have a good rep, some clients will actually be more willing to just do monthly payouts, instead of based on achieved goals, because they know that snags can happen, and if you've hit a snag, that's understandable.
Something I forgot to add to my summary: Never ever ever EVER lie to or mislead your client. If you've hit a snag, TELL THEM.... What, why, how, where, when. Unless you've accepted a contract from a slimeball, they will understand. And if you've done your preparations properly, you'll have scheduled time for dealing with problems.
Another thing I should have added:
Acceptable behaviour:
Do not whip out your phone in the middle of a meeting unless it is directly tied to the meeting. If a meeting drags on, politely asking if you can take time to call your family to say you'll be late is ok. Calling your buddies to say you'll be late for that drink is most often a big no-no(And I've found that when it's not, it tends to be a rather annoying place to work at...)
Mindset:
As a freelance software developer, you are responsible for maintaining your code etc. Since you live on your reputation, you can't adopt the mentality of either big corps or open source that you are not responsible for the code, that it is delivered as is. If you write shoddy code, your reputation will suffer, and you don't have a PR department to deflect from that hit to your reputation. Also, the more buggy your code is, the more disturbed and disrupted weekends/holidays/vacations you will have.
Also, if you go into embedded development, unless you do R&D, forget everything about Agile, Release Early&Often and similar. Your code can go into hundreds of thousands of units that don't have a network connection, and thus need to be recalled if they are to be patched. Your project has to be solidly designed and then implemented and tested, before the first release.
At least here in the nordic countries, the ratio of doctoral studies graduates relative to the job market as well as the population as a whole is fairly high, so yes, it can be called fairly common in terms of the specific job market that is software development.
Having worked as a freelancer for most of my worklife, I can chime in with a bit of stuff.
First of all, personal traits:
Self-discipline, self-discipline, self-discipline. You need this to complete your contracts on time, in accordance with the contract. It means being able to sit down and do everything required to fullfill the contract. It also means being able to work with people you dislike on a personal level. It means maintaining a clean, whole persona. No, it doesn't mean three-piece suit, but it means not showing up in tattered jeans, faded t-shirt etc. It means having the discipline to tell your friends that you can't spend time with them if they have a day off, because you need to stick to your schedule. Discipline enough to hold on to your money, because you never know when you'll have a 2-3 month dryspell.
Also, maintaining separate accounts for personal use and professional use, as well as separate hardware etc
Integrity:
Accepting a contract is your word. You have to stick to your end of the contract, otherwise your reputation will suffer. And reputation is EVERYTHING. Do not accept contract that you can't complete, even if the lure of the money is strong. If you believe it's highly unethical to complete a certain contract, feel free to not take it(This is one of the major perks of being a freelancer, not being a wage-slave). Never ever blindly accept your potential clients estimates of time required etc, always do your own estimates BEFORE accepting the contract. If the client is trying to keep you from doing that, they are out to try and get you to work for free, or at least really cheap. Do not EVER complete tasks/favours asked of you by the client that fall outside your contract. Stay out of the office politics. Maintain customer confidentiality within the boundaries of the law and your ethics. I won't sell out my clients data to any competitor of theirs, but if I become aware that the data I'm working on is evidence for a crime, I'll contact the police. I will NOT make myself an accomplice.
Other things:
Try and go into a niche field. The more general areas are oversaturated. You can't throw a stick without hitting a "html/SOAP/PHP/PERL/JAVA/Social Media "expert"". Comp sci PHD's are becoming fairly common that it's close to employers market. There's a shortage of competent software engineers on the other hand, especially for embedded stuff(counts 40 offers listed on agent's summary, while only one of us who works with the agent is currently available for a contract.....)
ALWAYS retain the services of a lawyer when evaluating and negotiating a contract. It will save you a lot of headaches as clients try to catch you in horrible penalty scenarios in the fine print, or even clauses that are completely illegal. Go for solid but not flashy reputation, preferably one who also wants a long term client relationship. If a client says you don't need to bring a lawyer because they have retained the services of one for you, politely tell them you're not interested, because they ARE out to screw you over.
Likewise, an accountant is a good service to retain, to keep track of your economy and keep you grounded in reality. As with the lawyer, go for a solid but not flashy reputation, and who is interested in a long term client relationship.
An agent is also a good thing to have if you become proficient and sought-after. In my case, my lawyer is also my agent. He receives the contract offers, reads them through according to the guidelines I've set for what offers I'm interested in, and if it's something he thinks fits the criteria, I get them forwarded to me. He also maintains a list of more general offers that any of us who retains his services can inquire about
In terms of payment, I use escrow and direct transfers primarily, sometimes invoices. I NEVER accept cheques, which makes quite a few potential US clients rather unhappy.... The reason for escrow is to make sure the client has the ability to pay, and from the third-party escrow account it's
The biggest cost will ALL server facilities is power, floorspace and cooling. No matter how many idiots will keep bleeting "manpower is expensive", the fact remains that manpower is generally a fixed cost no matter what hardware you get, while power, cooling and floorspace will be variable depending on what hardware you get. And right now, it doesn't matter if AMD gives you more cores because Intel does more through a more efficient architecture that can be more easily fed to maintain maximum throughput, at less overall power use, and requires less cooling.
At least here in Sweden, an Architect has to know at least some fundamentals of materials/structural engineering etc to be certified as an architect, it's not just about artistry.
Akamai posts another widely skewed report, based on their own crap infrastructure, where they are subpar for some regions.
In the Nordic countries, Akamai is a brake on everything, no matter what time of day you have to download anything via their infrastructure. I currently have a 100Mbit/s symmetric connection, and I get HIGHER download rates via Akamai if I use a US proxy than if I try a straight download. Same thing with any update services or games etc that use Akamai, Nordic countries get the shaft there too. I have a feeling that they are also underdeveloped in the asian regions, which would skew the results too.
Some ballpark figures:
Downloading an ISO via Akamai: Peak out at 16Mbit/s and averaging 11.3Mbit/s going straight, peak out at 29.5Mbit/s and averaging 15.4Mbit/s proxying to the US.
Downloading an ISO via Limelight networks at Swedish prime time: Peak out at 97Mbit/s, average at 94Mbit/s.
Downloading an ISO from SUNET's FTP at swedish prime time: Peak out at 98Mbit/s, average at 96Mbit/s.
Some of my norwegian friends and colleagues are reporting similar experiences in how crap Akamai is for them, both privately and professionally.
The Koreans don't WANT a vastly expanded audience... In statements both by KESPA and GOM officials, they want to grow the INTERNAL Korean scene. In fact, that's one of the aspects behind KESPA's creation for Starcraft I.... A nice, homogenous little Korean scene, with the majority of foreign influence in the form of teams kept out. For foreigners to take part, they had to undergo a lot of bueraucracy just to be allowed to take part in the qualifiers.
In regards to Dreamhack Winter, that's only a partial crowd, the one in the main stage hall, there are other halls rooms where it's shown too, on huge screens.
I'm in Sweden, and we(my family and I) use our connection heavily(multiple 1920x1080 streams etc, gaming(with all the assorted downloads etc. In fact, games and stuff install faster over the net than from DVD nowadays), and for my work. Throughout september, we transferred about 3.5TiB inbound, and 1.5TiB outbound, and it was not a very active month.
Yeah, but when you add it all together, cards, switches, cabling, admin work to get it all to work as it should etc, it adds up, fast, especially when you realise that smaller studios don't have the same ability to soak up the downtime from an infrastructure upgrade that a larger studio can, it's bad enough when they have to upgrade machines and software alone.
Actually, fast broadband is more widespread in Sweden than you make it out to be. It depends a lot on municipalities or housing owners however. I know in Boden there are houses that have 100Mbit/s available real cheap, while the house next to them only has access to ADSL, because the individual or company owning it has not wired their house for FTTP/FTTH or similar.
Wrong. 1Gbit/s consumer connection available in my Stockholm suburb, SEK899/month(around $137/month IIRC)
It's not just the cards, it's switches and cabling too, and the work to put it all in, and all the admin work to ensure that it will work too.
"Only high performing computing and Virtualization servers use more than Gigabit links today, but TenGigabit bundles and higher bandwidth links are used on almost every large network on core connections and core to distribution."
I know quite a few non-science professional fields that saturate gigabit to each desktop, and would go for Infiniband, or 10Gig-E if it was viable outside of big corps. Editing/compositing of HD or greater resolution movies shuffle HUUUUGE amounts of data around, and you need a decent turnaround time for the data....
3 days to get X? Nah. Even on a P3 550MHz with 192MiB RAM you would have that within a day.... Now, if you wanted KDE+OpenOffice, THEN your machine would spend days....
Of course, during a Unix admin course I took, we were two people running Gentoo, and a debhead kept teasing us for our recompiling..
Then he tried to upgrade his Debian system to the brand spanking new 2.6 kernel that had just been released, and found that his system didn't quite work, so he had to compile a lot of crap, without portage/emerge to help him with it.... Ooooh the merciless revenge teasing from us Gentoo users was sooo sweet.... followed up by his "shut up" "shut the fuck up" "It's not funny you dicks" "piss off!"
In the area I live in, there are multiple options:
Multiple *DSL options
Cable up to 500Mbit/s down/200 up
FTTP/ethernet up to Gbit/s down and 250-500Mbit/s up
I'm currently on 100Mbit/s symmetrical, and pay SEK379/month(roughly $57/month), but I'm considering the Gbit/s option, which is SEK899/month(roughly $137/month)
As an end-user, me and my family uses our 100Mbit/s connection to watch HD streams, play games(including downloading them.... it's at the point where installing straight from the net is faster than from DVD's), I also use it in my work, downloading huge datasets from clients etc, as well as uploading.
I am actually considering upgrading to the 1Gbit/s option.
For the super-power users there's other alternatives. A freelancer colleague of mine(who is admittedly a bit nuts), has skipped SSD's in his workstation.... He just runs a huge honking RAM disk for some tasks... Then again, he has 384GiB of RAM in that monster. He's actually run into some problems where some programs crash at those transfer rates etc, mostly the virtualization solutions(pretty much every one he tried glitched in some ways)
His comment about it all was that he'd managed to make his machine CPU-limited again.....
Esoteric? Nearly impossible to program for? Methinks you haven't read through the actual docs for it. You can use all the standard Intel tools to program for it, which are also MIC-aware, just like you program for a standard multi-core CPU. That includes the threading and math kernel libraries, as well as OpenCL if you want to go that route.
"Regarding integrity, if the customer is really annoying, take a step back and think about whether you could somehow be the cause (e.g. you're not asking the right questions, or not listening enough), or whether they're truly annoying to work with. In the latter case, fulfil what you've promised and then get out as quickly as possible."
Indeed, though some of those parts fall under planning and preparation too, i.e the asking of the right questions etc.
For my part, I always make sure to have some valid escape clauses in the contract, to give myself a clean exit in various situations, most of them relating to customer behaviour etc, for example if a customer provides the wrong hardware deliberately, or show signs of not adhering to the contract etc.
Less demand for it when corps are shopping around for people to hire, and some of the people I know or have been a sort of mentor for tell me that no longer are wages and perks anywhere near as flexible as they used to be.
A large portion of the scientists responsible for putting the robot on Mars? From outside the USA
I'm from Sweden, and I've worked as a freelancer most of my work life. And yes, you can get into freelancing from the start, some people do it while they are still in school. There are many small projects that only takes a few weeks etc.
Many places are happy to toss easy contracts out that way, because they also get to test a potential employees abilities in a real-world scenario that way.
No, you can't jump straight to the big contracts, you start out small. In my case, I started out by doing visualizations of stuff for various clients, including academic departments, since I had a background in 3D graphics, shader and lighting programming in addition to my other programming, so I could rewrite renders to the point that they took 1/3rd of the time, but still had the same look.
Working as a freelancer requires the right qualities... In many ways, they are the same qualities required of special forces operatives: Self-discipline, integrity, communication, planning... And to always remember, Who Dares Wins. A freelancer who is afraid of failure and is thus tentative and overly careful will rarely succeed.
Comp sci is an abbreviation for Computer Sciences, and in conjunction with PHD or grad or similar is used to denote someone who studied that particular discipline in academia.
The attempts to bully lone freelancers is more common than most non-freelancers want to believe. And the worst offenders aren't the big corps, it's often the medium sized corps who want to grow big, and have thus hired the real slimeballs that are too dodgy even for the big corps.
About the milestones, yes, I often do that, either in terms of project achievement, or simply a monthly payment if that is how the contract is defined. That depends a bit on your reputation. If you have a good rep, some clients will actually be more willing to just do monthly payouts, instead of based on achieved goals, because they know that snags can happen, and if you've hit a snag, that's understandable.
Something I forgot to add to my summary: Never ever ever EVER lie to or mislead your client. If you've hit a snag, TELL THEM.... What, why, how, where, when. Unless you've accepted a contract from a slimeball, they will understand. And if you've done your preparations properly, you'll have scheduled time for dealing with problems.
Another thing I should have added:
Acceptable behaviour:
Do not whip out your phone in the middle of a meeting unless it is directly tied to the meeting. If a meeting drags on, politely asking if you can take time to call your family to say you'll be late is ok. Calling your buddies to say you'll be late for that drink is most often a big no-no(And I've found that when it's not, it tends to be a rather annoying place to work at...)
Mindset:
As a freelance software developer, you are responsible for maintaining your code etc. Since you live on your reputation, you can't adopt the mentality of either big corps or open source that you are not responsible for the code, that it is delivered as is. If you write shoddy code, your reputation will suffer, and you don't have a PR department to deflect from that hit to your reputation. Also, the more buggy your code is, the more disturbed and disrupted weekends/holidays/vacations you will have.
Also, if you go into embedded development, unless you do R&D, forget everything about Agile, Release Early&Often and similar. Your code can go into hundreds of thousands of units that don't have a network connection, and thus need to be recalled if they are to be patched. Your project has to be solidly designed and then implemented and tested, before the first release.
At least here in the nordic countries, the ratio of doctoral studies graduates relative to the job market as well as the population as a whole is fairly high, so yes, it can be called fairly common in terms of the specific job market that is software development.
Having worked as a freelancer for most of my worklife, I can chime in with a bit of stuff.
First of all, personal traits:
Self-discipline, self-discipline, self-discipline. You need this to complete your contracts on time, in accordance with the contract. It means being able to sit down and do everything required to fullfill the contract. It also means being able to work with people you dislike on a personal level. It means maintaining a clean, whole persona. No, it doesn't mean three-piece suit, but it means not showing up in tattered jeans, faded t-shirt etc. It means having the discipline to tell your friends that you can't spend time with them if they have a day off, because you need to stick to your schedule. Discipline enough to hold on to your money, because you never know when you'll have a 2-3 month dryspell.
Also, maintaining separate accounts for personal use and professional use, as well as separate hardware etc
Integrity:
Accepting a contract is your word. You have to stick to your end of the contract, otherwise your reputation will suffer. And reputation is EVERYTHING. Do not accept contract that you can't complete, even if the lure of the money is strong. If you believe it's highly unethical to complete a certain contract, feel free to not take it(This is one of the major perks of being a freelancer, not being a wage-slave). Never ever blindly accept your potential clients estimates of time required etc, always do your own estimates BEFORE accepting the contract. If the client is trying to keep you from doing that, they are out to try and get you to work for free, or at least really cheap. Do not EVER complete tasks/favours asked of you by the client that fall outside your contract. Stay out of the office politics. Maintain customer confidentiality within the boundaries of the law and your ethics. I won't sell out my clients data to any competitor of theirs, but if I become aware that the data I'm working on is evidence for a crime, I'll contact the police. I will NOT make myself an accomplice.
Other things:
Try and go into a niche field. The more general areas are oversaturated. You can't throw a stick without hitting a "html/SOAP/PHP/PERL/JAVA/Social Media "expert"". Comp sci PHD's are becoming fairly common that it's close to employers market. There's a shortage of competent software engineers on the other hand, especially for embedded stuff(counts 40 offers listed on agent's summary, while only one of us who works with the agent is currently available for a contract.....)
ALWAYS retain the services of a lawyer when evaluating and negotiating a contract. It will save you a lot of headaches as clients try to catch you in horrible penalty scenarios in the fine print, or even clauses that are completely illegal. Go for solid but not flashy reputation, preferably one who also wants a long term client relationship. If a client says you don't need to bring a lawyer because they have retained the services of one for you, politely tell them you're not interested, because they ARE out to screw you over.
Likewise, an accountant is a good service to retain, to keep track of your economy and keep you grounded in reality. As with the lawyer, go for a solid but not flashy reputation, and who is interested in a long term client relationship.
An agent is also a good thing to have if you become proficient and sought-after. In my case, my lawyer is also my agent. He receives the contract offers, reads them through according to the guidelines I've set for what offers I'm interested in, and if it's something he thinks fits the criteria, I get them forwarded to me. He also maintains a list of more general offers that any of us who retains his services can inquire about
In terms of payment, I use escrow and direct transfers primarily, sometimes invoices. I NEVER accept cheques, which makes quite a few potential US clients rather unhappy.... The reason for escrow is to make sure the client has the ability to pay, and from the third-party escrow account it's
The biggest cost will ALL server facilities is power, floorspace and cooling. No matter how many idiots will keep bleeting "manpower is expensive", the fact remains that manpower is generally a fixed cost no matter what hardware you get, while power, cooling and floorspace will be variable depending on what hardware you get. And right now, it doesn't matter if AMD gives you more cores because Intel does more through a more efficient architecture that can be more easily fed to maintain maximum throughput, at less overall power use, and requires less cooling.
At least here in Sweden, an Architect has to know at least some fundamentals of materials/structural engineering etc to be certified as an architect, it's not just about artistry.
Akamai has a bias on where and how well they are deployed, however. In the Nordic countries, they are atrociously bad compared to the competition.
Akamai posts another widely skewed report, based on their own crap infrastructure, where they are subpar for some regions.
In the Nordic countries, Akamai is a brake on everything, no matter what time of day you have to download anything via their infrastructure. I currently have a 100Mbit/s symmetric connection, and I get HIGHER download rates via Akamai if I use a US proxy than if I try a straight download. Same thing with any update services or games etc that use Akamai, Nordic countries get the shaft there too. I have a feeling that they are also underdeveloped in the asian regions, which would skew the results too.
Some ballpark figures:
Downloading an ISO via Akamai: Peak out at 16Mbit/s and averaging 11.3Mbit/s going straight, peak out at 29.5Mbit/s and averaging 15.4Mbit/s proxying to the US.
Downloading an ISO via Limelight networks at Swedish prime time: Peak out at 97Mbit/s, average at 94Mbit/s.
Downloading an ISO from SUNET's FTP at swedish prime time: Peak out at 98Mbit/s, average at 96Mbit/s.
Some of my norwegian friends and colleagues are reporting similar experiences in how crap Akamai is for them, both privately and professionally.
The Koreans don't WANT a vastly expanded audience... In statements both by KESPA and GOM officials, they want to grow the INTERNAL Korean scene. In fact, that's one of the aspects behind KESPA's creation for Starcraft I.... A nice, homogenous little Korean scene, with the majority of foreign influence in the form of teams kept out. For foreigners to take part, they had to undergo a lot of bueraucracy just to be allowed to take part in the qualifiers.
In regards to Dreamhack Winter, that's only a partial crowd, the one in the main stage hall, there are other halls rooms where it's shown too, on huge screens.