I have a question for you: I am a programmer with 10 years' (or so) experience. I'm very competent in C++ especially, have lots of different technologies under my belt, have participated in major software releases, am an open source contributor, blah blah. I want to become a contractor, since I hate working for someone else, and I'd like to have more control over how much I work (currently, way too much).
How do I set up as a contractor? How does one find clients? I am totally naive on this stuff.
Note: I probably live in a different country than you (Canada) so I won't be stealing your clients:)
Re:Lets hope that the result is progress
on
Google v. Microsoft
·
· Score: 2, Insightful
Please name one thing produced by MS Research that has made it to market. Just one thing.
That division of MS is just a buzzword, a cool term to throw around to make MS seem all serious and brainy. Oh, and "innovative". How I cringe when I see that word now.
Let me guess: you are not a technical person.
And Ayn Rand's "philosophy" has about as much credibility as L. Ron Hubbard's religion.
Uh, Adobe did release a product using Qt. It's called Photoshop Album.
Lots of commercial software is available for Windows that was written with Qt. Other than VMWare (kindly pointed out to me a while ago), I can't think of any commercial software written using GTK.
Clearly, you don't write software for a living in a company. MSDN costs money. Qt costs money. VC++ costs money. Etc., etc. Companies fork out for quality development tools, because in the long run it saves them money.
Trolltech makes money from Qt. Who do you think is buying those licenses?
I became a member via a guy I work with who's connected with some Silicon Valley people. I haven't actually filled anything in yet, and I don't really know what it's all about, because I've never done this social networking on the Internet thing before. Actually, I seriously doubt I'll make much use of it other than when I feel like changing jobs...I think it's probably a great job-networking tool.
Looking over his shoulder, I noticed that many people on the service seem to be in their 30s. That seems older than the normal "let's meet on the Internet" crowd, or am I mistaken?
I've installed it on my Windows laptop and it didn't work so well - the fonts were messed up, like the spacing wasn't right between the letters. Under Linux/KDE, it was fine. Was I doing something wrong? I hate Word, and I don't need.doc compatibility.
I can't believe this was modded as a troll. Seriously, when writing real software, speed is only a concern in certain specialised areas. Good profiling tools can help to identify areas where optimisations need to be done in any code. More important are maintainability, speed of development, and freedom from thoughtless errors (buffer overflows and the like).
I had heard that templates were in the works for Java 1.5...? I certainly hope so. I am addicted to the STL, and generic programming in general.
As for the garbage collection, Java's GC algorithm is quite good, according to execution profiles I've performed - it doesn't block everything to perform the collection.
If you're feeling adventurous, move to British Columbia (that's in Canada:) and grow dope. It is a $6 billion/year industry here, and is B.C.'s largest cash crop. Penalties are few (it's still illegal to grow, mind you), and incredibly lucrative, thanks to the voracious U.S. market. There are awesome units you can hang in the closet of a room which will turn over a few grand every 6 weeks; a single dedicated room can easily haul in $80 000+. Get a job (programming jobs and tech support jobs are still available here) to supplement your growing income, and you're set;)
Add in super-cheap health care, a comparable quality of life to the U.S. wealth-wise, and a mellow population (no kidding, given the above), and it's tough to go wrong - except for the weather. The U.S. has great weather, it must be said.
I had heard a rumour that Apple was planning on opening up the iPod a bit to 3rd parties who want to write add-on software. Presumably Vorbis support would be there for motivated developers.
But that's just a rumour. I do realise that historically Apple has been pretty closed. However, if it's true that the iPod is sort of migrating towards PDA-land, maybe there is something to it after all, who knows.
Currently, I'm a C programmer (mostly). I like it; it's fun. The domain I'm in (a PBX system) is entirely appropriate for C. Other domains are not.
Overall, while I respect what you had to say (in your over-the-top way), I think you missed my point. It's this: C++ gets a lot of antagonism from Gnome people. I've seen it many times. If you don't know C++, that's perfectly fine; use what works for you, of course. But if you sit down and write a KDE app just for fun (or to learn, or whatever) you're in for a surprise - especially if you choose to specialise on any of the hundreds of available objects. If I want to inherit from BaseWidget in Gnome, it's gnarly; the language doesn't support it. That's my point. How do I gracefully inherit from a C object? How do I get const correctness? How do I do generic programming? I can't. It's like discussing pieces of furniture in terms of the atoms they're composed of.
Of course, C++ bindings are available for GTK. But who will use them if there is an a priori hatred for the language? Do you see my point now? It's a lack of open-mindedness to the best tool for the job. Anyway, to say that I can use C++ bindings misses the point entirely. I can't specialise on structures written in C, a real strength of KDE/Qt.
A huge issue is generic programming. Few people understand the boon of the STL until they use it. And home-grown generic templates are unbelievably useful as well.
If you want to get into language pissing wars, here's something to try. This comes from Paul Graham's wonderful homepage. Write me a function foo that takes a number n (note: number, not integer) and returns a function that increments n by another number, i.
In Lisp, it's one or two lines (depending on how you format things). In C++ it's 10 lines or so. In C, it's impossible. And doing this sort of stuff is really, really handy; it's like run-time code generation. In fact, compile-time code generation is becoming huge with C++ templates (see Andrei Alexandrescu's book "Modern C++ Design", a terrible name for a wonderful book).
GTK is not more popular. There's a reason why commercial apps use Qt, and not GTK. You might think GTK is so popular because of the apps on your free desktop that use it (I have none on my free desktop, but anyway), but Adobe, Borland, Opera, et al chose Qt for a reason. Photoshop album, the Opera browser, and so forth are, I would guess, a lot more popular than GTK. Sorry. GTK is used in VMWare, and so far as I know, that's the only commercial app on earth that uses it (and let's face it, the VMWare GUI isn't exactly a marvel). In the for-pay desktop software world, where time is money and so forth, anyone seriously contemplating using C is chuckled at. I have seen it happen many times - people who are scared by OOP, defensive about their lack of knowledge, and maintaining that C is perfect for everything, when Python, Java, or C++ are better fits.
No offense, but I get the feeling you write code as a hobby, not for a living. You have all the time in the world to plink away at your little projects. I don't want to belittle your efforts, but please get real.
You make a good point, and of course my overblown rhetoric has a lot of holes in it. But the underlying Gnome libraries are written in a way that makes inheritance very tough - deriving MyWidget from BaseWidget in C is gnarly. That was sort of my point:)
Very, very nice work. But the obvious technical merits of KDE aren't enough to convince those who feel irrational and emotional about two things: Qt's "corporate" status, and a visceral hatred for C++. I can't figure either of these things out. If you want to write GPL'd code with Qt, go ahead. If you want to develop commercial software, buy a license (a miniscule cost for any software shop). It's pretty simple. And the weird conspiracy theories about Trolltech and SCO are just laughable.
The C vs. C++ thing is also tough. I suspect a lot of people feel some sort of strange allegiance to the "traditional" Unix way, and believe C solves all problems equally well as C++ because hey, that's what Unix (and Linux, and so forth) uses. This just isn't true, of course, especially when it comes to reusability. And generic programming (most crucially, the STL) simply isn't possible in C. These days, I can't imagine programming in a strongly typed language without templates. Why not admit that C is a specialised language, and that better languages exist to build a desktop framework? I don't get it. I look at the Gnome source code and shudder. It just reminds me so much of writing GUI code for Windows 3.1 and 95 (yes, I've done that).
Can other browsers drag a file from a remote machine via ssh and drop it on another machine via ftp? Browse a digital camera? Connect to SMB shares? And of course, browse the Web - all at the same time, in different tabs and split screens?
No. Konqueror browses practically everything, not just the Web.
All that said, I do wonder if the kioslaves made it into this OS X version of Konqueror.
Christ, I am sick of people who rattle on about this without knowing what they are talking about.
"A viable platform has to support closed applications" - no shit, Sherlock. You can write closed apps with Qt. Just buy a license and go to it. The thing is dual-licensed.
The GPL is not "less free". The GPL enforces user freedoms. The LGPL gives developers freedom. Which do you care more about? (Hint: you aren't a developer).
Fair enough, you make a good point, but I guess there are two arguments to be made:
1. If paying for Qt licenses is an issue for your shop, then you are probably financially doomed anyway, as such licenses are equivalent to only a small percentage of the average developer's salary;
2. So far as "adding some value" goes, I've only worked with Qt, never GTK, but I can say it (Qt) is an excellent toolkit, with brilliant docs and great support. Free toolkit = no support, and (I would guess) crap docs. But hey, I'm only guessing.
Marginally so. Even the smallest shops traditionally pay for tools (MSDN subscriptions, emulation software for embedded systems, whatever), not to mention paying for copies of the actual OS they develop for (Windows, proprietary Unix.) Paying for a tookit such as Qt won't burden a shop with more costs than they would normally have.
This was back in 2000. Maybe things have changed since then, but we DEFINITELY saw this behaviour, and had to change our source to accomodate this special scenario.
Since I saw it with my own eyes, and wrote the code to fix it myself, I don't buy your "disproved" statement, sorry.
You are correct about the "fucked up packets". What IE does when it communicates with IIS is it manipulates the TCP sequence numbers to artificially hold open HTTP connections, a clear violation of the layered network model. Also, it sends a RST rather than the FIN-ACK sequence to kill connections. We discovered this while writing a packet-sniffer that would dynamically reconstruct HTTP exchanges.
IE and IIS do this in order to eke out speed improvements.
I have a question for you: I am a programmer with 10 years' (or so) experience. I'm very competent in C++ especially, have lots of different technologies under my belt, have participated in major software releases, am an open source contributor, blah blah. I want to become a contractor, since I hate working for someone else, and I'd like to have more control over how much I work (currently, way too much).
:)
How do I set up as a contractor? How does one find clients? I am totally naive on this stuff.
Note: I probably live in a different country than you (Canada) so I won't be stealing your clients
Please name one thing produced by MS Research that has made it to market. Just one thing.
That division of MS is just a buzzword, a cool term to throw around to make MS seem all serious and brainy. Oh, and "innovative". How I cringe when I see that word now.
Let me guess: you are not a technical person.
And Ayn Rand's "philosophy" has about as much credibility as L. Ron Hubbard's religion.
Uh, Adobe did release a product using Qt. It's called Photoshop Album.
Lots of commercial software is available for Windows that was written with Qt. Other than VMWare (kindly pointed out to me a while ago), I can't think of any commercial software written using GTK.
Clearly, you don't write software for a living in a company. MSDN costs money. Qt costs money. VC++ costs money. Etc., etc. Companies fork out for quality development tools, because in the long run it saves them money.
Trolltech makes money from Qt. Who do you think is buying those licenses?
I became a member via a guy I work with who's connected with some Silicon Valley people. I haven't actually filled anything in yet, and I don't really know what it's all about, because I've never done this social networking on the Internet thing before. Actually, I seriously doubt I'll make much use of it other than when I feel like changing jobs...I think it's probably a great job-networking tool.
Looking over his shoulder, I noticed that many people on the service seem to be in their 30s. That seems older than the normal "let's meet on the Internet" crowd, or am I mistaken?
The most popular app language on phones is shaping up to be Java. So closed solutions do not have an advantage, and your point is moot.
I've installed it on my Windows laptop and it didn't work so well - the fonts were messed up, like the spacing wasn't right between the letters. Under Linux/KDE, it was fine. Was I doing something wrong? I hate Word, and I don't need .doc compatibility.
I can't believe this was modded as a troll. Seriously, when writing real software, speed is only a concern in certain specialised areas. Good profiling tools can help to identify areas where optimisations need to be done in any code. More important are maintainability, speed of development, and freedom from thoughtless errors (buffer overflows and the like).
The parent is entirely correct.
I had heard that templates were in the works for Java 1.5...? I certainly hope so. I am addicted to the STL, and generic programming in general.
As for the garbage collection, Java's GC algorithm is quite good, according to execution profiles I've performed - it doesn't block everything to perform the collection.
If you're feeling adventurous, move to British Columbia (that's in Canada :) and grow dope. It is a $6 billion/year industry here, and is B.C.'s largest cash crop. Penalties are few (it's still illegal to grow, mind you), and incredibly lucrative, thanks to the voracious U.S. market. There are awesome units you can hang in the closet of a room which will turn over a few grand every 6 weeks; a single dedicated room can easily haul in $80 000+. Get a job (programming jobs and tech support jobs are still available here) to supplement your growing income, and you're set ;)
Add in super-cheap health care, a comparable quality of life to the U.S. wealth-wise, and a mellow population (no kidding, given the above), and it's tough to go wrong - except for the weather. The U.S. has great weather, it must be said.
I had heard a rumour that Apple was planning on opening up the iPod a bit to 3rd parties who want to write add-on software. Presumably Vorbis support would be there for motivated developers.
But that's just a rumour. I do realise that historically Apple has been pretty closed. However, if it's true that the iPod is sort of migrating towards PDA-land, maybe there is something to it after all, who knows.
Personally, I think the Rio Karma looks good.
Currently, I'm a C programmer (mostly). I like it; it's fun. The domain I'm in (a PBX system) is entirely appropriate for C. Other domains are not.
Overall, while I respect what you had to say (in your over-the-top way), I think you missed my point. It's this: C++ gets a lot of antagonism from Gnome people. I've seen it many times. If you don't know C++, that's perfectly fine; use what works for you, of course. But if you sit down and write a KDE app just for fun (or to learn, or whatever) you're in for a surprise - especially if you choose to specialise on any of the hundreds of available objects. If I want to inherit from BaseWidget in Gnome, it's gnarly; the language doesn't support it. That's my point. How do I gracefully inherit from a C object? How do I get const correctness? How do I do generic programming? I can't. It's like discussing pieces of furniture in terms of the atoms they're composed of.
Of course, C++ bindings are available for GTK. But who will use them if there is an a priori hatred for the language? Do you see my point now? It's a lack of open-mindedness to the best tool for the job. Anyway, to say that I can use C++ bindings misses the point entirely. I can't specialise on structures written in C, a real strength of KDE/Qt.
A huge issue is generic programming. Few people understand the boon of the STL until they use it. And home-grown generic templates are unbelievably useful as well.
If you want to get into language pissing wars, here's something to try. This comes from Paul Graham's wonderful homepage. Write me a function foo that takes a number n (note: number, not integer) and returns a function that increments n by another number, i.
In Lisp, it's one or two lines (depending on how you format things). In C++ it's 10 lines or so. In C, it's impossible. And doing this sort of stuff is really, really handy; it's like run-time code generation. In fact, compile-time code generation is becoming huge with C++ templates (see Andrei Alexandrescu's book "Modern C++ Design", a terrible name for a wonderful book).
GTK is not more popular. There's a reason why commercial apps use Qt, and not GTK. You might think GTK is so popular because of the apps on your free desktop that use it (I have none on my free desktop, but anyway), but Adobe, Borland, Opera, et al chose Qt for a reason. Photoshop album, the Opera browser, and so forth are, I would guess, a lot more popular than GTK. Sorry. GTK is used in VMWare, and so far as I know, that's the only commercial app on earth that uses it (and let's face it, the VMWare GUI isn't exactly a marvel). In the for-pay desktop software world, where time is money and so forth, anyone seriously contemplating using C is chuckled at. I have seen it happen many times - people who are scared by OOP, defensive about their lack of knowledge, and maintaining that C is perfect for everything, when Python, Java, or C++ are better fits.
No offense, but I get the feeling you write code as a hobby, not for a living. You have all the time in the world to plink away at your little projects. I don't want to belittle your efforts, but please get real.
You make a good point, and of course my overblown rhetoric has a lot of holes in it. But the underlying Gnome libraries are written in a way that makes inheritance very tough - deriving MyWidget from BaseWidget in C is gnarly. That was sort of my point :)
Very, very nice work. But the obvious technical merits of KDE aren't enough to convince those who feel irrational and emotional about two things: Qt's "corporate" status, and a visceral hatred for C++. I can't figure either of these things out. If you want to write GPL'd code with Qt, go ahead. If you want to develop commercial software, buy a license (a miniscule cost for any software shop). It's pretty simple. And the weird conspiracy theories about Trolltech and SCO are just laughable.
The C vs. C++ thing is also tough. I suspect a lot of people feel some sort of strange allegiance to the "traditional" Unix way, and believe C solves all problems equally well as C++ because hey, that's what Unix (and Linux, and so forth) uses. This just isn't true, of course, especially when it comes to reusability. And generic programming (most crucially, the STL) simply isn't possible in C. These days, I can't imagine programming in a strongly typed language without templates. Why not admit that C is a specialised language, and that better languages exist to build a desktop framework? I don't get it. I look at the Gnome source code and shudder. It just reminds me so much of writing GUI code for Windows 3.1 and 95 (yes, I've done that).
This is how the SIP protocol works. You dial by URL, not by phone number. Look up the relevant RFCs for more.
I knew I could use the pop3 ioslave from Konq, but from Kword...? I had no idea. It's a weird, but good (?) demonstration of KDE's modularity.
Can other browsers drag a file from a remote machine via ssh and drop it on another machine via ftp? Browse a digital camera? Connect to SMB shares? And of course, browse the Web - all at the same time, in different tabs and split screens?
No. Konqueror browses practically everything, not just the Web.
All that said, I do wonder if the kioslaves made it into this OS X version of Konqueror.
Holy shit. This has to be one of the most insightful posts in this entire thread.
Given the Ponzi nature of the U.S. economy, what is its eventual fate, I wonder?
Really? OK, you got me.
Christ, I am sick of people who rattle on about this without knowing what they are talking about.
"A viable platform has to support closed applications" - no shit, Sherlock. You can write closed apps with Qt. Just buy a license and go to it. The thing is dual-licensed.
The GPL is not "less free". The GPL enforces user freedoms. The LGPL gives developers freedom. Which do you care more about? (Hint: you aren't a developer).
I guess that's why Opera, Adobe, and so forth all chose GTK for their apps. Oh, wait, no they didn't. They chose Qt. Name a single commercial GTK app.
The licenses for a development kit are a fraction of the overall development cost. In fact, they are a fraction of the average developer's salary.
Fair enough, you make a good point, but I guess there are two arguments to be made:
1. If paying for Qt licenses is an issue for your shop, then you are probably financially doomed anyway, as such licenses are equivalent to only a small percentage of the average developer's salary;
2. So far as "adding some value" goes, I've only worked with Qt, never GTK, but I can say it (Qt) is an excellent toolkit, with brilliant docs and great support. Free toolkit = no support, and (I would guess) crap docs. But hey, I'm only guessing.
Marginally so. Even the smallest shops traditionally pay for tools (MSDN subscriptions, emulation software for embedded systems, whatever), not to mention paying for copies of the actual OS they develop for (Windows, proprietary Unix.) Paying for a tookit such as Qt won't burden a shop with more costs than they would normally have.
Hmm, I could have sworn it was IE5.0, but hey, if you say so. Anyway, it's nice to know that particularly grim bit of behaviour is gone.
This was back in 2000. Maybe things have changed since then, but we DEFINITELY saw this behaviour, and had to change our source to accomodate this special scenario.
Since I saw it with my own eyes, and wrote the code to fix it myself, I don't buy your "disproved" statement, sorry.
This is entirely offtopic, but...
You are correct about the "fucked up packets". What IE does when it communicates with IIS is it manipulates the TCP sequence numbers to artificially hold open HTTP connections, a clear violation of the layered network model. Also, it sends a RST rather than the FIN-ACK sequence to kill connections. We discovered this while writing a packet-sniffer that would dynamically reconstruct HTTP exchanges.
IE and IIS do this in order to eke out speed improvements.