last updated:06 Aug 2003 14:27 UK time
|
 |
|
(Comments added for week ending Sun 08 Jun 2003) | View Other Weeks
|
|
| Is anyone here involved still in mainframe? | Sun 08 Jun | grover |
| Hello. Im looking at graduating in less than a year from a school that emphasises mainframe programming in its education instead of web based. Is there anyone on this board that is involved in mainframe work still? What are your opinions on the future of the mainframe? I know there are lots of other sites that go into detail on this, but Ive seen some good discussion raised on this board before, and id like to hear what you think. So far ive heard roughly the same amount of both pessimistic and optimistic views. |
| Sun 08 Jun | www.marktaw.com | Where I used to work they were getting away from mainframes, and actually had a project to mount smaller linux servers within the mainframe (I don't know too much about mainframes, so forgive me if my lingo is off).
General consensus was this was silly and it was the mainframe guys justifying their existance. |
| Sun 08 Jun | Stephen Jones | Are you talking about using Linux clusters to simulate a mainframe environment, or using setting up a set of virtual Linux machines on a mainframe.
Both have their reasons.
The reason for the latter is to provide mainframe reliability and interconnection speed to projects such as web servers that require x86 architecture. |
| Sun 08 Jun | www.marktaw.com | > a set of virtual Linux machines on a mainframe |
| Sun 08 Jun | www.marktaw.com | Considering that every other server in the place was Solaris, it seemed strange to me to run Linux on a mainframe of all things. |
| Sun 08 Jun | | I was a on a mainframe migration/integration project for quite a while. I came away with the perception that a mainframe programmer is the stereotypical maintenance programmer. There might be big iron guys that can do some good work but I have only seen the system maintainer type.
Of course, if you are learning how to integrate mainframe systems with newer systems then that seems interesting and has growth potential. |
| Sun 08 Jun | Chris | What do you mean by mainframe programming? If you mean COBOL programming, then it's fairly limiting in my experience. Not that there isn't work out there, but it doesn't pay as well and is mostly maintaining legacy systems.
If you just mean mainframe as the deployment environment, then it's becomming more and more like unix machines. My current project is deploying to a OS/390. However, it's a web project using WebSphere.
Anyways, IBM has Linux ported to the S/390 hardware so that's what the future is likely to be like in the IBM mainframe world. Currently it has something called Unix System Services which is basically Unix running as a virtual machine.
Chris |
| Sun 08 Jun | one programmer's opinion | My advice is to ask your question on web sites where mainframe programmers hang out.
One place to checkout is the Yahoo! Financial message boards. For example, you could post a message on some of the large consulting firm message boards:
Electronic Data Systems - EDS
Keane, Inc. - KEA
Accenture - ACN
Computer Sciences Corporation - CSC
etc.
I used to be a mainframe programmer/analyst and I left that world behind several years ago because it was limiting my career options. Also, I was pissed off that lots of companies were hiring college graduates with no work experience and some of them were making just as much (if not more) money as I was (someone who had several years of real world experience under his belt).
Btw, I still receive emails and phone calls from recruiters who are looking for mainframe developers. I always respond with, 'Thanks, but I am not interested'. |
|
| Speaking of Viruses... | Sun 08 Jun | www.marktaw.com |
| This is an interseting article from Wired on the Slammer Virus that brought the Internet to a halt.
http://www.wired.com/wired/archive/11.07/slammer.html
I remember a few months ago I was surfing the web and all of a sudden even Google turned up a DNS error - I figured it was a local problem with my ISP, but it may have been this virus. |
| Sun 08 Jun | somebody | Interesting article but it's painful when someone attempts to describe something technical in non-technical terms -- 'licks the UDP stamp'????? |
| Sun 08 Jun | Tom | DNS error from Google means nothing. I get DNS error from every site I visit approx once every 2 hours (lasting for 2 minutes). This has been consistent for the 3 years, spanning three ISPs five OS reinstalls three methods of connecting to the internet and god knows how many service packs and quitting/End Task of unnecessary programs.
The only constant is Windows 2000. I don't think it is a virus. If you find out what's up, PLEASE let me know :( |
|
| Free NewsGroup Server | Sun 08 Jun | Snacky |
|
I would like to know if there are good Free Newsgroup server which are not web based (I would like to read and post using Mozilla) |
| Sun 08 Jun | www.marktaw.com | A google search should turn some up, but it's trial and error.
I don't know if I have access because I'm on verizon's network, but news.verizon.net and news.bellatlantic.net work for me.
Do you have an ISP that may supply one for you that you're just not aware of? |
| Sun 08 Jun | Snacky | My ISP News server is so crap, it sucks big time
Let say for a given newsgroup I just get 5 posts
while on google I get 100 or so.
Also it's not up to date. |
| Sun 08 Jun | www.marktaw.com | On google you should get the entire history of the newsgroup.
If the newsgroup only has 100 posts in it's entire history, then 5 seems like a reasonable number for your ISP to have. |
| Sun 08 Jun | www.marktaw.com | Why don't you check the post count on these newsgroups I frequent:
rec.audio.pro - my server has 8981 posts right now
alt.music.4-track - 373
rec.music.makers.bass - 317
alt.guitar.bass - 4018
This represents about a month. If your ISP's news server has a lot less than that, then I'd switch. |
| Sun 08 Jun | Snacky | I will switch ISP only if I cannot find a good FREE alternative just for accessing newsgroup.
There are not many ISPs offering ADSL service in my area |
| Sun 08 Jun | www.marktaw.com | I meant switch new servers. |
| Sun 08 Jun | www.marktaw.com | *news |
| Sun 08 Jun | Bored Bystander | If you mean that you want a free NNTP server that is not on your ISP, with good coverage of newsgroups, lots of luck. There are lists of free servers out there but there is generally something the matter with the access, the number of groups covered, or the retention.
The problem is, bandwidth and system admin 'costs' someone.
The following page lists some low cost news servers. Basically, you pay for access, similar to paying for web hosting. Once I has problems with my primary news server and I found a place for $5/mo for basic access w/o support for binary newsgroups.
http://www.newsreaders.com/newsfeeds/ |
| Sun 08 Jun | Rich | If you are only looking for a few newgroups, give newzbot http://www.newzbot.com/ a try. It has a search engine for open news servers by group name. |
|
| Missing C++ feature? | Sun 08 Jun | S. Tanna |
| THis one occurred to me recently, as I actually found I would have liked somrthing like it for a particular program. Is this a missing C++ feature?
1. You can make a function which is specific to a specific instance of a class (non-static member)
2. You can make a function which is shared between all instances of a class (static)
3. You can make a function which is overriden by a derived class and is specific to a specifc instance of a class (virtual)
4. You can NOT make a function which is overriden by a derived class, but is shared between all instances of the class (static virtual?)
#4 may take some thinking about (as it is rare that youd actually want something like it, and it runs against the typical C++ programming mindset), but Id say its logically hangs together as a possible construct (and no I dont really miss it) |
| Sun 08 Jun | matt | I believe there is an Official Reason For It.
That kind of people that like to pretend OO is some kind of Number Theory have argued about this. They decided that 'static virtual' and 'static interface' (in Java) is Not Correct Object Oriented-ness.
Whatever the means. I still think I should be allowed to do it.
Google on it if you want to read yet another nerd freak out.
I believe that laziness is the root cause it's not possible in C++. From the implementations that I've seen it would be a pain in the butt to throw static virtual into the compiler.
I firmly believe that it's not possible in Java because, well as much as I love Java, I think the folks that run that show get off on saying things like 'It's not correct OO'.... |
| Sun 08 Jun | Andy | I don't really think this makes sense... if you want to have static functions Base::f() and Derived::f() you can do that. You can use the same name, but you will have to qualify the name with the class name when you call it.
A good exercise is, if you know C, to try simulating virtual functions and static functions. Then it will become obvious why you can't have a static virtual function.
Basically virtual functions (and other non-static member functions) take an implicit this pointer, so they can access the member data. Static functions do not. They might as well not be part of any class. It is basically 'syntactic sugar' that you can group them with a class. (OK as a side note I guess they have access to the static members of a class without Class::, but that is a detail).
I have tried to explain it better than that, but it all came down to explaining the details of the v-table, etc. The whole point of virtual functions is polymorphism. There is no polymorphism with static functions, because they don't operate on objects!
B::static_function( int x ) doesn't operator on any object
B b;
b.nonstatic_function( int x ) can operator on the object b |
| Sun 08 Jun | Ori Berger | I've wanted this many times in the past.
'virtual static var' and 'virtual static function' are both missing.
E.g., suppose you want a 'live instance count' for a class. With the C++ of today, every class needs to define it's own 'static int live_count', which is incremented in the constructor, and decremented in the destructor.
If we had a 'virtual static int live_count', then it would suffice to do the increase/decrease in the root object, and just have to re-define the var in every class which does not wish to be counted with its ancestor.
And the compiler could do a much better job if you could inquire class attributes through variables rather than through functions, e.g.
for (x = list.begin(); x != list.end(); ++x)
. if (x->is_grokable) { grokable->append(x); }
Could generate much better code if is_grokable is a 'virtual int' rather than a 'virtual function'. (assuming grokability is type dependent rather than instance dependent, of course).
It could be emulated, more or less efficiently. with non-virtual inline functions and base-class members. However, it does waste more memory, it does require a smarter compiler, and most importantly, it is not really interesting because all modern language are turing complete and thus anything can be emulated in any language. |
| Sun 08 Jun | Ori Berger | Andy:
But note that
b.static_function(x) does work, and could be used to select the right non-virtual function even if b's class is not known at compile time.
There's no reason not to put pointers to static functions in the vtbl. you just have to call them without an instance when you do. (which is not a problem - if you got there through the vtbl, you already _have_ an instance, you just have to ignore it). |
| Sun 08 Jun | Andy | Whoops the above should be 'operate' instead of 'operator' obviously.
Actually as a shortcut to actually trying to implement the virtuals/statics in C, just study how the v-table works. It is pretty simple. EACH CLASS (as opposed to each object) has a v-table, which contains pointers to all the virtual functions. EACH OBJECT has a pointer to the v-table. So objects of type Base will have a pointer to the Base-v-table, and objects of type Derived will have a pointer to the Derived-v-table. So at RUNTIME, the correct function Base::g or Derived::g can be invoked.
I think the confusion here is having a Java vs. C background. C++ is built on C, so if you look at it from that perspective it all makes sense. If you look at it from the Java perspective, it is all a huge mess. You think, 'C++ is a huge bunch of random rules, every rule has 10 exceptions'. When you think about it from the C level, you realize why those exceptions exist (and they cease to seem like exceptions). When I was doing more Java programming and went over to C++, I was like 'Why the heck is there even a virtual keyword? Why can't I just specify the same function name in class Base or class Derived and have it work polymorphically?' When you understand the v-table you will understand this. |
| Sun 08 Jun | matt | See? Vtable shmee table. It's not in C++ because of laziness.
That's a perfectly fine reason.
However I just can't stand the Java reason. |
| Sun 08 Jun | Andy | OK I oversimplified... you're right that b.static_function() works, which is weird, I wonder why. I did read some google articles on it... and I haven't decided yet whether it cleans up the language or adds another special case. I personally have not been wanting for static virtual functions. But in any case you could just leave off the static. Just declare it virtual, and don't access any members, and you just incur the negligible cost of passing this. I guess it would be nicer though if you could declare it static so someone wouldn't later modify it to be non-static without thinking about it.
Still though something about b.static_function() seems pretty ugly, since it doesn't depend on b, only the type of b. For that it seems like you want RTTI, which was probably added to solve a bunch of such problems.
for (x = list.begin(); x != list.end(); ++x)
. if (x->is_grokable) { grokable->append(x); }
this example could be done with RTTI but yes it would be a lot more wasteful than a more obvious implementation of a static virtual data member. I think the static virtual data member would be another feature that would be nice, but C++ already has so many damn features that adding one that would only be used once in awhile might make it even more complicated.
Interesting though, I never thought about it that carefully. Does any other language have these features? What about the 'pure' OO languages? |
| Sun 08 Jun | Chris Nahr | I'm not sure about statics in C++ but recently this same question was discussed on the Microsoft C# groups, and to my surprise the following works in C#:
class Animal {
public static string Sound = 'meow'; }
class Cat: Animal { }
class Cow: Animal {
public new static string Sound = 'moo'; }
-->
Animal.Sound == 'meow'; // base class
Cat.Sound == 'meow'; // static inheritance
Cow.Sound == 'moo'; // static override
The 'new' keyword tells the compiler that the naming conflict is intentional. This example uses fields but static properties and methods (functions) work just the same. |
| Sun 08 Jun | Tom | There's no way to do this in C++ or Java because it simply makes no sense. You would need another level of types above the current one, indicating which path down the inheritance tree your current static type represents.
I could have a class X with a static virtual ('Virtual()'), then inherit from that class A and class B overriding the virtual function in each. I call X::Virtual(). Which does it pick up? How does the compiler decide? What is the difference between the type X, the type X and the type X?
(If you want something like this so you can fill in the blanks of your base class in a derived class, use templates.
template class B {
static void f() {T::virtual_f();}
};
struct C:public B {
static void virtual_f() {/*whatever*/return;}
};
) |
| Sun 08 Jun | Chris Nahr | 'I could have a class X with a static virtual ('Virtual()'), then inherit from that class A and class B overriding the virtual function in each. I call X::Virtual(). Which does it pick up?'
X obviously. Ther is only one X. I don't get your point...? |
| Sun 08 Jun | Tom | The point is that you have 3 type X. One type X has the static function that is X's. One type X has the static virtual function that is A's. One type X has the static virtual function that is B's.
And you have the possibility that the static virtual that is B's might wish to call the static virtal that is X's. But, the static virtual that is B's _is_ the static virtual that is X's, because you can call it like 'X::' -- otherwise, it wouldn't be much of a virtual.
A static function is bound to a type, not an object. You must be able to invoke a static function without using an object, just a type.
So, what is type X?
I'm not trying to be a dumbass :( but I don't see how static virtual can make any sense, unless the staticness means 'shared between all objects' rather than bound to the type. It doesn't mean this in C++, and not in Java, and not in Python, so I don't see that static virtual makes any sense. |
| Sun 08 Jun | Tom | Sorry. To clarify.
Firstly you don't get static in Python -- just class variables. But you can access these without needing an object. I'm using the mental shortcut of referring to this as a static object. Apologies to the redaer.
Secondly, when I say 'you may invoke the virtual as X::' I of course mean 'from outside code'. You could probably fudge it so that inside the redefinition of a static virtual calls to the base class' function were considered to be jus that. But outside, you call 'X::' and you potentially call a different function. (One of A or B, continuing my crappy example.) Therefore, the type X differs depending on... well, I'm not quite sure :)
My beef is with the idea that if you take 'static' to mean what it does in C++/Java/Python, that a static virtual can make any sense. I don't see that it can. This is independent of language. |
| Sun 08 Jun | S. Tanna | 1. The difference between a static and non-static member function, at the implementation level, is the non-static has a hidden this pointer, but the static doesn't
The non-static uses the this pointer to access the current object's data
The static, not having a this pointer, is the same on all instances of the object.
A. C++:
class A
{
public:
int a ;
void func_a( int x ) { a = x ; }
static void func_b( void ) { printf('Hello') ; }
} ;
B. Equivalent to this C:
struct A
{
int a :
}
void func_a( A * this, int x )
{
this->a = x ;
}
void func_b( void )
{
printf('Hello') ;
}
C. Now Imagine some wierd C++ dialect which made the this pointer explicitly required, it would be something like (and while there ain't such a dialect, it does illustrate how the compiler is treating you code) :-
class A
{
public:
int a ;
void func_a( A * this, int x ) { this->a = x ; }
void func_b( void ) { printf('Hello') ; }
} ;
In this example func_b() has static removed - because by removing the this pointer, I have made the function static in effect anyway.
2. The difference between a virtual function and a non-virtual member function, at the implementation level, is the virtual function appears in the vtable
Now think about example 1C. Whether the vtable is going to be one per instance or one per class (or you have two kinds of vtable for static and non-static members). There is no reason why func_b() could not be included.
In other words func_b() (a static) could logically be virtual
3. Of course C++ does not allow it, which I think is justifiable but still a missing feature
(a) it's only a small benefit to allow this (rarely used)
(b) it's arguably not worth the amount of work to support this - justifiable laziness
4. Finally
class A
{
public:
int a ;
void func_a( int x ) { a = x ; }
static void func_b( void ) { printf('Hello') ; }
} ;
Then
A.func_a() ; // works (i)
A::func_a() ; // doesn't work (ii)
B.func_b() ; // works (iii)
B::func_b() ; // works (iv)
Calling func_a() requires a instance of A and name scope.
(i) Works because the statement provides both
(ii) Doesn't work because no instance provided
Calling func_b() requires a name scope, but instance of A is NOT required (as func_b() has no this pointer)
(iii) Works because we get an instance (we don't need it but does no harm), and name scope provided.
(iv) Provides name scope but no instance, which is sufficient
B.func_b() working is not a special case in the C++ rules, but instead simply a consequence of the name scoping rules.
-- If you make a static member function which does some how get a pointer or reference to instances of the same class, that static member can access everything in that class including private data of the instances, etc. |
| Sun 08 Jun | Christopher Wells | Static virtual doesn't make sense. The point of virtual is to call a derived function through a pointer to the base class. Now imagine that you have a base class A with a static function. Imagine you have 2 other classes, B and C, both/each of which derive from A and which override A's static function. Imagine now that you call A::static_function() ... which of the two derived static functions would you want the compiler to call: B::static_function(), or C::static_function()? |
| Sun 08 Jun | Chris Nahr | 'The point is that you have 3 type X. One type X has the static function that is X's. One type X has the static virtual function that is A's. One type X has the static virtual function that is B's.'
At the risk completely misremembering my C++ I'd say this is quite wrong. You do NOT have three types X. You always have ONE type X, no matter how many other types you derive from X.
When you make instances of X or a derived class then those instances can all be typed as 'X' even though they might be A or B -- but they still have exactly one specific class associated with them internally, either X or A or B, and when you call statics through an instance variable (which C++ allows) the proper class's static member should be called polymorphically, as usual.
So I don't see the problem -- unless it's a problem with the details of the vtable implementation of C++. There's no problem with inherited/overriden statics from an OOP viewpoint, however. |
| Sun 08 Jun | Chris Nahr | 'Imagine you have 2 other classes, B and C, both/each of which derive from A and which override A's static function. Imagine now that you call A::static_function() ... which of the two derived static functions would you want the compiler to call: B::static_function(), or C::static_function()?'
Ah, now I think I get what you people are saying. Yes, you cannot call a static polymorphically using class names -- in other words, you can't get the actual type name to polymorph.
But as was mentioned WAY up this thread, this is really just a problem with a narrow ideological interpretation of OOP. Obviously you'd want the A call to always call the A implementation, and not one of the derived classes' implementation. But C++ has a call-static-through-instance feature that could actually polymorph statics, and C# has type objects that could refere either to a base type or a derived type.
Just to clarify -- does the C# example I gave above actually work in C++ or doesn't it? It seems that we've been talking past each other and this was never clarified. |
| Sun 08 Jun | Tom | It looks to me as if you are assuming that all aspects of a static function follow on from its lack of a thispointer. It is rather that a static function is one bound to a class rather than an instance. Its lack of a thispointer follows on from this.
So, it cannot be that a vtable for statics could be held in a particular object, because now the static function is associated not with a class but with an object. (You have a 'sort of' 'semi-static', that is inaccessible unless you have a class object. But this isn't static at all, really, because it's not associated with the class but with particular objects. Whilst this might sound superficially useful, I think in practice it will prove to be not so. You also introduce issues relating to the scope of the variables, a particularly important consideration in C++.)
It cannot be that a vtable for statics could be held in the class, because now you have another problem, alluded to above when I asked what the difference is between type X and type X. Consider: First, create class A. It has static virtual function f(). Now create class B, derived from class A. Now create class C, derived from class A. Now override f() in both.
Now... what is in the vtable for A?
What is the difference between type A and type A?
If there is a difference, they are not the same type, and static virtual is meaningless because you have not introduced any kind of polymorphism that is unsupported by the current C++. If there is no difference, you can override f() in just one derived class, you have not introduced anything that is unsupported by the current C++.
I hope that kind of explains it better. Anyway what is your original problem? :) |
| Sun 08 Jun | Tom | Immediately after: The above was a reply to S Tanna's post, as it looks like others posted whilst I was composing. |
| Sun 08 Jun | Christopher Wells | > does the C# example I gave above actually work in C++ or doesn't it?
Chris: your example works in C++. Not because the static is virtual and as is 'overridden' in the derived class, but because a function with the same name in the derived class 'hides' the same-named functions declared in base classes. |
| Sun 08 Jun | S. Tanna | I disagree with what you said.
Basically the this pointer, or lack therefore IS the only real difference between a static and non static member.
The fact that you see a function as belonging to the class (static member) or an instance of the class (non-static member) is purely a MENTAL MODEL and CONVENTION of what is considered 'good' oop.
However it is NOT actually fundamental to how it works - in reality functions are actually free standing and figure out which instance they belong to thangs to the this pointer.
Additionally, there would no reason why there couldn't be static's in some kind of vtable, either one per class or one per instance (with duplicatio) or whatever
In Java, or SmallTalk, I understand the argument that they have a religious attitude about 'good' oop, so not include this type of feature
In C++, I think the philosophy should be let the programmer do almost any darn thing he chooses. No religion - e.g. you can write C++ programs that are pure procedural, pure OOP, mix of two, any whole variety of other models. Therefore the only excuse to leave this feature out of C++ in my view, is not religion about 'good' oop, but laziness. I don't consider laziness to be that bad a reason though :-) |
| Sun 08 Jun | S. Tanna | And that was a reply to Tom's reply to my reply. |
| Sun 08 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | So, let me sum up.
You'd have one set of behaviors for calling the static by class name (i.e., A.function()), and another set of behavrios for calling the statib by instance (i.e., anAInstance.function()). The former could not support polymorphism, because there's no object to polymorph off of; the latter could, because there is.
I think the confusion factor alone is probably reason enough to rule this out.
I didn't really see any positive example of the usefulness of this in the thread. Does someone have a real world problem where they're blocked, and this would help? |
| Sun 08 Jun | S. Tanna | Brad - It is the same behaviour in both cases, and YES it can support polymorphism
The difference is whether the function deals with the specific to the instance data, or not
This is stupid example, but illustrates
class Shape
{
public:
virtual int GetSideCount() = 0 ;
} ;
class Triangle: public Shape
{
protected:
POINT m_Vertex[3] ;
public:
virtual int GetSideCount() { return 3; }
} ;
class Square: public Shape
{
protected:
POINT m_Vertex[4] ;
public:
virtual int GetSideCount() { return 4; }
};
All instances of Triangle share a common GetSideCount regardless - and regardless of what a particular data any particular instance contains. Likewise for square. i.e. does not depend on instance data, so should be a static
If Triangle/Square was not derived from Shape, it would be common sense to mae these functions static.
Further more of course it would support polymorphism
Consider an array of shapes[]
for ( int x = 0 ; x < 10 ; x++ )
{
cout << shape[x]->GetSideCount() ;
}
Code like this, you would expect to work, regardless of whether the GetSideCount deals in per-instance or per-class data. The only point as the moment, you only have the choice of per-instance, regardless of the fact you're not using any per-instance data.
As for being a serious flaw. no I'm not sure it is a huge flaw, in the example given above you are wasting a this pointer parameter being passed in each call to GetSideCount. If you can live without that, for this example at least, it's easy to work round at the cost of some efficiency.
I think there maybe cases, where it matters a bit more perhaps from a structural point of view |
| Sun 08 Jun | Tom |
Aargh, I'm being unclear again! What I was trying to get at is that the nature of a static function is that it is bound to a type. This idea, that is in C++ under the name of 'static', is something you see in other languages too. It is not specific to C++. How this kind of thing works is, really, irrelevant -- you are proposing a feature that is unworkable based on the definition of this facility.
It would be unworkable in Java, unworkable in Python, unworkable in Smalltalk, and unworkable in Visual BASIC. C++ is a red herring.
I think this is backwards (statement of fact, rather than implication :). I'm aware that functions, static or otherwise, are actually free standing. So, yes -- to talk of a function 'belonging' to a class or an instance is, in C++, fairly meaningless. (I'm familiar with how C++ generally works 'under the hood', at least for compilers targeting Intel x86 family).
But it is not the function itself that does any kind of 'figuring out' -- a function is simply called, starts running, then finishes -- or so you hope? -- and returns. There has to be some mechanism to work out which function to call.
It is this mechanism that is the problem. For 'static virtual', I don't see that it is possible to determine the function to call without needlessly constraining the situations in which it will work correctly, and without producing something that bears little relation to the concepts of 'static' or 'virtual', be they in C++ or any of the other OO languages I've used. [And I don't claim to have used them all, not by any means.]
You end up with a base class that is not a single class, for it is different depending which path through the tree you take. You end up with 'static' objects that aren't. You end up with a feature that is fairly useless. Whichever way you try to create such a facility, you run into some kind of a problem.
It all boils down to that, for each type, this type exists 'singly'. It makes no sense to talk of multiple types that are of the same type. Each type simply 'is'. You don't get the chance to associate several different things with a type, depending on 'something', which is what 'virtual static' must ultimately involve. You can do this with objects, because the functions depend on the instance's vtable/method array/whatever. You can't do this with types, because you can't change something between one type and itself. (Because if it were another type...)
That last bit seems like nonsense now I read it again. However, like a blinding flash, I think I now see the point of the duck joke :)
Q: What is the difference between a duck?
A: One of its legs is both the same.
(I don't see how it can work -- but I am prepared to be proven wrong!! I hope you will forgive me the odd bit of bombast and/or rhetoric :-) |
| Sun 08 Jun | X. J. Scott | Brad asked 'Does someone have a real world problem where they're blocked, and this would help?'
I did. At first I thought this thread on static virtual was silly. Then I realized it would solve my problem of having a static classID variable so that I could tell what type something was from its base class.
But reading the thread solved my problem -- I will just replaced my dumb static ID with a virtual function that returns that Id and life is wonderful.
So, I had a problem where this would help and then I got around it and came up with something better thanks to this thread. |
| Sun 08 Jun | X. J. Scott | The larger insight here is that my screwup was from thinking that 'static members are appropriate for constants that apply to all members of the class', which is not true and was putting me in a blocked mindset. It's good to let go to these 'common sense teachings' when we get blocked. |
| Sun 08 Jun | somebody | If I'm reading this correctly, 'static virtual' as described here would only be useful if you already have an instance pointer -- p->StaticFunc() would resolve to Derived::StaticFunc() but Base::StaticFunc() would still resolve to Base::StaticFunc(). In other words, 'static virtual' would be equivalent to 'virtual' without a 'this' pointer being passed as the first parameter. Thus, the existing virtual function mechanism already adequately supports this as long as you don't mind the unnecessary 'this' pointer being dragged along.
Reasons someone might not want the 'this' pointer being dragged along:
* Efficiency. You don't want the overhead of passing a 'this' pointer that you don't use.
* Safety. You don't want instance data to be accidently used (const will prevent writing but not reading).
* Calling convention compatibility. For example, it's common when using C++ with Win32 to declare a 'static' member function to use as a WndProc.
Of course, these are also reasons you might use a non-virtual 'static' function. The question is can anyone think of a circumstance where you would want these things combined with the 'virtual' mechanism? |
| Sun 08 Jun | r1ch | A proposal to allow this was submitted to the C++ board members in 1995 ( http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/1995/N0736.htm ) but it was rejected with no reason given ( http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/1996/N0904.pdf&e=6251 ). |
| Sun 08 Jun | Andy | Geez reading over this thread again is really incoherent... : ) Doesn't look like anyone read my 'conversion'... I think we can now safely say that:
1) as I mentioned initially, static virtual can be replaced by just plain virtual now, with the overhead of passing this (and the drawback of safety)
2) it IS possible to put statics in the v-table and call them polymorphically through an instance, whether it is desirable is another story
3) a common use for static virtual would be to simulate RTTI, e.g. what if you wanted to print out the type of every object at runtime? static virtual functions would be a natural candidate. |
|
| Experience with SQL Server Clustering? | Sat 07 Jun | Rich |
| We are basically an Oracle shop and have an internal COTS application that requires SQL Server.
We currently have a four cpu (non-expandable) server with 8 gig of memory running SQL Server Enterprise. We would like to upgrade to an eight cpu server, which in our case, would require buying a totally new server.
SQL Server seems to support clustering (Microsoft calls it Distributed Partitioned Views). My question is, what kind of performance hit would we take (overhead of clustering) if we added a second four cpu server in a cluster as opposed to replacing our existing four way box with an eight way box?
Any success or horror stories with clustering SQL Server? |
| Sun 08 Jun | Jeff | This is easy: go with replacing the server.
Generally the cost of an 8 way server will significantly outweigh the administration headaches added by distributed partitioned views. In a typical application successfully implementing DPV is, to say the least, not easy. You should scale-up as much as feasible before considering scaling-out.
Good luck and your mileage may vary.
See:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/trblsql/tr_faq_238z.asp
And if you have a copy of the SQL 2k Resource Kit read the chapter on scaling-out.
Jeff |
| Sun 08 Jun | J | If, by an off-chance, you're interested in fail-over clustering, SQL Server does support this and it works as expected.
I'm not at all familiar with Oracle clustering. Our non-failover clusters implemented as 'shared-nothing' clusters?
Thanks,
J |
| Sun 08 Jun | Jeff | An article from Oracle comparing SQL Server Partioned Views vs Oracle9i Real Application Clusters:
http://otn.oracle.com/deploy/performance/pdf/FederatedvsClustered.pdf
Oracle9i clusters are shared disk not shared-nothing.
Jeff |
| Sun 08 Jun | Dennis Forbes | Partitioned views require that you've designed them into your system: i.e. you can't just replicate the database and suddenly enjoy the advantage of double the power. Instead you need to ensure that all table access takes place through views, and the views have constraints applicable for the clustering setup (i.e. on server one the Customers view is A-H, while on server two it's I-Z).
If you can easily do that then switching to a horizontally partitioned federation of server offers a very good return. I believe the scaling is something like 80% (i.e. two servers offer 180% of the performance of one). The same sort of diminishing return happens when you add more CPUs in the same box as well. |
|
| Mozilla versus Mozilla Firebird | Sat 07 Jun | Jimmy Chongagongableep |
| After Joels lauding of the Firebird browser I gave it a go, and honestly I just dont get what the big deal is. While Im a long time Opera fan, the little utility Stroke It (unfortunate name, but its a brilliant way to bring mouse gestures to all Windows apps. http://www.tcbmi.com/strokeit/) plus many improvements in the Mozilla browser, I have been giving Mozilla (the main branch browser) more runtime on my PC so I am fairly accustomed to it, and there were two things that immediately became apparent with the Firebird branch:
-Firebird renders FAR slower than the main branch Mozilla. Perhaps this is just perception, but even using the mouse wheel and scrolling down there is a night and day difference between Firebird and Mozilla. Neither of them is as fast as Opera (IMHO).
-Firebird takes forever to start up. What is with that startup time? Ive wondered if maybe Ive had a misfire click it takes so long some times.
-It simply seems less polished. Get Mozilla and the Orbit 3+1 theme with the StrokeIt utility and you have a great little browser.
Someone might come in and proclaim that this is all crazy and Firebird is X times better than the vanilla Mozilla, and if so Id love to hear why. Whats the big deal? As it is Ive deleted the Firebird brnach because I simply dont see the point. |
| Sat 07 Jun | P Lioi | I can't say I know why we're getting different results, but I'd place startup speed in this order, from fastest to slowest:
1. IE
2. Firebird/Opera
3. Main Mozilla build (until firebird replaces it...)
Once these browsers start up, I have not noticed significant performance differences between all of these. I've run all of these on my crappy little dino of a desktop. Firebird is my default browser, but I take it YMMV. |
| Sat 07 Jun | Frederic Faure | I've been using Opera for a couple of years, and like it, despite its memory leaks and so-so support for JavaScript |
| Sun 08 Jun | Chris | Interesting. I've found Firebird to start faster than both Opera and regular Mozilla (without the preloader).
I've had to add assorted extensions to Firebird to get to the useability I've grown accustomed to with Opera and Mozilla.
I've seen assorted non-reproduceable bugs that demonstrate its v0.6 status. But even these haven't kept me from replacing Opera with Firebird as my main browser.
It seems that experiences vary quite a bit with it. |
| Sun 08 Jun | anon | People are finjding it more compelling to switch to Firebird from Moz. Joel just happened to hit his personal tipping point. For you, that might be later when Firebird replaces Moz. |
| Sun 08 Jun | Mr. Q | How about NetCaptor ( http://www.NetCaptor.com )?
It's a very good browser with tabs, has lots of features, and is based on the IE rendering engine, so all the sites work well.
It is, in my opinion, what IE should have been, if MS didn't stop developing it. |
|
| Self-evaluation | Sat 07 Jun | The Real PC |
| Do you get a self-evaluation form to fill out before your performance review? Do you actually fill it out? |
| Sat 07 Jun | Ryan LaNeve | Yes. Just got it this week, actually, and it's not optional.
Thanks for reminding me...I need to get the darn thing done! |
| Sat 07 Jun | The Real PC | How do you decide what to write? I guess the idea is to impress the boss with how good I am, while sounding modest.
I know someone will say 'Just be honest and say what you really think of yourself.' Well, that does not seem possible. What I really think of myself varies depending on what kind of mood I'm in, what's been going on, am I having a good day, etc. |
| Sat 07 Jun | Norrick | Those self-evaluation forms (and the forms that your manager uses) are WAY too vague.
More people (and businesses) need to get into the habit of setting measurable, concrete goals for themselves. We'd do away with a lot of angst, a lot of salary disparities, and a lot of dead wood if setting, and meeting, measurable goals were the norm.
It's tricky though - Joel is right when he says that people will work the metrics if they can. You have to be real creful about which metrics you choose.
Imagine if, instead of that lame self-evaluation form, you had concrete data that would simply TELL you what you had done, and how well you had done it. No convoluted self-contemplation. No procrastinating because you don't have time to think about what you're going to write. Just data.
Of course, this is just MTCW... |
| Sat 07 Jun | www.marktaw.com | You want to praise yourself as much as possible because it goes on your permenant record @ the company and future decisions involving you will be based on it - salary, bonus, position. You just don't want to go so far that your boss will have to say 'no, not really' because that will look even worse. |
| Sat 07 Jun | Christopher Wells | On mine: the beginning of the form is a self-evaluation; the middle is my supervisor's evaluation; the end is our 'objectives' for next year.
When I did this for the 2nd time (i.e. the next year), my 'self-evaluation' was about how I succeeded/failed in the objectives which were set at the end of previous year's review. |
| Sat 07 Jun | www.marktaw.com | Christopher - yeah that's what evaluations @ citi were like too... The strange thing is, the business model changed on a regular basis and your goals, at least in the lower echelons, changed several times throughout the year. If you're upper management you can just write 'reduce costs, bring in more customers' and those goals pretty much never change.*
* I've never been in upper management so I'm just making that part up to sound clever & take a jab at upper management. |
| Sat 07 Jun | Christopher Wells | Mark - by the time I was filling in my 2nd evaluation, I knew that our office was being closed and my position was being terminated: 12 years after helping to found a startup; 1 year after my first official 'employee evalation'; 2 years after getting ISO9000 certification; 3 years after being bought by a multi-national... I filled in the evaluation anyway, since they needed it: 'I didn't accomplish objective A, which was learn to support product X, because just after you made that my objective you decided to move that product to India instead of to here. As for objective B, ...'.
> 'reduce costs, bring in more customers'
I can't help but think that terminating all the salespeople first, then terminating tech support the year after when there weren't any new customers, and finally terminating development the year after that, might not in fact have been the very best way to achieve both those objectives. |
| Sat 07 Jun | Joel Spolsky | In self-evaluations there is no need to sound modest. Praise yourself excessively. Try to write your self evaluation in such a way that your boss can cut and paste it into your real evaluation. (Send it to him in email if that makes it easier). Leave out bad things, it's just ammo that will make it easier to fire you with cause.
The whole performance evaluation system is a massive joke, it's like using leeches in medicine. I'm not just ranting, books have been written about this:
http://www.amazon.com/exec/obidos/ASIN/1576752003
and of course anything ever written by Deming.
Best thing you can do is game the system, like you're meant to. Give yourself great reviews. If you're a manager, give all your employees great reviews unless you're trying to fire them. |
| Sat 07 Jun | Nat Ersoz | Take all those status reports you've been emailing to your boss every Thursday afternoon, and that forms the basis for tasks completed. All the work you've done since the last review - its there.
Then, describe how difficult the tasks were and the herculean effort required to complete the task set and how you completed each result on time and without bugs.
Additionally, be sure to document work that was beyond your typical scope: help with marketing, design/code/assistance outside your normal operations and predefined tasks. |
| Sat 07 Jun | Philo | Anyone else think that if you're going to do evaluations based on goals, twelve months is too long in the IT field? I can't think of any twelve months in my (admittedly short) career where there weren't a few curveballs that changed my direction, either based on tasking or technology.
BTW, allow me to set the bottom limit as far as evaluations - one company I worked at would gather all the management types (top three tiers of the hierarchy) and walked through the manager's evaluation of each of the employees in the bottom two tiers. After that, members of the 'audience' could speak out with comments and anecdotes about the person, either agreeing with or contradicting the evaluation.
Some *very* dirty laundry was aired - it was the most embarrassing thing I think I've ever sat through. I'll be honest- the only reason I didnt' get up and walk out is that I was completely nonplused that it was even happening.
I left the company three weeks later.
Philo |
| Sat 07 Jun | Nat Ersoz | Philo,
12 months is way too long. 6 months is fine if goals remain relatively constant. Goals vary way too much over 12 months. |
| Sun 08 Jun | Phibian | Joel wrote 'The whole performance evaluation system is a massive joke, it's like using leeches in medicine. '
I just had to point out that leeches are still used under some circumstances 'in medicine' (mainly as a treatment for venous insufficiency). This is no joke.
A quick search on the Internet brought up the following: http://mednews.stanford.edu/stanmed/1999spring/leeches.html.
So, assuming that your discriminating readers are aware that leeches are useful in certain limited circumstances, the meaning conveyed by your sentence is quite different than what I believe you were trying to convey (based on your previous writings on the topic) |
| Sun 08 Jun | The Real PC | Joel,
Why should managers give all their employees great reviews (unless they're trying to fire them)? I would think a manager would want his boss to know what a difficult job he's doing. If all his employees are great, then his job has to be easy. And the great reviews can always be used as weapons if conflicts occur in the future.
I would think a manager would want to give realistic reviews. |
| Sun 08 Jun | Christopher Wells | > Why should managers give all their employees great reviews (unless they're trying to fire them)?
Because of the metrics by which the manager's performance is measured: hiring good people, and keeping them. |
| Sun 08 Jun | www.marktaw.com | Unless the manager inhereted the people. I would expect that the manager's evauation of his employees would reflect someone in his own evaluation and in how well the project did.
So the employees become a scapegoat for a failing project. Otherwise, he has no reason not to praise them.
Anyone see that episode of friends where Rachel's boss doesn't want her to get promoted into a new job so she keeps putting rachel down in front of the review board? |
| Sun 08 Jun | Joel Spolsky | No, no, no, ...
The value of reviews is precisely zero, but the EFFECT of reviews is that if you give an employee a review that's lower than their typically self-inflated opinion of their own worth, they'll mope around for a month feeling depressed and underappreciated, and THAT has a real effect on productivity. For productive teams you need happy teams, and if you're forced to go through a stupid charade of a review, might as well use it to cheer up your team. |
| Sun 08 Jun | www.marktaw.com | Joel - not all managers are as enlightened as you are (hopefully Stephen Jones doesn't pop in on this thread and explain to us the meaning of enlightenment again). Most of them probably take the review process seriously, and go through it or have gone through it themselves as the employee. They sincerely take it as an opportunity to correct wrongs and so forth. |
| Sun 08 Jun | Stephen Jones | I see you're still annoyed with me Mark.
I'm going to pop in anyway and say that I have never met managers who 'sincerely take it as an opportunity to correct wrongs and so forth.'
I've had those who treat it as a joke, and those who treat it as a way to dispense favours or humiliate, but never have I seen the process taken seriously. Which considering how damaging it is is probably a good thing.
If the manager is OK those with the A's will be a combination of his favourites plus people who do do a good job, and the really hopeless will be down at the bottom with those the manager has had a spat with, while the middle order will be no better than random.
And if the manager isn't any good then the result will be disastrous.
You may have had other experiences of course. |
| Sun 08 Jun | The Real PC | [if you give an employee a review that's lower than their typically self-inflated opinion of their own worth, they'll mope around for a month feeling depressed and underappreciated]
On the other hand, getting a good review means you're already trying hard enough. Negative comments and suggestions about areas that need improving might cause the employee to spend some of his free time studying.
Since I got a pretty good review last year, I did not feel I had to spend my free time studying.
Of course, an _unfair_ bad review would be demoralizing.
I think Joel may be a little too cynical. Honest reviews may be the most helpful to everyone involved. |
| Sun 08 Jun | www.marktaw.com | Real PC - if you word the evaluation right, you can get them to work harder because they want to live up to your lofty opinion of them. Let's take the example of the guy who spends his weekends programming minutae.
'John Doe is extremely dedicated to the project and wants to see it succeed.'
After getting a review like that, wouldn't you want to be that guy? |
| Sun 08 Jun | Stephen Jones | ---''John Doe is extremely dedicated to the project and wants to see it succeed.'
After getting a review like that, wouldn't you want to be that guy? '----
First evaluation I ever had in my life maybe. Come the second one I'd have seen through it and wouldn't give a monkey's toss.
My immediate boss wanted to initiate an employee of the month award like they have at Macdonalds. He only gave up on it when he found that all those he tried to give it to threatened to resign on the spot if he carried the idea through. |
| Sun 08 Jun | www.marktaw.com | You might be right. Programmers are more intelligent than most, but I think a lot of people still take those evaluations seriously. |
| Sun 08 Jun | The Real PC | I took mine seriously last year. I figured that if my boss didn't like having me work for him, he wouldn't bother saying anything good about me. (On the other hand, it was his decision to hire me and he probably wanted his boss to think it wasn't a mistake. And also to make me feel good.)
But gosh, isn't there any possibility that I actually did a good job?
This year, if I get another good review I think I'll ask him for the mean and the SD (they give us grades on each project).
Another factor is that my boss seems to be an extremely blunt person who never says anything to make people feel good. |
|
| Want feedback on new computer language | Sat 07 Jun | Bill Rayer |
|
Dear Forum
Ive developed a new high level computer language, including a compiler, developer environment, layout editor, debugger, documentation and website. I would appreciate any feedback on the language, developer tools or the website itself ( http://www.lingolanguage.com ). Ive called it Lingo, and it produces Windows EXEs and is intended for desktop development. Ive tried to make it simple in the hope that beginner and intermediate programmers could do useful things with it. The new things about Lingo are:
- Automatic memory handling (allocation, deallocation) without GC.
- proper list type not using linked lists internally (quicker for large lists).
- Table data type with segmented keys, can be stored in mem or on disk. This is more than a hash table since the keys can be structured and there can be multiple keys.
- No aliasing problems.
- Compilable preconditions and postconditions.
- Includes source for the developer environment and layout editor (dialog editor).
- No legacy elements such as gotos, pointers, new, delete, manual memory handling, file handles, global variables.
- Run time structured expressions, eg x = {a, b+c(), d+1} are possible.
- Structured types can be loaded/saved from file directly, using different file formats. Eg you can load a text file into a list of strings, or save a table to an XML file.
- Module level exception handling.
- Uses RC/DLG files from C/C++ for layouts.
plus the normal features you get in most other languages.
Although comparisons are difficult, Lingo would probably seem most like a mix of Eiffel and VB3. Ive tried to keep it easy to use (IMO VB3 hit a good balance between usefulness and complexity), also theres much good stuff in Eiffel that was never adopted.
Anyway, I welcome all feedback on the language or the website. Lingo is at a late beta/release candidate stage, and Ive betad it locally and tested it since February under Win 95/ME/NT4/XP. The website has a download that doesnt require registration or passwords etc, and there are screenshots!
Finally, this isnt indended as an advert. While its true I would like to sell copies of Lingo, I would rather have ideas than money from the readers here. Anyway you cant buy it because I havent got that part of the website working. Probably you saw my previous post about Paypal.
Regards
Bill Rayer |
| Sat 07 Jun | RAD Booster | Wow! I see you've got RAD development.
But quite frankly... what I look for in a language is very high productivity when developing desktop apps.
I don't mind paying $1000+ for Borland Delphi, because it is extremely productive.
Productivity is, in my opinion, the killer feature of a today's programming language.
Look at the very rapid spread of Perl - it was very successful because it was very productive.
If you show me something more productive than Borland Delphi, you can have my 1000 $. |
| Sat 07 Jun | X. J. Scott | bill,
The programming language Lingo is a registered trademark of macromedia. You'll want to pick another name. |
| Sat 07 Jun | Bill Rayer | Thanks for the feedback.
I haven't any definite thoughts about pricing, except as cheap as possible without seeming cheap.
Regarding TM issues, I've conducted prior art searches in group 9 in Australia and the UK (I'm an Australian/UK national). In UK Lingo is held by Linn Micro #2174989 and in Australia Lingo Language registered 591171 in 1992. Anyway I've had long discussions with Patent & Trademark attorneys on the legal aspects, and it gets boring.
I'm more interested in feedback on whatever technical merits Lingo may or may not have. I was really looking for feedback on the website or the language itself. |
| Sat 07 Jun | Daniel Shchyokin | Hi, put the language reference on the site, I don't see it there |
| Sat 07 Jun | Punter | Threading? |
| Sat 07 Jun | Big B | Code samples on the site. I moved on after not finding any. I noticed you can download a demo, but I'm not that interested yet. |
| Sun 08 Jun | Bill Rayer | The LRM is about 1000 pages and I haven't put it on the site. Would it help if I put the smaller manual on the site (Learning Lingo)?
Or should I put the Language Report chapter of the LRM, which is a technical in-depth view of Lingo?
Regarding code examples, look at Tech Support-Getting Started - 1 and 2. These are about 10 lines so as not to frighten people.
If you'd like a larger example, tell me what you'd like done and I'll write it. |
| Sun 08 Jun | Ged Byrne | Bill,
As you know, I've played with this for while.
Workflow is letting the program down at the moment.
I want to write a program where I enter a name, hit the hi button and a message box says 'Hello ' back.
So I open up the IDE and go New Dialog. I drop on a Text Field and a Button. Change button label to Hi and hit run.
A msgbox says 'It is not possible to use the 'Run-Start' command. '
|
| Sun 08 Jun | Ged Byrne | So,
I've finally figured out by trial and error that I wan to Use New Program instead of New Dialog and I've created my dialog again.
Hit run and I've got a dialog. Now I want to make the button do something.
Nothing on right click, I double click and I'm taken to the main function. I know all about winmains so I know what's going on. What percentage of you market will though? VB programmers know about on and Java programmers know about listeners.
There is no help for EventID, but I do see Event List.
This gives me the Event List topic and I finally find the click event.
The whole process lacks affordance.
The final program looks like this:
Lingo 1 module App1
Callback Function main (In EventId:Integer
ControlObj:control
Key:Integer
Out Cancel:Boolean)
contents
Callback Function main (In EventId:Integer
ControlObj:control
Key:Integer
Out Cancel:Boolean)
code
select EventId
case CLICK_EVENT =>
if ControlObj = Me.PushButton1 then
call Msgbox ('Lingo Greetings', 'Hello ' + GetText(Me.Edit1))
end if
end select
end function
end module
A lot of trial and error was involved, which wasn't helped by slow comilation.
Hope the comments are taken in the constructive manner they are intended. I like the idea of Lingo a lot. |
| Sun 08 Jun | Ioao | The trend on GUI is to be somewhat independent of the native option.
ex: Swing, SWT, wxWindows, GTK+, QT, XUL, Windows.Forms, CLX, and it certainly is very difficult to develop a GUI toolkit comparable to those. Perhaps it would be better for your environment to support one of those.
Just thinking aloud :-)
Good luck |
| Sun 08 Jun | Bill Rayer | Hi Ged
Thanks for the feedback. It is appreciated, and is much more useful than the bland 'looks great' type of comments. It's an experience for me looking at Lingo through someone else's eyes!
I intended File-New-Dialog for (i) adding a new dialog to an existing program and (ii) creating a new RC file on its own. The way you used it (create new dialog and press run) did not occur to me, though it's 100% reasonable. To make it work, I could disable File-New-Dialog until a module is open, or I could have the Run command realize there is a dialog without a main module, and prompt to generate a main module. I'm not sure which is best.
There's a similar situation. If you have a C/C++ RC file, you can use Tools-Explore resource file to load the RC file, but if you press Run you'll get the same error message. Basically the compiler is unhappy because it has dialogs and no code.
Perhaps auto-generating a main module is the way to go.
To fix the confusing parts of the help file, I'll change it so that 'Dialog' and 'How to create a dialog' link through to a compilable example.
Regarding the window functions, I was unsure whether to have a single function with case options for each event (like now), or to have event handlers in the form . , so that your event function would end up something like this:
event Function main.Click_Event (In ControlObj:control
Key:Integer
Out Cancel:Boolean)
code
if ControlObj = Me.PushButton1 then
call Msgbox ('Lingo Greetings', 'Hello ' + GetText(Me.Edit1))
end if
end function
Finally you should use the Command event for Pushbuttons and menu choices. Type Help-Index in the IDE, type 'command event', when viewing the topic click the 'Example' button. This copies the example to the clipboard, you can paste it in the IDE and compile it.
Looks like I know what I'm doing on Monday now :) |
| Sun 08 Jun | Phillip J. Eby | Um, if you have automatic memory management, but no garbage collection, how do you deal with garbage? |
| Sun 08 Jun | Ged Byrne | Bill,
At the moment you have 4 options on new:
Text File
Module
Program
Dialog
Of these Program is given no special importance. Text file is the only one to have a short cut key. It seems to me you are take an implementation rather than task based approach.
I don't think the problem is that the user can press run when they are working on a resource file. If is just that for the uninitiated the path taken - File New Dialog - seems just as appealing as the correct File New Program.
As you say, in C/C++ you get into the same postion by going Tools/Explore. By the time somebody is using the advanced features on the Tools menu they should be able to deal with the error message.
However, the File/New menu is the starting place for a Window user.
Imagine if Word had the command for New Macro on the File menu instead of being hid away on Tools. How many unsuspecting newbies would end up typing their memos in the VB editor, complaing because they kept getting Syntax error messages. |
|
| The Let's Make a Deal Paradox | Sat 07 Jun | Erik Lickerman |
| http://www.stat.sc.edu/~west/javahtml/LetsMakeaDeal.html
This one drove me insane for about a week. I went through all the classic stages of grief (except for bargaining). In the end, this is one of the best examples I have found of how the human mind really sucks at probability. In fact, when I first read about this in the early nineties the story was that initially mathematicians from real universities (e.g. Harvard) wrote letters claiming it couldnt be true. Then they did the computer simulations...
Not exactly software project management but I thought the other hyper-nerds might be interested |
| Sat 07 Jun | Stephen Jones | It's called the principle of limited choice. Every good Bridge player knows it.
Here's a common application: you have the AK10in one hand and six other cards of a suit in total between you and dummy, leaving four cards out. You play the King as the canons demand and the hand after you drops the Queen and the other hand drops a low card. Now you enter dummy again and lead a low card, the hand before you plays low and you have the choice of finessing the ten and hoping the hand after you started with the singleton Queen or playing the Ace in the hope he started with the doubleton Queen, Jack. It would appear at first sight that the odds are equal, but in fact they are two to one in favour of betting on the singleton queen and taking the finesse. The reason is that if he started with the doubleton queen, jack there is a fifty per cent chance that the would have dropped the jack the first time round instead of the queen, whereas with the singleton queen he would have to drop the queen every time.
It does appear counter-intuitive to start with though. |
| Sat 07 Jun | Philo | I've recently been struggling with something far more basic:
The odds of flipping a quarter and getting heads ten times in a row is 1 in 1024. But if you flip heads nine times in a row then the odds of getting heads on the next flip is 1 in 2.
Philo |
| Sat 07 Jun | Stephen Jones | Philo, why is this causing you problems? Or are you being sarcastic? |
| Sat 07 Jun | anonymous | >The odds of flipping a quarter and getting heads ten times in a row is 1 in 1024.
The odds a flipping a quarter ten times in a row and getting HTTTHTHTTT is also 1 in 1024. |
| Sat 07 Jun | Philo | I'm not being sarcastic - if I've flipped a quarter nine times and gotten nine heads in a row, I find it difficult to believe that the next flip can easily be heads. To me it's counterintuitive.
I mean, intellectually I understand why, but it doesn't 'feel' right.
The discussion came up a while ago because a friend used to bet roulette on the binary choices - red/black, odd/even, etc. His strategy was to wait until there were four in a row of one, then bet the other, and keep doubling the bet until he won.
He stopped when someone told him the quarter logic, because he realized there was no mathematical reason he couldn't lose big time.
Philo |
| Sat 07 Jun | S. Tanna | If you get 9 heads in a row, as opposed to a mix of heads and tails, doesn't it mean it's more probable that the coin is biased. |
| Sat 07 Jun | Stephen Jones | In real life of course if you get nine heads in a row you can bet your bottom dollar the tenth will come heads too, since pure randomness rarely happens.
Which brings me back to Bridge. The odds are there and as in poker you get messed up quick if you don't know them well. Yet they found that in many tournaments the actual distributions were much flatter than the norm. The reason was that the cards were not being shuffled properly from the previous night, and that made for a flatter distribution. With a computer generated distribution you got a greater chance of freak hands, and then people complained the cards hadn't been shuffled properly! It was just counter-intuitive to think that good shuffling produced freak hands, and bad shuffling produced flat hands. |
| Sat 07 Jun | Erik Lickerman | Actually, if you flip a coin 200 times the chance of getting say, a run of 5 heads in a row, is pretty high. A friend of mine, who also posts to this list sent me an article on that a while ago. This knowledge can be used to detect falsified data sets. |
| Sat 07 Jun | Stephen Jones | And seeing we are on mathematical arcana how about the Birthday theorem.
On average how many people do you have to invite to a party so that there is a more than even chance that two people have the same birthday?
It actually is the theory used to determine the reliability of parity chips since you use the same mathematics to work out the chance of two bits being filipped at the same time. |
| Sat 07 Jun | Philo | Erik, for testing for randomness I recommend Benford's Law:
http://www.rexswain.com/benford.html
Philo |
| Sat 07 Jun | S. Tanna | Ask a friend to draw a spread of random dots on a piece of paper.
Write a computer program to do the same thing using any reasonable random number generator
Compare the results. |
| Sat 07 Jun | Danil | Well, my distortion of the intuitions of probability is all screwed up. Grandfather was a professor of economics, and began one of his lectures with a demonstration - given a true coin, he would proceed to flip it such that it landed heads 50 times in a row.
Useful skill, that. |
| Sat 07 Jun | Christopher Hester | I believe Erik was referring to Benford's Law. |
| Sat 07 Jun | Stephen Jones | I used to play for a chess team whose captain used to toss half-crowns in the navy for bets, and of course alway won.
We would put the four most attacking players on the odd numbered boards so they got white, and the three defensive players with black.
We won the toss every match, and won the league. The funny thing was nobody noticed! |
| Sat 07 Jun | X. J. Scott | Tanna,
I know what you mean - the person will create an even spread of dots, whereas the random process will produce clustering.
So you are saying that a lack of clustering suggests manipulated results. Very interesting. |
| Sat 07 Jun | www.marktaw.com | 'Given a true coin, he would proceed to flip it such that it landed heads 50 times in a row.'
Yes it is. It's sort of like baseball players knowing what kind of pitch is being thrown by looking at the direction of the spin of the threads on the ball as it's in midair.
In the book 'A Random Walk Down Wall Street' he gives the example of a slimy salesguy predicting wether or not a stock will go up or down.
He sends 500 people a letter saying it will go up. He sends 500 a letter saying it will go down. He then sees what actually happens. He then discards the half he sent the wrong prediction to and send 250 a letter saying a stock will go up and the other 250 saying it will go down.
Eventually, a subset of the population will think he's a genius.
Similarly, he says that if you gave 1,000 stock brokers a coin and had them flip it until they got tails, after 10 flips you'll end up with a lot of people out of the running, but a handful of guys who have the golden touch. The thing is, with the stock market, 10 right moves and everyone will give you their money. |
| Sat 07 Jun | Erik Lickerman | MArkTaw- exactly dude! Stock brokers, like everyone else, tend not to think of themselves as points on a probability distribution. I have always wanted to check the records of some of the top stock gurus like Warren Buffet. My guess is that most of his gains would be attributable to a handful of stocks and that a good stats guy would discover that he is a perfectly acceptible outlyer in a distribution of random stock pickers. That is over a period of 40-50 years given a million Chimps picking stocks, you would expect a handful of Warren Buffets, assuming they adopt the buy and hold strategy. |
| Sat 07 Jun | Stephen Jones | Buffet insists he only buys stocks when he understands the business.
Considering the way pension fund managers and others threw money to the winds during the dot.com boom, that in itself is enough to put you near the top of the league. |
| Sat 07 Jun | Philo | Christopher - No, what Erik is referring to and Benford's law are applied the same way, but they have vastly different roots.
The net rule appears to be 'data that looks truly random has probably been faked'
The coin toss issue is based on the idea that truly random data produces clustering.
Benford's Law is based on numerical probabilities based on the incremental nature of counting.
I think.
Philo |
| Sat 07 Jun | Erik Lickerman | Does anyone know where to get access to a database containing all the closing prices of all the stocks on the NYSE and or NASDAQ for the past 50 years? I kinda want to try this now. My model is a buy and hold strategy with randomly selected stocks. I figure pick five stocks at random on a random day of the year. Same day the next year assign a 10% chance that I want to dump a stock that year (i.e. assume I think I am a pretty good stock picker). If I dump a stock, then I immediately buy a new random stock and do the same thing every year. Dividends will be automatically reinvested in the shares they came from.
The question is, how many chimps will it take before I generate a few Warren Buffets? You have to figure that we would learn of these random outlyers because of the American publicity aparatus. |
| Sat 07 Jun | B# | I don't have a site but I read an article a year or so ago that said they had chimps (literally) throw darts to select stocks. They competed against the best Stock Gurus and won 3 or 4 years in a row. Hmmm. |
| Sat 07 Jun | www.marktaw.com | B# - not quite, it was some brokers who put the WSJ stock pages on the wall and threw the darts. I think those stocks are still performing at about market levels.
You can buy previous stock closings, but you can also get it from finance.yahoo.com if you can write a script to extract that information stock by stock day by day. Well, I think yahoo only keeps a weekly or monthly tally.
I know because I had an idea for an experiment involving stocks that I won't go into here... heh heh. |
| Sat 07 Jun | B# | I would have swore it was monkeys! Oh well, primates. |
| Sat 07 Jun | www.marktaw.com | Definately primates. |
| Sun 08 Jun | Steve C. | On the original topic, there's another way to make the 'Let's Make a Deal Paradox' seem more transparent (at least to me):
Suppose instead of 3 doors, there were a 1000 doors, with one of them having a prize and 999 having chickens. Suppose you select a door then the host opens 998 of the remanining doors (leaving one alone) and asks if you wish to switch.
Told in this way, it seems clear to me that the chance that you picked a chicken door in the beginning is very high, and the chance that the one other door contains the prize is also very high, so it would seem foolish not to switch.
But again, that's just me. |
| Sun 08 Jun | Danil | A better way might be this. A chooses a door, and is dismissed from the room. M reveals all the doors; if the prize is in room three, he moves it to room two - otherwise it stays in place. Now he closes doors one and two (leaving three open) and has A ushered back into the room. |
| Sun 08 Jun | Whapow! | Whlie probability says you switch doors after one has been opened, it also says you probably won't need to worry about it, since the option to switch was offered less than half of the time... |
| Sun 08 Jun | Ethan Herdrick | Erik -
I had the same scoffing, 'That can't be true!' experience with that puzzle, too. The variation mentioned by Steve C. was what finally made me repent and submit to the truth.
In fact this was the event that made me appreciate Maralyn Vos Savant, that woman who writes a column for Parade magazine. She got this right and endured a lot of grief from experts who thought she was wrong and an innumerate fool.
Hey, how's Buggs? |
| Sun 08 Jun | Erik Lickerman | The high IQ lady was indeed the one who brought this up but my recollection is that her explanation was actually wrong. I think she may have stumbled into it. On the other hand I read her explanation in the NYT so it was at least second hand and the author of that article may not have understood it. |
| Sun 08 Jun | Ethan Herdrick | Here's that article in the NYT:
http://216.239.39.100/search?q=cache:Dyd4-ihd3kMJ:www.dartmouth.edu/~chance/course/topics/Monty_Hall.html+&hl=en&ie=UTF-8
The only nitpick they have with Vos Savant (is that a real name?) is that she failed to specify that the game show host must be required to flip a door. If it's up to him, then you have to figure out if he likes you or not, etc. But obviously she has to conserve words in a column in Parade. |
| Sun 08 Jun | Stephen Jones | The strange thing, as I said before, is that this has been known by Bridge Players for at least 40 years. Terence Reese, published it in 'The Expert Game' which dates back to the 60's I think.
Perhaps we ought to start a JOS cards club to improve our Math |
| Sun 08 Jun | www.marktaw.com | Doesn't windows come with a network bridge game built in now? |
| Sun 08 Jun | Stephen Jones | There are plenty of places you can play Bridge on the Internet, though I suspect it would be somewhat of a slow process compared to the real thing.
I haven't noticed it on XP; it would be bye-bye to productivity if it's on the machine at work.
In general, unlike chess software, Bridge software is atrociously bad. Whether this is because chess software has had tents of millions of dollars and some of the world's best brains invested in it since the 1950's, or whether it is because the co-operative nature of Bridge is anathema to computer programmers is a moot point. |
| Sun 08 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | +1 for the sad state of Bridge software. I was determined to learn, and read a few books (the best of which I thought was Bridge for Dummies, but still, none of them treated it like an engineering problem). Nobody local to play with, so I looked for computer opponents, and the software is terrible. I suppose I could play on Yahoo, but Bridge is such a partner focused game that I'd find it hard to play against people of such widely varying ability.
Oh well. :-p |
| Sun 08 Jun | Philo | Two thoughts on Windows cards software:
1) Anyone notice they actually fixed solitaire? When you win a hand, the cards bounce off the screen. In Win95, the bouncing got faster as the CPU got faster. When I installed Win2k on a 2GHz machine, I gleefully fired up Solitaire to watch how fast the cards sprayed and...
The bouncing was back to a leisurely 'normal' speed, and is obviously set to the clock instead of the CPU now.
I am amazed that someone in the Win2k development effort actually went back into the Solitaire code and took the time to 'fix' it.
2) I'm still convinced that Windows Hearts cheats. :-)
Philo |
|
| Virtual Server Implementations | Sat 07 Jun | Ziktar |
| Just saw over at Slashdot some information about University of Michigan implementing virtual servers for security; pretty much finding the same stuff as Joel guessed...
http://www.eecs.umich.edu/CoVirt/ |
| Sun 08 Jun | Steve | I like the idea, but what of performance? Can VMWare perform at the production level? |
|
| Dell Desktop Opinions | Sat 07 Jun | Undecided Yet |
| Guys..i am planning on buying a new desktop and want to decide between two...
Dell Dimension 4600 with Pentium® 4 Processor at 2.80GHz w/800MHz front side bus/ HT Technology
&
Dimension 4600
Pentium® 4 Processor at 2.40GHz with 533MHz front side bus
Primary goal is do .NET learning/development along with other standard stuff..I would also like to run Oracle/MS-SQL server.
Have you used the above systems and how would you rate them...the difference between them being $200 which for a student like me is a lot.
Please let me know.
Thanks
Undecided Yet |
| Sat 07 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | I wasn't aware that the 2.8GHz processor offered HyperThreading.
Your money is better spent on more RAM and faster disk than it is on a faster CPU, in my opinion. |
| Sat 07 Jun | www.marktaw.com | BUt adding RAM is trivial compared to replacing a CPU. |
| Sat 07 Jun | Philo | I'm doing all my .Net development on a dual P3 800MHz machine with a SCSI bus and 10k RPM drives. It is most definitely faster than my wife's computer which has a 2.4GHz P4 but a 7200 rpm IDE hard drive.
I'd put my money in (in order):
1) RAM. For .Net I wouldn't get less than 1GB
2) Multiple SCSI drives
3) 10k drives (15k if possible)
4) CPU
Philo |
| Sat 07 Jun | Dan Maas | I'd put CPU over SCSI drives. SCSI really breaks the bank and modern IDE hardware is virtually as good. The Pentium 4 is really underpowered clock-for-clock; I'd get the fastest speed you can afford.
One option to consider is to deal with Dell's business division and get a 'Precision' class workstation. The price should be basically the same, but I think buying from their business division plugs you into a much better support network. (I have always gotten quick, competent, native English-speaking tech support on my Dell workstations, contrary to many others' experience). Also the business workstations are probably going to include a lot less annoying preloaded software than a consumer machine. |
| Sat 07 Jun | www.marktaw.com | Yeah IDE is much cheaper than SCSI - building my audio workstation, I went IDE because the throughput is very good and it's just so much cheaper.
Why not build your own. =) I had a lot of fun doing that. |
| Sat 07 Jun | Stephen Jones | Building your own costs about 30% more. The reason is that the cost of assembling a computer is minimal. Dell actually have the time down to a few minutes or less. The savings in bulk buying of components mean you can't compete on price, and buying components from different places means you will find it difficult to pin down responsibilty for used parts. |
| Sat 07 Jun | Philo | In addition, building your own puts you in the potential position of getting some minor hardware or driver conflict that you'll spend a week tracking down.
My last homebuilt system (this one) wasted two weeks of my time because the sound card I'd bought (which stated it was fine for dual proc systems) turned out to be NOT fine for dual CPU systems. In fact, the only thing that got me past the problem was Creative Labs finally coming clean and admitting there were contention problems with the board in dual proc systems.
From now on I'll pay someone else to ensure the system works right.
Philo |
| Sat 07 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | That's ridiculous. Dell is way overpriced, unless you're buying a refurb. I've yet to see any machine they build that I couldn't hand build cheaper, and end up with a more expandable machine (don't forget that Dell uses proprietary motherboards and cases, so don't expect to be able to swap out the motherboard unless you also willing to invest in a new case). |
| Sat 07 Jun | Philo | People really don't get SCSI, after twenty years...
'IDE drives are just as good as SCSI drives'
For single-drive systems, they may be comparable. That's why I don't build single-drive SCSI systems. I build 3-drive systems. One drive for the OS, one for applications, one for data.
Remember that the SCSI drive system is intelligent - copying files from one drive to another takes zero CPU cycles, and is damn fast.
I've got two systems in the house with 2.0GHz CPU's and 7200 rpm IDE drives to compare this system against, and like I said - it's the fastest system in the house.
Philo |
| Sat 07 Jun | Philo | Brad- I've never swapped out a motherboard without rebuilding the entire system. Generally when I get a new motherboard it's because new technologies have reached critical mass and there are a significant number of reasons to do so (new CPU architecture, new memory, new graphics architecture, new I/O, etc)
So that argument doesn't really work for me. The rest of a Dell system is industry standard.
Philo |
| Sat 07 Jun | Stephen Jones | Brad, have you included the price of the bundled software when you claim you can build much cheaper?
Now you may not want the software, but that's another matter.
I don't know about the US but in the UK the cheapest way to buy a PC is to buy one pre-assembled from a secondi tier manufacturer through mail order. I have yet to see the price matched buying parts individually. |
| Sat 07 Jun | Stephen Jones | Philo; the point about IDE drives is that they are probably the same quality as SCSI and somewhat cheaper, but you don't get the best quality drives in IDE.
For a desktop though SCSI is overkill. |
| Sat 07 Jun | Philo | Stephen, it depends on the use the desktop is intended for, true?
For example, for video editing or heavy server-based development... ;-)
Agreed that for playing games or email/web, it's massive overkill - that's why the two other boxes are IDE.
Philo |
| Sat 07 Jun | Stephen Jones | How great is the speed difference?
You must remember the important figure is the sustained speed not the burst speed. And sustained read speeds are well below the carrying capacities of the IDE bus.
With video editing the size of the files are enormous. Do you really want to buy a 40GB SCSI drive just for one movie?
As I said before, if you want the best drives you have to buy SCSI because they don't make them in IDE. I doubt if they are worth it any more for anything but servers (and certainly not file and print servers or web servers either). |
| Sat 07 Jun | Philo | Actually the most important speed is the perceived speed. ;-)
With multi-tasking in Windows, you're dealing with burst speeds, cached speeds, and sustained speeds. But don't forget that with a multitasking system an additional issue (rarely touched by benchmarks that I've seen) is *simultaneous* disk operations - copying a file from one folder to another is the best example of this.
On IDE, you have to read from a section of the disk, switch the interface, then write, then switch back, read, switch, write...
On a well designed SCSI system, if you're copying the file from one disk to another, the OS issues the command and the SCSI system takes over, streaming the data from one disk to another as fast as the drives can muster.
Like I said - I don't ever perceive my hard drives in action. 99% of the time my system simply responds to whatever I do. I do *not* have that perception on any single-drive IDE system, where I am often waiting for a hard drive event to finish.
Pretty much subjective, honestly, but backed up by sound engineering reasoning.
Philo |
| Sat 07 Jun | Stephen Jones | You're absolutely correct about this one, but how often are you copying files from one disc to another?
Now that there are motherboards with four IDE channels, I would have thought you could have got rid of much of the problem by placing the target drive on another channel.
I had to investigate SCSI versus IDE for a CAD lab at our new training center. The feedback I got was pretty unanimously that IDE was good enough, and that was eighteen months back. |
| Sat 07 Jun | Philo | Personally, I think SCSI is still suffering from FUD of 10-15 years ago when setting up a SCSI chain was not exactly easy. It's still not as plug n' play as IDE.
Of course the pricing is the result of popularity...
So what I believe - those who insist IDE is 'good enough' are those who were scared of the complexity of the SCSI interface who now feel vindicated that IDE is actually somewhere within the realm of SCSI performance.
And I'll say it again - all I can offer is my empirical experience: three PC's - one is dual P3/800 with a SCSI chain, the other two are P4 2.0+ GHz with a single IDE drive. The box with the SCSI drives 'feels snappier' than the other two. In fact, I can generally make the call whether a workstation is IDE or SCSI after just ten minutes of working on it. ;-)
My overarching point - if you're spending money on the system you plan to spend 8+ hours/day on, then spend an incremental amount more for a quality drive system.
Philo |
| Sat 07 Jun | Dan Maas | I fully understand that SCSI is superior to IDE. It's just so much more expensive it doesn't make sense for low/mid-range workstations (150GB IDE storage = $150, 150GB SCSI storage = $800 disk + $200 controller card = $1000!). That essentially doubles the price of any low-end machine.
With hard disk reliability going the way it is, I'm not building any more systems without a mirrored pair of primary disks. Then it's $300 for IDE vs. $1800 for SCSI (assuming software RAID, if you want hardware RAID, which most motherboards have for IDE, it gets higher). Against SCSI is unquestionably better, just probably not worth the 5x-6x price increase. |
| Sat 07 Jun | Stephen Jones | The people who told me to use IDE drives for CAD were people who had previously worked with SCSI drives.
Frankly the only way I can now tell which machine I use is at boot up; the W2K machine takes ages.
A thing to remember is the decreasing relaltive advantage of speed as absolute speed increases. Let's say Word took a minute to load and you used ti ten times a day. You would spend forty hours a year waiting. Now you double the speed and you've saved twenty hours a year, which even at a low dollar rate of $20 an hour is enough to justify some extra hardware. Now imagine Word takes five seconds to load. You now spend three hours a year waiting for Word to load, and if you doubled the speed you would save one and a ahlf hours a year. Except you are no longer loading Word ten times a day because you have loads of memory so you just fire it up with the first document and then leave it in the taskbar, so in fact the total time per year is twenty minutes, and your savings by doubling the speed ten minutes. Your productivity would be increased much more by a more silent fan than a double speed CPU. |
| Sat 07 Jun | www.marktaw.com | In the audio realm where I hang out, most people go with IDE - and this is for 16+ tracks of uncompressed 10 megabyte per minute CD-quality audio, or sometimes DVD audio which is closer to 20mb per minute.
If your needs go beyond what IDE can give you, you can bump up to RAID cheaper than SCSI. RAID writes at the same speed, but reads much faster since it can read different bits from either disc. |
| Sat 07 Jun | g'vich | I think the original poster was wondering if .4ghz, 800 mhz fsb and hyperthreading was worth $200.
If $200 is a big deal, I'd personally save it and spend a little on ergonomic input devices and ram. It's likely your incremental builds will take < 1sec no matter what, whereas you'll have docs, a vid, filesharing, etc running while compiling. You definitely do not want a crappy monitor, mouse with a ball that sometimes jerks, a keyboard with a bad feel, or hitting swap. |
| Sat 07 Jun | www.marktaw.com | 'I think the original poster was wondering if .4ghz, 800 mhz fsb and hyperthreading was worth $200.
If $200 is a big deal, I'd personally save it and spend a little on ergonomic input devices and ram. '
But in 6 months when he has another $200 to spend he can buy that RAM and that trackball... A monitor, or CPU are going to be more expensive to begin with and you can't add so much as replace them, so you throw the initial investment away.
So I'd be more inclined to go for the items that can't be added to up front, and then add to the items that can at a later date. |
| Sat 07 Jun | g'vich | You mentioned that earlier Mark, but what apps does a student have that are cpu-bound? Compiling small programs is very fast no matter what, especially if you use incremental compiles.
Of course, to get the best of all worlds, I would probably order the minimum Dell ram and no speakers, and buy those from pricewatch.com. The difference in price between his 2.8 and 2.4 ghz machines is then $130. Close to the cpu street price difference. If he has a university job @ $8/hr, that's about 16 hr of pay. A little ramen instead of pizza, a few extra hours of work, and it's paid off.
Still, mind the ergonomics. Display, mouse, keyboard, chair. More important than .4 ghz and hyperthreading mumbo-jumbo. |
| Sat 07 Jun | Philip Dickerson | If you're going to buy a Dell system and you're limited by a student's budget, you might want to also check out the Dimension 2350 desktop (Pentium 4 2.20GHz with 17' monitor, and it even includes a DVD-burner/CD-burner) for $600 - see:
http://www.dell.com/us/en/dhs/offers/specials_3x_special61.htm
CPU speed is not critical these days - 2.4GHz or 2.2GHz is more than sufficient, and I don't think the 800MHz bus will provide much noticeable increase in speed in real-life use. If you consider the Dimension 2350 model, you should definitely add more memory (512MB [$100 extra] or 1GB [$230 extra]).
[Ignore the discussions about SCSI drives over IDE drives - those arguments are so old and may have been true a couple of decades ago; give me a modern fast, quiet IDE ATA/133, 7200rpm drive over SCSI any day, this century.]
I have never owned a Dell system, so I can't personally rate the quality, reliability, etc. |
| Sat 07 Jun | one programmer's opinion | Note: I didn't bothering reading the other posts here.
I bought a Dell Dimension 4550 2.6 Ghz PC about 4 months ago simply because of the price. I bought the unit without a monitor and the minimum amount of RAM (128 MB). I purchased additional RAM from www.crucial.com because it was cheaper to do so. Total cost was $640.
Imo, what you need to do is check for deals. Dell has both a business unit web site and desktop unit website. The two groups compete against each other. Don't forget to check for coupon deals -- you will find them advertised all over the web. Just use Google.
Another place to get opinions is on Dell's own support forums. The people there usually know where to find the best deals on particular Dell products. |
| Sun 08 Jun | www.marktaw.com | You're right, I am repeating myself. I just saw no compelling arguments against.
Given that a 3 year old computer reaching the 'creak by' point by now, depending on what it is you do with your computer, I always think you should go for the faster computer if the price difference isn't too big.
By the time Longhorn comes out, it'll be designed for 3+ghz systems anyway. As will lots of other things.
This is the difference between getting a 1ghz computer and a 1.2ghz computer, etc. etc. a couple of years ago. It's not a monumental difference, but I'd still rather have the 1.2 today than the 1.0. |
| Sun 08 Jun | Philip Dickerson | Mark, when systems were slower, I used to follow your philosophy of getting the fastest CPU available and skimping on (or waiting a few months for) something else (more memory, larger hard drive, etc). I think this was the optimal approach when choosing between 33MHz and 66MHz; or between 333MHz, 450MHz, and 500MHz; and probably even between 800MHz and 1.0GHz.
However, now I personally consider the 'knee' price for CPU (that is, the maximum CPU speed before the prices start to take a much bigger jump) when choosing CPU speed. Recently, when I replaced my home system, the price difference between 2.0, 2.2, and 2.4GHz was slight, but the price for 2.66GHz was significantly more than 2.4, and the price for 2.8GHz and then 3.0GHz were dramatically higher (many hundreds of dollars). [The prices for those speeds have come down somewhat since then.] I bought a 2.4GHz system, and I find it to be incredibly fast (and I don't think I would have noticed much difference between 2.0 and 2.4GHz); I use the system for programming (Visual Studio), digital photo manipulation, SQL Server, and Office (specs, presentations), as well as less CPU-intensive uses such as email and the web.
If you're comfortable opening up the system box and installing your own memory, then 'One Programmer's Opinion' has a godd recommendation to purchase additional memory from crucial.com. Crucial is currently selling 512MB for the Dell Dimension 2350 for $65. Crucial sells high quality memory (and I have bought memory from them for a few different systems over the years, including my current system); beware of buying the cheapest memory you can find - I did that once and had intermittent problems (crashes, corrupted files, etc) probably because the memory speed wasn't as high as claimed by the seller, I replaced the memory with Crucial parts and all the problems stopped. |
| Sun 08 Jun | www.marktaw.com | I see what you're saying. The difference between 2.4 and 2.8 is a 0.167% increase in speed and not worth $200. OTOH, the FSB is 50% faster, and has hyper threading.
In several years, the 0.167% difference won't be as big as the difference between a 233mhz and 433mhz machine, so he might as well save his money.
Since the money is a big deal, unless he's a fan of hyperthreading, why not just go for the cheaper machine. |
| Sun 08 Jun | Stephen Jones | I agree with you on principle Philip but I would say the the CPU began to lose importance well before you say it. My work machine is 2.0Ghz, my laptop is 1.6Ghz and my home machine is 733Mhz and frankly I have never noticed the difference, though I am not a programmer. My old laptop was 366Mhz and I only replaced it because I thought a repair it would need would cost too much.
Memory used to be the real need, but it has got so cheap that it doesn't matter unless you're creating streaming video or validating 10,000 line html pages (which was the only time I ever hit the swap file on my desktop which had 256MB at the time). In fact people are buying much more memory than they need because they still remember when they didn't have enough, just like the sons of sweat shop workers in Cheetham Hill would keep all lights on in their posh Whitefield homes just because they liked the feel of not having to worry about the cost any more. Last time I went to the computer shop I bought 256 RAM and a new mouse. Guess what cost more!
Gamers go for the fastest CPU's. For normal users the thing to do is to look at the motherboard. If you buy the chip just before the specifications for the motherboard change then you have to change both, but if you buy the first chip that comes in with the new motherboard, then you just wait a few months until a better chip than that $600 chip you thought of goes down in price to about $50 because all the other chips are using the new motherboard.
Changing a chip is simply a hardware change, and is not even all that difficult. Changing a motheboard brings all kind of software problems with it that you are really better off avoiding. |
|
| OO benefits - a counterexample. | Fri 06 Jun | Ori Berger |
| In light of a recent discussion of OO benefits on this board, I would like to give a counterexample:
Theres a good introduction by Thomas Niemann to Operator Precedence Parsing; This is a technique to parse arithmetic constructs with precedence rules, e.g., to properly parse x^2+y^2 as (x^2)+(y^2) rather than, say, (x^(2+y))^2.
The introduction includes code in C, C++, VB and K. The C++ is standard in how it uses OO. Yet, it is significantly longer than the C code (almost twice as long), and gives no advantage as far as I can tell. Personally, I find the C code easier to read, and I suspect that it also runs faster (but I wont be placing any bets on that).
This is more or less my real world experience - that, with few exceptions (GUIs being the most notable), procedural code with a hint of OO is shorter, easier to read, easier to maintain and simpler than code based on industrry standard OO practices.
Do you guys and gals have real world examples that demonstrate OO benefits outside of GUI? By demonstrate, I do not mean yep, this system is OO and it works and it was easy to write, which is anecdotal at best and from which nothing can be generalized. Rather, I mean two systems, using essentially the same inner workings as far as bit moving is concerned (i.e., same algorithms, comparable data structures etc.), written around the same time, one using a procedural language (e.g. C) and the other using an OO-heavy implementation in an OO language (e.g. C++) -- and in which the OO system is arguably better in some sense?
And please try to compare oranges to oranges; Comparing C to Python is NOT ok; Comparing OO python to procedural python, is good. |
| Fri 06 Jun | Ori Berger | Forgot the link:
[ http://epaperpress.com/oper/ ]
Silly me. |
| Fri 06 Jun | Philo | As I've mentioned in the past, I have a document processing engine running that parses xml invoices into sql server and display those invoices as a pdf. It also has webforms to allow the user to generate an invoice, which puts it in sql server and submits an xml document to a VAN.
I did the webforms first, and they're almost completely procedural. As I did the xml parsing I went with an OO approach (mostly because I wrote an xml schema -> C# Class generator). So I've got fairly similar implementations in procedural and oo code.
Observations:
1) The OO code is much, much easier to maintain. I can implement changes and find bugs in about 1/4 the time I can in teh procedural code. In addition, I *introduce* new bugs in the OO code about 1/4 as much as in the procedural code, due to the increased isolation of functions.
2) I have to change stuff 2-3 times for each change, since I've duplicated code. If the entire back end was OO, then changes to the invoice would be made in one place.
Bottom line: when we move to 2.0 I'll be moving to a 100% OO implementation.
Philo |
| Fri 06 Jun | FullNameRequired | Hi Ori,
thats a lot of things Im not allowed to say about OO programming :)
'Yet, it is significantly longer than the C code (almost twice as long),'
Ive just had a pleasant read, the c++ code is certainly longer than the c version.
personally I think maybe the author got carried away with creating objects, but I think I can muster a defence of c++ based on the code you have provided.
To me a big part of the art of programming is about focus, in the same way that military people talk about bringing overwhelming power to bear on a particularly point, I think about bringing overwhelming understanding tobear on the code you are looking at.
A counter example example of this is the slightly sick feeling I get when I am staring blankly at a function 3 pages long written by some imbecile (possibly myself) 2 years ago.
....thats a case of me bringing an overwhelming _lack_ of understanding to the code...
To deal with this programmers have developed various guidelines...in both c and c++ for instance its generally considered good practice to keep the length of functions pretty short wherever possibly.
But to me thats also the greatest strength of c++ over c, c++ makes this a lot easier by providing me with a design framework that lets me look at the specific code I am interested in, exactly where I would logically expect to find it.
Thats it :) thats my defence.
I am not arguing that this same thing cannot be achieved with c, it can.
I _am_ arguing that I find that c++ makes arranging code in this fashion a lot easier, _because it is specifically designed to do so_.
I believe that the particular example code you have given us simply proves something I have always known, that c++ doesn't actually come into its own until you are building bigger projects.
As you have noticed the added overhead in lines of code (which is basically made up entirely of class declarations & definitions) means that for smaller projects you do end up with more code for less apparent payoff.
My belief is that c++ pays off in the larger more complex projects because you are more easily able to locate and understand the code, bringing your understanding to bear where it is most needed. |
| Fri 06 Jun | Julian | As the last post mentions, OO adds value when your code gets sufficiently large. I'd put the threshold at around 1000 lines of code. And the advantages become pronounced when you reach 10,000 lines.
You C example includes only 7 functions, which you can easily keep track of. If you had 100 functions, however, it would be a lot easier to create and maintain 10 classes with 10 methods apiece. It wouldn't be difficult to remember what each class did, and when working on a particular class just have to deal with its methods. Encapsulation is your friend on large projects.
It would take a while to create a sufficiently large multiple-language example, analogous to yours, that demonstrates the benefits of OO. |
| Fri 06 Jun | S. Tanna | Have you considered that the C++ version actually does more.
For example:
- the stack in C is 50 fixed limit, in C++ it's variable.
- I only took a quick look, but I didn't spot some C++ bits in the C, for example in C++ version there is a function that outputs all the operators.
- I'm not so sure about the number of different classes the C++ version has being a good idea especially if that's all there is, rather than aiming to be a basic framework for a larger program. In other words I think that's why the programmer structured the C++ the way he did ((for expandability at the cost of increased code now). I don't see this goal being that blatantly obvious in the same way in the C version.
Personally I didn't find either the C or C++ examples particularly readable or great code. I'd give them a B-.
One last point C++ programs in general do not need to use classes, and definitely not for every single darn thing - that would simply be OO fanaticism, not well considered programming! Anyway it'd be interesting to compare the C code, to a C++ version of the same thing (i.e. using C++ as a better C), which took advantage of library classes (string, vector, etc) without going crazy on the program specific classes. I think a well written C++ example would win that comparison (on readability and robustness - no potential string overflows or stack overflows) by a country mile. |
| Fri 06 Jun | Frosya | Julian, you're talking about modular structure of the code. But there's nothing in procedural languages that prevents you from doing the same thing: just split your code by modules, organize the module interfaces, descibing data structures and related functions. OO languages don't have any advantage here.
C just doesn't have any support fo modularization, but take Perl or Python for example -- you can write in pure procedural style, but make your code highly modular. I personally maintained 100kloc system in Perl and it was not bad at all. |
| Sat 07 Jun | valraven | OO is about behaviour. You aren't actually doing anything
in the code but parse. Now doing something with
what you've parsed. You might find the advanatages
more then. OO is magik dust that makes everything
better. For just parsing the C code is clearer. The C++
code will when when you start doing things. |
| Sat 07 Jun | valraven | OO is about behaviour. You aren't actually doing anything
in the code but parse. Now do something with
what you've parsed. You might find the advanatages
more then. OO is not magik dust that makes everything
better. For just parsing the C code is clearer. The C++
code will win when you start doing things. |
| Sat 07 Jun | Mike Swieton | Right tool for the right job. OO has plenty of damned good uses. GUIs, as mentioned earlier, and others.
One that pops into my head now is Java's I/O stream system: you can plug together a bunch of (relatively) unrelated objects, and very easily get output over a file or network or whatever taht is compressed/encrypted/checksummed/whatever. I think it'd be hard to set up something as seamless in C.
OTOH, mplayer, an open source media player, just rewrote one of its codecs in pure C (instead of OOed C++), and said they experienced a great speed up.
Have good tools, know how to use them, and know *when* to use them. After all, programming is the art of finding the right wrench with which to pound in the right screw ;) Don't try to retrofit things where they don't belong: not everything is a procedure, and not everything is an object. |
| Sat 07 Jun | Michael Moser | I have seen the opposite case - where C++ would be/is much shorter than C.
(example is a library for Voice over IP protocols (they are very similar to HTTP).
They have a library that is very much object based - instead of classes you have structures.
(you have to do that, because the library is large and every piece of data is really an independent entity - and each struct can be accessed independently)
Instead constructors you have Create something.
- instead of virtual functions you have a structure with typedefs to function pointers.
You can't say that this is shorter then code written in C++.
They just have to stick to C because of portability. |
| Sat 07 Jun | Danil | Boy, those operators just scream to be turned into generics, don't they? |
| Sun 08 Jun | Laurent | I'm not sure if it proves the superiority of OO versus procedural but testing both C and C++ versions with the first expression that came to mind: 45+98*(4+6), the C version answered 45 while the C++ one answered 1025 which is obviously the correct answer :) |
| Sun 08 Jun | smkr4 | Its been my experience that, when organizations set out to design OO frameworks and are actually serious about it, they'll hire the architecture astronauts of the world. These people will then create the most abstract, super-generalized framework known to man (even with its own 'Object' base class), with n-levels deep of composition and inheritance, and force it down the throats of developers. They'll then implement it according to the proscribed orthodoxy, and that's life.
The result is often a system that is both very extensible, and very hard to understand. I recall a saying to the effect of, 'OO is a neat way to create spaghetti code.' It really is--when every object in a system is generated by some factory or dispatch interface or another, it becomes very hard to figure out in a reasonable amount of time what a given piece of code actually does.
I know this sounds very 1980-ish, but I really like to be able to understand a program's flow within a reasonable amount of time. Dijikstra didn't rag on 'goto' because he hated the specific words 'go' and 'to' in combination, but because it creates code that is difficult to understand and maintain.
There has to be a balance between OO orthodoxy, and ease of understanding. Design patterns are a good example--they're wonderfully extensible, but frankly, the book sells so well because most people wouldn't think of modelling a system that way.
OO should be taken in moderation. One compelling reason is that not all code needs the extensibility OO provides, and the extra framework baggage is a waste of time. But more important, IMO, is that it increases readability (a concept that seems remarkably out of vogue these days) and maintainability, especially when there's staff turnover. |
|
| MS MapPoint Dynamic URL | Fri 06 Jun | Jeff MacDonald |
| Greetings, all.
I ran into this today & was wondering if anyone could offer some info on how and/or why the following might be done:
When browsing to www.mappoint.com, you are redirected to mappoint.msn.com. The funny thing is, each time I was redirected, the URL was different...
Redirected to:
1. mappoint.msn.com/(hrkuammfnisqyb55xxiuer45)/home.aspx
2. mappoint.msn.com/(bq4dmtrnyglf0q555qexny3w)/home.aspx
3. mappoint.msn.com/(gdrnwqivm2onhp551bof033s)/home.aspx
...etc.
This piqued my curiosity...Any thoughts on this? I cant imagine MS having virtual directories with names like that, so Im sure its dynamically generated - but why/how? |
| Fri 06 Jun | Ori Berger | It's a session identifier.
For some reason, they use it instead of cookies. Either you have cookies disabled, or they decided cookies isn't good for them. |
| Fri 06 Jun | www.marktaw.com | vBulletin does this as well, and I wish it didn't, but it helps keep track of you being logged in if you don't have cookies enabled.
It's a random string that exists on the server in your browser, it helps them keep track of you as you browse around the site (like what addresses you've typed in) so when you click on 'recent addresses' it remembers it.
It's because HTTP is stateless. |
| Fri 06 Jun | somebody | Judging from the aspx extension, this is an example of ASP.NET's support for cookieless sessions. Basically, you add a key to web.config and ASP.NET automatically inserts the session ID as you see here rather than tracking the session based on a cookie.
This is a very nice feature with one big problem -- they don't support a combination of cookie + cookieless sessions so you can't use a cookie for backup if the user closes their browser or leaves the site. |
| Fri 06 Jun | Philo | Hm. I haven't looked into it, but the way I would *want* it to work would be to use cookies if they're enabled, then cookieless if they're not.
Philo |
| Fri 06 Jun | www.marktaw.com | Philo - I agree. In vBulletin it's an option per-user, the problem being, Google is an anonymous (unregistered) visitor, and it keeps putting different session strings in the URL... Google eventually gives up on your site eventually because everytime it comes back links have all changed and none of the old pages are there. |
| Sun 08 Jun | Steve | .NET will extract the session id from the url. When (if) you fetch the url from .NET, it will leave out the parenthesized part. Pretty cool. |
|
| ISO 9000 | Fri 06 Jun | Dan |
| My company is going to be trying to get ISO 9000 certification. Right now theyre at CMM level What? based on my own observations. Does anyone have any thoughts on how to make this transition easier for my programmers? The upper management is going bonkers with required paperwork to always leave the proper paper trail I say thats good so long as its not toilet paper... E.G. usefull for a second and then never seen again. Any thoughts? |
| Fri 06 Jun | Hardware Guy | Leave. |
| Fri 06 Jun | Bill Tomlinson | One suggestion I have is to never, ever tell the staff that you're making changes so that you can get ISO 9000 certified. Why should they care? It will just seem like you're giving them pointless extra work so the company can get a checkmark on a feature list.
Instead, introduce industry best practices for software development because they're good ideas and they work.
Then, after a while, when the best practices have become standard operating procedure for the company, invite the ISO 9000 auditors in. You shouldn't even need to give the developers advanced warning. |
| Fri 06 Jun | Martha | The 'required paper trail' is a myth. The ISO 9000 standard doesn't require paperwork; it merely requires that your processes be provably effective. You get to define 'effective'. Heck, you even get to define 'provably', although your auditor has to agree with your definition.
I agree that you shouldn't be introducing new steps or processes just to get ISO certified. Introduce new practices because they are a good idea; helping you reach ISO certification should be a side effect. |
| Fri 06 Jun | Nick | Don't get over-excited about ISO. Too many companies do. It's a simple document what you and do what you document system audited by clueless QA people. And I don't mean software QA people - they're often (but not always) former quality engineers or technicians that worked for DOD contractors. Most don't know a thing about software.
If you have no formal software processes in house, you just need to create one. It doesn't have to be complicated - a waterfall lifecycle model would suffice. Include design reviews and validation activities in your model. Then document your activities during ther development process.
Not fun, but not too complicated. |
| Fri 06 Jun | igor | I didn't think that ISO 9000 required effective processes - just repeatable. So if your process is 'garbage in, garbage out,' it's fine as long as you do it the same way every time.
I've been through an experience where support and manufacturing in the company were getting ISO900x certified and it wasn't pretty. Mainly there was lot of work to get process documentation written.
Bill has the right idea about getting the process in place then getting certified. This is how it was supposed to work. A lot of companies like to skip this step, though. They go right to getting certified becase that what really matters in the market.
Just explain to the programmers what the company goals are (e.g. to get certified). I wouldn't try to implement meaningful process changes, just comply with documentation requirements. |
| Fri 06 Jun | Stephen Jones | I once knew of a school that decided to be almost the only school in the world that was ISO certified. It needed to keep everything documented because none of the teachers could stand it more than a couple of semesters.
I would think the process is even more pointless in the software world.
The purpose of ISO9000 is to ensure that you use the same processes to produce consistent quality for the same model. With software you do that by turning error checking on on your CD Rewriter.
Leave |
| Fri 06 Jun | fool for python | 'You build crap!'
'yes...but it's consitent well-documented crap.' |
| Sat 07 Jun | Spider | My understanding is that ISO 9000 was designed during WWII to ensure that munitions etc. manufacturers would produce a product that was consistent. It's about ensuring repeatability, not quality - making sure that what comes off the assembly line is the same every time. This has some relevance to manufacturing, but very little to software engineering. |
| Sat 07 Jun | Yes, Leave! | Is there really any market significance to ISO 9000 for software development companies? One of my previous (no longer existing) employers started investigating the possibility. There were newsletters about the steps we would go through. Then someone figured out that no one really cared if we were ISO 9000 or not. The project just faded away. |
| Sat 07 Jun | Christopher Wells | I'm told some customers like it: for example, telecom carriers might like it, which is an incentive for telecom equipment manufacturers to show it. |
| Sat 07 Jun | sedwo | Is Microsoft ISO certified? |
| Sun 08 Jun | Stephen Jones | ---'an incentive for telecom equipment manufacturers to show it. '---
Exactly; equipment manufacturers. They're buying goods.
I used to train steelworkers. When the secretary went on holiday I took over the attendance and grading and put all the names on computer. They had special attendance and report sheets, and I copied them but made the lines bigger so you actually had space to put in the names and comments. I also moved their company logo over to the other side, make it larger, and instead of black and white printed it out in it's true colourful green. Nothing else changed.
They sent it back, saying that the forms would have to be redone because the old forms were ISO 9000 ceritified, and my readable ones weren't. |
| Sun 08 Jun | Christopher Wells | Telecom equipment manufacturers write software too. They may have a design/manufacturing process for software, which may say for example that they test their software before they ship. The certification may imply that their process is repeated/followed: for example that they *always* test before they ship; that they know which version they are shipping; etc.
SFAIK MS isn't ISO-certified, not to say that they need to be. |
| Sun 08 Jun | Stephen Jones | Good point, but I still suspect that they got the certiication because they produce hardware, and then had to come up with some kind of process for the software in order to get the certification. |
| Sun 08 Jun | Christopher Wells | Incidentally, re. your forms: the process should include a mechanism that would allow you to initiate a change to the process, for example to get your (better) forms accepted as the new standard... |
| Sun 08 Jun | Stephen Jones | But the forms had exactly the same layout and gave exactly the same information, and were printed on the same paper.
I followed a well-documented way to ensure our forms became the new standard. We told them if they wanted to play silly buggers they could copy all the stuff out again themselves and we would sign it.
When the second batch of my forms went in there was no problem. |
|
| Using Bandwidth | Fri 06 Jun | R C |
| Hi,
I have a problem. My host gives me 10 Gig of traffic to my site/month, but I only use about 500 Meg. What can I do with the other 9.5 Gig? |
| Fri 06 Jun | Andrew Cherry | Perhaps a better solution rather than trying to find a use for bandwidth, would be to address the problem in a different way? Try and save money by only paying for what you need maybe... I would imagine the terms of your contract may well prohibit you from 'sub-letting' as it were... |
| Fri 06 Jun | Stephen Jones | How much are you paying?
I doubt if you would even save yourself what your time would cost to change it if you went for a cheaper provider with no bandwidth.
You've got to remember that how much bandiwidth you use can change dramatically if you post something other people link to.
If I had a site that only used 500MB I would reckon that 10Gig was about right, but most of that would be used if I was slashdotted.
It'a not so long ago that there were ferocious prices for overstepping your limit. Just bask in the security your sites got more bandiwidth than you need, just like your desktop now has way more RAM than it needs. |
| Fri 06 Jun | Li-fan Chen | You could determine which part of your site is the most popular.. learn why it's popular, and expand on it. That way more people will visit you. That will promote your site fine, but you might have to work on your promotion techniques too. |
| Fri 06 Jun | Robert Moir | In your position I would either take this as a chance to expand my website, or look upon the currently unused bandwidth as my insurance against being slashdotted off the net ;-)
If you exceed your planned bandwidth charges with most providers then one of two things typically happen
1 - your site is shut down
2 - you pay excess charges that would make your eyes water. |
| Fri 06 Jun | www.marktaw.com | Yeah, my site uses very little bandwidth relative to how much I have - I actually have several websites on the same account.
If I ever got slashdotted I'd probably have to sign my life over to my hosting company and work as a slave laborer for them until my debts were paid off.
I heard of a company that doesn't charge you for the two highest hours... I'd probably look into using them if I ever actually thought I was gonna get slashdotted. |
| Fri 06 Jun | Bored Bystander | On 'being Slashdotted' - is there ANY benefit to this happening for anyone to whom it happens? Such as increased sales, or recognizably more recognition of an idea that you're trying to publicize? One would thing that artificially increased traffic by actual eyeballs would be desirable - it's what all of these web traffic tools like Webposition Gold seek to do...
And I wonder if it's possible for a web site to defend itself, by using a custom script that reflects any 'Slashdot' referror to an alternate site.
I get the mental image of 10s of thousands of people with no lives, no thoughts and no money to spend, drawing down your bandwidth and racking up $$$huge$$$ bandwidth bills on your end just because they saw something of passing interest and clicked on it. Like moths flying around a light. |
| Fri 06 Jun | Stephen Jones | Dear Bored Bystander,
There's little benifit to you in having any informational website. Just as neither of us much more benefit from posting here than we would watching a baseball game and downing the six-pack.
You put up a personal web site for vanity, though if you are prone to self-deception you can call it altruism.
You want to be noticed, and if loads of people notice you, that's what the website is for.
On the technical side many free web hosting sites have a daily limit. They cut your site off when you exceed it. You certainly need to make sure you have some similar type of agreement with any web hosting site you use, or you will be writing them an open check. |
| Fri 06 Jun | Brian | The mention on slashdot was how I found this site. Which is a benefit to me, and (I like to think) to the site.
As for redirecting traffic based on referer tag: Sure, it's possible. I think mozilla's bug log does something special for /. traffic (I'm not at all familiar with bugzilla, but my understanding was that you couldn't vote to increase the priority of a bug if you were directed from /.). But it's best not to rely on the refered information: my firewall at home strips it to protect my privacy, and there is almost 0 disadvantage (to me) to not providing it. |
| Fri 06 Jun | www.marktaw.com | Brian, you're in the minority stripping referrers. I've seen the occasional software site that won't let me download if I strip too many things like referrers or cookies. It's their way or protecting themselves from other people direct linking into their site.
I just had a site link to one of the images on one of my sites. It's a low traffic site and there's nobody making a profit from my bandwidth, but if either of the above were true I'd take measures to defend myself.
I like the idea of a script that redirects people from Slashdot. Even better, maintain two versions of your site (easy with templating) and serve a different one up if the referrer is from slashdot. The same information, but in plain text format shouldn't be too bad.
I think the moral to this story is we shouldn't be creating bloated websites to begin with. If your website approaches plain text in simplicity, then you'll deal much better with a slashdotting. |
| Fri 06 Jun | www.marktaw.com | > There's little benifit to you in having any informational
> website. Just as neither of us much more benefit from
> posting here than we would watching a baseball game
> and downing the six-pack.
True and false. I benefit here by being involved in a community where I can ask stupid questions, and answer other people's stupid questions.
You can also build a reputation by being actively involved in a community, and then hang a shingle advertising your products and services. It's certainly better than building your reputation from scratch once you go into business.
Of course, that's purely monetary, but people seem to undertand money justifications. |
| Sat 07 Jun | Tj | Bored, there exist some providers that will throttle your bandwidth past a certain level, visit http://www.webhostingtalk.com/ . Most hosts I've talked to are a bit shocked that I'd want to do such a thing, since they consider it exciting to survive a slashdotting, and their customers dream of it because they make money from it.
If you're only serving text, I think redirecting referrers will cut out a sufficient majority of /.ers. One site redirected to that goatse.cx site, forcing slashdot to remove the link.
Fortunately for me, before I had to choose, a friend opened up an ISP so it's free. :) |
| Sat 07 Jun | Stephen Jones | Actually there are a lot of benefits apart from vanity. I always call it enlightened altruism. If you contribute regularly to a site then you find people will go to much more effort to sort out any problem you may have, apart from things such as being offered job interviews when the guy whose Outlook you fixed becomes MD of a branch of a multinational (really happened to me).
And there are others; for example explaining something helps you understand it more.
However if you start trying to get something back from the word go you don't. |
| Sat 07 Jun | www.marktaw.com | 'Actually there are a lot of benefits apart from vanity. I always call it enlightened altruism.'
Though some would view this as selfish as well. I forget who said it but 'there are no truly unselfish acts' makes sense fom certain point sof view.
I was backpacking around the US and after a few weeks realized that everyone who took me in had their own motives, so I shouldn't be as overwhelmed by their gratitude as I originally was. |
| Sun 08 Jun | Stephen Jones | I meant enlightened in the sense that it pays in the long run.
Your backpacking experieces are common. You start off being overwhelmed with gratitude and then go to the other extreme to avoid feeling guilty.
In fact people will often help you simply because it's not a great deal of trouble. Nothing to get too effusive about, but hardly a reason for distrusting their motives. |
| Sun 08 Jun | www.marktaw.com | Who said I 'distrusted' their motives? All I meant was some of them were lonely and looking for company or a little excitement.
In this thread, you seem to be the one questioning other people's motives. |
| Sun 08 Jun | Stephen Jones | Mark, now you're saying 'some of them' and before you were saying 'everyone'. Maybe you expressed yourself a little badly, and maybe I did.
Some would want company or excitement, but some would be doing it because maybe their daughter or son is also backpacking and they would like somebody to pick them up, and some would be doing it because it wasn't any trouble anyway, and other reasons. |
| Sun 08 Jun | www.marktaw.com | Either way - some or all - I wasn't distrusting their motives, I was making peace with a debt I could never repay. For the record, none of them had sons or daughters that were backpacking.
You're right, something about your posts here rubs me the wrong way*, but I'm willing to leave it at that.
* qv the Self-evaluation thread |
| Sun 08 Jun | Stephen Jones | What's qv? |
| Sun 08 Jun | www.marktaw.com | Quod vide, Latin for 'see this'. |
|
| CodeWright editor | Thu 05 Jun | Andy |
| Anyone use a recent version? The latest is 7.5 I think. I downloaded the demo, and it definitely has some very good features. However, it seems a bit buggy and rough around the edges. I would want to use it for C/C++, perl, XML. Basically I want to have a consistent, customizeable editing interface across many programming tasks.
Comments? Any alternatives? I am looking for something to integrate with a lot of other tools (source control, compilers, etc.), has a thoughtful UI, keyboard shortcuts, and is relatively lightweight. I actually like the VS.NET editor but it is too bloated to use as just an editor and it has a bunch of interface bugs that are very annoying. |
| Thu 05 Jun | Hector | There's actually quite a few editors out there. I personally use Multi-Edit (since I used to work for them in my early days of my career). I've been able to quickly setup syntax highlighting for a lot of script languages that I use. I also has the ability to show two different syntax highlighting in the same document. It can show HTML in one color schema, while showing ASP or JavaScript in another. Pretty nifty! I also used it to code an ASP.NET application for internal use.
There's also UltraEdit, EditPad Pro, and SlickEdit. I'm sure the people who frequent this forum will post more names for you.
For XML, I would recommend XML Spy. It beats anything I've tried hands down. |
| Fri 06 Jun | Rob Warner | I've used CodeWright for a number of years--I'm on 7.0. I recently purchased Visual SlickEdit, though, for its Eclipse plug-in (I spend my days in WSAD 5.0). Both are worth the $$. |
| Fri 06 Jun | Bruce Perry | TextPad is another fine option. It may not do as much as CodeWright, but delivers quite a lot for a much lower price. |
| Fri 06 Jun | Keith Wright | Wow, no one mentioned Emacs? ;) |
| Fri 06 Jun | Gregg Tavares | I'll mention emacs
Stay FAR FAR away. Unless you want get extreme carpal tunnel from trying to press CTRL-X CTRL-S, ESC CTRL-X V etc etc and if you want to have to get used to something that uses different keys from all other programs since GUIs were invented. Also if you want to modify it you'll have to learn lisp. Although I'm sure learning lisp is a good thing in general I'm sure you've got better things to do.
I recommend Slickedit. Been using it since 94. I don't have enough experience with other editors to know if there are better ones out there. I do know that I turned down Codewrite after using for a week before I started using Slickedit (ie, also in 94) so that opinion may be out of date. |
| Fri 06 Jun | Mitch & Murray (from downtown) | SlickEdit, definitely.
Borland now owns CodeWright and their history of stewardship with past editors they purchased is pretty poor. They bought Brief and did exactly zero with it. |
| Fri 06 Jun | Peter McKenzie | UltraEdit is a fine tool at a very reasonable price, a free trial version is available from:
http://www.ultraedit.com/
Peter |
| Sat 07 Jun | Clutch Cargo | I downloaded the demo last month. I like the features, especially the Brief keymap. But I lost significant data while using CodeWright. I couldn't pin it on the editor 100%, but I'm not interested in a product that might piss my work away. |
| Sat 07 Jun | Chris Nahr | I like the design of CodeWright but it was always crash-happy. It's also one of those products that became a red-headed stepchild when the original company was bought out. CW was owned by Premia for the last couple of years; they churned out several expensive updates with very few actual changes. Now it's moved on to Borland whose performance in the post-Turbo years was anything but stellar.
In other words, I wouldn't take the risk. Try Visual Studio .NET if it supports your programming language, or EmEditor ( www.emurasoft.com ) for smaller tasks (notepad replacement).
Oh, and note that most editors are actually not fully Unicode compliant, no matter what propaganda lies they might post on their website. CodeWright isn't, and Visual SlickEdit isn't either (check the online help for 'Unicode' and marvel at a gigantic list of things that don't work yet). However, VS.NET and EmEditor are both internally Unicode-based and can handle all Unicode formats. |
| Sat 07 Jun | Andy | Hm yeah I already have VS.NET at work, and CodeWright does seem pretty buggy, and it isn't cheap. I have downloaded demos of SlickEdit and SourceInsight. SourceInsight does seem to have some really impressive code browsing features, but I think it is not really complete as an IDE.
I think I will give VS.NET another chance, try to learn more about it... all the interface bugs are really annoying though. The windowing system design I think was pretty good, but the way it was implemented is maddening. Also I haven't tried using the command window in VS.NET. I think you type tons of commands down there, but I haven't used them. And also I heard you have access to some model of the source? Like basically it parses source for you, and you can use that to write your own code-browsing utilites?? Anyone know about this. I think that is basically what VisualAssist uses. |
| Sun 08 Jun | Chris Nahr | Are you using VS.NET 2003 at work? If not you should (convince your boss to) upgrade -- 2003 is basically a bugfix release for 2002, and a very cheap upgrade (US$29). The 2002 version crashed quite frequently for me but 2003 hasn't crashed once. Still a couple of bugs (e.g. can't overwrite XML doc files in target directory) but apparently nothing serious anymore.
VS.NET offers a comprehensive programming model for scripting and extensions, using VB.NET or other .NET languages, but it's really quite involved -- I looked at it and decided that I'd rather write C# programs and batch files that operate directly on my source code files... |
|
| Ouch, I'm Windows 95... | Thu 05 Jun | Jan Derk |
| http://bbspot.com/News/2003/01/os_quiz.php |
| Thu 05 Jun | Nat Ersoz | Very cool. OS/2 Warp. Feelings of abandonment from your back-satabbing step brother. I don't even wanna discuss it. |
| Thu 05 Jun | Fred2000 | Oh good, useless crap from the 'blogosphere.' |
| Thu 05 Jun | Jan Derk | It get's worse, my girlfriend is Slackware Linux, maybe I should aspire another career. |
| Thu 05 Jun | Fred2000 | Okay, ha ha. If you get Debian it says '...they're more apt to love you.' That was more clever than I was expecting. |
| Thu 05 Jun | Leonardo Herrera | Funny thing. I take the test twice, and change slightly my answers. Both times PalmOS. |
| Thu 05 Jun | Leonardo Herrera | 'I take the test twice' should be (I hope) 'I did take the test twice' |
| Thu 05 Jun | Li-fan Chen | I am not PalmOS, noooo!!!!!! |
| Thu 05 Jun | Martha | Windows XP... I wonder if that's good or bad. |
| Thu 05 Jun | Phibian | HP-UX - 'Still strong despite the passage of time. Though few understand you, those who do love you deeply and appreciate you.'
Given how many of those questions didn't have an answer which applied to me... |
| Thu 05 Jun | www.marktaw.com | I think I took this test a while back and I was a Mac.
Yep, took it again and I'm OSX.
http://bbspot.com/Images/News_Features/2003/01/os_quiz/os_x.jpg |
| Thu 05 Jun | Wayne Venables | I'm slackware linux... who knew!
http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/slackware.jpg |
| Thu 05 Jun | Simon Lucy | I'm neither a number, nor an operating system nor any other kind of limited analogical referent to make Generation X'ers go ooooo. |
| Thu 05 Jun | :-) | DOS - simple, useful, easy to use but nobody needs me :-) |
| Thu 05 Jun | Christoph Daniel Schulze | Nice one. The whole site seems to be pretty cool on the first glance.
Well, I'm GNU/HURD. However I managed to become that.
http://bbspot.com/Images/News_Features/2003/01/os_quiz/gnu_hurd.jpg |
| Thu 05 Jun | Kevin | Amiga OS - Ahead of its time.
http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/amiga.jpg |
| Thu 05 Jun | Philo | Simon: who are you?
Quoth the Inquisitor, in Babylon 5:
'...Unacceptable!. What a sad thing you are. Unable to answer such a simple question without falling back on references, and genealogies and what other people call you. Have you nothing of your own? Nothing to stand on
that is not provided, defined, delineated, stamped, sanctioned, numbered and approved by others. How can you be expected to fight for someone else when you haven't the fairest idea -who- -you- -are-?'
Funny that you eschew any kind of self-inflicted personality summation, yet you sign your posts with an identifier given you by someone else. [grin]
Philo |
| Thu 05 Jun | www.marktaw.com | Even worse than that, he refers to people as 'Gen Xers'.
He's a rebel without a cause, it seems to me.
Without societal refrences, how would you know what you were? If you were raised by wolves you might have no sense of self in the traditional sense - you are part of a pack. Without digressing into an overly Cartesian discussion, how do you know what you are without these references? |
| Thu 05 Jun | Steven C. | And may I say, that episode of B5 is truly excellent. |
| Fri 06 Jun | ko | win xp... description was ok even. |
| Fri 06 Jun | | Apple DOS 3.1 :)
http://bbspot.com/Images/News_Features/2003/01/os_quiz/apple_dos.jpg |
| Fri 06 Jun | Robert Moir | Free BSD yay! |
| Fri 06 Jun | BC | Christoph, you're GNU/Hurd because you didn't answer all the questions (incomplete :-) ... |
| Fri 06 Jun | Patrik | Debian for me :-) Im off to find some people who are apt to love me..or whatever :) |
| Sun 08 Jun | mb | PalmOS... I guess that's not too far off.
BTW, what is Apple DOS 3.1? 3.3 was the first version with 16 sector floppies, 3.2 had 13 sector floppies, before that I don't know what existed, after that it was ProDOS 1.0 (and up). |
|
| QA Contractor needed (NYC, part-time) | Thu 05 Jun | Gillian Gutenberg |
| Hi Joel Readers!
Im looking for a QA contractor for client-server (web) and Palm software for the summer. The position will be part-time throughout June/July/August. Strong technical background is important, basic SQL experience a plus. If youre familiar with Mac OS, Windows, & Palm OS thats even better.
Our company develops educational software that is used to assess reading levels in the classroom. This is an excellent opportunity to hone your QA and software development knowledge, and would be a perfect position for a college student. (Yes, that does mean the pay isnt great.) :)
Please email your contact info and a brief summary of your background through this website. I will contact you for a complete resume and more information.
Thanks!
- Gillian |
| Thu 05 Jun | Yaniv | Can this person be telecommuting or do you want somebody to be in NYC for those 3 months? Thanks |
| Fri 06 Jun | Gillian Gutenberg | Hi Yaniv,
The person would need to work out of our office in NY.
Thanks,
Gillian |
| Sun 08 Jun | Bella | What's the hourly rate? I may know someone.... |
|
| A comment on Joel's anti-VC essay | Wed 04 Jun | Alex Chernavsky |
| Joel argues that venture capitalists are basically pretentious idiots. I agree. However, this fact shouldn’t surprise anyone. Chernavskys Law (yes, I’m a pretentious idiot, too) states that highly respected institutions never live up to their reputations. Three examples follow.
1) Look behind the smoke and mirrors of Wall Street, and you’ll find that securities analysts -- even the honest ones (or, rather, _especially_ the honest ones) -- couldn’t predict the side of a barn.
2) Listen carefully through your doctor’s stethoscope, and you’ll find that modern is based as much on tradition and witchcraft as on hard science. Remember how hormone replacement therapy was supposed to be the bees knees? Oops.
3) Peek under the vestments of the Catholic Church, and you’ll see that the Church may not be totally corrupt, but is certainly more concerned with protecting its assets and prestige than in serving its parishioners (recall the recent pedophilia scandal).
Actually, come to think of it, Chernavskys Law is probably just a special case of Sturgeons Law: 90% of everything is crud. |
| Wed 04 Jun | Alex Chernavsky | I wrote: '...modern is based as much on tradition...'
That should be, 'modern medicine'. |
| Thu 05 Jun | pb | I'd agree on VCs, Wall Street and religion but not medicine. |
| Thu 05 Jun | www.marktaw.com | I interviewed at this company that said they got a valuation that was 10 times higher pre-bust than post-bust. The valuations were seperated by like 4-5 months, but the numbers were drastically different.
I think anyone who peeks behind the curtains behind any giant instituation will find some really rich people trying very hard to make themselves richer and everyone poorer.
'How can we seperate more people from their money?' |
| Thu 05 Jun | My JOS Alias | Alex, if I could paint my house with the brush you're using, I'd be done in 5 minutes. |
| Thu 05 Jun | James Ladd | I dealt with VC's for about 4 months. They suck.
I find them to be all about laundering money from institutions into their own pockets under the gise of 'investment'.
ie: Sure we will give you money, if this friend of mine is the ceo, you buy your hardware from my cousin and you are happy for you %% to be diluted to bugger all of bugger all.
Siffice to say, Im not jaded by the experience at all.
Regs, |
| Thu 05 Jun | Peter Parker | >>'I'd agree on VCs, Wall Street and religion but not medicine. '
Doctors are just the same. They pretend they know it all, we just (usually) don't know enough to call them on it. Doctors are taught to have this air of infallibility.
EXAMPLE #1
Talk to someone who's gone through fertitility treatment. (My wife and I have been. Succesful on 1st try thank goodness). It's bloody witchcraft.
The fact that reproduction is a mystery to doctors isn't that surprising. What is FRIGHTENING is that they can ACT like they understand it.
EXAMPLE #2
I have a brother-in-law that is a doctor AND owns a software company. In a discussion of his software I noted that it didn't expand to fill the screen. I said 'gee autosizing would be nice'. He said 'THAT IS IMPOSSIBLE'.
I asked 'why?'. He said 'because the program doesn't know what to resize'.
HE said all of this with an air of amazing confidence.
Then when I quietly explained HOW you'd resize it, he said 'oh, maybe I don't understand it'. My wife said she'd NEVER, in 25 years, heard him admit he didn't know something.
He's really a great guy, but Doctors are just TAUGHT to act like god so they can keep the patients calm, I guess. |
| Thu 05 Jun | www.marktaw.com | Peter - probably true.
Every time I go to a hospital, I remind myself that doctors are just people who went to school for a really long time. |
| Thu 05 Jun | Simon Lucy | There is a reason that a large number of the 'financial analysts' in the City of London come from a long line of barrow boys (market traders). |
| Thu 05 Jun | | Sorry pb, but he is right on. There is a reason that, for example, witches used to tell people to chew the bark of the willow tree to relieve head aches - it relieves pain in the same way as aspirin. The difference is in payment - people paid witches by burning them at the stake, in modern life doctors get paid shed loads of money to do the same thing. They might even dance naked with goats for all I know. |
| Thu 05 Jun | | 'I dealt with VC's for about 4 months. They suck'
People pay for that kind of thing you know ;-) |
| Thu 05 Jun | Ged Byrne | Peter,
When somebody is just about to stick a knife in me a slice me like a fish I want them to appear very very confident.
I want them to say 'Were just going to fix you up as good as new' not 'Gee, I hope this doesn't go wrong like last time. Since my wife left me I've just not been able to concentrate.'
To be honest, I've used the authoritive developer voice myself. It can save so much time in meetings. |
| Thu 05 Jun | R C | Ged! You rock! |
| Thu 05 Jun | tapiwa | Alex,
You hit the nail right on the head. I have very little respect for folk whose only kudos is being a member of a profession.
Like my mates who are doctors say, 'Medicine is not and exact science!' We are all familiar with the phrase 'I think xyz, but please seek a second opinion. ' |
| Thu 05 Jun | The Real PC | [doctors are just people who went to school for a really long time.]
First, they don't go to school for all that long, just 4 years of college + 4 years of medical school, plus interning.
And during that time they are taught a lot of things that are wrong. Worst of all, they are not taught anything about scientific reasoning. Medical researchers who have an MD but no PhD have done some incredibly stupid research.
And, on top of all that, they are taught that western medicine knows it all, and that nature is mindless. |
| Thu 05 Jun | Curious | 'Nature is mindless' - what does that mean? |
| Thu 05 Jun | The Real PC | Curious,
There is a prevailing philosophy in western science and medicine that nature is 'mindless.' I am contrasting this philosophy with the belief held in primitive and ancient cultures, and by modern holistic scientists, that all of nature is alive and conscious.
Many people with a western education will be scornful of this idea, since they know nothing about holistic science, and also can't imagine that primitive or ancient cultures could have known anything that western science does not.
Believing that 'nature' has wisdom and consciousness results in a very different approach to health and medicine. |
| Thu 05 Jun | Alex Chernavsky | Ged wrote:
'When somebody is just about to stick a knife in me a slice me like a fish I want them to appear very very confident.'
I couldn't disagree with you more. When I talk to my doctor, I want him or her to give me the straight dope, with all the uncertainties, risks, caveats, and possible pit-falls. I don't trust people who pretend that even routine medical procedures are very safe and effective. |
| Thu 05 Jun | Erik Lickerman | As an actual doctor I feel compelled to respond to some of these comments but it is very difficult do do so without calling people names- especially the guy who thinks nature is alive and conscious and that modern science cannot understand things that primitive cultures did. We can understand them perfectly. They happen to be wrong in most cases. Anyone is welcome to engage in magical thinking; to hold ideas which cannot be verified or disproved via experimentation and logic. The point is that such things are irrelevant to science. My question is, since you clearly are fine with arbitrary belief, why focus on the beliefs of ancient cultures? Why not just make up your own?
As for the guy who claims medicine is based as much on tradition and witchcraft as science, the best I can offer is 'phooey'. This is a nonsensical assertion and you offer no evidence. The truth is that medicine is not science. It cannot be. It uses information gained from science in much the same way that engineering does. It takes a few techniques from science for what is called clinical research, but due to the basic immorality of experimentation on humans, and the complexity and diversity of humans, the best they can do is what economists do. They get their best information on an extremely complex system and then mostly rely on what has been tried in the past and what has resulted in the past.
The fact that hormone replacement therapy was originally seen as a boon and now, as, on balance, not good, should indicate to you that medicine is not witchcraft or tradition. Either of those would dictate that we continue the hormone replacement therapy because that is the way it has always been done.
Of course there is a great deal of this in medicine. Many things (especially surgical procedures) are done because they seem to make sense but have never been verified in a scientifically rigorius way as the best treatment for a given condition. This is because, once again, it is impossible to do good scientific experiements on human populations.
As for the person who pointed out that aspirin comes from trees, this sort of thing is true of many of our original medicines. The trick of western medicine is that we take that basic concept and use science to discover what it is in the tree which relieves the pain and inflammation. Then we purify it. Sometimes we modify it to imporve it. Suggesting that this somehow makes western medicine a fraud strikes me as a non sequitur.
Yes doctors don't know everything. Yes doctors are taught in medical school and residency to hide this fact. Yes, most of them will deny it. Yes there is as much variety in ability in the medical profession as elsewhere. The bottom line is if you have one of the several medical conditions for which we have treatments, your chances of health are greatly improved by seeing a modern western medical doctor. Contrast this with, for example stock analysis. Two thirds of mutual fund managers, historically, are unable to beat the market average long term.
The lesson here? I don't know. |
| Thu 05 Jun | doobius | your chances are even better if you see 4 or 5 doctors and then triangulate (quadrangulate?). The variance might not be much but you want a high confidence for such things. |
| Thu 05 Jun | Alex Chernavsky | Dr. Lickerman wrote: 'As for the guy who claims medicine is based as much on tradition and witchcraft as science, the best I can offer is 'phooey'. This is a nonsensical assertion and you offer no evidence.'
I have particular disdain for psychiatry (I used to interview psychiatrists when I worked in the marketing-research department of a pharmaceutical company). I maintain a page about witchcraft in the mental-health industry:
http://www.astrocyte-design.com/pseudoscience/
As for the rest of medicine, see this article from the 'New York Times Magazine'. The article is called, 'What Doctors Don't Know (Almost Everything)', and it's reproduced on this page:
http://www.annieappleseedproject.org/whatdocdonkn.html |
| Thu 05 Jun | Tim Sullivan | Erik:
Well said. |
| Thu 05 Jun | pb | 'I couldn't disagree with you more. When I talk to my doctor, I want him or her to give me the straight dope, with all the uncertainties, risks, caveats, and possible pit-falls. I don't trust people who pretend that even routine medical procedures are very safe and effective.'
I couldn't disagree with you more. This sounds like it's coming from a supreme know-it-all. |
| Thu 05 Jun | Alex Chernavsky | pb wrote: 'This sounds like it's coming from a supreme know-it-all.'
Yes, well, I already admitted my short-comings in the very first post. |
| Thu 05 Jun | David Clayworth | Hmm, let's compare the record of modern medecine with that of witchcraft shall we? Lets examine their cure rates for:
Polio, smallpox, TB, cholera, rickets, scurvy, gangrene, mumps, yellow fever, typhoid, appendicitis, blindness due to corneal clouding, diabetes, haemophilia, kidney failure,malaria, hepatitis, detatched limbs, heart failure (which herb is it that makes a transplant unnecessary?), brain tumour,....
Of couse witchcraft has been around a lot longer than modern medecine, so we should handicap modern medecine when comparing cure rates....
Need I go on? |
| Thu 05 Jun | mb | Wow, into a doctor argument.
There are clear benefits of modern medical science.
However, there are many many doctors out there who speak with authority on things they know nothing about.
People turn to alternatives, be they secondary 'modern' types (chiropracter, phsycial therapist, nurse) or 'traditional' types (nataruopath, witch, whatever) because they also have real backgrounds but are often much more sympathetic. Most don't even deride 'allopathic' medecine as a concept, just the way it's practiced.
Just like computers. Modern computer science and practice has built many wonderful things. But there are many practitioners who claim expetise and charge for it, and deliver less than what you had before. |
| Thu 05 Jun | mackinac | After reading through this thread I surfed off to another web site and came across this essay, which seems somewhat relevant: http://www.embedded.com/story/OEG20030604S0042 |
| Thu 05 Jun | Devil's Advocate | Alex -
I skimmed your page and some of the links (no time to read everything at work). The main gist of what you have seems to be, 'Some people believe what they are told about research instead of following it up or validating the results themselves'.
You have riddled the page with lots of insinuation and a few specious arguments. You have found about 10 published articles which agree with your point of view and have linked to them.
I sincerely doubt that you have followed up the claims in the articles you use to support your position.
If you are deriding an entire group as unscientific, you should at least not present your argument in the same fashion. |
| Thu 05 Jun | Tj | Do doctors understand the role of tradition in their work? For one thing, there's a strong biasing factor in favor of conservatism due to lives being at stake and long training times. If tradition were not a problem with 'western medicine,' something would be amiss.
Also, witchcraft is a misnomer for charlatanism. Witches and their books were efficiently burnt. (Hardly a scientific thing to do, but certainly a western thing.) The branch of medicine which grew into what we have today may not have been objectively the best, but we have pretty good communication systems now, and we pump a huge amount of organized investment into it. It will have decent results.
We may brag about our white, 'western' medicine's superiority, but poor nations of any culture are rife with quackery. |
| Thu 05 Jun | Stephen Jones | Sri Lanka has many Ayurvedic clinics, and people come from all over the world to be treated in them.
The locals of course all make a point of going to the doctor.
Though I will say one thing about Ayurvedic medicine. They have one preparation on sale that is pure concentrated marijuana, is of course quite legal, and sells for a couple of dollars a bottle. |
| Thu 05 Jun | Brent P. Newhall | Um, Tj, burning books is not a 'Western thing.' It's been practiced in many cultures for the past several millenia. |
| Thu 05 Jun | The Real PC | Conventional western medicine is good for certain things, very bad for many others. Because of modern technology, there are some excellent techniques for surgery and diagnosis.
As for treating and understanding most chronic diseases, western medicine is practically useless.
Immunization and surgery have decreased infant and child mortality. The health and longevity of adults has not been improved, and the typical modern lifestyle is increasingly deadly.
Our medical and drug industry makes extravagant claims about how they have improved our health, and they are lies. Well they may not know they are lying, because they believe it themselves. It is not true.
I know people whose lives were saved by western medicine, and I am not trying to claim it's worthless. It just is not what you probably think it is. |
| Thu 05 Jun | Alex Chernavsky | The RealPC wrote: 'Our medical and drug industry makes extravagant claims about how they have improved our health, and they are lies. Well they may not know they are lying, because they believe it themselves.'
No, they often know full well that they're lying. See, for example:
======================
Hidden Risks, Lethal Truths
Warner-Lambert won approval for Rezulin after masking the number of liver injuries in clinical studies
By DAVID WILLMAN, Los Angeles Times Staff Writer
SUNDAY REPORT: June 30, 2002
WASHINGTON -- Newly obtained internal documents show that Warner-Lambert Co. executives who promoted the diabetes pill Rezulin masked early indications of the drug's danger to the liver from federal regulators and later delayed sharing information about its lethal toxicity with family doctors.
The newly acquired materials show that company management rebuffed employees who questioned liver-injury totals from clinical studies that excluded 38% of the cases. At the time, Warner-Lambert was assuring doctors nationwide that the drug was as safe as a placebo, the harmless pill used as a control in medical testing.
========================
http://www.astrocyte-design.com/pharmaceutical/rezulin.html
David Willman, the reporter who wrote the article above, went on to win the Pulitzer Prize for his work on exposing abuses in the pharmaceutical industry. There are lots of other stories similar to the Rezulin one.
Note to Devil's Advocate: I get e-mails similar to your message all the time. However, my opponents rarely want to get down into the nitty-gritty of discussing specific issues. Instead, they just spew generalities: 'Your web page sucks. Your arguments are specious. You don't know what you're talking about. The research you cite is all flawed.' Etc., etc., etc. |
| Thu 05 Jun | somebody | David Clayworth,
You probably shouldn't go on unless you intend to post something that's actually accurate. For example, there is no cure for smallpox and the vaccine (that's where the word came from, in fact) was discovered over two hundred years ago! |
| Thu 05 Jun | Voice of rationality | Are we seriously having a debate about whether or not there have been significant advances in medicine in the last century? Compared with when women routinely died of childbirth. When an infection from an injury could kill you. etcetera. etcetera. etcetera.
Stop quibbling over semantics. Take it somewhere else. What happened to the discussion on VC's? |
| Thu 05 Jun | Stephen Jones | Dear Somebody,
There isn't a cure for nitpicking either.
---'As for treating and understanding most chronic diseases, western medicine is practically useless.'----
If there was a cure for them, they wouldn't be chronic would they? They'd go away pronto. It's a bit like saying, 'Well doctors are OK while you're alive, but they're f-all use when you're dead!' |
| Thu 05 Jun | Stephen Jones | Dear Voice of Rationality,
May be you could choose a more appropriate example tnan women dying in childbirth.
One of the greatest breakthroughs in medical science happened in Austria when doctors at a maternity hospital were puzzled as to why so many more upper and middle class women died in childbirth than working class ones. Strange theories had been postulated along the grounds of the lower classes being nearer to animals and having more brute stength, but the answer was that the workking class couldn't afford to go to hospital to have their babies and had them at home. The result was that they avoided all the germs from the other patients.
Rigourous disinfection with bleach, both of the hospital and of wounds was introduced, and the result was that the number of deaths in hospitals plummeted.
Strangely enough it's back on the rise now. The normal two reasons given are contracting out the cleaning which used to be done by the nurses under the orders of ferocious Scottish matrons, and the rise of pathogens immune to anti-biotics. |
| Thu 05 Jun | mackinac | >>>Are we seriously having a debate about whether or not there have been significant advances in medicine in the last century? <<<
That does seem to be the case or at least something like that. Some of us might be impressed by the advances in medicine over the past century, but others will only look at what problems that remain unsolved and conclude that little has been accomplished. Sort of a pessimist/optimist kind of dichotomy. |
| Thu 05 Jun | z | This thread has jumped the track and is careening out of control into a quasi-religious religion vs anti-religion class of argument. Anyone wanting to talk about VCs will have hit reset and start a new thread. |
| Thu 05 Jun | Phibian | Alex:
As I am not an expert in the field of psychiatry, I have no idea whether your comments have any validity, nor do I have any basis for judging the quality of your sources.
However, I do know what makes a compelling/good essay, and I am forced to agree with D.A. that your offerings ain't quite there.
One thing that would help a great deal is citing your sources.
For instance in your Psych essay, you claim 'Contrary to popular belief, scientists have never been able to find a consistent biochemical, genetic, anatomical, or other functional marker that can reliably distinguish healthy people from the mentally ill.' But then you don't bother to back this up. Since I don't know you personally, and I haven't been particularly impressed with your logic skills, I'm somewhat skeptical of this claim just from you. Even if said statement were true, it is not *obvious*, and thus needs some sort of supporting justification.
You pepper your text with assertions such as 'Again, the actual data is complex, partly contradictory, and generally less than convincing.' But then you don't give examples, or back up your point. When you comment that Wellbutrin has little effect on serotonin (source?) but is no less effective according to 'studies' (which? conducted when? by who?) - it's not enough - you need to then draw your conclusions.
In fact, that is your essay's second biggest problem. You leave all the real work up to the reader. Here are some rather broad, sweeping conclusions, you say. Here are a couple of facts thrown in, it should be obvious how they relate to my conclusions. And if not, 'read this book'. |
| Thu 05 Jun | Erik Lickerman | As for a particular disdain for psychiatry, I can understand this, especially if you lump psychiatry in with psychotherapy which I must admit, in many forms strikes me a very witch-crafty. You need to give a little handicap to psychiatry though. Mental illness is inherently trickier then non-mental disease. For example, I think it was reletively recently that poeple accepted that schizophrenia is probably something physically wrong with the brain, as opposed to say, being raised by an overbearing mother. Still we have made some strides in the pharmacological treatmetn of schizophrenia and considering how horrible that disease is, I am glad of it.
What's the matter Alex, did a psychiatrist give you a diagnosis you didn't like?:-) Just kidding. Please don't hunt me down and hack me to bits. |
| Thu 05 Jun | www.marktaw.com | Anyone who hasn't should run out to the local bookstore or library and read a book on basic logic & argumentation. Especially if you're discussing something as serious as the medical industry, you really need to back up your claims with proof. |
| Thu 05 Jun | mackinac | It is kind of depressing isn't it. How often do we read some newspaper article about how badly students do on standardized tests of math and science, or how many people can't find Iraq on a world map.
But there seem to be few, if any, similar reports of how well the general population understand basic logic, logical fallacies, propaganda, etc. And what is the level of understanding of such topics as economics and politics.
Yet which of these classes of information is more important? Only the specialist really needs to understand evolution, the special theory of relativity, or how to solve differential equations.
But in a democratic society everyone will be expected (even if they don't) to vote for politicians offering up all sorts of snake oil solutions to our economic problems. Or they'll be bombarded by propaganda from all sorts of special interest groups.
Enough of a rant. I don't expect things to improve. Especially considering the state of affairs among this group that might be better educated than average. |
| Thu 05 Jun | James Ladd | CAN WE PLEASE GET BACK ONTO THE TOPIC OF VC's ???
IF YOU WANT A DOCTORS THREAD, START ONE !!!! |
| Thu 05 Jun | mackinac | For those interested in the psychiatry debate, check out http://www.szasz.com but don't use Netscape 7.0.
JL: This thread is permanently off track. To discuss VCs, try starting a new thread. Sorry. |
| Thu 05 Jun | Stephen Jones | Alex's argiuments about psychiatry seem perfectly reasonable to me.
It seems you're asking much too high a standard pf proof of him.
He certainly doesn't need to prove there is no clear dividing line between mentally ill and healthy. It is up to the others to prove the contrary and I suspect they will have a very hard time of it.
The number of people diagnosed as mentally ill in any society is directly proportional to societies abiltiy to pay a psychiatrist.
As for Erich's point about schizophrenia only recently been accepted as having a physical cause in fact we see that the pendulum has been swinging both ways since 1904.
And bear in mind that schizophrenia is not a disease in the sense that cholera or pneumonia is; it is the name given to a collection of symptoms like feeling cold, or having a cough.
Orthodoxy now says that drugs cure it, but in the 1940's the same orthodoxy said lobotomy did. The theory had a sligit set back when the Portugeese doctor who discovered and popularized lobotomy as a cure was murdered by one of the patients he had lobotomized. |
| Thu 05 Jun | Erik Lickerman | The pendulum has swung back and forth for a century or more but recently the pendulum has stopped swinging. It is clearly something physically wrong with the brain. Also, schizophrenia is not a syndrome. There are several types of schizophrenia but, for example, paranoid schizophrenia, is a disease just as, for example influenza is. Sure there are many types of influenza viridae but the flu still doesn't qualify as a syndrome.
Also, we have not cured schizophrenia and, I would wager, will not do so during my lifetime. We have drugs which help but they have pretty harsh side-effects and many patients choose to go off meds when they feel better.
Possibly VCs are schizophrenic. Maybe that would get us back on topic. |
| Thu 05 Jun | The Real PC | Yes schizophrenia has physical causes, and yes drugs may cover up symptoms but do not cure it.
Schizophrenia will never be understood by conventional medicine because conventional non-holistic science/medicine does not understand what kind of machine the brain is. |
| Thu 05 Jun | somebody | >>
CAN WE PLEASE GET BACK ONTO THE TOPIC OF VC's ???
IF YOU WANT A DOCTORS THREAD, START ONE !!!!
<<
Judging from the relative popularity of the other current threads on VC, I'd say that more people are interested in talking about doctors : )
Also, if you read the original post, nothing in this thread is off topic (other than your post, maybe). |
| Thu 05 Jun | Alex Chernavsky | Phibian wrote: 'One thing that would help a great deal is citing your sources. '
All the assertions you quote are explained in the book ('Blaming the Brain') cited at the end of the section. I agree that I could have been more explicit in indicating that essentially the whole section came from the book (though I could have cited other sources for the same information). |
| Thu 05 Jun | Tj | (Yeah Brent, I sometimes go overboard on antiwestern stuff when I'm in a silly mood. It's actually a good sign for our medical system that I've met people in med school who are interested in non-modern thinking, and they go about it with rigor. For example, they're very interested in holistic practices, and are interested in what in our society keeps us from more preventative medicine. Or that is how they explain it to this layman.) |
| Fri 06 Jun | Julian | Anyone interested in the real world of physicians should read Atul Gawande's _Complications: A Surgeon's Notes on an Imperfect Science_. My one-paragraph review is at http://www.mindspring.com/~teleri/julian/books/short.html#complications |
| Fri 06 Jun | Ethan Herdrick | Real PC - glad to see you back on the board. I was worried for you last month when the Bad Darkness Wolf ate the Moon Virgin. |
| Fri 06 Jun | Stephen Jones | Dear Erik,
I am highly suspicious when people say the pendulum has stopped swinging. That has been claimed at other times.
In Western medicine we normally consider something to be a disease once we have either identified the cause (viruses in the case of influenza or HIV or the common cold, bacteria in other cases, or toxic substances in the environment in others). In the case of cancer we have a clearly harmful phenomenum even if we don't know the root cause or causes. We can't say of somebody with the symptoms of cancer that maybe he just has these tumours but is perfectly well, or maybe he has cancer. But a person with eidectic vision can be perfectly sane or a 'clinical schizophrenic'.
We have long known that chemicals can affect the brain and people's perceptions; people wouldn't smoke ganja, drink bourbon, swallow magic mushrooms, patronize Starbucks or snort cocaine if this weren't true. Science has also quite an astounding idea of the way the brain works - pseudo-(real?)mystical experiences can be triggered in the laboratory by stimulating certain areas of the brain, but it is also that most changes will have untoward effects.
The basic problem is that with known diseases it is clear that the person is ill. You might decide to start a treatment just in case - it actually takes two months to be sure that a subject has TB but you start the triple-therapy treatment immediately because the effects of waiting for full confirmation would be dire However with mental diseases it is not at all clear where the line between being clinically ill, and not being so, lies. |
| Fri 06 Jun | The Real PC | [Science has also quite an astounding idea of the way the brain works - pseudo-(real?)mystical experiences can be triggered in the laboratory by stimulating certain areas of the brain]
No, Stephen, this is another one of those misconceptions. Brain scientists know that if they destroy or damage a particular area of the brain, a particular disorder may result (actually, they don't destroy or damage human brains, for obvious ethical reasons, but observe cases already damaged). They also experiment using electrical stimulation, as you mentioned.
When an area of the brain is damaged, or electrically stimulated, or whatever, and you observe the results, you cannot claim that the damage, or electricity, caused the result.
Brain scientists do not understand how the brain works, and they can only make indirect inferences. It would be easier if they were free to damage healthy people's brains, but even that would not provide an understanding of how the device works.
A schizophrenic, or a person on certain kinds of drugs, for example, may experience hallucinations. A materialist scientist would conclude that the diseased or drugged brain has generated the hallucinations. A different interpretation might be that the disease or drug (or electrodes, etc.) has disrupted the normal functioning of the brain, and the hallucinations are a symptom of a disrupted brain.
I hope that helps. |
| Fri 06 Jun | The Real PC | [Real PC - glad to see you back on the board. I was worried for you last month when the Bad Darkness Wolf ate the Moon Virgin.]
It was rough, but I have ways to get through it. |
| Fri 06 Jun | Devil's Advocate | No, Real PC, this is another one of those misconceptions. Scientists know that if they destroy or damage a particular area of a CPU, a particular disorder may result (actually, they don't destroy or damage good CPUs, for obvious ethical reasons, but observe cases already damaged). They also experiment using electrical stimulation, as you mentioned.
When an area of the CPU is damaged, or electrically stimulated, or whatever, and you observe the results, you cannot claim that the damage, or electricity, caused the result.
Scientists do not understand how a CPU works, and they can only make indirect inferences. It would be easier if they were free to damage good CPUs, but even that would not provide an understanding of how the device works.
A damaged CPU, for example, may experience errors. A materialist scientist would conclude that the damaged CPU has generated the errors. A different interpretation might be that the damage has disrupted the normal functioning of the CPU, and the errors are a symptom of a disrupted CPU.
I hope that helps. |
| Fri 06 Jun | Phibian | 'All the assertions you quote are explained in the book ('Blaming the Brain') cited at the end of the section.'
When you are writing an essay that is going to be taken seriously (as opposed to an essay that is completely your opinion and taken as such), it isn't good enough to say - the assertion is in the book. You need to cite the page.
Stephen wrote: 'It seems you're asking much too high a standard pf proof of him.'
Backing up one's points and specific sources are basic elements of an essay of that nature, if the author expects it to be taken seriously and not merely as conjecture and opinion. Given that the author was complaining that people dismiss his opinions 'all the time' without explaining why...
Stephen:' He certainly doesn't need to prove there is no clear dividing line between mentally ill and healthy. It is up to the others to prove the contrary and I suspect they will have a very hard time of it.'
If you are writing an essay on any topic, you need to provide your base assumptions to the reader and *back them up*. It's no good to leave that up to the reader (or 'others'), because in that case the only people you will reach are those with domain knowledge and who already agree with you or those lacking critical thinking skills and looking for reinforcement of their world view.
So if the essay makes the assumption that there is no clear dividing line between mentally ill and healthy, he needs to cite where he got that interpretation from (as he did not present himself as an expert in the field, he can't just say it - just as you can't just say it - and automatically expect readers to believe it). Call me a skeptic, but if you want my opinion, most people believe whatever they are told without any justification whatsoever (a point that the author was making as well...).
Incidentally, the section about the 'law of thirds' sort of goes in the right direction towards proving this. The biggest problem with that section is that it comes across as picking three random, different studies and then saying they are all related.
'Here's a study on the placebo effect' (would be more compelling if you cited multiple studies, btw)
'Here's a study on faith-healing' with the same proportions of effectiveness as the placebo effect study.
'Here's a study on [whatever you were trying to prove - can't remember anymore and too lazy to look it up]' with the same proportions etc.
My first reaction to the same proportion thing is: 'so what?' Statistics are all well and good, but since I don't know whether the 1/3, 1/3, 1/3 statistic is generally accepted as an indication of the placebo effect, I can't take this as fact on its face, nor does anything you say really provide a basis for allowing me to take that statistic for granted. OTOH, I do know that statistics can be manipulated to mean whatever you want them to mean. Frankly, I think the example about faith-healing is out of place. You want to prove that your statistic
Furthermore, say that I (your reader) am convinced of the effectiveness of faith-healing. I accept your statistic about the placebo study on its face. I see that a study about faith-healing has the same effect (and btw not that I'm saying anything about faith-healing, but there are other studies out there showing higher effectiveness). All of a sudden, your third statistic at best doesn't prove anything to me, and at worst, makes me wonder why you are proving the opposite of what you are saying you are proving.
Bottom line: unless I believe you are an expert and are basing your opinions on something concrete (eg your past twenty years of clinical studies), if you make a statement of fact - you need to back it up.
Prove to your readers that you are correct! If you don't, then it's a great deal easier to challenge your opinions. |
| Fri 06 Jun | The Real PC | Devil's Advocate,
They don't try to figure out how computers work by destroying parts of them! There are better ways of finding out, since you can ask the designers.
There are no laws against destroying animals' brains, by the way, so scientists have been free to cut out any part and see what happens, and they still don't understand how the thing works.
There is research being done in alternative science, however, and that's where the progress will be made, I believe. |
| Fri 06 Jun | Plutarck | 'A materialist scientist would conclude that the diseased or drugged brain has generated the hallucinations. A different interpretation might be that the disease or drug (or electrodes, etc.) has disrupted the normal functioning of the brain, and the hallucinations are a symptom of a disrupted brain.'
This makes no sense at all; both interpretations are entirely consistent with a naturalist - or materialist, or empricist - philosophy.
On the subject of screwy science, why pick the softest of sciences which are in general ever so hard to advance for general lack of ability to subject hypothesis to empirical tests - unless, of course, one wishes to reach a pre-conceived conclusion? Why not instead pick Physics, Chemistry, or Biology? They are far older, far more mature, and extremely amenable to reproducible empirical examination, and are typically what it seems most people think of when one says 'Science'.
Furthermore, to claim that these soft scientific fields have not managed to fully, completely, reliably explain some of the most complex phenomena available for consideration, and then based upon that draw the conclusion that the philosophical underpinnings are therefore defective, is...well, defective, and simply illogical. The whole 'point' of science, if I may opine, is that it is forever open to new information and the replacement of old theories for newer, better ones (as has happened countless times in the past, and will continue on countless times into the future - though almost never without great effort, as humans have a tendency to get attached to their present ways of thinking and doing).
However, does the 'competition' - the alternatives - do the same thing? In Traditional Chinese Medicine, for instance, it matters little if modern science proves, beyond all doubt, that some such remedy, like tiger liver, does none of the sorts of thing it is said to do; the beliefs and practices of religion, folk-anything, and tradition are almost never - as a part of the belief/action system itself - constantly, or even occassionally, critically evaluated, claims put to the test, and things which then are found to be false discarded. This is the gold standard of what Science is and/or should be; anything that claims to be science, but does not forever test it's claims and challenge it's assumptions, claims an honor it is not due.
Put simply, the power of science is never it's current state, but it's potential - and drive - for improvement. Science, when done properly, is forever and infinately amenable to reason and evidence. However, I am aware of nary a religion, folk or traditional practice, or metaphysical belief system or philosophy which, as an absolutely fundamental core principle, does the same (they have, however, with the passage of time grown increasingly impossible to pin down, and in general make less and less claims which can actually be empirically tested or verified). |
| Fri 06 Jun | Devil's Advocate | Real PC -
Science is not served by questioning the designers, as they may be wrong (e.g. Pentium FDIV flaw). It is served by forming and testing hypotheses. It is possible to discover the workings of a microchip with nothing more than a set of wires in and a set of wires out (e.g. the IBM PC BIOS). Science is served not only by validating good hypotheses, but also by dismissing invalid ones.
It is true that there is still much unknown about brain function, but neurology, neurophysiology, etc. are still young fields. It took many centruries for astronomers to conclude that the Earth goes round the Sun.
All people (including scientists) take some reports of discoveries on faith. This is simply because there is not enough time in one's life to reproduce every experiment in every field of science. Some of these discoveries turn out to be bogus (e.g. cold fusion). The only way we learn of these cases is when other scientists attempt to reproduce these results and fail.
These are not black eyes for science. The whole point of science is to reject hypotheses which do not stand up to the scrutiny of experimentation, their publicity notwithstanding. |
| Fri 06 Jun | Alex Chernavsky | Phibian wrote: 'So if the essay makes the assumption that there is no clear dividing line between mentally ill and healthy, he needs to cite where he got that interpretation from'
I never made that claim (Stephen Jones did, I think), though I suppose it's true enough. For what it's worth, there's no clear dividing line between normal blood pressure and high blood pressure, either. In any case, this issue isn't terribly relevant to the major points raised in my essay.
As for the number and quality of citations you require, I consider your standards to be unreasonably high. I might feel differently if I were writing a review article for the New England Journal of Medicine, but I'm not. |
| Fri 06 Jun | The Real PC | I am not arguing against Science. In fact, I believe the scientific method is the best method humans have devised for discovering how nature works.
Ancient and primitive people were not very good at science, that is true. They were as intelligent and observant as we are today, but access to information was limited, and they had nowhere near our level of knowledge and understanding.
What I am arguing against is the philosophy of Materialism, and this is not at all the same thing as Science. The problem is that these two concepts are associated for historical reasons.
Ancients and primitives, and all modern people who follow a religious or mystical tradition, are not materialists. There are many scientists who are not materialists, although they may follow the materialist philosophy in their work.
And then there are scientists who are not materialists. They are sometimes called 'alternative' scientists, as non-reductionist medicine is sometimes called alternative medicine.
Alternative scientists and medical practitioners combine the advantages of modern technology, knowledge, and the scientific method, with and non-materialist, non-reductionist approach to studying nature. Unlike ancient people, who probably accepted whatever beliefs were passed down from their ancestors, modern alternative scientists are just as skeptical and empirical as conventional/materialist scientists. They use the same scientific method. The difference is that they are not tied to the materialist philosophy.
What exactly do materialists believe, anyway? Originally, they claimed that only things which can be perceived by the physical senses are real. Now science is full of concepts that cannot be perceived by our senses, and require special equipment to detect. There is nothing in modern science that suggests that all the substances, particles, fields, and forces that could possibly exist have already been discovered and detected. Modern physicists suspect there are more dimensions than the three spatial and one temporal dimension we are familiar with.
Alternative scientists are working on new theories of how the brain works based in modern physics, rather than in 19th century materialism. |
| Sat 07 Jun | Phibian | Hey Alex, it's no skin off my nose whether you cite your essay or not. I was just explaining why I find your essay less than credible. I'll grant you that it is more work to write a credible essay (where you back up your points and cite your sources) than it is to simply slam together a couple of random conclusions and recommend a few books. However, provided that the conclusions you state are based on facts rather than something you 'believe', going through the essay to back up each conclusion with the help of your handy-dandy reading list (so that you can immediately cite your sources) shouldn't take more than a couple of hours. Also, you don't need to cite your conclusions, just anything that isn't 'innate' knowledge. You can also skip citations if your point is based on knowledge acquired through personal experience, but then you do need to mention this ( 'When working as a door-to-door salesperson, I observed that many homeowners neglect to paint their front door...'), unless it would be obvious to the reader that your observation is based on your personal knowledge. Pretty much everything that Joel writes falls into this category.
Furthermore, until you do cite your essay and back up your points, you will continue to find it difficult to convince readers of your essays that you are not just spouting nonsense, unless they already agree with you. If this doesn't bother you, then next time someone like Devil's Advocate comments that they are not convinced by your essay - I hope you will not flame back that 'noone' has ever taken the time to give you specific recommendations for improvement :)
Incidentally, I disagree that my standards are unreasonably high. Didn't you (and Stephen too?!?) go to high school? I was unfortunate enough to suffer through the Ontario Public School System for high school, but even my grade nine papers were held to a higher standard of citations and backing up one's points than these papers. And I wasn't making controversial claims about medical matters...
With respect to writing an article for medical journals, I mean no disrespect when I say that merely citing your sources and backing up your points would not be sufficient in order to get your paper to a publishable standard. It would, however, make your essay much more convincing.
Finally, speaking of controversial claims, medecine and essays - the following paper (also not publishable in a medical journal) follows a format that is much more convincing than yours - http://www.quackwatch.org/01QuackeryRelatedTopics/emf.html. The writing style is a tiny bit more formal, but that is not what provides the surface credibility.
Notice that despite being a Ph.D with domain expertise, Dr Farley quotes other researchers to back up his opinions, as well as citing his sources. He also picks the points he wants to make, backs up each point one at a time, and then draws a conclusion. |
| Sat 07 Jun | Devil's Advocate | Real PC -
'What exactly do materialists believe, anyway? Originally, they claimed that only things which can be perceived by the physical senses are real. Now science is full of concepts that cannot be perceived by our senses, and require special equipment to detect. There is nothing in modern science that suggests that all the substances, particles, fields, and forces that could possibly exist have already been discovered and detected. Modern physicists suspect there are more dimensions than the three spatial and one temporal dimension we are familiar with.'
I am confused by the dichotomy you propose re: materialists. Galileo, as the father of modern science, invented the specialized equipment (a telescope) to detect what was undetectable by the senses alone. This predates the supposed change in your described materialist philosophy of science.
What modern Physics (or more appropriately Mathematics) has shown is that a higher-dimensional model is consistent with all of the phenomena observed in our lower-dimensional universe (and the algebra is a little cleaner). To my knowledge the higher-dimensional models hold no more predictive power than the ''classical model' and have not been experimentally verified. Thus there is currently no advantage to using one model over the other (save some simplified algebra). If you can define an experiment which could decide the matter, more power to you.
I gather from your post that 'alternative science' concerns itself with 'substances, particles, fields, and forces' which have NOT been 'discovered or detected'.
This portion is problematic. If we have not detected something which forms the basis of a theory, we cannot hope to design a repeatable experiment to validate that theory.
The scientific method repeatability of experimental observations. If we can't detect something, we can't observe its influence, and we sure as hell can't repeat the experiment in a meaningful way.
Furthermore, any well designed experiment which is repeatable /serves as a detector/ for the experimental condition.
I can hypothesize that my eggs were undercooked due to a concentration of Bogons over my stove. If my stove consistently undercooks eggs when my neighbor's does not (under the same experimental conditions-- same pan, same time, same heat, etc.) then I will have demonstrated a stove-egg-based Bogon detector. If my stove does not consistently undercook eggs compared to a control stove, then I will not have validated my hypothesis that such a concentration exists.
Any theory based on undetectable phenomena cannot be validated according to the scientific method. |
| Sat 07 Jun | Stephen Jones | Dear Phibian,
Your link gives a 404. Still in High School in Ontario they probably didn't teach you to check out the links |
| Sat 07 Jun | Christopher Wells | Stephen: that's an artefact of the JOS software: try removing the trailing '.' from the link. |
| Sat 07 Jun | The Real PC | Devil's Advocate,
If you are not hostile to the non-materialistic scientific approach, and are not horrified by the thought that the kind of supernatural powers most humans everywhere have (and still do) believed in might in fact be real, then I don't mind continuing the discusssion. I am not interested in trying to convince people whose minds are closed on the subject.
Materialists (according to my observations) cherish the sense of superiority they get from feeling they know something the less educated masses are unable to grasp. The special wisdom of the materialists is that gods, devils, ghosts, spirits, magic, miracles, special powers of all kinds, are all just nonsense believed in by ignorant people who cannot except reality, whose minds are overrun by fantasies and hallucinations. The materialists see the human brain as something that spontaneously generates all kinds of nonsense. Unless people are taught the 'truth' of materialism, the nonsense generated by their brains, and by the brains of others, will convince them that the supernatural (nature on some higher and/or different level) actually exists and paranormal events actually occur.
Materialists, according to my observations, have made up their minds regarding the supernatural. Theories from contemporary physics and evidence from parapsychology is a threat to their sense of certainty and of superiority.
Materialists share one trait with religious fundamentalists -- both cherish their sense of certainty. There is no point arguing with a fundamentalist Christian; rational arguments just make them hostile. Similarly, there is no point arguing with someone whose sense of certainty and superiority is grounded in 19th century materialism.
If you are not a fundamentalist I will continue this conversation. Of course, fundamentalists often pretend to be open-minded and scientific, until their certainty is threatened by facts and logic. Then they tend to become enraged. |
| Sat 07 Jun | Stephen Jones | Christopher,
Is it a bug or has the full stop been put in. Strange because the 404 message actually came after I took off part of the URL to get back to a parent folder.
Anyway the link does work if you take off what the web site appears to add to the . |
| Sat 07 Jun | Stephen Jones | Dear PC,
We don't feel in the least threatened by you. Amused rather.
Indeed you could be right. Could you recommend a good exorcist to debug my code? |
| Sat 07 Jun | Christopher Wells | > Is it a bug or has the full stop been put in.
I called it an artefact; the full stop has been put in. If I type text which appears to be an URL like this http://foo.invalid then the JOS software converts the text to a hyperlink; and if after the URL I type the full stop that would end a sentence then the hyperlink includes the full stop. |
| Sat 07 Jun | The Real PC | Stephen,
I am not claiming that every crazy idea must be true. I am saying that ideas that do not confirm your materialist preconceptions should not be dismissed without consideration.
Human beings -- all of us -- have good and bad ideas, true and untrue opinions. The challenge for all of us is to sort them out, so that our understanding can evolve and improve.
Primitive and prehistoric humans had good and bad ideas, and the same is true of modern philosophers and scientists. The progess of science depends on the gradual sorting out of ideas.
A person who, for example, is certain that ghosts are hallucinations has made up his mind based on materialist indoctrination.
On the other hand, a person who is certain that ghosts are real and who believes every ghost report is true, is gullible and unscientific.
It is because I am skeptical and scientific that I am willing to pay attention to evidence suggesting our world is far more strange and complex than the world described by 19th century materialism. |
| Sat 07 Jun | Stephen Jones | Yea, obviously. Everything is hyperlink until there is a space. Word doesn't do that but that is because it is acting 'intelligently' which is something most people complain about.
I actually click on links I post just to check they're correct.
I wouldn't normally comment, but when people start giving you BS about how they 'did better stuff when they were in 9th Grade', then they deserve all they can get. |
| Sat 07 Jun | Stephen Jones | Dear PC,
We're talking 21st century materialism. You're the one taliking nineteenth century materialism.
I'd love to see a scientific explanation of ghosts from you. How was their existence sciientifically proven? What exactly are they composed of? Presuming that they are more loquacious then the chat show corpses in the Monty Python sketch, invited to answer the question *Is there life after death?' , what did they say about the hereafter? |
| Sat 07 Jun | The Real PC | Stephen,
There is a vast amount written on the subject of ghosts, and many other paranormal phenomena. Some of it is the raving of lunatics, some is the wishful thinking of people who like to believe the world is ruled by a Nice Guy in heaven. What interests me is the ideas of real legitimate respectable scientists.
Often when a respectable scientist starts believing that some of the reports of ghosts, UFOs, near death experiences, whatever, may have some validity, they are no longer considered so respectable.
It's a catch-22 situation. If a scientist with all the right credentials goes over to the 'other side,' the fundamentalist materialists decide his credentials, intelligence and past reputation are no longer worth anything.
At this particular moment I am interested in what's going on in New Physics, and ideas about quantum consciousness. Unfortunately, although I am a scientist I am not a physicist and can't hope to really understand the bewildering math behind these ideas. All I can do is read the plain English statements, and that is a big disadvantage.
This does not completely disqualify me from having opinions on the subject. And no one except the individuals directly involved in the research is able to really understand it. Advanced physics is highly specialized and even physicists cannot completely understand work being done outside their own area.
However, a scientific and logical person can get a general grasp of the progress occurring in various areas. Fortunately there are summaries available for the non-expert.
Over the course of my life I have tried to become familiar with various branches of science, at least on a general non-expert level. I wound up focusing on cognitive science, because I believe that it encompasses many branches of science. My degree is in experimental linguistics, as I have mentioned.
There is too much information available for any one person to assimilate more than a small fraction of it. I do my best, while also having to make a living. I suspect physics is on the verge of a breakthrough which will at last confirm certain of Jung's ideas, for example. |
| Sat 07 Jun | mackinac | rPC, for some reason I have been trying to follow this discussion and it is hard to pin down just what you are saying. Let me ask the following:
What is 'New Physics' and how does it differ from the modern physics of the 20th century?
Do you believe in quantum physics? It is even more materialist than 19th century physics in insisting that theory be based on observable phenomenon. (Even if instrumentation is required). |
| Sat 07 Jun | The Real PC | [Do you believe in quantum physics? It is even more materialist than 19th century physics in insisting that theory be based on observable phenomenon.]
You don't understand what materialism is. It is the philosophy that Mind is a product of Matter. It is the belief that matter and consciousness are different things, that consciousness is generated somehow by the brain. This belief is not the equivalent of the scientific method, where assertions must be supported by evidence.
Scientists who are not materialists do the same kind of controlled experiments and make the same kind of observations as scientists who are materialists. Some of them participate in the same respectable journals and institutions as materialist scientists. |
| Sat 07 Jun | mackinac | You didn't answer my questions. |
| Sat 07 Jun | The Real PC | I would say the big difference between 'new' science and 'old' science is the former is a more 'holistic' approach. New sciences are influenced by things like the theory of relativity, complexity and chaos theories. New scientists are likely to believe that consciousness pervades the universe, and/or is in some way the substance of the universe. None of this is at odds with quantum physics. |
| Sat 07 Jun | mackinac | My first exposure to modern physics was reading Gamow's 'Mr Thompkins in Wonderland' as a teenager. Now, taking a quick look over my book shelves and noting such titles as Merzbacher, 'Quantum Mechanics', Waldrop 'Comlexity', Gleick 'Chaos', Holland 'Hidden Order', etc., etc., and noting the thickness of dust, I realize that I have been spending most of my time over the past few years with my head stuck almost entirely in CS books.
One of my favorite concepts during that period of reading was spontaneous order. This is the idea that agents interacting on the basis of simple rules can produce complex ordered behavior without the order being imposed externally. The idea can be applied to biological evolution or a free-market economy.
These are all interesting ideas, but I don't recall anyone who made the claim that any of this implied that conciousness pervaded the universe. Well, maybe I forgot some references to it. It was never very important to the issues being discussed.
This is why I have been having a hard time figuring out what you are really thinking and have asked these questions to try to figure it out.
I think I am talked out on this subject, but it does make me think I have to spend a little more time on general reading. That will have to wait untill after I get a new job though. |
| Sun 08 Jun | The Real PC | I didn't have time for general reading either, for over 10 years I guess. I have found time for it in the past couple of years. And thanks to Google and Amazon I can find all kinds of things I couldn't when all I had was the library.
For example, yesterday I found that Sarfatti (a 'New' physicist) has a theory about consciousness in sub-atomic particles. It seems like he's starting to get some of his ideas accepted by mainstream physics. |
| Sun 08 Jun | Stephen Jones | ---'I found that Sarfatti (a 'New' physicist) has a theory about consciousness in sub-atomic particles. It seems like he's starting to get some of his ideas accepted by mainstream physics. '----
Not that one though! |
| Sun 08 Jun | The Real PC | Ok, but it looks like he's getting his foot in the door. |
|
| Damned Lies and statistics | Wed 04 Jun | tapiwa |
| Just went on to Slashdot after a long abscence. One story caught my eye.
According to this story on Yahoo! news the BSA commissioned a study that decided that 39% of all business software is pirated, down from 40%. The decline is attributed to the BSAs enforcement techniques. The piracy rate was calculated by comparing the researchers estimates on demand with data on actual software sales.
In other words, some guys sat in a room and decided that people probably wanted to buy ten copies of software, but only five were sold, so the piracy rate must therefore be 50%. By a similar process we can calculate that 99% of all ocean-front homes are pirated.
BSA:: How long do they think they can use these scaremongering tactics to cry wolf, and look for govt kick-backs and regulation like the DMCA? Really drives me apesh*t. Just wait for the figures of sales lost due to these pirates and hackers! All based on dodgy statistics. Wonder what new law they will ask for now. Wonder if they will ever get the muscle to slap a BSA tax on every electronic good that can copy digital information..... Does any other group have a greater scaremongering machinery?
Statistics:: How many people accept silly stats like these without challenging not only their truthfulness, but also how valid the assumptions made or methods used to compute them are. This one for starters is possibly one of the worst methods I have seen. X should want the product. We have only sold Y. Ergo X-Y have pirated the product Really bad logic .... anyone seen worse?
Slashdot:: Why such a dodgy analogy. You cannot pirate a beach-front property. You can certainly try to invade one, or squat in one (and some folk do?), but there are only so many to go around. The problem with a bad analogy in an argument, is that it shifts the discussion away from the subject matter, into one about the analogy. A good debater (or PR machine) could easily use this method to suggest that your analogy is bad, ergo your argument is bad. Worst analogy anyone? |
| Wed 04 Jun | www.marktaw.com | > How many people accept silly stats like these without
> challenging not only their truthfulness
97.65% |
| Wed 04 Jun | Philo | What annoys me is that the BSA deflects the argument away from the idea that software might be too expensive.
If there are 100 computers running Windows, but only 60 copies of Windows were sold, then yes, 40 copies were pirated. The question that the BSA works so very hard to avoid is 'Why were they pirated?'
Maybe if Windows was $49 a copy then only 10 copies would've been pirated?
No, it does not excuse piracy, but I believe that the pricing of Windows and other software needs to be examined. Windows is the most egregious case, being perhaps the only software in recent history that has not dropped in price EVER. (Want a legal copy of Windows 2000? $235, same as the day it was unveiled)
Again, let me say - I do NOT support software piracy. But I *do* support examining more than one aspect of the problem of software distribution.
Philo |
| Wed 04 Jun | Mike McNertney | Companies have the right to charge whatever they wish for their product, with the full knowledge that fewer people will buy it. That does not mean that it is OK for the people who would have bought it at a cheaper price to steal it instead.
I realize that you weren't advocating piracy, but I just don't see how price is really relevant. Of course more people would buy something if it were cheaper, that is the most basic concept in Economics. That's also not necessarily the best way to maximize profits. High price is possibly (though certainly not definitely) bad for business, but it isn't an excuse to pirate |
| Wed 04 Jun | Mike McNertney | I should clarify that I think these statistics are rediculous, and I don't actually think pirating is a serious problem facing the software or music industries. It is blown way out of proportion, especially estimations of actual loss (I am first to admit that much pirated software/music would probably not have been purchased anyway). I just think it is definitely wrong to pirate, regardless of the price, whether you would actually buy it, etc. |
| Wed 04 Jun | Neil | Fair enough that Windows has never dropped in price. But someone did point out that if you bought winzip, some CD burning software, etc - basically all the stuff that comes with Windows - it would cost a lot more than Windows does.
And how about the SQLOLEDB drivers? Have you seen how much commercial JDBC drivers cost?
And also look at Windows-only multimedia production software, like Cakewalk Sonar, or the whole Sonic Foundry range (Acid, Vegas and friends). Then look at the DirectShow SDK and see how many of their services are provided by Windows - like, if you're so inclined, you can write Video Editing apps *yourself*, there's a multitrack timeline class and everything!
Sorry, just being pedantic. |
| Wed 04 Jun | Paulo Caetano | > Fair enough that Windows has never dropped in price.
>
While it's true that there's been a lot of value added in Windows, it still raises one question: What if I don't need it? What if I don't use it?
ZIP - I use Power Archiver, or some other free zip utility.
CD burning - I use whatever comes with my CD drive
DB Drivers - could you, pls, explain me WTH is that?
MM software - not really interested, thanks.
Or I could use the PC just to write Word documents and play games; now what I have is a whole lot of 'useless value'.
--
'Suravye ninto manshima taishite (Peace favor your sword)' (Shienaran salute)
'Life is a dream from which we all must wake before we can dream again' (Amys, Aiel Wise One) |
| Wed 04 Jun | Philo | Neil, good point on the idea that the price of Windows doesn't drop between versions, but I'm talking about the price of a single version of Windows not dropping over time like every other software package does.
And yes, Microsoft has every right to charge whatever they want. Just like I have a right to say the software is overpriced and it would be nice if some consumer groups put as much pressure on MS regarding their pricing as they do on people for not shelling out $250 for not buying Windows for their second computer...
Philo |
| Wed 04 Jun | tapiwa | I agree with Mike.
Pricing is not an issue. Let the owners charge what they will. Vote with your feet. There are a number of Office Suites out there (Lotus/Corel/OO etc) that cost less than word.
If you think it is not worth £200, then don't buy. If you think it is worth the media it is printed on, then wait till the price drops to those levels to buy. MS set a price that maximises revenue, not one that maximises shipments. Fantastic business logic.
Piracy allows the status quo to remain. I would be interesting to find out how many copies of office MS have sold to people who bought them because they needed to exchange documents with another person, who also ran (in this case a pirated version) of the software.
Basically, how much do software sales depend on the installed-pirated-user base.
<>
50% of MS office installations pirated
50% buy MS office for compatability reasons.
ergo, 25% of MS office sales would not happen were it not for the pirated copies
<> |
| Wed 04 Jun | Richard Ponton | Selling bits is an artificial business. It's just not natural. It may benefit society to have laws governing the redistribution of electrons and IP, but it goes against basic human nature.
Price is determined by supply and demand. With software, supply is infinite and therefore price should be zero. However, we have laws to artificially limit the supply and therefore maintian a price.
It's natural and unavoidable (but still illegal) that some people will not want to pay for something that they can get for free, especially since they aren't taking anything from anyone else (except for potential revenue) by doing so.
However, the harder the BSA pushes to constrain the free exchange of electrons, the harder human nature will push back. Piracy will increase out of contempt and or non-free software will lose out to free software. |
| Wed 04 Jun | Mike F. | 'Selling bits is an artificial business. It's just not natural. It may benefit society to have laws governing the redistribution of electrons and IP, but it goes against basic human nature.'
The richest man in the world got that way by an 'Artificial Business'? You expect programmers to work for free because you can't physically touch the product they make? |
| Wed 04 Jun | Brent P. Newhall | With all due respect, Richard, it may go against your human nature, but I think it's a bit hubristic to claim that it goes against *everyone*'s human nature. It certainly doesn't go against mine. |
| Wed 04 Jun | Richard Ponton | Yes, the richest man in the world got that way in an artifical business.
No, I don't expect programmers to work for free. I never said that. I never said software should be free. I simply outlined the fact that selling shrinkwrap software is an artificial business. Once the product has been made, there is an infinite supply available and in a completely natural market the price would be zero.
However, in such a completely natural market, we would ONLY have trivial free software, government-funded software, and custom software written as work for hire.
I like the current market, although I would like to revoke the DMCA, reduce software patents to 2 years with paid extensions to 6 years total, and move copyright back down to 20 years. |
| Wed 04 Jun | Richard Ponton | Brent,
So if I sold you a paper airplane for $5, you'd naturally feel obligated to pay me another $5 when you make one with the same design and give it to your nephew?
You're conditioned to recognize the value of paying for software (that it supports the developers, that it maintains the product, that it will help produce better software for you later, and it's the law of the land). It is a common moral value to pay for software and other IP. Morals are sometimes in direct contradiction with human nature, however. I do think it's not in the fundamental human nature to want to pay for something that one produces oneself, even if one didn't invent it.
I am NOT saying piracy is human nature, but piracy wouldn't exist without the artificial laws limiting software supply in the first place. |
| Wed 04 Jun | Eric Budd | I don't think the arguement about the cost of software is a valid arguement.
You know, the reason most cars are stolen is because they are too expensive. If Ford sold cars for 49.95 each, I sure fewer cars would be stolen.
So a copy o Windows is $200. If that licence will be used by an employee for 4 years, the total cost pey year is $50. In the total scheme of things Windows lookks like a bargin.
So, is Windows worth a $1 a day? If so, buy it. If not, don't use it. |
| Wed 04 Jun | Richard Ponton | That analogy doesn't work.
Copyright violation is not the same as stealing. No matter how morally wrong you consider piracy, there is a big difference between depriving someone of potential revenue and depriving them of actual property.
I don't see anyone here advocating piracy. Some of us merely stating that lowering prices would be much more effective at reducing piracy than any draconian laws.
Of course, the ethical thing to do is simply to not use the software if you think it's overpriced. That's a given. |
| Wed 04 Jun | www.marktaw.com | I think the issue here is ease of copying v. cost.
Car theft is probably much lower than software piracy not because they're so damn expensive, because cars are so damn hard to steal and there's such a high risk of getting caught. All it takes to steal software is... well, the thing you need to run it in the first place.
Then there's the perception that it's a victimless crime.
If I borrow a copy of Windows from Eddie Haskel down the street to install on my computer, Eddie still gets to use his. If I steal his car, however, he doesn't. Besides, Microsoft doesn't suffer because they don't get my $200, they're rich.
This is the same for mp3's. Once upon a time, the only way to copy an album was to make a cassette copy of the LP or CD. Now anybody can download their favorite album off the internet. It's easier than going to the store. |
| Wed 04 Jun | S. Tanna | The problem with Richard Ponton's point is it takes no account of the high initial cost of developing software
Let's say a piece of software costs $1,000,000 to develop
If the first guy pay were to pay $20, and then gives free copies to say 49,999 friends - because it's just electrons - the developer loses $999,980.
So the only way to allow free copying, and make it economic to write this software in the first place, would to charge the first guy $1,000,000....
...But of course, who is going to step up to the plate and pay $1,000,000 for software - when if he waits - there might be some other sucker who might pay $1,000,000 and gives him a free copy.... which leads to 3 bad economic consequences:
1. everybody ends up waiting for that sucker. Which slows the pace of commerce and development - the developer has got to be thinking what if the sucker never shows up.
2. to the developer, it doesn't matter economically what the 49,999 think, just that 1 guy pays $1,000,000. So you end up with the situation where the software is tailored for that 1 rich guy, even if it makes it useless for the 49,999 free users.
3. If the software package ain't worth $1,000,000 to at least 1 person (even if it is worth more than $20 to 50,000). The developer will have no incentive to develop it in the first place.
With copyright, the developer gets a choice of addressing a few rich guys (like the $1,000,000 example), or a broader market of people who pay a small amount each (like 50,000 people each paying $20). Not every developer addresses every market - but in the capitalist system - any substantial market is going to get addressed by somebody.
I think the BSA is full of it, copyrights should be drastically shortened, patents on software/algorithms/business-processes all (or virtually all) thrown out --- but I still think copyright is a useful, nay essential, underpinning to get software developed in the first place. |
| Wed 04 Jun | Chris Davies | 'Why such a dodgy analogy. You cannot pirate a beach-front property'
I would have thought beach-front properties would be perfect for 'pirating.' Yarr, Jimlad.
I'll get me coat. |
| Wed 04 Jun | Stephen Jones | A long time ago the MS regional manager somwhere or other was complaining about how much of his software was pirated. A journalist asked the question 'Would you prefer they pirated Macintosh software instead?' There was a moment of silence while the enormity of the prospect sunk in, and then the Microsoftie quickly changed subject.
One thing that is interesting is that those prejudiced by pirating aren't those you would expect to be. Here in Saudi the only software you can't get pirated and have to pay for, are Linux distributions. The company that is supposed to lose most money after Microsoft is Adobe, because of all the pirated copies of Photoshop. This of course presumes that everybody using Photoshop to remove red eyes from the family snapshops would otherwise pay hundreds of dollars for the privilege, which is rubbish. The program most prejudiced by the pirating of Photoshop is Paint Shop Pro, because that is what people would be buying if they had to pay for Photoshop. Equally in the UK, where piracy is more strictly controlled, you see a large number of sales for Lotus Smart Suite or for Corel. These have no penetration whatsoever in countries with high levels of piracy. |
| Wed 04 Jun | njkayaker | Richard Ponton's point (i.e. that software is an 'artificial business') is correct.
It's artificial exactly to be able to recover the cost of (or make a profit from) developing software. It is the same kind of business as selling ideas (i.e. information). Calling it 'artificial' doesn't mean that people should not profit from it (Richard never said that).
It's the same situation as writing a book. The book is hard to write but cheap to reproduce. The only reason that some one would photocopy a book is basically because they steal the reproduction cost from the owner of the photocopier (usually).
Oddly, the book is commonly percieved to have value as a physical object. Some people 'collect' books and some buy books, never to be read, to put on shelves.
Software never is seen to have value as a physical object.
The point of the BSA (and copy protection) is to increase the cost of reproduction (in the case of copy protection, to make it impossible, i.e. 'infinitely' expensive, to do so).
The problem with copy protection is that it penalizes ligitmate users and (historically at least) has been easy to foil by people who want to pirate it.
Note that the BSA is not motivated by any ethical purpose. Instead, they are solely interested in converting the potential market of software pirates to a real market. Consider that the sales of software to the current legitimate market is flattening. |
| Wed 04 Jun | S. Tanna | I just do not buy the artificial part, any more than most other products and many services. In fact anything with a significant initial development cost.
When you buy (say) a car, you are paying both for the initial development cost in designing/developing the car, and the steel, rivets, etc. than are used to reproduce the design. When you buy (say) a new house, you are paying for both the architecture and the bricks and mortar. And so on. You pay one price for both bundled elements.
The difference with software, is that the reproduction process, at least to a reasonable accurate copy (e.g. may not have same physical manuals), is something Joe Sixpack can do at home himself - unbundling the 2 costs.
If Joe Sixpack could (and did regularly) knock up his garage his own Porsche, nearly identical to the genuine article, obviously this would reproduce the economic incentive for Porsche to design new models. |
| Wed 04 Jun | Mike McNertney | Richard, how is it against human nature to charge money for services provided? You may see it as 'buying bits' but what you are really doing is paying for the effort to create those bits. Even if it can be perfectly copied infinitely, that doesn't change the fact that someone had to create it in the first place and that took a lot of effort. If someone wants to provide that service for free, good for them. But charging for it is certainly not 'against human nature.' In fact I'd say it is very much IN human nature to charge for your services. |
| Wed 04 Jun | FullNameRequired | 'You may see it as 'buying bits' but what you are really doing is paying for the effort to create those bits'
but if that was all we were charing for, then surely the price would be an awful lot lower.
Lets use the car as an example :)
...all prices used henceforth made up...
Lets say I want to purchase a new car.
I go and buy a bmw for $100000
The profit for the manufacturer might be 30000
or 3/10's of the asking price.
The profit for the distributor might be 20000, or 2/10's of the asking price.
Overall profit for that car is 50000, or 50% of the asking price.
Now, lets look at an equivalent piece of software.
Lets say this software costs $100 to purchase.
To work out its overall profit we have to know how many copies are purchased...lets assume its a successful piece of software and that it has sold 100000 registrations.
Lets further assume that it cost 1 million to produce.
Thus total income is 10 million, total cost is 1 million (distribution $ is assumed to be 0...downloadable from the 'net')
Now, a couple of points...in theory this software could continue to be distributed forever and many more registrations sold...lets assume that doesn't happen and that they sell no more licenses.
the profit = 9/10's of the asking price, tending toward 0 if licenses continue to be sold.
my point? _we are charging too much for software_
We are not trying to make a reasonable profit for a reasonable expenditure.
We are trying to make an extreme profit for our expenditure, custimers know this and punish us by increasing their levels of pirating.
If we wanted to even come close to reflecting the profit margins of the 'real world' we would have to slash our prices by approx 90%
Until we do that, we will see high levels of pirating...this reflects our high level of greed. |
| Wed 04 Jun | S. Tanna | If you make up the numbers, you can prove anything you want.
You also seem to be neglecting that many software companies don't make money, go bankrupt etc. Software is (probably) more risky than many other businesses, so a big risk requires potentially bigger rewards to get people to enter that sector.
That aside, in a free market, somebody else would see company X making a truckload of money selling their stuff, and undercut them on price.
This is one (more) reason why I agree with government action against trusts, and am opposed to software patents. Make the market freer, and the price will sort itself out. |
| Wed 04 Jun | FullNameRequired | 'If you make up the numbers, you can prove anything you want. '
of course I can...but the general idea works, we _are_ charing more than the software is worth.
(except open source stuff, where they are actually charging _less_ than it is worth...)
'You also seem to be neglecting that many software companies don't make money, go bankrupt etc. Software is (probably) more risky than many other businesses'
I doubt it...normal businesses are pretty risky... many more go bust than make a profit..
OTOH even if that is true, software also has a much bigger return potential..the average diary or small business has a limit to the return regardless of the clever ideas that they come up with.
'That aside, in a free market, somebody else would see company X making a truckload of money selling their stuff, and undercut them on price.'
right..that _is_ happening slowly......unfortunately mostly via open source stuff....no price instead of low price.. |
| Thu 05 Jun | Marc | Lots of different products are non-tangible. Insurance and Stocks are good examples. They don't 'exist' anywhere by on a computer some place.
The term 'artificial' is a poor choice however. It suggests that software is fake. A more proper term would be 'Non-Tangible Products' or even 'Virtual Products'. |
| Thu 05 Jun | opera freak | '_we are charging too much for software_' -> bullshit
MS may charge US 20 a copy of windows. The piracy will be reduced, sales will go up, but the final profit will be higher ?
MS may charge US 2000 a copy of windows. The piracy will be elevated, sales will go down, but the final profit will be lower ?
Who knows ?
The trick is to find the value to the maximum profit and stop whining. |
| Thu 05 Jun | FullNameRequired | 'The trick is to find the value to the maximum profit and stop whining. '
interesting..that was exactly my point.
and that _includes_ whining about piracy....its _not_ a serious crime, beating someone to death with a baseball bat is a serious crime, piracy is...nothing....its importance has been artificially inflated by hysterical companies.
Piracy is a _hugely_ minor crime. |
| Thu 05 Jun | Richard Ponton | I acknowledge that less software would be developed if we didn't have IP laws and copyright laws. I never contended otherwise. It *is* still artificial. Reasonable, logical, but artificial. It's a societal construct, not a natural one. That's not to say that it's bad.
Software cannot be compared to cars in this instance (or ever, really). I cannot produce a mercedes for less than I can buy one from the dealer. I most defiinitely can create (by copying a CD) a copy of software more cheaply than buying it from the dealer. The only thing stopping me is social morality and legality.
I never said copyright violation should be unpunished. My point is merely that copyright violation is a natural, unavoidable occurance. Harsh laws with ridiculous penalties only serve to harm us. The most effective way to reduce copyright violation is to reduce the price of the product. Yes, Microsoft is free to charge $200 for Windows if that gives them the best profit:piracy ratio. But when they infringe on MY freedoms to shore up their profit margins in an industry that is founded on the good graces of people who see the value of supporting software authors, it pisses me off. |
| Fri 06 Jun | tapiwa | Richard:: 'they infringe on MY freedoms to shore up their profit margins '
I don't like MS much, but what freedoms are they infringing on?? You have no automatic right to their software. You can still choose whether to buy it or not to.
Here's the deal, If I decided to sell my voicemail recording for £200, how does that infringe on your rights. You can copy it for almost nothing, but it is still mine to do with as I please. |
| Fri 06 Jun | Basil Brush | Hmm, sounds like people here are cherry picking their ideas on intellectual property - something like 'property is theft, providing it is something i want one of.'
I guess this means squatting in people's holiday homes is okay as long as the owners aren't there?
Make your minds up people... |
| Fri 06 Jun | Stephen Jones | Dear Basil,
What on earh makes you think that property rights are homogeneous?
Intellectual property rights are in fact a very recent phenomenum, and are granted only for the purpose of advancing the Arts and Sciences. If property rights don't fulfill that purpose, then arguing against their validity is not cherry picking.
Even non-intellectual property rights are not universally accepted. They deliberately kept out the right to property from the US Consitition (this explains the 'right to the pursuit of happiness' which was put their to replace it), becasue it smacked too much of the Home country's repressive legislation - as well as avoiding the thorny problem of whether slaves were people or property.
Taking over somebody's holiday home is really a very stupid analogy. If somebody copies a CD of your software he may or may not be depriving you of the fruits of your effort but hie is not causing you worry, inconvenience or cigarette burns on the carpet.
If I am a peasant farmer (and personal property didn't exist before the agricultural revolution) then if you take my crop you are stealing the fruits of my labour. If instead of farming I produce software for a living, and society has decided that I should be encouraged to do so by some form of intellectual property protection, then you may or may not be depriving me of the fruits of my labour by using a pirated copy. However as in 90%+ of the cases you would not buy it anyway, then we cannot call it theft in those cases.
To suggest that pirating software is always theft is not a useful argument. It is reasonable to argue that it should always be illegal just as driving over the speed limit should always be illegal but is not normally qualified as being genocide.
The BSA blatantly twists language around, invents statistics, and perverts the processes of logic. The fact that it appears to think this worthwhile says something of the quality of our legislators and public opinion. |
| Fri 06 Jun | Gregg Tavares | Richard, I think you are missing something.
Prices are not based on supply of materials, they are based on supply of LABOR. You don't play $1000 for a diamond because there are few diamonds. You pay $1000 for diamond because it took $1000 of labor to find it. The diamonds themselves are free. You pick them up out of the dirt.
The same is true for all material products. You don't pay $1 for an apple because apples are scarce. You pay for all the labor to grow and get it to you. Labor to water the tree, labor to get the water too the tree, labor to build the pipes to get the water the tree, labor to make the truck to bring the apple to your store, labor to make the gas for the truck, etc etc etc... If you trace any of those things back to their origins you'll see that each one of them started as something for free. The costs involved have ZERO to do with it being material.
Software therefore is no different. You are paying for labor not for bits. The fact that the bits can be copied makes it possible for people to steal your labor easier than they can for a material object. That is all. It's still stealing because exactly the same thing is being stolen. Labor.
If that's not true, why do you pay doctors, accountants, lawyers, waitrers, etc. None of them provide a material product. |
| Fri 06 Jun | Richard Ponton | To those who don't get it: I am NOT advocating aboloshing copyright. Think before you flame.
Gregg, you're wrong. Price is completely determined by supply and demand (unless the supplier is unwilling to lower prices below their profit).
The supply of diamonds is controlled (artificially as well, but that's a whole 'nother topic). The reason diamonds are expensive is because they're rare. The fact that it takes so much labor to produce the final product is what makes them rare. I cannot produce a diamond myself, therefore I must pay market price, which is determined by supply and demand.
You don't pay $1 for an apple because it took so much labor to get it to you. You pay $1 for an apple because you want an apple, you don't have a tree, Safeway sells apples for $1, and Albertsons sells apples for $1.25. If that apple took a commando squad to smuggle out of Libya, it would still be an apple and only a fool would pay $1 million for it (the cost of labor to get it to you). Likewise, if you had an apple tree in your backyard, you wouldn't even pay $1 for an apple (all apples being equal).
The cost of production influences supply. If there is not enough demand to justify the cost of production, the supply will diminish and the supply/demand ratio will even out until the demand is enough to justify the cost of production.
HOWEVER, with software and digital information, reproduction costs are 0. Supply is ARTIFICIALLY limited by copyright laws. This is a good thing, but it is artificial.
Here's a fictional example. Say we have two fictional companies, Speyeglass and Mickysoft. Speyeglass sells a web browser for $20 a copy, reflecting the cost to develop. Mickysoft buys a license from Speyeglass to distribute the same piece of software at a flat yearly rate. Mickysoft distributes it for free. The supply of free copies is now infinite. Completely 100% regardless of the cost of developing it, the web browser is now $0 due to the laws of supply and demand.
The price of software is determined by supply and demand, just like everything else. The ONLY difference is that supply is artificially limited.
Tapiwa,
Microsoft (and the big content holders in general) infringes on my freedom when they get laws passed that limit what I could otherwise legally do with things that I have legally purchased.
If I have legally purchased a DVD, it should be legal for me to rip it and store it on my computer so my kids can watch it over and over again without ruining the disc. Thanks to the DMCA, this is not legal.
If they get laws passed that mandate hardware-level restrictions of what software I can run, they are infringing on my rights.
Twisting statistics and lying to get cruel and unusual levels of penalties for copyright violation infringes on my rights (should I ever violate one of those laws and be penalized unjustly).
I never claimed that selling (er.. licensing rather) their software for whatever price they choose was morally wrong or ingringed on my rights. |
| Fri 06 Jun | Stephen Jones | Your argument falls down Greg because when I have stolen the diamond that cost $1000 you have lost that $1000 whilst while I copy your software I am only stealing the price of labout that I would have paid for it if I couldn't steal it, which might well be zero.
Secondly your economics falls down. The cost of extracting a barrel of oil from the Saudi desert is under $1 a barrel, yet that oil only sells around $3 a barrel cheaper than Brent which cost ten or fiteen times as much labour to extract, and it only sells for less because North Sea Oil is superior. |
| Fri 06 Jun | www.marktaw.com | > Just went on to Slashdot after a long abscence.
Do what I do and visit http://www.freshnews.org and catch the headlines of slashdot and several other techie sites. |
| Fri 06 Jun | Basil Brush | QUOTE:
'It is reasonable to argue that it should always be illegal just as driving over the speed limit should always be illegal but is not normally qualified as being genocide.'
Which IS reasonable. Intent to kill is intent to kill. Negligence or not. |
| Sat 07 Jun | Gregg Tavares | Your both wrong,
Apples are free. Walk through some meadow and find a wild apple and it's yours for the taking. So are diamonds, dirt, wood, water, fish, and every other material thing. The only thing you are paying for is labor. You were too lazy or busy to do it yourself so you pay someone else to do it for you.
Software changes nothing except your ability to STEAL the LABOR. Pirating software is no different than not paying your doctor. Why do you pay him? He doesn't give you any material things, all he gives you is 15min to 2hrs of his time. Commerical software is the same. Some team to 5 to 50 people put in hundreds to thousands of man hours. They charge $30 to $1000 for their product hoping to pay for all that LABOR they put in. If you steal it you are not paying them for their time. It's pretty simple. |
| Sat 07 Jun | Stephen Jones | Dear Basil.
If you are negligent there is no intent. |
| Sat 07 Jun | Stephen Jones | Pirating isn't the same as not paying your doctor. It's more like asking somebody what the doctor prescribed him for a similar ailment and then going to the pharmacist and buying it yourself. |
| Sun 08 Jun | Basil Brush | Stephen,
That's alright then. |
|
| Time to avoid Developement as a career? | Wed 04 Jun | collegeStudentsBeware? |
| Over the past few months we have had several people in college ask what to study and what will best position them for a job.
Is it moot? Is it as Vivek Paul, president of Indian outsourcer Wipro says a decade ago we discovered that manufacturing can be done anywhere, in this decade we are learning that knowledge can be learned anywhere.
That the American or industrialized nation developer is a thing of the past? An icon as outdated as the textile worker, whose work is best left to third world countries where underdeveloped economies and wages allow for bettering America without the price?
http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2003/06/02/BU270141.DTL |
| Wed 04 Jun | collegeStudentsBeware? | Of course, it may be time to avoid 'development' too... B'ah!
:-) |
| Wed 04 Jun | FullNameRequired | my take on this is that all those developers who are inclined to whinge about how unfair it all is will give up....that will make room for those few who prefer to actually forge their own future... |
| Wed 04 Jun | Matt H. |
I think it's just a case of Natural Selection, again.
10 years from now, there will still be a market for guys who can walk into a company and say:
'Process X now takes you 10 man-hours to do - which costs you about $200 in labor expenses. You sell about 1000 Process X-services a year, for $500 each, for a total of $500,000.
For $5,000, I can cut process X to a one-hour process. And I can also generate process Y and Z, which are customized versions of X that you can sell.
So you can meet the customers needs better, faster, and more efficiently, charge the customer less - and make more money.
Whaddya say?'
No off-shore consulting firm can touch that, unless they can put a sales person in America that understands the industry and the business.
Of course, you have to know more than just CS to do this. You have to be a business consultant and a change agent.
Nobody said it would be easy - and the lamers will wash out of the system.
In my book, that's good, because it lowers competition, which will be really helpful in keeping rates up ..
JMHO ... |
| Wed 04 Jun | Mike Gamerland | Matt,
Interesting you should mention putting a sales person in America. About 5 years ago, I was approached by a off shore firm to do just that.
They wanted Americans to be in the companies, making the pitches and then tossing the work to them. If a company wanted people on site, we were to hire local contractors and still ship the work overseas.
I passed on that offer, but in the past year have seen several companies that previously did consulting/contracting work, become fronts for off shore development houses.
In short: yes, they do plan to do just that and offer exactly what it may appear they cannot. |
| Wed 04 Jun | Matt H. |
Currently, I know of 1 company in my area that 'does just that' ...
but they really don't.
Sure, they have someone on-site, but that person has to take business requirements (and generally, tech designs), and pass them off to off-shore development.
I'm talking about -writing- the business requirements and analyzing the needs of the business.
Will off-shore companies be doing this in ten years? Yes, but I don't think they'll be doing it -well-. Will they get better? Yes. It's going to be tougher in twenty years than it will be in ten, which will be tougher than today.
But 'Decline and Fall of the American Programmer?'
Only the weak and lazy ones.
regards, |
| Wed 04 Jun | Matt H. |
The Hero in the story is ABSOLUTELY Convinced that he can't get a good job, AND he drives a Nissan Ultima.
Those two facts, combined, make me feel not all that sorry for the guy. |
| Wed 04 Jun | Li-fan Chen | A few years ago I worked in the far east and from what I can tell, anyone smart enough to make high tech products for the G7 market is smart enough to hire appropriately.
While I was there, I met contact many people who do work in such capacity. For example: I met this one guy from Ireland who married in Taiwan; he sole purpose is to give a friendly face for a keyboard supplier. The supplier probably can't speak a word of english, but they know keyboards. In fact, it's the contact guy from the major american computer manufacturer who is responsible for the bad communication half the time: heavy southern cowboy accents. :-)
Although it still gives me the chills to recall how he feels some of the keys ought to be arranged. I like them IBM's or Sun kbs the best. |
| Wed 04 Jun | William C | Yeah, but what year is the Nissan Altima? Maybe he is driving a 97 Altima that he paid off when he did have a job.
A Nissan Altima isn't an expensive car, either. The MSRP price range is $17K to $23K. I don't believe that this is an expensive car. Then again, I would never buy a car new. So, maybe he did what I would do and buy an Altima coming off of a 2, 3 year lease for $10K-$12K (except that I would never buy an Altima!)
I don't think you have enough information to judge him on that. |
| Wed 04 Jun | Matt H. |
It's not that the car is expensive, it's that it's foreign.
In other words, he buys out-sourced cars, but thinks SWDev shouldn't be outsourced.
There's something wrong about that ... |
| Wed 04 Jun | Mark Hoffman | I just don't see outsourcing as this huge evil thing that will wipe out the American software industry.
Sure, outsourcing will always take some American jobs, but the problems of outsourcing are well documented.
My clients, like many companies, have no interest in outsourcing because they just don't see the long-term savings. They don't want to fight the language barrier, they don't want to fight the time-zone issues, they want to be able to sit down and talk to someone. They want face-time.
There is no doubt that some people will lose their job to an overseas programmer, but I don't buy into the doom and gloom that they nay-sayers are predicting. Many of them are folks that jumped into the industry when salaries were skyrocketing and are now disillusioned that reality has set in. |
| Wed 04 Jun | GML | I was just talking to a friend who works for a company that does all its development in India. What he, and the other US workers do, is gather requirements, sketch out screens, and fax them to India. The next day, prototype screens are created on their web site. Then, they spell out detailed requirements (we're talking pages and pages of documentation), and the code is done in India.
We both feel that the future of the American developer is that of understanding the business, gathering requirements and putting together specs, developing the architecture, etc. Programming (Coding) in the US is dying. |
| Wed 04 Jun | cheapo | I am so tired of hearing the 'foreign car' argument. Most of the Nissam Altima is manufactured in Smyrna, Tenn. Nissan has invested nearly $1.5 BILLION in creating jobs and manufacturing plants in Tenn alone.
Face it, EVERYTHING is outsourced, and that includes outsourcing from Asia TO the U.S. |
| Wed 04 Jun | valraven | I guess if you think coding and architecture/requirements
are seperate then it will work. But they aren't separate.
They inform each so intimately that they can't survive
a master-slave relationship. |
| Wed 04 Jun | | Face it, EVERYTHING is outsourced.
That's true. I live in the US and contracted for an Indian company that had a contract with a US company.
If coding is being outsourced and all that's left for the US to do is gather requirements then I suggest learn marketing and salesmanship. Read all the threads on this forum about bad management and incompetent consultants and DUPLICATE those practices. |
| Wed 04 Jun | Edoc | In the US, software development is a manual process that is expensive and tedious. Neither .NET nor XML nor Agile development will significantly impact this situation.
Therefore it's pretty natural that, like US manufacturing and other industries, companies will seek to export software development to places where resources (i.e., intellectual capital) are cheap/plentiful. Barring some high profile meltdown, this trend already has momentum that can't be stopped
Maybe after a while, we'll see software dev jobs return to the US, obviously once the cost/benefit disparity around has levelled out around the globe. But I fully expect to see this trend continue well into the future; after India it'll be Russia, then China, etc.
Our primary languages & technologies are C, C++, C#, Java, Perl, Oracle, SQL Server, and various byzantine platform APIs. Let's face it: As sophisticated as these tools are, they are fairly crude and require a high level of training & experience to use effectively.
All of this specialized training/expertise is reflected in the cost of development, plus a healthy multiplier for the standard of living in the US. Just like the lawyer or doctor who has certain salary expectations, professional programmers with the right skills (.NET, Java, SAS, etc.) expect a premium for their skills.
Basically, US developers have started to price themselves out of the market. When you factor in poor software reliability and usability, and the cost to maintain code, offshore development is starting to look pretty attractive. |
| Wed 04 Jun | richard | Its not the mobility of the jobs that is a concern for prospective students, but the fact that the technical bar to entry is being raised all of the time. Employers are being more selective about the skills they require (ridculously so in many cases) in prospective candidates and much less willing to trade off experience for raw talent.
Many of the nursery employers (large companies like telcos who hire lots of graduates and train them up) are in trouble, and seriously curtailing their hiring.
Ultimately its gettign harder to break in, and the skill combinations are gettign very specialised. Java used to open doors for you, now its j2ee with all the bits on before they will look at you (actually a particularly difficult area to break into - with nearly 5 years Java experience, I am practically ineligible). |
| Wed 04 Jun | Huh? | 'Then, they spell out detailed requirements (we're talking pages and pages of documentation), and the code is done in India. '
Yeah, I see that working long-term....What happens when requirements constantly change? Oh, I know..you're gonna have requirements nailed down in the scoping phase, right? LOL.
And maintenance?
I've only done corporate work, but in my projects there is simply no way that we could work this way. |
| Wed 04 Jun | Simon Lucy | Hmmm, I liked working in Taipei, maybe I should ring some people. |
| Wed 04 Jun | jbr | That's exactly what's happening at my job right now. The majority of testing and developing was recently shifted to Eastern Europe and Asia. The real kicker is that minority of us remaining have to hold their hands until they're up to speed enough to totally replace us. Needless to say, I'm working on my 'exit strategy'. |
| Wed 04 Jun | collegeStudentsBeware? | My clients, like many companies, have no interest in outsourcing because they just don't see the long-term savings.
and
I've only done corporate work, but in my projects there is simply no way that we could work this way.
I see off-shore companies offering us services at $10/hour for development. These are people with four year degrees in CS and several years of experience. We can get masters+ for $14 to $18/hour.
These numbers are what made me post the question. How can a college graduate in the US compete with someone making near poverty wage? As for the quality, etc. these people are not incompetent. How many times can the work be redone for an eighth the cost? Four times? six?
While we can expect some will be successful, as a curriculum does it make sense to recommend to your son or daughter? |
| Wed 04 Jun | Jim Rankin | The company I work for previously outsourced the entire IT operation. Then they realized that sometimes when they said 'jump' the reply was not always 'how high?' Then they contracted out a major project critical to the business to contractors. After that, another developer and myself were hired full time.
Now, the people who know the business requirements sit in the same cube block as the developers, and can communicate and verify the requirements face to face, at a moments notice. And being direct employees, we always say 'how high'.
The code the contractors wrote sort of barely did what it was supposed to, but was performance deficient, almost undeciperable, and contained roughly an order of magnitude more code than necessary. Over time, the entire project has been rearchitected to perform dramatically better and reduce the turnaround time for fixes and enhancements. ()
So no, outsourcing is not a panacea.
Two more thoughts: 1. A rising standard of living in places like China and India will also increase demand for products and services from the West in those countries, which is good for western economies. 2. The U.S. was scared to death of the Japanese economy in the 70's and 80's but seemed to do OK; I think we're more resilient than we give ourselves credit for (speaking for Americans, at least). |
| Wed 04 Jun | Mike Gamerland | jbr and college's last post are perfect examples of the future. As developers and/or consultants we can claim anything, but in economics is winning. It is very difficult to cost justify a person out of college versus a person with college degree and experience at half the cost.
I made a few calls since my earlier post and in a totally unscientific survey, 6 out of 9 places were either using or in the processes of piloting off-shore work. Cost being the #1 reason. Two mentioned that they could get 'better' people overseas. (Better meaning more advanced degree, more experience and less cost.)
I have been doing development work for nearly 20 years. 11 years at a fortune 2 outsourcing firm, nine on my own. Even the Fortune 2 is hiring off shore help. I cannot believe that 10 years from now this is going to be a large career opportunity, short of developing shrink wrapped software in hopes of creating the next Microsoft.
So I do not recommend doing this as a high paying career to my children. Fun, education, and entertainment, certainly. |
| Wed 04 Jun | Jim Rankin | 'We both feel that the future of the American developer is that of understanding the business, gathering requirements and putting together specs, developing the architecture, etc.'
Once that's done, there's really not much work left. Also, if the person who was in on the req's spec's and arch is also a developer, at that point it's probably more efficient for her to just write the code than to explain it sufficiently to a third party (explaining it well probably takes about as much time as writing the code). That leaves debugging and testing. And it probably makes more sense to have the person writing the code debug it and...
See a trend? |
| Wed 04 Jun | jbr | So then they move spec'ing and req'ing off-shores too... |
| Wed 04 Jun | Stephen Jones | Actually the car may have been made in England. Nissan have a big factory in Sunderland.
Most European cars are made in about three or four different countries each car, and then you get the question of cross-ownership. Is Mazda American or Japanese, and is Ford Japanese or American? |
| Wed 04 Jun | www.marktaw.com | Ford & Mazda cars are 99% identical. Just a different nose & dashboard really. Well, maybe not the 'zoom zoom' sports cars, but that's what I heard from my neighbor who worked for ford 10 years ago. |
| Wed 04 Jun | Jim Rankin | So basically, we'll have the following careers left in the U.S.:
1. Doctor.
2. Lawyer.
3. Professional entertainer (singer/actor/athlete/etc.).
4. Walmart associate.
5. Middle manager.
6. Phone sanitizer.
Is that about right? |
| Wed 04 Jun | William C | Matt H said:
'It's not that the car is expensive, it's that it's foreign.'
Oh. Oops! Now that I am clear on what you meant, I feel that you are comparing apples to oranges.
What is happening is that american developers make $X/year because of the standard of living here in the US. Offshore developers make $y/year (with X being much greater than Y).
I don't see Nissan's being $5,000 compared to $25,000 for a Ford. |
| Wed 04 Jun | Stephen Jones | Can we kill one idea stone dead.
---' What is happening is that american developers make $X/year because of the standard of living here in the US. Offshore developers make $y/year (with X being much greater than Y).---
Nobody cares less about the standard of living when they pay a salary beyond the reproductive cost of labout.
The reason a programmer can get more money in the US ia because of supply and demand. If there was an oversupply of programmers then salaries would go down to minimum wage levels because some people would still prefer to program than to work at Macdonalds.
One thing that keeps the number of programmers down in the US is the fact that there are alternative jobs which pay a 'living wage'. A teacher, or a sales rep, or a prison officer. In India those jobs get much lower salaries and so the programmer can be paid $600 a month and still be better paid than in any other job.
The only things that are cheaper in India than the US are real estate and servants and clothes. Many other things are much more expensive. |
| Wed 04 Jun | | As Jim Rankin asked what jobs are left in the US? I, too, would like to know. Banks are outsourcing their research and back office operations, manufacturing has already been outsourced, telemarketing is outsourced or automated, doctors and dentists salary has come down alot.
?? |
| Wed 04 Jun | Brent P. Newhall | I love the anonymous post just above this one, because I think it highlights how silly this thread is getting.
94% of the American population is employed as of April 2003, according to the U.S. Bureau of Labor Statistics. Doctors and dentists? Over ten million people work in the health industry. Manufacturing? Sixteen million people.
There are plenty of jobs out there, that haven't been outsourced; it's just not as easy to find them now as it was five years ago. The employment pains experienced by the health industry right now, for example, have almost *nothing* to do with outsourcing. |
| Wed 04 Jun | Jim Rankin | 'Manufacturing? Sixteen million people.'
But what's the trend? How many people used to be employed in that sector, and how many are likely to be employed there in the future? |
| Wed 04 Jun | Stephen Jones | Dear Jim,
How many people were employed in agriculture at the time of the Great Depression and how many are employed now?
Job wise, which period do you see as better? |
| Wed 04 Jun | William C | No, I don't think we can kill that idea 'stone dead'.
You say this:
'The only things that are cheaper in India than the US are real estate and servants and clothes'
The only things! The ONLY things!!!
Come on now. Real Estate is a HUGE part of the equation. You can't lump that in with 'servants and clothes'. Especially since the one big purchase in my life is and will be my house (mortgage). That is why it is my goal to pay off my house as fast as possible. I don't go buy fancy cars, expensive stereos, expensive wide-screen tv's, etc. Every penny that I can save goes into a bank account that I will eventually use to pay off my mortgage (as fast as possible). I feel that once I have no mortgage to pay ... I can work at Home Depot and still make a living.
Real estate in the United States is expensive and I need to spend that money. I can choose not to buy fancy things, but I can't choose not to buy a house (or rent) -- I'm not going to live on the streets!
Also, what are the tax implicatios over in India? My property tax and water/sewage taxes aren't cheap. |
| Wed 04 Jun | Stephen Jones | Now why is real estate more expensive in the US (and be careful here because it is not always so; a colleague of mine has just bought an acre of land with a five bedroom house on Long Island for $350,000, which is actually the same price I have just seen 5 bedroom houses advertised for in India).
The answer is because people earn more. Note; you don't earn more because you pay more for your house - you pay more for your house because you earn more and there is more competition for housing within commuting distance. If you find somewhere in the middle of nowhere you won't be paying much more for land than you are in India.
Now the guy in India who earns $600 a month, which is near ten times the average salary will in fact be paying a greater proportion of his income for his vastly inferior accomodation than you are.
Anyway you are arguing with the aside, not the main part of the argument. You are paid more in the States because you can get it, not because your employer, or the global consumer, has any feelings for your difficulties in paying the mortgage. |
| Wed 04 Jun | Ethan Herdrick | Stephen:
Consider what would happen if every Indian's income doubled but the price of food and clothing and such stayed the same. It would have zero impact on a given Indian's ability to afford a bigger home on more land because the price of real estate would skyrocket.
Real estate is a special case in economics because they ain't making any more. If you like the idea of a house with a yard being available to middle income people, you need to live in a sparcely populated country, like the USA. And for your kids' future, make sure your country doesn't allow millions of immigrants every year - not like the USA. Maybe try New Zealand. |
| Wed 04 Jun | ltarian | I think the only way you can reduce outsourcing is reduce the cost of living.
Petition your local representative to drastically reduce taxes and be prepared to phase out several government-run organizations like public schools and public libraries, while encouraging privatization and competition in these areas.
Also, reduce unnecessary subsidies and bailouts to sick companies. I'm not sure if UPS is goverment-owned, but if it is, sell it to the highest private bidder.
Try to reduce the size of the government to what it is really meant to do - like provide security, a judicial system, protect our constitutional rights, maybe regulate shared resources like the environment - and begin taking more responsibility for the rest.
In a few years, the cost of living will come down, you can maintain the same standard of living with a lower wage, and your employer does not have to outsource. |
| Thu 05 Jun | le bob | Everything eventually will head to an equilibrium, you can scream and fight all you want, but eventually (a hundred years from now, two hundred, whatever, eventually) we'll all be making the same wages worldwide. Isn't this just the capitalist and free market mantra? I don't see why it's so surprising or wrong, it's just natural! |
| Thu 05 Jun | pragmatist | Its nice to see some Amaricans too understanding the true picture. As for the others instead of blindly crying against outsourcing, realize that America is a true capitalistic society. American companies will try to cut costs at any rate - and right now outsourcing is just one means of doing so.
As for 'letting in immigrants every year' it is a well know fact that America is a land of immigrants. Let's not talk about shutting doors to a place we never owned ! |
| Thu 05 Jun | Stephen Jones | Ethan, you're actually backing up much of what I am saying. Even though real estate is a lot cheaper it will still be unaffordable. It's a general rule the world over; starter homes are always priced above the income of those who want to start a home :)
Real Estate is a special case in economics, but it certainly isn't true 'they ain't making any more'. They ain't making any more land, but that isn't the same as residential real estate. If you can improve communications then you expand the supply of real estate.
Also some costs remain stable; the price of bricks, wood, concrete or glass is not any lower in developing countries than developed ones. Often poor communications make it higher. So in areas of high employment the cost of the land is much greater than the cost of the building, but in areas away from centres of employment this is not true. |
| Thu 05 Jun | | While on real estae, I know for a fact that some palces in India are the costliest in the whole world! |
| Thu 05 Jun | Stephen Jones | Some Mumbai office rents are on a par with those in Central New York. On the other hand rents in Birmingham England are actually nearly double those of New York, so maybe the fact doesn't mean much. |
| Thu 05 Jun | Mark Hoffman | I'm an American that has been enormously blessed over the past several years from working in the industry. Things have been quite good.
However, I've never once deluded myself into thinking this will last forever. This is a problem that I see with many people: They've been making inflated salaries and they have perceived this as reality. It just ain't. Sorry.
So, many of these people lose their jobs and then can't find one that pays the same. They instantly blame outsourcing, the government, H1B's, etc for their woes. The fact of the matter is that they market has corrected itself. Capitalism at work.
These same people then cry, moan and whine about the sad state of our industry and make these gloomy predictions about how we are all gonna be indentured servants to Indians and Asians in the near future. And it's largely caused because they saw their temporary boon as reality.
I'll get stoned for saying this, but I'm actually somewhat happy to see the downturn because it has forced a 'thinning of the herd' as well as caused many in the industry to work harder at becoming better developers, architects, etc. The ones that don't want to invest time in learning new skills...well...they don't last.
Our industry has had too many unprofessional Cowboy Coder primaddonas and One-Trick Ponies. Fortunately, many of these folks are finding work in other industries. And that's a good thing as far as I am concerned.
Stone away... |
| Fri 06 Jun | Ethan Herdrick | Pragmatist: Why do you think that the option to immigrate to the USA is some sort of civil right held by six billion people over Americans? |
| Fri 06 Jun | Ethan Herdrick | Abundant land and scarce labor have always set America and Canada apart. But let's look at what happens when open land to build on runs out. Wages have risen in Silicon Valley for decades, but ever since the the last developable open spaces in the Valley were built out in the late Eighties, the wage to home cost ratio has dropped quickly.
Certainly the pay that an entry level engineer gets in Sunnyvale today at Yahoo is better than the pay that an entry level engineer in Sunnyvale got at Lockheed 30 years ago. Today's Yahoo engineer wage goes farther in buying a car, food, fashionable clothes, pretty much everything. Except land. I don't know about you guys, but I'd rather have the old guy's big back yard with fruit trees and a dog than the improved car and better clothes that the modern guy enjoys in his condo.
Now, in certain places like Silicon Valley and Manhattan, high population densities would happen just from other Americans moving there anyway. OK. But do you really want the rest of the country to follow suit? Let's halt mass immigrantion. |
| Sat 07 Jun | pragmatist | Ethan - in a way I agree with what you are saying. But what I'm trying to say is that we shouldn't just blindly say no to immigration (and I'm not talking about mass immigration here). If there is an opportunity in America and an immigrant is the best guy for it - then so be it. It's not fair to stop immigration and pick the best guy in America - this country was not built that way.....
Having said that, allowing unqualified immigrants just because they are cheap is surely a mistake. It's America right now. But this will be the case with any place with opportunities - be it Asia, Europe or even Africa. Who knows, someday we may all runs to Africa ?! |
| Sat 07 Jun | Stephen Jones | Ethan,
Land prices go up because there is work. So a lot of people want to live near where the work is, and because there is an abundant source of labour companies relocate. At some time or other the cost of labour will increase to such an extent that companies will move out somewhere else and the process will stabilize or go into reverse.
Now when land prices go sky high you find that indigenous workers are no longer prepared to take the low paying jobs, because they could never afford even a studio apartment of their own. Equally companies are not prepared to pay $15 an hour for cleaners or fast food waitresses because that would put their prices sky high and continue the inflationary spiral. So there are loads and loads of low paying jobs that will only allow you to live in cramped conditions, and this is what the immigrants take up because they have little choice, and the opportunity to save cash is the most important. And you often see this phenmenum applying to public services as well. A nurse in the South East of England only earns a third of the income necessary to finance a mortgage on a starter home, and there iis almost nowhere in the South East of England a single teacher would be able to buy a small home.
So the choice in large cities is not immigrants and sky high prices versus no immigrants and low prices, but sky high prices plus immigrants versus sky high prices without immigrants and with virtually no public or private services. |
| Sun 08 Jun | Ethan Herdrick | Everyone:
Please don't fall for the foolish idea that 'Immigrants do jobs that Englishmen (or Americans) won't do.' This is simply nonsense. Sure, perhaps native born Americans in Los Angeles wouldn't work in a restaurant for $5 and hour. But for $15 per hour, some will. Heck, for $15 million per hour, Bill Gates would! It all a matter of wage level.
This is happy part of capitalism - more demand for unskilled labor with a fixed supply of it means higher wages for unskilled people. But many businesses don't want to pay that additional $5 / hour, so they support increased immigration to keep wages down.
We should not let businesses that rely on cheap labor write our immigration policy. But we have. We have forgotton that 'spiralling labor costs' is a BEAUTIFUL thing!
Exactly the same thing has happened in the engineering labor market, as everyone on this forum knows. |
|
| Viruses Class | Fri 06 Jun | RM |
| I am sure some of you have heard about this university offering a Viruses class. What do you think of it?
http://pages.cpsc.ucalgary.ca/~aycock/599.48/
http://www.securityfocus.com/columnists/164 |
| Fri 06 Jun | Brent P. Newhall | I agree with Rob Rosenberger (as usual):
http://www.vmyths.com/rant.cfm?id=600&page=4 |
| Fri 06 Jun | Mike Gamerland | Brent -- Great link and far better put than I could have. I agree with him and you. It reminds me of what one of the columnist in the newspaper here said after '8 Mile' Eminem's career was over. Why? Because now your 'mom' likes him too. How can that be cool?
As Rosenberger points out, maybe we would have fewer than 80,000 viruses if we removed the mystic from 'wow, you can create one' to 'so can my nine year old brother.' |
| Sat 07 Jun | Wayne | I had a virus class once but I misplaced the source code for it. Now I have to take a class on viruses to learn how to re-write my virus class. Darn. |
|
| Why no really destructive virus? | Fri 06 Jun | Bill Tomlinson |
| There are reports on the various tech news sites about yet another Outlook attachment virus going around. Not really interesting in itself, but it made me wonder why no one has written a really destructive variation on the Outlook attachment virus yet.
By really destructive I mean a virus with behavour like:
1. Attempt to propigate using the usual methods.
2. Wait an hour or so.
3. Delete all the files on the computer.
My low opinion of human nature, and in particular the people who release viruses, suggests that such a thing would have been written long ago. Yet it hasnt. Why not?
And as an aside, I take some shameful joy in imagining MS PR trying to handle the fallout from such a virus. |
| Fri 06 Jun | runtime | I have always wondered the same thing. Spreading the virus is the challenging part, so why not add some simple code to 'format c:'? Maybe virus writers ARE in it for the glory, not the destruction..? |
| Fri 06 Jun | eclectic_echidna | Just like Ebola, viruses that have a high mortality rate don't spread very far.
On the contrary, the AIDS causing virus spreads all over the place, because it keeps the host healthy for years.
Not that they think or anything...
--
ee |
| Fri 06 Jun | Adrian Gilby | A 'successful' virus is one that manages to reproduce a lot. That's not possible if you kill your host soon after infection. Everything's a tradeoff. If your virus kills the PC after a few hours, people will learn _very quickly_ that they've been infected, and they'll tell their friends, and the Antivirus companies will come up with a cure _very quickly_. If the virus waits for days before killing the PC, then in general anyone with antivirus software will catch it before it acts. Intuitively, I feel that the _less_ damage a virus does, the _greater_ its chance of reproducing successfully.
It might be instructive to consider the ramifications of a biological microbe that killed its hosts a few hours after infection. I suspect that it wouldn't spread very far. |
| Fri 06 Jun | www.marktaw.com | I remember the readme.exe virus slowly replacing every file on our server we touched with a copy of itself until the server filled up and we were forced to reboot. That's when it got 'root' access and started to really get nasty.
Maybe it wasn't as bad as a format c: but it was pretty damn close. |
| Fri 06 Jun | T. Norman | Why do people continue to use Outlook, especially corporations who should know better by now? |
| Fri 06 Jun | dat | Our company just switched from Outlook to Lotus Notes, and everyone agrees it's much worse than Outlook was. In Notes, appointment reminders don't work reliably, if someone forwarded a business card to you, you cannot insert it into your address book, menu commands are not where you expect them, and in general the UI is so slow (you forgot what you were doing while you are waiting for a view to open after you clicked on something).
I think Outlook is used as it is very convenient for the user, not necessarily more secure or technically sophisticated on the back end. |
| Fri 06 Jun | Thomas | 'Our company just switched from Outlook to Lotus Notes, and everyone agrees it's much worse than Outlook was. '
What led your company to switch to what is apparently a much worse product? |
| Fri 06 Jun | njkayaker | I used Lotus Notes. Now I use Outlook. Outlook is not bad.
What is really terrible and stupid about Outlook is that it installs the feature that I suspect that very few people really use BY DEFAULT.
That feature is 'automation' of email.
The really annoying thing about this problem is that it is so easy to fix: don't install the automation stuff by default.
If the user really wants it, have them install it from another CD. Thus, no viruses (at least, viruses at a much smaller rate).
The fix for this is SO OBVIOUS, that I suspect that MS really wants viruses to happen. |
| Fri 06 Jun | Bill Tomlinson | Adrian and ee both made the point about 'keeping the host alive so the virus can spread more'. But I'm not so sure about this, particularly in regards to Outlook attachment viruses.
The pathology of Outlook attachment viruses is that they spread very quickly throughout a company or not at all. Once the virus has sent a copy of itself to everyone in the infected host's address book, quitely waiting a week and then sending again isn't likely to make any difference. Those people dumb enough to open an attachment did so on the first attempt; and those that didn't aren't likely to on the second attempt.
And you could still combine both destruction and delayed propagation if you wanted to. Just program the virus so that half the time it wipes the computer clean and the other half it waits around and tries to propagate. |
| Fri 06 Jun | dat | I think it was mainly the fact that the parent company is using it, and that, in the future, other (company-specific) databases than just email/calendar/contacts can be integrated. (Maybe that flexibilty is what makes it slow?) Maybe also the security of Notes is better, I don't know. |
| Fri 06 Jun | Dude | There was an article about this in Tech Review. The author seems to think that some worms are proof of concepts. They use well known exploits for proof of concept and then discover their own exploits.
Unknown exploit + 'Destructive' payload = Bad Times |
| Fri 06 Jun | moses whitecotton | I have thought about this question also. I believe the reason traces back to the nature of the virus writer. Is the writer really intending to cause mass destruction? I dont think so, I think its a weak attempt to gain a few seconds of anonymous self gratifying fame. |
| Fri 06 Jun | Bill Tomlinson | This reminds me of a great idea for a virus payload that I read somewhere a while ago (but I can't remember where).
So the virus propagates in the usual fashion. An Outlook attachment virus would be a good choice.
But after propagating, the virus searches the computer for excel files. In each spreadsheet, it replaces one, just one, '7' with a '2'. Then it removes all trace of itself, just so you can never be entirely sure if the computer was compromised.
Just think of the subtle mayhem this would cause the business world. |
| Fri 06 Jun | T. Norman | The trouble with Outlook is that you don't even have to open any attachments. Merely viewing the mail in the preview pane is enough to have malicious code executed. |
| Fri 06 Jun | anonymous | I honestly believe that the reason that we don't see more destructive viruses is because many of them are written by the anti-virus software companies. It is in their best interests to constantly have viruses in the news, even when those viruses don't do a whole lot of anything other than spread. This probably helps people feel like the anti-virus software works since they never lose any data. |
| Fri 06 Jun | www.marktaw.com | Now if it could only replace a 2 with a 700 in an database... at a bank... where I have 2,000.00 in a checking account. |
| Fri 06 Jun | Stephen Jones | The CIH or Chernobyl virus wiped out approximately one third of all the hard drives in Saudi Arabia in one day (26.04.1999) and in many other cases is also reported to have trashed the BIOS where that could have been updated.
And that was when the internet in Saudi had only been in operation a few weeks, and there was scarcely anybody connected.
With the internet the virus would have got caught well before its payload could have become effective.
There are some fairly nasty viruses around, but often their nastiness doesn't come into effect because of sloppy programming. In order to format somebody's C drive one hour after you have sent a load of email to everybody you need to get the guy to click on the attachment, and for that you need good social engineering.
So you need 1) social engineering skills + 2) decent code writing capabilites + 3) a grudge + 4) a load of luck
Many viruses are produced for a reason. The bate of Viagra and other spam you have been getting lately is because for the last few months worms have been taking over millions of machines to allow for free mailing. The Win32 magister virus was almost certainly produced by somebody who was hoping to destroy or subvert judicial records in a Spanish speaking country - or at the very least tapiwa's Spanish brother! |
| Fri 06 Jun | Adrian Gilby | Bill, I don't think I made my point very well. Consider a company infected with a virus that either does nothing after an infection, or waits a while and then trashes the hard drive -- each option having 50% probability. As soon as the first hard-drive-trashing occurs, everyone will be told not to touch their email, contingency plans will be activated to remove new viruses, anti-virus software will be purchased and installed if it wasn't already, etc. The virus can no longer exist within the company. Yes, it's a bit of a simplification, but the general point stands I think. |
| Fri 06 Jun | www.marktaw.com | Adrian,
I worked at a huge multinational corporation.
How do you tell every employee to not check their e-mail, except via e-mail? |
| Fri 06 Jun | FullNameRequired | A big company usually runs its own mailserver....so just switch it off :) |
| Sat 07 Jun | DD | Who profits from viruses? Antivirus editors! Reminds me of the kid breaking glasses and a minute later Chaplin offering his services to replace them :-) |
| Sat 07 Jun | DD | Of course, Antivirus editors need to have your computer bootable in order to install their 'cleaner'. IMHO, that's why viruses are usually soft. |
| Sat 07 Jun | www.marktaw.com | I just got a virus in my mailbox, apparently through a music mailing list I'm on. It was formatted as if it had to do with music - the subject was 're: rehearsal' or something.
In any case, I looked up the attachment, which was 'John Doe Resume.doc.scr' where John Doe was the name of the hapless guy who sent it out, or supposedly sent it out.
I looked up 'resume.doc.scr' and it turns out it's the bugbear virus.
Therefore, I propose that someone should create a virus named after every D&D character class and monster. They can then battle it out over the Internet as the ultimate battle between good and evil.
Or as a variation, maybe a LOTR virus. A Gandalf Virus will take out a Balrog virus, and save the Frodo virus in the process....
mwa ha ha ha ha, my plan for world domination one CPU at a time is finally coming together.
Then we can destroy the white house with a 'laser beam' and demand.... One Million Dollars! |
|
| Back to the VC world | Fri 06 Jun | Deepak Shenoy |
| That earlier thread about VCs has morphed into being about doctors instead, so heres coming back to the topic:
Joels article was very interesting and heres another engineer view:
http://www.spectrum.ieee.org/WEBONLY/resource/sep01/speak.html
One point raised in Erik Sinks blog at http://software.ericsink.com/20030605.html#10100 is that Joel correctly observes that most VC firms dont have much to offer people who want to build solid, long-lived companies. Dont expect this situation to change anytime soon..
The deal seems to be that VCs need to make money FAST. Either that, or LOSE all the money - theres no middle ground. No money for the companies that have patience - those will have to find money from the business itself, or do an IPO. |
| Fri 06 Jun | | people that choose to grow slow in general don't have a need for VC. why should a VC choose 5% gains in a risky business when they could get close to that investing in I-bonds? |
| Fri 06 Jun | Deepak Shenoy | 'Patience' here doesn't mean '5%'. There are lots of companies that make 30-40% growth annually without taking on insane risks. It'll just take longer to get the same annual growth, compounded from day one. So instead of 6 years, they'd have to wait 10, but the return is the same in percentages. |
| Fri 06 Jun | mackinac | My only real experience with VC is by being a victim of a VC funded buyout at a previous (now defunct) employer. Nevertheless, as I read Joel's article I had the impression that his comments were spot on.
But as I got about 2/3 of the way through the article, I started getting the impression of 'OK, but so what?' I think we can postulate the following grouping of startup companies:
1 -The entrepenuer with a Big Idea who wants to grow fast, have a bit IPO, and get rich quick. This is the VC type of business.
2 - The individual who wants to start and grow a company that will be around for a long time. This type gets funding from savings and bank loans and bootstraps itself up.
Hmmm, this is mostly what Joel said. So what's the lesson? That we should only go to a VC if we are type 1? That there is a type 1.5 that needs something in between? Or that there needs to be a new kind of funding source for type 2? Is there really any problem at all with this funding model?
In the end I am not sure I learned anything, except to confirm my impression to stay away from VC. |
| Fri 06 Jun | Nat Ersoz | I thought Joel's article was very interesting. However, I thought his references, especially the IEEE one, identified VC problems more accurately aligned with our VC's faults. Joel emphasized that VC's have a risk/reward/time outlook which is not conducive to successful product development. I don't take issue with that - as it could be true in many cases. However, I've seen lots of money and patience (some comapanies now 6-10 years running, without a clue).
As the IEEE article specifically pointed out, VC's are not experts in technology. That, and I would add, they don't seem to want to pay close attention to detail. That's what their CEO and executive are supposed to do: run the company. It appears to me that they want someone to sprinkle fairy dust over an idea, bless it, and it will grow like a weed. Too often, they chose their CEO and executive staff based on some pedigree (also noted in the article) which is tangential to technical competency and execution. I really thought that the IEEE article nailed VC's failings acurately and completely. You can find the link at the bottom of Joel's article. |
| Fri 06 Jun | Tj | Is it really about building a sustainable company? I think the more important question for VCs is finding a software market that has high capital barriers to entry, since that's where money's advantage is. A Joel or Erik can reliably find a niche to build their companies, since shrinkwrap software has vanishingly small barriers.
It's not like all VCs are insane. Last I heard from a friend, he was counselling firms funded by his VC on sustainable practices. (Which is sort of crazy, I wonder how that turned out).
Still, I think VC blogs and Joel's criticisms can only lead to good things. |
| Fri 06 Jun | Josh Sampsen | 'There are lots of companies that make 30-40% growth annually without taking on insane risks'
Care to elaborate? I haven't seen anything out there that had that type of growth rate. Or maybe you define 'insane' as 99% probability of failure? Or maybe there's growth but 0% profit margins? Or maybe the total volume is insignificant?
Please clue me in, I've got some money to burn. |
| Fri 06 Jun | Steven C. | I work for a company (privately held) which has had an average of 30% growth year-over-year for the last 20 years, without (IMO) taking 'insane' risks.
So its an achievable goal, in my opinion. |
| Fri 06 Jun | Josh Sampsen | You don't have to tell me the company name, just the industry and the service you provide. What's the company's revenue? |
| Fri 06 Jun | Stephen Jones | We must be careful not to confuse 'gains' with growth. To counter 5% gains with 30% growth is comparing your 'arse to the clouds. |
| Fri 06 Jun | Steven C. | http://www.ghs.com/corporate/financial_info.html
(Note that that page lists us as having 18 years of 30% growth, whereas the referring page said 20 years -- choose whichever makes you happier, I'm not positive which is more accurate). |
| Fri 06 Jun | Josh Sampsen | Maybe I don't know how growth is figured...
If GHS had around 200K in sales in 1983, at 30% growth per year wouldn't they have ~300M in sales instead of $45M? |
| Fri 06 Jun | Josh Sampsen | Sorry, I took it out to 28 years instead of 18. Still, just doing a quick spreadsheet I've got 30% growth for 18 years with an initial value of 200K to be a little over $173 million in sales. |
| Fri 06 Jun | Steven C. | I really can't say why your spreadsheet is giving you those values, but:
1.3 ^18 ~= 146
1.3 ^ 20 ~= 247
So starting at $200k, we would end up with either $30 million (18 years) or $49 million (20 years), which dovetails nicely with the figures on that web page. |
| Fri 06 Jun | Stephen Jones | Dear Josh,
Don;t go into financial analysis, and stick to binary; you seem to have problems with zeros in decimal!
30% growth from 200K in eighteen years will give !7.3 million, not 173 million.
As they claimed AT LEAST an annual growth rate of 30% then their figures are fine. |
| Fri 06 Jun | Stephen Jones | Dear Steven,
You're making the wrong calculation. After 18 years you multiply by 1.3^16 since the first year is 1 and the second year is 1.3^1
After 18 years you get $200K*(1.3^16) which is $17.3M and after 20 years the figure is $29M |
| Fri 06 Jun | Steven C. | Yeah, that looks right. Anyway, my numbers were close ballpark so it all works out. *grins* |
| Sat 07 Jun | Josh Sampsen | But it says 30% growth PER YEAR.
that would mean:
year 2 = year 1 * 1.3
year 3 = year 2 * 1.3
and so on,
Right? |
| Sat 07 Jun | Josh Sampsen | I'm missing something. How does 1.3 ^18 ~= 146 equate to 45M? |
| Sat 07 Jun | Josh Sampsen | 'I'm missing something'
yep, you're right Stephen, it's the decimal! |
| Sat 07 Jun | Tj | Ventureblog has an interesting reply.
http://www.ventureblog.com/articles/indiv/2003/000120.html
I think technical people have an enormous distrust of VCs because they were behind so many psychopaths who thought they could build the next ebay, in spite of reality. Plus, though their reply was accurate, they've enjoyed a large information advantage over those who'd use them.
That book High St@kes No Prisoners was somehow suspicious though. An author can make himself look quite bright if he writes well. A lot of uncaring programmers have contributed to the public's belief that we're overrated, and the same can happen with VCs. |
| Sat 07 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | Josh,
Year 1 is $200k.
Year 2 is $200k * 1.3 (= 200k * 1.3^1)
Year 3 is $200k * 1.3 * 1.3 (= 200k * 1.3^2)
Year 4 is $200k * 1.3 * 1.3 * 1.3 (= 200k * 1.3^3)
See?
Oh, and the person who said it should be 1.3^16 for 18 years, you had the right idea and the wrong math: you were off by one. Year 18 would be 1.3^17 (you can see the pattern above). Regardless, clearly, the numbes are reasonably close to their reporting. |
| Sat 07 Jun | Stephen Jones | Yep, you're right. I should have run 200,000*1.3^16 through the worksheet to check. It's 1.3^17 |
| Sat 07 Jun | Josh Sampsen | Yes Brad, don't know if you've been keeping up, but that's what I said in my previous post. I missed the decimal. |
| Sat 07 Jun | | To get back into the original conversation ... growth does not equal return on investment. You can grow 100% year after year and never see a return on investment. |
|
| Close option at wrong location?? | Fri 06 Jun | JD |
| Hi,
Being Windows user for years now, I am so much used to right clicking a programs task bar window and selecting the last option i.e.Close _BLINDLY_ to close the application.
But lately some apps doesnt follow it. Mainly MMC and CHM files.
So whenever I go to Computer Management and try to close it, I almost always end up opening Help Topics. Sames goes with the any documentation CHM files.
I wonder why they needed to added that help topics as the last option? WHYYYYYYYYYYYYYYYY?
Regards,
JD |
| Fri 06 Jun | Chris Tavares | That question is something I ask myself any time I deal with MMC. ;-) |
| Fri 06 Jun | Jason | me three.... |
| Fri 06 Jun | John Topley (www.johntopley.com | It is damned annoying! Applications that add an 'Always on Top' menu item disrupt it too. |
| Fri 06 Jun | Thomas Eyde | Not to mention IE, the worst focus stealer ever. |
| Sat 07 Jun | Tom | I just worked out how to fix this (it's a PITA for me, too). The following code will unbollix the menus of all running windows:
static BOOL CALLBACK EnumWindowProc(HWND hWnd,
LPARAM lParam)
{
GetSystemMenu(hWnd,TRUE);
return TRUE;
}
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,LPSTR lpCmdLine,
int nShowCmd)
{
EnumWindows(&EnumWindowProc,0);
return 0;
}
And I was worried this was going to be, like, SOOO hard...
I'm going to tart it up with a system hook or a timer (so it'll do all windows always) and an INI file so it won't mess about with windows that you don't want it to. I will post again when I am done. Thank you to all who posted for inspiring me to write this :) |
| Sat 07 Jun | Tom | See here:
http://www.tomseddon.plus.com/uniformenu/ |
|
| Is Visual Studio used for Complex GUIs? | Thu 05 Jun | Paul Mansour |
| Are complex and rich GUI applications actually written from the top down in Visual Studio? Would you write something like MS Outlook (or VS itself) in Visual Studio, or would you only use it to design lower level dialog boxes, resorting to writing GUI code for how it all hangs together?
Any comments or experiences would be appreciated. |
| Thu 05 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | Do you mean, are the GUI designers used for large projects?
In my experience, no. |
| Fri 06 Jun | Heston Holtmann | 'In my experience, no.'
From _your_ experience, can you also answer Why Not? |
| Fri 06 Jun | Matt H. |
I used to work on a complex, shrink-wrapped APP.
We used VC++ 6.0's dialog editor for the dialog boxes,
and then wrote the main 'APP' in VC++ 6.0 with the document/view architecture. (Which is really just model/view/controller, but you get the point.)
So, now, you couldn't drag and drop - the view was defined by the view class. We had more than one view class, so you could see your model in different ways.
does that answer your question? |
| Fri 06 Jun | Maxime Labelle | Paul,
I assume your question really is *Is MFC or Visual Studio AppWizard generated code used for complex GUIs*
As you probably know, Visual Studio itself is written using the MFC framework, but they probably didn't used the generated code as is.
As for Outlook, it's not written in MFC (as far as I can guess) and I wouldn't either. Outlook is really a reasonably small application that glues together a large numbers of COM components. Each one of these can be developed using ATL for instance, although I don't know how it was done.
Maxime. |
| Fri 06 Jun | Keith Wright | I worked on one program that was a urban radio-wave propigation simulator that was MFC head to toe. It had an Open GL rendered 3-D model of a city, and a WYSIWYG graphing app. I wrote plenty of custom controls and did double buffered GDI output for the graph editor, without any trouble.
I also worked on an authoring program that frequently changed what view you were looking at (all attached to the same document) depending on actions you took, and it had a rich edit box that let you embed hyperlink-like things and use them.
You get a fair amount for free with MFC, and MFC programmers are easier to find than straight Win32, in my experience. And if you want to do more than MFC comes with you usually can (more often than VB will let you IMO), but certainly it sometimes gets in your way.
There is also a pretty good supply of add-ins that you can download or buy for MFC, so if you want an outlook bar, someone has already written one, I'm pretty sure I could slap together an app that looks a lot like outlook pretty quickly.
I suspect that most of the products that come out of the big software companies don't use MFC, but a fair chunk of the small products coming out of small companies do. MFC is very attractive to small companies that can't necessarily find the best gurus, and don't mind being locked into to Microsoft platforms. |
| Fri 06 Jun | Marc | I find that most complex GUI apps are written in VC++ 6.0 right now. So no, they don't use the top-down approach but that is mainly because the tools for doing so are horrid.
With .NET, this change a little bit. I now cannot imagine NOT working from the top-down. It would drive me crazy to go back to that method.
Now that I think about it, I sort of use a middle-up-down method. I 'draw' my Window and then go into the generated code to tweak things (I find it hard to get precise placement with a mouse sometimes).
I'd love to know Brad's reason for why not as well. I stated my reason, but I'm not sure that is why others used the bottom-up method. |
| Fri 06 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | If we're talking about C++, until VS.NET, there was no 'main window' form design, unless you wanted a dialog-driven application. The designers have their limits. It's one thing to design a fairly simple dialog; it's quite another to design the main window of a complex application. |
| Fri 06 Jun | Marc | Isn't it interesting how we all made assumptions about the language he was talking about?
He could be talking about VB for all we know. :) |
| Fri 06 Jun | S. Tanna | I think quite a few apps are done using MFC, including some MS apps. I read this in an MFC FAQ or MSDN paper some place.
Off the top of my head, I think (could be wrong on some details) MS MFC apps include WordPad (atleast some versions), WordArt, IE (I think although IE app) is just a shell to huge amounts of com plumbling) and Visual Studio (at least version 6's) UI.
I have used MFC myself in a number of complex applications.
Using MFC is not necessarily the same as using the Wizards etc or just the standard classes. In my own apps, for example, I have for instance replaced the CDocManager class or the menu class, etc. |
| Fri 06 Jun | John Topley (www.johntopley.com) | I think we made the assumption because he gave the example of Outlook and I don't think we're under illusions that that was written using VB6! |
| Fri 06 Jun | Marc | The funny thing is, I don't really care what outlook was written in. I've never purchased software based on the language that was used to build it.
I could really care less if Outlook was written Lisp. As long as it works. |
| Fri 06 Jun | Norrick | marc wrote:
'The funny thing is, I don't really care what outlook was written in. I've never purchased software based on the language that was used to build it.
I could really care less if Outlook was written Lisp. As long as it works. '
That's what matters. Way to make a point in an otherwise meandering thread! |
| Fri 06 Jun | Michael Moser | My problem with GUI's (especially complex GUI's) is that it takes a long time to acquire the skill set.
It took me years to learn WIN32/MFC - and now it is sort of obsolete.
(i.e. demand has moved to other toolits - now its WEB FORMS/SWING/ATL(WTL) )
Now if you know one toolkit really well, then that helps you with other toolkits; however this Dejavue thing
really doesn't help me to dig SWING (Argh, they event don't have a spy utility, this shit is less hackable).
anybody with a similar experience? |
| Fri 06 Jun | Phil | Yes, learned straight SDK, moved to OWL, did MFC (was disgusted by it given previous knowledge of OWL). And some Swing.
But I am now doing webapps, which have dumb GUIs... what a shame...
The choice seems to be:
- nice app w/ all goodies: Win32 MFC mess
- quite nice app without all goodies: wxWindows
- OO-compliant app (but ugly and slow): Swing
- OO-compliant and a bit faster: SWT
- bad green-screen equivalent app: WebApp
and
- .NET : the thing that is not installed on PCs and that M$ seems to be not so proud about those days... (like renaming products back to what they were)
We are in 2003 and no big changes seem to be occuring on that front... |
| Sat 07 Jun | Wayne | >>Would you write something like MS Outlook (or VS itself) in Visual Studio
I would most definitely write the GUI part in VB6 (right now, since all the Tools/Controls I own are for VB6) or C# (in the future).
As far as 'resorting to writing GUI code', if you use .Net it basically writes GUI code for you so why not take advantage?
I'm fairly positive that I could almost completely re-create Outlook using Visual Studio (in whatever language). |
| Sat 07 Jun | Paul Mansour | Thanks all for the comments. The choice of language is not, I think, particularly relevent. I'm trying to determine if the VS model is really appropriate for more than designing a modal dialog box.
I lean towards what Brad Wilson said above:
'The designers have their limits. It's one thing to design a fairly simple dialog; it's quite another to design the main window of a complex application.'
It seems to me that when you have a complex main application form, with many subforms (the layout of which may be data driven), toolbars, multiple context sensitive menus, popups, floating and docking forms, in other words, GUI in all its glory, that this can only be built efficiently (in terms or programmer productivity) from the ground up out of component parts, with a lot of code re-use, and all of the good practices as defined in, say, McDonnell's, Code Complete.
In other words, writing a complex GUI is really no different than writing a complex system of any sort, and that relying on VS for more than the simple layout of dialog boxes may be bad idea.
Thanks again for your comments. |
|
| Doctors, Pair Programming, and Macs vs. PCs | Thu 05 Jun | Philo |
|
All have something in common: xenophobia. Weve spent billions of years reinforcing the behavior of fearing that with which were not familiar.
This results in conservatism in doctors, unwillingness to accept radical new theories in physics, the mistrust of pair programming, and the comfort we feel with Word/Wordperfect, Windows/Linux, PC/Mac, etc, etc, etc.
Note that this isnt related to the anger we feel in trying to learn a new language - thats disappointment and injured pride that while yesterday you could code a recursive simple sort blindfolded, today youve spent four hours figuring out how to show a file open dialog in the new language...
Other wild suppositions available on request. :-D
Philo |
| Thu 05 Jun | summary | Anybody that doesn't agree with me is afraid of the truth. |
| Thu 05 Jun | z | This kind of conservatism makes some sense. Crackpot theories and methodologies are a dime a dozen. Physical theories get accepted when there is experimental evidence to support them. SW methodologies get accepted when they're trendy. If we didn't take some care in evaluating them there would not be any progress in science. As the saying goes, you need to keep an open mind, but you need to be careful about what falls in.
BTW, that a look at: http://dictionary.reference.com/search?q=xenophobia you've streched the definition of xenophobia beyond usefullness. |
| Fri 06 Jun | Philo | 'A person unduly fearful or contemptuous of that which is foreign' ?
Seems to be *exactly* what I was saying. Note that 'foreign' doesn't necessarily mean 'from another country'
Philo |
| Fri 06 Jun | | The problem is that people always want to sell you something. 'Our consultants teach XP and UML!' So we need to filter. Filtering and openmindedness conflict. In practice, most people probably say 'Yeah right' until enough people have been successful and someone very good at explaining things makes it.
Remember, loud people like us tend to create the illusion of numbers. So zealotry is magnified. |
| Fri 06 Jun | www.marktaw.com | > Remember, loud people like us tend to create the illusion
> of numbers. So zealotry is magnified.
This is true. Only a small percentage of any given population will participate, make their voices heard. They're already exceptional (in that they participate) in one way, odds are they're exceptional in other ways as well. |
| Fri 06 Jun | www.marktaw.com | ps. i like how we come up with theories of the universe from a couple of threads from the JOS forum. |
| Fri 06 Jun | Philo | Mark, I'll suggest that more went into my theory than a few minutes' perusal of JoS. Rumor has it that despite my heavy posting, I have a life offline too. ;-)
Philo |
| Fri 06 Jun | Michael Moser | so whatcha gonna do about it?
On the other hand, xenophobia has it's evolutionary role -
if we were all such great experimentors and ardent travelers we would be all dead by now.
Xenophobia is like a buffer- it shields the 'general population' from potentially dangerous situations. |
| Fri 06 Jun | Michael Moser | ... now with the 'future shock', where everything around you is changing in a very fast pace, you get the opposite.
- the things that were once beneficial (like xenophobia) are now turning against you.
Ironic.
(Ups, i have probably had too much beer by now) |
| Fri 06 Jun | tapiwa | I don't think the problem is xenephobia.
I think it is better described as healthy scepticism.
Many folk make their money by appearing to be the authority on a topic. However, there are only so many ideas to go around, hence the re-hash, re-packaging of old lamps as new stuff. As Mark Twain put it, Adam was the only man who on saying something could be sure that no one else had said it before him.
Many more folk accept whatever they are told by someone in authority. That is just plain silly. The pope says that the sun moves around the earth, and we take it as gospel? That the govt says that doctors are good(tm) should not by itself make you think they are.
Just see how many middle managers swear by the latest mgmt guru! How many programers swear by the latest method! How many doctors swear by the latest drug! |
| Fri 06 Jun | DingBat |
What I find interesting about all this is that XP is NOT something cooked up by a bunch of eggheads with no practical experience. It's also not a heavy, overall software development process like CMM. It's an execution process specifically design for developers BY developers.
Pair programming is an interesting point. It's not like someone came out and said 'Solo programming is the best thing since the twist off beer cap and thou shalt not program as pairs'. There is no scientific justification for solo programming. And yet, when presented with a practice which MAY (and I emphasize may) solve some of our common problems what do many of us do? We don't explore it. We don't try it. We mock it.
Interesting. |
| Fri 06 Jun | Stephen Jones | Michael; yep too much beer! That probably explains the insight :)
There are many examples of behaviour appropriate for one set of circumstances being quite innapropriate for another. On a biological level we are genetically programmed to accumulate fat; this works fine when there are periodic shortages of food, and as fat acts as an insulator, is beneficail in cool climates too. Anybody who followed a 'healthy' Mediterranean diet (let alone a vegan one) in Finland or Northern Canada until a few decades ago would have died of starvation or hypo-thermia. The problem now is that most of the developed world lives in a virtual Mediterranean climate with an abundance of food, then old behaviour brings new problems.
This also happens with social problems. In his book on the Bedouins of the Empty Quarter, Wilfred Thiesinger remarks that the greatest vice in the desert is impatieince. As anybody who has ever had to deal with Arab bureaucracy will tell you a healthy dose of impatience is precisely what advanced organizations need.
I do think however that Philio's extension of the meaning of xenophobia to mean neophobia is unhelpful and that the list of things he put at the top have little in common. |
| Fri 06 Jun | Stephen Jones | ---'The pope says that the sun moves around the earth, and we take it as gospel?'---
Rather a strange mixture of Catholic and Protestant theology there.
This perpetuates the myth, accepted even by the present Pope, that Galileo was persecuted for saying the earth went round the sun. He wasn't. He was persecuted (and prosecuted) for claiming this was a scientific fact as opposed to a postulation, when he had no evidence for the fact.
The problem was to do with the stellar parallex, and there were no telescopes powerful enough to provide the convincing proof until some years after his death.
You will find this excellently described in a book by Arthur Koestler called 'The Sleepwalkers'. You could no doubt apply parallels to such things as the Bush administrations claim that those who argue for global warming have not produced enougn evidence. |
| Fri 06 Jun | tapiwa | Stepen:: 'He was persecuted (and prosecuted) for claiming this was a scientific fact as opposed to a postulation, when he had no evidence for the fact.'
my point exactly. in the absence of compelling evidence we have no way of stating whether one or the other is true. By extension therefore, we should not therefore impose our view of what is true on the rest of the world.
The question that arises though, is what is compelling evidence.
Do we go for the proof by observation method ala physics and medicine?
Do we go for the strictly mathematical proof. Derive the truths from first principles?
Do we go for the hearsay method, ala religions?
The amount of proof required by individuals is different. Different on different subjects. Different depending on where the proof has come from.
For most scientific studies, (proof via observation) one can find another that claims to have been equally rigorous, and contradicts it. Which is why I think it is healthy to have some level of scepticism regarding these findings or theories. This is particularly so where some theory is then extrapolated to a larger set of problems, or into the future. |
| Fri 06 Jun | Brent P. Newhall | Um, tapiwa, religion is *not* hearsay. The point of religion is that it's a personal, life-changing experience.
Back on-topic, I think Philo makes a good point. Not that everyone who dislikes pair programming is xenophobic, and I don't think Philo is suggesting that, but it's a good explanation for why, for example, people protest that PP *can't* work. (Clearly, it can work; many people have succesfully done it in the past and do it today.)
tapiwa writes that this is 'healthy scepticism' (sic). That's a fair point, but is it really healthy to deny something's effectiveness simply because it's new? |
| Fri 06 Jun | Paulo Caetano | > tapiwa writes that this is 'healthy scepticism' (sic). That's
> a fair point, but is it really healthy to deny something's
> effectiveness simply because it's new?
Being new means it hasn't been subject to the same amount of testing as something that has been around for a longer time.
E.g., that's where the version x.0 phobia comes from. Or the 'version 1' phobia. People basically say 'I don't want to be an early adopter. Let someone else go through the initial ordeal, and then I can catch up later, and avoid a whole lot of expensive mistakes'.
You're not really denying effectiveness, you're just acknowledging that it requires further scrutiny.
--
'Suravye ninto manshima taishite (Peace favor your sword)' (Shienaran salute)
'Life is a dream from which we all must wake before we can dream again' (Amys, Aiel Wise One) |
| Fri 06 Jun | tapiwa | Why do believe in God?? Because it says so in the bible. All based on hearsay, or the writings of the apostles and others. All third hand accounts. No scientific proof.
I am not suggesting that we 'deny something's effectiveness just because it is new'. That is indeed unhealthy.
On the other hand, it is just as unhealthy to accept or adopt something just because it is new.
Again, your tolerance for risk is what determines when in the adoption cycle you jump. Like they say, today's revolutionary is tomorrow's conservative. |
| Fri 06 Jun | jbr | 'The point of religion is that it's a personal, life-changing experience.'
Brent's point is that it's *personal*, I don't believe he said anything about scientific.
I don't believe in God because it says so in the Bible, I believe in God because I have a personal relationship with Him.
However, this is getting pretty off-topic, but I'd love to discuss more with you off-line (or in another topic) if you like. |
| Fri 06 Jun | Brent P. Newhall | tapiwa writes, 'Why do believe in God?? Because it says so in the bible.'
That's not why I believe in God. I don't personally know any adults who believe in God simply because it says so in the Bible.
tapiwa writes, 'it is just as unhealthy to accept or adopt something just because it is new.'
But it is healthy to *try* something new. Philo is discussing people who refuse to try pair programming (or Macs, or what-have-you).
Who has suggested that people should pair program because it's new? |
| Fri 06 Jun | mackinac | This try to time shift this argument and see what happens.
Consider this hypothetical scenario: We (some group of developers) get assigned a development project and decide to use pair programming. After a year or two we deliver the software on time and with few bugs. Everyone thinks PP is great.
Now the next project comes along. Management says there is this new methodology called PQ. We're not going to bother with PP.
So what do you think? If some of the team members say that PP worked so well they want to keep the practice do you just tell them they are xenophobes (or neophobes) for not wanting to give it up and try the new PQ?
Do you learn from past experience in selecting the methodology for your next project, or just ignore past experience and just select the latest trendy methodology? |
| Fri 06 Jun | Philo | Good point, Mackinac.
There is nothing wrong with healthy skepticism - that's why it's 'healthy' [grin]
The problem is fighting different things tooth and nail without a firm foundation for doing so. I cited doctors because of the professional refusal to address holistic and herbal medicine. Sure, a lot of it is snake oil, but there are also valuable things in those fields.
Macs vs. PCs - Macs aren't new, but they're foreign. They're different. If your workplace said 'TCO of Macs is cheaper, so we're going to shift your project to Java on G4's' would your approach be 'well, it's gonna be slow - there are learning curve issues, new interfaces, and so on, but if you say so, we'll try it' and give it your best shot? Or would you spend every free minute working to convince everyone concerned this was going to break the company and you were looking for new work and macs are stupid and look at this new bug list and and and... etc?
As for pair programming - go read some of the previous threads and look at how many people seem to have the opinion that Pair Programming simply cannot work. Won't work. It's impossible. It's stupid. You're an idiot if you think it will work. Never mind the people posting that they've done it and they loved it.
It's different, and must be mistrusted and feared, mostly because it's different and I Don't Work That Way.
To me, *that* is xenophobia.
As for trying every new thing that comes along - of course not. You try things that promise to solve a problem. In my mind, one of the biggest problems our industry has is bug-ridden software. Pair Programming promises to address that. In other words, it's a solution for a current problem, not just the latest fad. ;-)
Philo |
| Sat 07 Jun | Brent P. Newhall | Exactly, Philo. Well put.
A healthy approach is not black-and-white. It's not a choice between 'trying everything new' and 'trying nothing new.' Foreign, strange ideas *may* work.
The unhealthy attitude is to assume that something can't work, when one has insufficient knowledge of the problem domain. For example, saying 'Pair Programming won't work because I once wrote a function with a hairy, smelly Unix guru' doesn't speak to the specific practice of Pair Programming. |
| Sat 07 Jun | Punter | For example, saying 'Drunk Programming won't work because I once wrote a function with after coming back from a pub lunch with a few too many lagers' doesn't speak to the specific practice of Drunk Programming. Obviously they should have been drinking guiness.
It's a new approach. Similar to pair programming it's something most developers have experienced and found ineffective.
Personally I love it.
Now don't just start with all this Drunk Programming simply cannot work. Won't work. It's impossible. It's stupid. You're an idiot if you think it will work. Never mind the people posting that they've done it and they loved it. |
| Sat 07 Jun | Punter | And remember, you can't possibly comment unless you've tried it for at least a month. |
|
| Printing - anyone really paper-free? | Thu 05 Jun | Philo |
| A comment in the Whack a Mole thread prompted this one...
Is there anyone here that only prints out stuff when it is required? (Like invoices, required reports, letters, etc)
I am *always* printing out code, data tables, punch lists, database schema, etc, etc, etc. Im currently shopping for a larger copyholder so I can have more paper propped in front of me, and Im thinking about rearranging my office to have more wall space (to tack diagrams up). Nothing makes me happier than having a printer at arms length, and Im currently shopping for a faster inkjet.
This is with a dualhead setup (soon to be triplehead) and a significant library.
In short: Im addicted to paper. :-)
So Im interested in hearing about successful coders that manage to do without.
Philo |
| Thu 05 Jun | Steven C. | Well, I basically never print out code; I do however use 3 or 4 pads of paper to scribble on, take notes, keep todo lists, etc.
So I'm mostly printer free, anyway. I wonder if that has to do with the exhausting 20 feet I'd have to walk to go pick things up? |
| Thu 05 Jun | FullNameRequired | never print out anything including invoices :) all clients live in different countries..
I *do* use a pad to scribble notes on, smallish 'todo' lists and programming notes.
When I first started I printed most things out, but eventually ended up with huge piiles of paper...printouts tend to get out of date pretty quick ;(
So I made a decision and stopped doing so for a year.
At first it was odd, but after the year when I finally went back to printing things out I kept missing the 'find' panel and the ability to scroll without switching bits of paper.
gave it up after an hour and haven't looked back since :) |
| Thu 05 Jun | Tim Evans | I'm with FullNameRequired. I use a pen and paper to scribble on, but I hardly ever print stuff out, unless it's for someone else to read. I also prefer online documentation to printed, even when both are available. Searching, bookmarks, syntax highlighting, cut-and-paste, ... all make online much better for me. |
| Thu 05 Jun | mackinac | I use everything: notepad and pencil, printouts of code and documentation, and on-line documentation. Each works better in different situations. For studying or reading over a significant section of text or code the printer listing works better. When searching for something in a large file the online works better. I don't ever expect to become paperless, but if I want a printout from a large document I try to restrict the printing to the pages I really need. |
| Thu 05 Jun | Philo | Mackinac - my brother!
For printing out only the pages you need, check this out:
http://www.fineprint.com/
It's a viewable print spooler - you can check the output before committing to paper, and delete specific pages from the print job.
Philo |
| Thu 05 Jun | mackinac | That does look useful. I currently use a2ps for printing out source code listings 2 pages per sheet with a small 6pt font. |
| Fri 06 Jun | Joel Goodwin | I hate having piles of absolute crap around me, but I cannot work with just a computer screen in front of me. It's just nowhere near as convenient as the physical space located on my desk which I manipulate a heck of a lot easier than with a mouse and keyboard.
I will print out documents and code that I need to review or understand, but I try to dispense with documents at the earliest possible opportunity. I self-recycle paper whenever I can, of course... |
| Fri 06 Jun | Christoph Daniel Schulze | The only times I'm printing out code is when I'm going on vacation to some place. I've done that one or two times.
Mostly, I'm going with online documentation to look stuff up quickly. I often have a book within reach to look up specific stuff.
I'm keeping ToDo and bug lists in my computer. Design specs etc. are scribbled on paper. |
| Fri 06 Jun | Lauren B. | I'm close to paper free. I even hate having to print out directions from Mapquest for the car. (Paper has a better UI for use while driving than a laptop.) At home, the fax goes directly to the computer. I even prefer to read online.
At work, I print off about 4-6 pages a week.
The coolest little gadget I have in my office is a mini white board set up on feet (about 6' tall) that fits between the keyboard and the monitor. Now I scribble my little notes down on that, erase them when I'm done. No more post-it notes around the monitor! |
| Fri 06 Jun | Plutarck | What is this 'pencil' and 'pen' you speak of? Are they actors, or candies?
The only things I ever print are things like certain game guides/instructions/maps which one can't easily alt+tab to read, and online bank statements for my mother.
I can still manage to sign my name due to using credit cards and such often...but otherwise, I probably wouldn't still be able to. |
| Fri 06 Jun | Phibian | We're almost completely paper free and paper reduction is one of the goals we set as a company.
We currently still print a copy of invoices for our files, and receive bills on paper, but we are working on changing both of those as per the Government of Canada's guidelines on keeping only electronic records.
Other than that, the only paper we 'need' is the printing of proposals for clients or other marketing-type stuff.
We use Palm pilots and white boards for scribbling (although I really need a smaller white board that I can lie down flat), and I have two monitors for doing the comparison of things back and forth.
It was a big adjustment for me (a scribbler) to get away from paper, but once I decided that this was how it was going to be, I learned new ways of working. |
| Fri 06 Jun | Brent P. Newhall | I use a fair amount of paper.
I keep a Work Log on paper, in a spiral-bound notebook.
When updating a technical document that needs input from somebody else, I find the best solution is to print out the document and red-line it with the other person physically present. That way, we get through *all* the changes that need to be made. I dislike digital versions of this process.
When I'm at my computer, I often use Notepad as my 'scratch pad,' but I also have a legal pad for some situations. Frex, if I have to write down a list of numbers and then spread those out in a document, I find it's more convenient to write them on a piece of paper and prop it nearby while working on the document. The alternative is alt-tabbing every five seconds, which annoys me. |
| Fri 06 Jun | richard | I am actually a serious paper-user. I like scribbling. When reviewing a document or code its all highliters, printouts & different coloured pens.
At least work has a good recycling policy, and document churn is pretty high at my desk.
There is nothing like documents that print badly to really tick me off (web pages, notes databases (shiver), 120+ column code).
I got a big hardback notebook that is actually quite full. I also have a D-ring binder for documents worth archiving. |
| Fri 06 Jun | w.h. | Paper is for scribbling ideas when my head's not quite big enough and they are too graphical to work on the wiki. And art.
Other than that, why bother? |
| Fri 06 Jun | Christopher Wells | I virtually never print; after I do, I need to shred it. I print when I need a copy of an email for a meeting in a meeting-room that has no terminal. For software, I'd rather use an online browser. OTOH I just skimmed a 400-page book in an hour... I don't know that I could have skimmed that much if it hadn't been in book format. |
| Fri 06 Jun | Reginald Braithwaite-Lee | I print out code for review meetings, but other than that I avoid it.
I picked up a tablet PC a few months ago and it has completely replaced the notebooks I used to use for scribbling ideas.
One of its most interesting functions is a print driver that prints to the note book application. Say you're reading one of Joel's essays. You print it to Journal and then read it in Jornal. Whenever you see something interesting, you can hilight it, scribble in the margins, &tc.
The new Word 2003 has the same capabilities. It rocks for creative thinking. |
| Fri 06 Jun | Sam Livingston-Gray | I almost never print anything, except the aforementioned Mapquest directions and, *very* occasionally, documents to review in a meeting. I do use paper from time to time, when whiteboards aren't around (i.e., I have to sketch a hierarchical tree or relationship diagram), but because I hate losing any data whatsoever, using paper would be suicidal -- in short order I wouldn't be able to reach my computer any more because of all the stuff I couldn't bring myself to throw away!
I also somehow manage to get by with a single monitor at a mere 1024x768, though, which is apparently rather freakish by JoS standards. ;>
Oh, and yes, my handwriting is awful as well. |
| Sat 07 Jun | Gregg Tavares | I print almost nothing. I do use computer books. I can't tell which I prefer, online or off. I think if I had 2 monitors I would prefer online. |
|
| Stripped Windows? | Thu 05 Jun | www.marktaw.com |
| This is a sort of niche problem, but I figured Id ask.
Im working on a project to basically strip Windows to the bare essentials - remove all the unnecessary components, and create a dedicated workstation.
The idea is to create a more stable, faster, and more flexible Windows. Its only going to run a couple of programs and the hardware configuration will be known.
Ive heard of 16 megabyte installs of Windows 98 for embedded applications, and know people whove reduced their install to approx. 40mb (Ive seen it done), and yes it does get more stable the more you remove.
Is anyone familiar with this kind of thing? Does anyone have any pointers? |
| Thu 05 Jun | Bored Bystander | There are two official MS alternatives for this kind of application: Windows NT Embedded, and Windows XP Embedded. I know of no such officially sanctioned alternative for the 16-bit-compliant Win 9x/ME family. I suspect that stripped Win 9x would be a do it yourself hackfest, unless I am grossly misinformed.
These developer-specific products come with configuration software to help you create the target installation set of files.
The purpose is not to reduce the size of the installation in and of itself - it is to remove components of Windows that can't run on the target system and to add replacements for standard components that will run on the target. For instance, you could create a version of Windows NT that is headless (no display), or a version that supports something that NT itself doesn't (like USB.)
I've not worked with this stuff, but that's my take on the territory. |
| Thu 05 Jun | www.marktaw.com | Thanks. I wasn't aware that Micorsoft actually supported this kind of thing. I thought they left it up to 3rd party vendors entirely to figure out.
I don't blame them for not supporting 9x when NT was available to them. |
| Thu 05 Jun | inex | You might want to take a look at www.litepc.com . The stripped down Win9x you've heard about comes from there. I've used the 98lite product in the past and had suprisingly good results. The other option to look at is WinPE. This is based on the XP kernel but allows a lot of modification and customization. If you're a big Microsoft OEM customer you probably get the OPK (oem preinstallation kit) that I believe includes WinPE. Otherwise there is a project out there to custom-create WinPE but it ran into some legal difficulties. The author promises to fix all legal complications in the next version however. The interim page is at www.nu2.nu/pebuilder . |
| Thu 05 Jun | Tom | http://www.litepc.com/index.html
Used to be free, I'm sure -- now they talk about a 'downloadable demo' so I'm guessing you have to fork out.
Note: I've not used this, just something I remember seeing from when I upgraded to Win98. |
| Thu 05 Jun | Nat Ersoz | You mean without a browser? NOT POSSIBLE! |
| Thu 05 Jun | www.marktaw.com | I know about 98lite. There's still a free version called 98 preview. It does everything but go the last mile to 'micro' install.
Thanks for the pointer on PE, I'll look into that. |
| Thu 05 Jun | Stephen Jones | I presume you are being sarcastic Nat. It was clearly proved that IE could be removed from Win 98 with no deleterious effect.
The problem however is that many other apps expect IE, or even IE5 |
| Fri 06 Jun | runtime | I don't want to get flamed, but you could consider Linux desktops. They're cheap, configurable, and easy to lock down. You did not specify which apps you needed to run. There are many Linux apps that might meet your basic Window users' needs. Or you could explore CodeWeaver's CrossOver plugin to run Windows apps using WINE. |
| Fri 06 Jun | www.marktaw.com | It's for recording audio, and we've chosen our program.
Linux is a definate possibility, but I don't think it's quite there yet for audio - very few applications, very few hardware manufacturers support it, etc. Maybe in a few years. |
| Sat 07 Jun | Boris Yankov | Just to mention:
I've stripped Windows 3.1 to a one 3.5' Diskette (1.4MB).
Well I had to remove even Program Manager (too big - 300Kb :) and replace it with a small app of my own. |
| Sat 07 Jun | www.marktaw.com | I've seen the '3.1 on a floppy' but that's just a bit beyond what we're trying to accomplish. |
|
| Suggestions for Speech Synthesis and recognition | Wed 04 Jun | Clay N. |
| Hi,
Im starting to research adding Speech Synth and Recognition to our programs.
These are for people with langauge difficulties, so weve not used either SS or SR before because the were not up to snuff. (If you cant talk, then having HAL the computer demonstrate how to say Dave, Im feeling much better now. Dave? Dave? isnt very helpful).
BUT, I thought Id revisit this and see what the state of the art is.
I need something I can use within a win32 program (VB, Delphi, .net, etc.).
What third party (or windows OS) solutions have you used that are very good? |
| Wed 04 Jun | - | I've only played with it a bit by the Microsoft speech stuff seems OK for giving commands. And you can't beat the price.
http://www.microsoft.com/speech/ |
| Thu 05 Jun | Chris Davies | Not exactly win32 specific, but close enough...
I had some good experiences with the IBM implementation of the Java Speech API, http://www.alphaworks.ibm.com/tech/speech
That was quite a while ago now, I have little or no clue how well this performs against other win32 TTS STT engines. |
| Thu 05 Jun | | I have used the MS SAPI stuff for speech synthesis.
The clarity of speech for individual words or syllables can be very poor, but sentences as a whole a very understandable. ie it is fine for flowing speech / dialogue, but not so good for finer details of the spoken word.
If you're selling speech therapy software, the clarity may not be good enough. I use it in remedial reading software (for children). I am looking to use it in spelling software, but I think that we will have to voice record letters and syllables. I don't think SAPI synthesis is good enough for slowly and clearly speaking individual words.
SAPI comes installed on Win2k and WinXP (probably also Me). Win2k only has the Microsoft Sam voice as default, which is inferior to the Microsoft Mary voice. The SAPI installer for 9x machines is several tens of megabytes.
I haven't used the speech recognition. |
| Thu 05 Jun | He-who-would-not-be-named | The best text-to-speech I've heard is AT&T's Natural Voices system:
[ http://www.research.att.com/projects/tts/ ]
Don't have any experience with speech recognition systems. |
| Thu 05 Jun | Tom | I have used Dragon NaturallySpeaking. It seems quite good. I'm willing to bet that with a decent noise-free microphone it would work very well indeed; my microphone was noisy and crackly, but still it was quite usable for English text. (I tried using it for programming; it seems to use context a lot so recognition of discrete words is a hit or miss affair. Still, after training, it worked OK. I suspect this is my crappy microphone :)
It has a proper SDK that I vaguely remember works using COM. You can see a program that links with it here; it's a Python-based macro system for DNS written by one of the dragon people:
http://tinyurl.com/dju9
Also search for the DNS plugin for EMACS -- that also comes with source code. |
| Thu 05 Jun | Tom | Aargh. Forgot to provide a URL for the Dragon NaturallySpeaking program. Here it is:
http://www.scansoft.com/ |
| Sat 07 Jun | Clutch Cargo | Nuance rules the roost for speech rec. |
|
| Shlemiel the painter's algorithm | Wed 04 Jun | Choop |
| Reminded me of the article I read on this site...
http://www.eskimo.com/~scs/C-faq/q15.4.html
Uh isnt this kind of bad from a guy who wrote a pretty popular book?
http://www.amazon.com/exec/obidos/tg/detail/-/0201845199/qid=1054705827/sr=8-4/ref=sr_8_4/104-4076808-5225553?v=glance&s=books&n=507846
Sure the running time is not really relevant to the question, but Im sure someone has copied that code and put it in their own program... |
| Wed 04 Jun | And the horse you rode in on | What's your problem with it?
He checks the length first, then allocates a buffer big enough to hold it, then copies the data.
That's the quickest way you can do it, unless I'm very much mistaken.
The painter's algorithm would be to reallocate after each string copy. |
| Wed 04 Jun | Choop | Search the site for 'Shlemiel' and you will find the article Joel wrote about C strings. He illustrated a common problem with using the standard library function 'strcat', which concatenates two strings together, when you're using more than a couple strings.
Basically the algorithm is more inefficient than it has to be because of the way C chooses to represent strings, though it probably is not going to make a difference in most applications.
So the author of this book 'C FAQs' wrote the inefficient 'painter algorithm' version of a function to concatenate a bunch of strings together, while he could have done what Joel suggested in his article, which is much more sensible. Though it might not make a difference in real life, it would probably grate on the nerves of any programmer who knew what the problem is, and how trivial it is to fix it.
To all the programmers out there, I see Joel's point but I actually have never seen a C program that DIDN'T use null-terminated strings... does anyone else program in C and not use C strings? Most of the C programs I have written/seen in general do not use strings a lot , i.e. I have a skewed experience.
Andy |
| Wed 04 Jun | Choop | Weird, one of the posts disappeared. I replied to someone who was a non-programmer asking what the deal was.
Anyway, read over Joel's article and note the difference between strcat and mystrcat. Basically with the code in this C FAQ, on the ith iteration of the while loop with strcat, strcat will have to iterate over all the characters of the previous i-1 strings. Thus turning a O(n) algorithm into an O(n^2) algorithm, roughly (ignoring the lengths of the individual strings). If strcat returns a pointer to the end of the concatenated string, then you can use it to skip over all the i-1 strings coming before.
But you're right that reallocing after every concatenation would be another, even worse, way to 'Shlemiel' this algorithm. Which is basically what happens if you improperly use a C++-style string object with + overloaded, e.g.
for( int i = 0; i < numStrings; i++ )
result = result + str[i];
instead of
result += str[i];
with += overloaded NOT to realloc every single time or use strcat, basically using the length of the string intelligently. (But even this is not as fast as checking the length first and never reallocing, and never iterating through already copied characters, but that's a bit nitpicky).
I think it's kind of funny that the guy uses stuff like (void)strcat, which is completely anal retentive and only obscures the code for a beginner, while not mentioning that his algorithm has a suboptimal running time.
Andy |
| Wed 04 Jun | Dan Maas | It's inconvenient to not null-terminate strings, since you then can't pass them directly to libraries or system calls that want char*'s. But I do keep lengths sometimes - more for automatically lengthening buffers than for fast concatenation. My concatenator uses the dumb O(n^2) algorithm, but it's never been a performance issue. (although I do tend to use interned strings for a lot of things - i.e. one master hash table with precisely one instance of each string - makes it possible to compress long strings and do concatenation just working with pointers.). |
| Wed 04 Jun | Simon Lucy | If you have to assemble records in structs then you tend to have to convert strings to chopping the null byte, usually replacing it with a size byte at the front of the string just like good ol' Basic.
Oh, the good reason for losing the null byte in records is that if you leave it in that null becomes data and not meta data. It works fine if you use something like scanf to read it back in but other languages might bollix it up. |
| Sat 07 Jun | Inode | At a former employer I developed an application that used a 'string object', yet in plain C.
The application (Unix only; MS systems were not up to the job) had to run setuid root and then switch between two user IDs. Having seen too many buffer overflow exploits, I wrote a proper string library and used it throughout.
Probably the most stable application the company ever had. :-)
Today, with the advent of standard C++, I am no longer doing such silly things. |
|
| Citrix metaframe experience | Tue 03 Jun | gila |
| Hi all, wanna ask JOSers who has experience with Citrix metaframe - is it useful? how about the performance, application deployment (especially when you have more than 3 apps), stability, maintainability, scability?
Thanks |
| Wed 04 Jun | - | It is useful if you have no control over the desktop.
You want servers with plenty of RAM and fast HDD's. |
| Wed 04 Jun | Szász Attila | Only bad experiences, I'd stay away from metaframe or terminal server, todays hardware prices are low enough to buy decent workstations.
My firm is developing a C/S database app, wich runs fine on normal network, but has all kinds of strange errors on metaframe, many times the database is corrupted to a level of no repair. |
| Wed 04 Jun | Steve Barbour | We use it exclusively. We've got about 500 users in ten separate locations and an IT department of 5 people (2 hardware guys, one network guy, a trainer, and me doing development and db admin). I'd call that useful.
Basically, we don't have to futz around driving out to one of the sites to troubleshoot, or install, or any of the million other things that you would normally need access to the machine for. You can also look over their shoulder virtually, which is nice when you suspect they are doing something dumb or they are simply having trouble describing whatever issue they are having.
As far as applications, for 90% of stuff, it works just like a regular desktop. The only real issues we've had is stuff that attempts to rely on the machine name or the IP address for something important, since we may have up to 30 people on one machine.
Another benefit, is that since all the Citrix servers are on the same core network, we can (and have) upgrade the core network and see major improvement enterprise wide.
The other reason we use it is the bandwidth savings. A couple of our outlying sites are on rather small pipes, and the compression that Citrix uses makes much more efficient use of the bandwidth than having a PC sitting at the end of the link.
The biggest headaches are generally with vertical apps (we do healthcare). Some of them are not written in a way that works well with Citrix. Only thing you can do there is ask your vendors, and see what lies they tell you.
But as the previous poster said, buy machines with lots of RAM. We've never had an issue with HDD speed, but basically you want the best machines you can afford, since you will keep them around an awful long time. Rather than migrate everyone when we buy a new server, we move the folks that have the biggest impact on the old server first. Than we keep the old machine, as it gets bogged down, we move more people to faster,newer servers. We've still got a couple of dual Pentium Pros that see daily use though.
You will also see a difference in performane depending on what client is used to access the Citrix servers. We use Wyse Windows terminals, which are not any cheaper than a stand alone desktop, but there is less to go wrong with them. Some of the older ones perform noticably worse than the newer ones do mostly because of the faster processors.
Hope this helps. Good luck. |
| Thu 05 Jun | Peter Ibbotson | In my experience it's pretty good, we use with a classic client server database app. However:
a) Make sure your database server is on a different machine
b) Make sure the DB vendor confirms it will all work. Remember since all the connections will appear to be from one workstation (from the DB point of view) you may find that the locking on the client end to serialise requests screws up in an interesting fashion. i.e. the database client software only expects one copy of itself to be running on machine, this may not be the case on Citrix (Certainly this is true for COM stuff written in the style of the coffee server example in VB)
c) If you use IP addresses to count users (or identify them) and the like you'll need to call the citrix DLLs to get the details.
d) Some of the clustering and fall over stuff doesn't work too well if you map lots of printers around depending on the user, the whole thing seems to get out of sync. (We solved this by getting our client to stop mapping 40 odd printers everytime a user logged in)
For remote office type things where each office has maybe 5 or so users it works great. Support however can be problem find yourself a friendly Citrix reseller and buy through them and pay some consultancy money to get them to install it along with a VPN if you're leaving your building. |
| Thu 05 Jun | gila | Thank you all for your inputs.
Regards |
| Sat 07 Jun | Inode | There is a variant of Citrix that acts as an X11 protocol accelerator.
In some respects the product is awesome. I can pull a PDF over a VPN WAN link and it's almost as fast as doing it locally.
However, X11 performance is also a measure of latency, which can be reduced by careful handling of the event stream. The Citrix product decides to do this by using some form of lossy compression.
That's right: the software 'loses' mouse clicks and other events.
Depending on the apps you run, the net effect can range from mildly annoying (xterm window management) to unusable (java AWT/Swing apps).
Perhaps the original question was Windows-only, but if you are considering Citrix for X11 acceleration then evaluate carefully with the apps you intend to use. |
|
| dHTMLSpy --- where did they go? | Fri 06 Jun | Stephan H. Wissel |
| Hi there,
I once had a beta of a software called dHTMLSpy. Great for understanding dHTML/events/dom/JavaScript. The beta is expired and the website gone. Does anybody have a trace of the developers or the product.
... or ... a good suggestion how to analyze and debug JavaScript and DOM (for XML/xHTML). Important would be property inspection at runtime.
Thx for helping! |
| Fri 06 Jun | Wayne Venables | Mozilla. |
| Fri 06 Jun | BJ K. | Mozilla follows the great tradition of Linux and open-source programmers.
Nice program, but crufty interface. |
| Fri 06 Jun | Joe Grossberg | More precisely, Mozilla, and then:
- Tools
--- Web Development
----- JavaScript Console (less functionality, but simpler)
OR
----- JavaScript Debugger (more cabable, but more complex)
Joe
http://www.joegrossberg.com |
|
| Embedded SQL server for VB? | Fri 06 Jun | Frederic Faure. |
| Im currently looking for the small SQL servers that dont require any installation besides copying a DLL or something.
At this point, I know of:
- embedded MySQL : works great from PowerBasic, but GPFs from VB
- SQLite : terrible performance through the AGS version
- embedded FireBird Interbase : no info at this point, as its pretty recent and no documentation
Anybody knows of other solutions?
Thx
Fred. |
| Fri 06 Jun | Eric Budd | MSDE.
Good. Fast. Free.
What more could you want. (Plus it is fully compatable with SQL Server 2000) |
| Fri 06 Jun | Frederic Faure. | Thx but... not open-source, and how does it install? Our customers have no computer training, no one to help them, and even running MySQL's wizard is too much asking. But then, if someone knows of a way to install eg. MySQL or Firebird silently... :-) |
| Fri 06 Jun | Stephen Jones | Doesn't the package and deployment wizard create an install routine? And if it's a database app, why not develop it directly in Acess and save time? |
| Fri 06 Jun | Stephan H. Wissel | When u do VB programs u should get a decent installer software. My personal favorite ist WISE install system (very likely because I worked with it longest). With this the installation can be fully automated and the MS-SQL engine installs in a snap....
If you are daring check out this SQL Database:
http://www.sqlite.org/
Hope that helps |
| Fri 06 Jun | Frederic Faure | Thx guys.
As for MSDE : too big ('MSDE 1.0 System Requirements:
65-180 MB of Server; approximately 170 MB for typical installation'). Most of our customers are connected through a dial-up...
Access : What do we need to get this on a bare Windows host? The whole point is to have no or very few dependencies, so ADO, ODBC are out
SQLite : as explained, the AGS version that makes it possible to use SQLite from VB offers terrible performance (1,000 records in embedded MySQL = less than 1s; with AGS = 1mn30)
As for creating an install program, we might do this provided it can run silently with a response file. Even asking them to click on a few Next buttons should be avoided if possible. Otherwise, might's well go for MySQL :-)
Thx much |
| Fri 06 Jun | Marc | You don't need *anything* special for Access. It is just a database in a single file so you just copy the file and be done with it.
And get an installation package (Wise is my personal favorite) right away. It will solve many of your issues with end-user illiteracy. |
| Fri 06 Jun | Frederic Faure | Er... to build Access DB's, each computer must have the MDAC, right?
Too big, must be installed... and we'd like to avoid having to actually visit each site and perform this on every computer.
Thx for the tip :-) |
| Fri 06 Jun | John Topley (www.johntopley.com | Marc,
How is copying an Access .MDB file going to act as a SQL server (lower case 's' in server)? |
| Fri 06 Jun | Marc | I think you need to give some more details here. It sound to me like you are going to hamstring yourself over fear of installation.
Making you technologies decisions based on fear is always the wrong choice. |
| Fri 06 Jun | Frederic Faure | Not fear. Experience :-)
Simple:
- SQL server
- light-weight : no 30-Meg downloads
- silent install, or _very_ simple
- good performance, even on older computers (P2 running 95)
Too bad, because embedded MySQL works fine... if only I could understand why it runs from PowerBasic but GPFs from VisualBasic... |
| Fri 06 Jun | Herbert Sitz | Advantage Local Server is one good option: http://www.advantagedatabase.com/ADS/Product+Detail/Advantage+Local+Server/default.htm
Advantage comes from the Delphi world originally, but they've branched out and there's an ADO/OLEDB provider for their products. The Local Server (fileserver) version is free and deploys just by placing the .dll in your executable's directory (I think). The client/server version you do have to pay for but doesn't sound like your app would ever need to use it.
The Firebird embedded server is part of the Firebird 1.5 Release Candidate version (1.5 Gold to be out soon). Firebird, of course, is open source, so it's free that way. And Firebird is a client/server database that has most of the features of MS SQL Server (i.e., views, stored procedures, triggers, referential integrity, etc).
You're right that there isn't much information on the new embedded version, but I believe the current download of the Release Candidate version includes the embedded .dll that -- like Advantage -- you could just deploy by placing the .dll in your executable's directory. If I recall the README file also has a bit more information on using the embedded version. There are ADO providers available from third parties for little or no cost.
http://firebird.sourceforge.net/index.php |
| Fri 06 Jun | Herbert Sitz | Sorry, I think the new embedded version of Firebird may be usable from Delphi only. Not sure, though. |
| Fri 06 Jun | Frederic Faure | Thx Herbert. Indeed, embedded Firebird is included in the RC3 (fbembed.dll), but there's only a tiny readme, and no information on Firebird's and related sites to list the APIs, but it looks promising. I assume it's the same APIs as the cs version?
'The embedded server is a fully functional server linked as a dynamic library (fbembed.dll). It has exactly the same features as the usual server and exports the standard Firebird API entrypoints.'
Seems like Yaffil, the Russian commercial company is coming up with stuff like this, but the site is only in Russian... the stuff is commercial, and considering the power struggle, I'm not too sure we should go this way now.
Thx again. |
| Fri 06 Jun | Christopher Morrison | Take a look at Valentina. It's been around for a while, it's cross-platform, and has a pretty good reputation based on what I have read (I have not used it myself). There are lots of wrappers for different development tools, including an ActiveX component for VB.
http://www.paradigmasoft.com/ |
| Fri 06 Jun | Frederic Faure | Thx Christopher :-)
For those interested, Valentina is a commercial product, and the ActiveX version is available at $199.95. |
| Fri 06 Jun | Norbert Burger | Frederic,
In your SQLite performance comparisions, did you use SQL transactions? If not, why not?
I wrote a quick PERL script that uses the ODBC wrapper around SQLite to insert 1000 records (in fact, the SQL code is taken from SQLite's own statistics page).
When I don't use transactions, the insert process takes roughly 90 seconds. When I do use transactions, SQLite requires less than a second. Also, note that SQLite supports a 'dump' format which can be used to do a bulk insert. |
| Fri 06 Jun | Frederic Faure | Thx Norbert. Since accessing SQLite from VB is only possible from the AGS version of the DLL, I don't know if I can tweak the performance. SQLite seems pretty hard to use natively from VB, hence AGS...
FWIW, here's the code:
DB_Handle = sqlite_open('test.db', 0, errs)
TableArray = ags_sqlite_get_table(DB_Handle, 'create table tbl1(one varchar(10), two smallint);', strErrMsg)
'Slooooooooow
For iCounter = 0 To 1000
DoEvents
TableArray = ags_sqlite_get_table(DB_Handle, 'insert into tbl1 values('hello!',10);;', strErrMsg)
Next iCounter
sqlite_close DB_Handle
Thx |
| Fri 06 Jun | Norbert Burger | Frederic,
See 'Test 1' at http://www.sqlite.org/speed.html. It explains exactly why you're getting poor performance with your code. In your example, after each SQLExecute, SQLite is forced to fsync() the database file.
You can eliminate the performance problem by using transactions.
AGS' website is currently down, so I can't find out if the AGS code supports transactions. But instead of the AGS wrapper, you could use the ODBC wrapper for SQLite (see http://www.ch-werner.de/sqliteodbc/). There are numerous examples on the web for using ODBC from within VB.
As I wrote earlier, the following PERL code takes less than 1 second to complete. It can be quickly ported to VB.
use Win32::ODBC;
$data = new Win32::ODBC('SQLite Datasource');
$sql = 'BEGIN;'; $data->Sql($sql);
$sql = 'CREATE TABLE sample(a INTEGER, b INTEGER, c VARCHAR(100));';
$data->Sql($sql);
for ($i=0; $i<1000; $i++) {
$sql = 'INSERT INTO sample VALUES ($i,1000-$i,'beta');';
$data->Sql($sql);
}
$sql = 'COMMIT;'; $data->Sql($sql);
$data->Close(); |
|
| Help, before I go insane! | Fri 06 Jun | Practical geezer |
| Or at least, anymore than I already am.
I guess you have read it all here before by so many people in so many forms, and no I have one of my own. A developer from hell.
I am not actually looking for help -- allthough every kind of advice is welcome, naturally -- I am just trying to put things in perspective by writing about it. Leave now if your not into some serious insanity (mine, or the developer from hells, thats up to you).
The situation is: I am trying to define some (external) behaviour of an application. Basically this is a client-server system, with the server being an ancient DOS-system.
Both systems communicate via RS232 by exchanging messages (with commands or data) and the server is so ancient and of the pasta-kind, that any change should be avoided.
And, there is this developer who is responsible for making modifications to the DOS-application.
On many an occasion, when I suggest interaction between the client and the server to realise some expected behaviour, I get arguments.
Of the How-it-does-not-work-that-way kind, but of course not with the inclusion of how it would work.
Or of the This-is-not-good-design kind, but his suggestions are usually far worse in modest opinion.
Most of the time, he tries to simplify interaction by lowering the level of abstraction, not realising that that usually results in not-so-good design.
Example:
The server might need to reboot before activating some changes.
So I suggest the following behaviour:
- The client requests the changes.
- The server acknowledges the changes, but requests confirmation before it reboots.
- The client confirms and the server reboots, activating the changes.
Why? Because a reboot may not be necessary for every change.
Therefore, the client needs to know when the reboot is needed and ask the operator first.
It can be programmed to decide to ask the operator before even requesting the change, making the confirmation sequence obsolete. Or we go with my first suggestion.
Programming the client to know when a reboot is required is, IMHO, bad design, because you are know tightly coupled to the server. Any change in behaviour there, will need to be copied to the client.
Guess what my developer friend insists on?
Anyway, theres plenty more where that comes from, basically of the same nature.
Hmm, feel slightly better know... |
| Fri 06 Jun | Ged Byrne | Practical Geezer,
You have my sympathies. Is he trying to shift all work into the client, so that he doesn't actually have to make any changes to the server. That is understandable, because it isn't nice having to dive into the bolognaise.
Perhaps a comprimise is possible? A config file downloaded from the server which lists the actions that require a reboot? Far less satisfying, I know, but at least the login isn't locked into the client. |
| Fri 06 Jun | Bruce |
A couple of observations:
1) How often are you going to update this system? If the answer is 'rarely' then who cares if they are tightly coupled or not?
2) What percentage of changes are going to require a reboot? If the answer is 'most' then just reboot every time a change is made. If the answer is 'hardly ever', can you make the reboot a manual procedure?
We don't always agree on what is good design, but a simpler implementation is almost always better. And, while many here would not agree with many aspects of XP, the 'YAGNI' (you aren't gonna need it) rule is a good one to live by: if you don't KNOW you're going to need a feature, don't bother designing for it.
Oh and, your relationship with the developer seems a little confrontational. That isn't going to help in the long run either. |
| Fri 06 Jun | Practical geezer | Ged says:
>Is he trying to shift all work into the client, so that he doesn't
>actually have to make any changes to the server. That is
>understandable, because it isn't nice having to dive into the
>bolognaise.
Actually yes he is, and no it isn't. And I respect that. In fact, one of the project directives is to change as little as possible to the existing code base.
Within reason of course. Not changing the code base and thereby condemning yourself to perpetual change in the client, whenever the server's behaviour is changed (because it is on occasion), makes for bad economics. Medium or long term of course.
Ged says:
>Perhaps a comprimise is possible? A config file downloaded
>from the server which lists the actions that require a reboot?
>Far less satisfying, I know, but at least the login isn't locked
>into the client.
Possible, but that would involve modifying the server too.
IMO, it would be far easier to trap the code that executes the reboot, and have it send a request for confirmation first.
Provided there is such a singular piece of code of course.
Besides, the action are, or can be, conditional. Meaning, you'd also have to specify under which circumstances an action would require a reboot.
Things get ugly quickly if you go down that road. By that measure, adding a confirmation request sounds like a day in the park.
Anyway, I think lack of experience and personal rigidity is a large factor here. This guy appears to be very prejudiced and sensitive. He seems to feel he should be in charge, because he knows better. I don't think he does, but I really only know my own capabilities very well. |
| Fri 06 Jun | Practical geezer | Bruce says:
>How often are you going to update this system? If the answer
>is 'rarely' then who cares if they are tightly coupled or not?
You can guess what product management says. Probably not as much as they wan't to. I don't strictly mind the tight coupling so much not to want to do it. But in the cases I do mind, it is usually because they have implications for the user interaction.
But more to the point, this guy does not say tight coupling in this case is not so bad because of the unlikelyhood of change
He says the solution that involves loose coupling is bad design. And conveniently fails to mention why of course. Maybe he is right that it is bad design, but given my and other people's experience that is unlikely. But not giving arguments why a different solution is better, is what pisses me off.
Bruce says:
>What percentage of changes are going to require a reboot? If
>the answer is 'most' then just reboot every time a change is
>made. If the answer is 'hardly ever', can you make the
>reboot a manual procedure?
It's a security application. You can't just reboot, so that leaves manual procedure. The only question is, do you always ask and reboot, even if it wasn't necessary after all, or only when it is.
Of course I prefer the latter, but that might not be achievable in the presence of my friend.
Bruce says:
>We don't always agree on what is good design, but a simpler
>implementation is almost always better.
Simpler for me always needs the addition, for the user. I prefer giving the developer a sweat once, over giving the user the willies every time she uses this developer's 'simple' solution, or the maintenance engineer every time the need to work on the code.
Of course that is not always economical.
Bruce:
>Oh and, your relationship with the developer seems a little
>confrontational.
Apparently so. I would worry if no one else was experiencing the same. |
| Fri 06 Jun | Ged Byrne | In addition to reboot another factor is how widely distributed is the client. If the client is widely distributed then updating is a serious serious nightmare. Updates to the client must be kept to an absolute minimum.
Even is the update is only to occur once every few years, if the client is widely distribute then you most certainly are gonna need it.
Thinking on it more I think your best solution is to create an extra server to act as a mediator between the legacy server and the clients. This way you can have full control over these important aspects of server behaviour.
It could also simplfy interactation with the DOS server, since it will only have to cope with a single instance of the mediator rather than possibly concurrent clients. |
| Fri 06 Jun | Practical geezer | Ged says:
>In addition to reboot another factor is how widely distributed
>is the client. If the client is widely distributed then updating is
>a serious serious nightmare. Updates to the client must be
>kept to an absolute minimum.
I forgot to mention this and you are right. Most of the behavioural decisions that I make, are influenced by this.
Right now there is only one client server, but in the future there will be, or rather, there should be, a multiple client situation.
The current client will be split and morphed into a server process that mediate between any number of clients and this legacy server.
That's why interaction between client and server now is on occasion more complicated that strictly necessary for the current situation.
Ged says:
>Thinking on it more I think your best solution is to create an
>extra server to act as a mediator between the legacy server
>and the clients. This way you can have full control over these
>important aspects of server behaviour.
Exactly. Fact remains though, that the clients are only intended as remote terminals, with no intellegence as far as workflow is concerned.
They offer users buttons to push and information on the system, but the legacy server decides what happens, when and why. Basically, because no-one really knows exactly when it does what or why.
>
>It could also simplfy interactation with the DOS server, since
>it will only have to cope with a single instance of the mediator >rather than possibly concurrent clients.
But the mediator still has to cope with multiple clients, so in order for it to be able to direct responses back to the originators, it adds extra information to the interaction, on top of what would be needed if there was only one client.
This concept seems to ellude my friend too, most of the time. |
|
| Enjoying your work | Thu 05 Jun | mackinac |
| Should software developers enjoy their work? Or is there something wrong with looking forward to getting in to the office in the morning?
I have always liked science and math. Becoming a software developer was kind of an accidental offshoot of those interests. But it can be quite interesting. I always thought that it should be possible to get interesting work.
But should we expect this? In Peopleware DeMarco and Lister have a section titled Its Supposed to be Fun to Work Here where they note that Somewhere deep in our ancestral memory is buried the notion that work is supposed to be onerous.... This attitude is the sort of thing that the Puritans get blamed for.
I have worked in a variety of environments. In some I really did look forward to getting to the office. In others I would look at the building as I walked in and dread the thought of another day there.
I am one who believes that there is no good reason that work has to be drudergy. When I am looking for a job I not only ask about the salary, but try to find indications that it would be a good place to work. I found out about Fog Creek and JOS while doing web surfing for that kind of work environment. I know people who can tell you how many years, months, weeks and days they have until retirement. I really dont want to end up like that.
The reason I bring this up, however, is that in reading several recent threads I have noticed some severe hostility to the idea of enjoyable work. Posters making any statement that they consider enjoyment of the work important have been flamed and told that they are only there to do what the employer tells them, or that they are being ego centric prima-donnas and other such labels.
Is the most effective work environment the least enjoyable for the employees? My experience would indicate the opposite. While the correlation isnt 100%, the projects that I enjoyed working on got done on time and worked well. The ones that were drudgery took twice their original schedule time and worked, but only minimally.
Is enjoyment of your work important to you? Do you do anything about it? |
| Thu 05 Jun | www.marktaw.com | Enjoying work is important, but often not important enough to make me look elsewhere if the pay is good.
I've learned that the industry is less important to whether or not your work is enjoyable than whether or not you're fully engaged - challenged, etc. |
| Fri 06 Jun | Joel Goodwin | I *would* consider a drop in salary for a nice place to work. Of course, the world is full of greys and I couldn't exactly quantify 'nice place' or an appropriate drop in salary.
But, if I don't like where I work, I will not stay indefinitely just because the pay is good. I can find somewhere else the pay is good too, and maybe the work there is more interesting. Just to be clear, I'm talking about situations where after 2 years nothing seems to be changing and you continue to dread the morning death march to the office. You have to stick things out to see where they're really headed.
My philosophy is similar to that of a customer. If you buy a product and it's crap you tend not to buy from the same company any more. It's the customer's way of ramming the point home: declining sales make the point.
Same with a job; if you stay there just for the money, that there's nothing to encourage change. Turnover, eventually, will make the point. And if it doesn't, well... I don't want to be there when the place bombs or feel like I'm making a 'contribution' to such a work environment. |
| Fri 06 Jun | Fernanda Stickpot | Well, all I'd say is that, if you do actively enjoy your work and look forward to going in every morning, you're a really lucky person. We would all love to be in this position!
OTOH, I think we all have to be prepared for situations where our work isn't a festival of fun, and realize that if we are in a situation where we're performing not-so-fun tasks in exchange for money, it's not the end of the world. Not every necessary task CAN be enjoyable, and from time to time one really does have to face up to a certain amount of drudgery.
But if you're in a situation where the thought of going to work fills you with abject horror and dread, of course something is wrong. I know all too well what it's like to be trapped in a terrible job with no options, and I was - for years, not months. I know what it feels like to cry at the thought of going to THAT PLACE yet again, but having to because the tiny paycheck might just pay the interest on my debts if I'm very, very lucky.
Which is why, conversely, I don't mind doing jobs that don't send me I'm prepared to do jobs that don't send me into transports of ecstasy, as long as they pay the bills and aren't actively horrible. YMMV. |
| Fri 06 Jun | Shailesh N | I feel that each person has his or her own factors, which act as motivating factors for them in doing their work.
Say for example person A might be more interested in having a *Good* pay package than think about what kind of work he/she is doing. That may be sufficient enough for these people to do any kind of work with great degree of motivation. In another case, say person B might be more inclined towards good technical work/design work/managerial work etc. and the pay package doesn't matter to that extent. So the motivating factors for person A and B are different and are very specific to them individually.
So when we talk about 'Enjoying your work', it boils down to having a set of *factors* ready with you, which act as motivating factors for yourself and then try to evaluate your current work in accordance with those factors.
I personally have them ranked as below (in order of importance):
1. Kind of work done/available
- This relates to having good quality technical work on latest technologies. If you don't like what you do then there is no point doing it, coz you'll end up doing the stuff half heartedly and without any motivation.
2. Growth
- *Structured* growth in doing such kind of work. Where will this kind of work take you say in another 6 months, 1 year, 5 years ? Will you *grow* in 'knowledge', 'Skills', 'Responsibility', 'Position' etc ?
3. Brand Name
- Will the company you work for act as a *Brand Name* for you when negotiating a new employment option ? Does you saying that 'I work for company XYZ' bring in instant recognition for you in the society ?
4. Pay package
- What is that you get as compensation for the work you do ? Is it that you feel *over paid* or *under paid* for the work you do ?
Well these are my personal factors for taking up a job with any employer. So although I may not be able to get the *best deal* all the time, I try to evaluate any job with these factors and try to come up with a conclusion depending upon the above factors. (might as well apply these once in a while to your current job too!)
Although these factors may differ from person to person, I feel that each one should have such factors listed for themselves, coz otherwise its as good or bad as doing things without any *focus*. |
| Fri 06 Jun | The Real PC | That's like asking whether Life should be enjoyable. Naturally, each of us tries to make our lives as enjoyable as possible -- that is, to make things the way we happen to like them to be. This includes a job that fits, more or less, with your personality.
How much power you have over your life depends partly on your social position -- poor people usually have to do whatever they can to survive, while the more educated have more of a choice.
Another factor is the person's desire to be happy. If you decide to be happy, in any job, then you are very likely to enjoy the job and make the best of it.
If, on the other hand, you are a perfectionist who can't be happy unless everything is the way you imagine it ought to be, then you will never be happy.
Should employers care about whether their employees enjoy their work? Of course they can't make them want to be happy. But I think unhappy workers must be very very bad for a company. |
| Fri 06 Jun | | 'Posters making any statement that they consider enjoyment of the work important have been flamed and told that they are only there to do what the employer tells them'
My theory:
1. Programmers like to think of themselves as self reliant.
1a. Even though they are vikings on the internet and maybe in their mind, in real life they are meek.
2. They rarely band together.
3. They get regular bitch slappings by their employer.
4. They feel guilt & shame about letting that happen to them.
5. They try to pump themselves up by putting the smack down on a random stranger on the internet. |
| Fri 06 Jun | Lauren B. | Life is too short to be pissed off every day.
A few years ago I was in a job where I was very unhappy. The work was OK, the environment was no longer a good fit for me. But, we were a start up and as one of the founding employees I got a ridiculous amount of stock purchase options. Aha, I said, I can tolerate this for 5 years and sell out and become financially indepdent! Then I can quit this job and pursue a fun, fulfilling job!
You know what happened. The company folded, and the stock options became worthless. Yes, I was still paid a salary during this time, so it wasn't all that bad. But the fact is: I tolerated constant headaches, stress, and insomnia for over a year. Stressed my marriage, too, since I was pissed off all the time.
Not worth it to me. I need a place to work where I am happy and feel like I'm doing something worthwhile. |
| Fri 06 Jun | | Of course I'm not implying ALL programmers are that way. I didn't mean to paint with such a broad brush.
I'm on my third job now and starting to get angry, just like at the last 2 jobs. I wonder if I just haven't found the right place, or if I just have trouble not being in total control... |
| Fri 06 Jun | Stephen Jones | I think this is a triple state Boolean.
a) You like your job
b) You don't mind it that much
c) You dislike it
If you dislike your job you should be actively looking for a way out, and be prepared to take a hefty pay cut even if it hurts.
If you don't mind it that much you should not expect to find A. And be cautious about changing job because there are very few jobs people like most of the time.
As for taking a salary there seems to be a figure of 20% here. It will normally take a 20% salary raise to get somebody to move their job, unless they are going from a job they don't mind to one they like, in which case they will do it for free. If they are in a job they really hate they will move and take a 20% salary cut, although in many cases they just blow up and walk out anyway. |
| Fri 06 Jun | mackinac | It is good to hear some some favorable comments here, but I do wonder just how much effort most people make to find a good work environment. I always thought that I should try to find such a place, but until I had some experience with different employers and assignments, I didn't have a good idea what the possibilities were.
One of my employers stood out from all the others as a good place to work, even though a few of the assignments were unpleasant most were good and made up for the others. I stayed there over 15 years. Unfortunately for the employees the founders decided that is was time to cash out when someone with venture capital came along and wanted to buy the company. A few people made a lot of money on the deal, but it destroyed the culture of the company.
During the dot-com boom when everyone was hiring furiously, I would read company's career web pages and note that many of them try to attract people by offering frills but little of substance. It wasn't too difficult to find an employer that offerred a subsidized cafeteria with a gourmet chef or something equally useless. I wanted to hear that they provided quiet workspaces, or had training opportunities and they should let us know that they had low turnover because it was the kind of place people stayed. Not much of that to be found.
But sellers try to offer what the customer wants. The discouraging factor in this is that if the employer said little to indicate they were concerned with the work environment, then few job seekers were paying much attention.
Maybe this is my ulterior motive here. To get people to think about quality of work environment issues when job hunting. Let prospective employers know what you want. Maybe not right now, but something to think about when the economy picks up again. If ever. |
| Fri 06 Jun | Brent P. Newhall | It *is* possible to look forward to work every morning. Lots of people do it.
Though note that, sometimes, one has to undergo radical changes to find that environment. About two years ago, I was a programmer, until I worked at a startup where 50-60 hour weeks were common, and my interest in programming waned. So, I shifted to doing documentation, and now I'm a documentation manager at another company. Five years ago, I never would have consciously chosen to go after documentation, but the environment and my interests changed.
Now, I'm looking to get started with animation (as in cartoons). That requires a much more radical change, but I think I'd enjoy it more than this job.
The real question is, if you don't like your job, what are you doing about it? |
| Fri 06 Jun | Plutarck | Being the business/economic/trader sort now adays, I can assure you this is really all quite simple. As such, I will now proceed to explain it using Very Large Words and Phrases like 'The Principle of Non-Univerisfiable Value' over approximately 400 pages, and will make liberal use of footnotes to keep you busy for the rest of your natural life.
...nah, just kidding. But it is really quite simple, once you've got an intuitive grasp of the fundamentals.
Condensed version:
Individuals, at a given point of time, are different (both as-in who they are, and as in the situations they are in and their relationships to other people); to the extent that people are different from one another, they value things differently. Thus one person can think of no better way to spend an evening than sitting out in a field and staring at the stars, while another hacks away at their keyboard at home, while yet another is out somewhere having some fabulously innappropriate and scandalous sex.
As people value things differently, and some things that are valued can be traded away - whether those things be goods (like pumpkins, USB ports, and vibrators), or services (like growing vegetables, the production of electronic components, or 'things which are legal in the USA only if you do not trade them Explicitly for money'). Example:
Let us say that you - or anyone else - likes tomatoes more than lettuce, whereas I like lettuce more than tomatoes. Let us then say that you have lettuce, while I have tomatoes. As such we may both derive 'utility' - a catch all term for 'what you get by obtaining what you want', whether it be shits'n'giggles or enlightenment - by simply _trading_, by exchanging goods and/or services between us. You take what you may or may not like - lettuce - and give it away in exchange for something you at least prefer - tomatoes - and I am doing likewise.
This is all possible because we value things differently. If everyone was the same, if everyone valued everything the same way, trade would simply be impossible, as no mutually beneficial arrangement could ever be made.
Now this sort of thing is no different in the modern world; in fact it is made ever so more important as people can be so very different (when there is only one thing to eat, for instance, all starving people are effectively the same, assuming they are equallly starved), and there are ever so many things to trade and to trade for. Including - and bringing us finally to the point at hand - time, money, effort, and pleasure (amongst other things - but we will consider only these).
'Work' is simply one form of trade. You as an individual take something you have, such as your time, and trade it for something you consider more desirable, such as money. However, the value of money is determined almost entirely by the value of what it can be traded for (money is almost always a purely intermediary good - it is not an end in itself, but a way of attaining some more desirable end, such as the consumption of some purchasable good or service). Now if Person A happens to highly value goods and services which are very expensive (like Ferraris and high-price call girls), and Person B happens to similarly highly value goods and services which are not very expensive (such as books and interpretive dancing), then it logically follows that Person A will value _money_ more highly than Person B.
Following from all this, we can already see two divergent behaviors and desires of people: there are people who will tend to seek to work more hours for more money, and there are people who will tend to prefer to forgo such wage generation in favor of spending their time some other way.
Once you add in the additional factors of things like pleasure and effort, you can quickly see how people will simply care about very different things. Some people will prefer to make $100,000 a year and work a 40 hour work week at a job they do not particularly enjoy, whereas other people may much prefer to make $30,000 a year and work 3 hours each day at a job they are generally indifferent about or do not enjoy, whereas yet another person simply has no desire to make any money at all and would just rather spend their time doing other things and volunteering.
This, of course, must always be considered relative to alternatives. Thus some will think taking a $20,000 a year pay cut to do something they love to do is totally worth it - meaning their value of money relative to 'job satisfaction'/pleasure is low - while another person might be willing to damn near break their back for that $5,000 a year bonus. And then there are just some people who seem not to mind nearly breaking their backs.
As to those who have a problem with the idea of enjoying work...well, they are a wonderful sort, being most perfectly inclinded to being total and utter slave drones mindlessly going about whatever tasks they are given without any apparent regard for themselves. Indeed, slave masters of all sorts love them...but I cannot think of why one would actually endevour to BE one. |
| Fri 06 Jun | Reginald Braithwaite-Lee | http://www.braithwaite-lee.com/opinions/doctor.html |
|
| Analyst reports on SCO/Linux code comparison | Thu 05 Jun | S. Tanna |
| http://www.informationweek.com/story/showArticle.jhtml?articleID=10300314 |
| Fri 06 Jun | Brian R. | Doesn't this just contribute to the Linux bad boy image, and make us want to use it that much more? ;-P
Co.'s..will..do..as..we..say. harhar. |
| Fri 06 Jun | Paulo Caetano | Actually this article brought me an idea I'd never noticed before.
It's a double-whammy:
1. Cast legal doubt over Linux, and scare the decision makers away from it. This has the added benefit of casting that same doubt over any open-source product. Who knows where those Apache bearded geeks got *their* code?
2. Hit IBM. Make the 'Blues Boys' spend resources trying to calm down their customers.
My vote goes for the 'fiendish-MS-plot':)
--
'Suravye ninto manshima taishite (Peace favor your sword)' (Shienaran salute)
'Life is a dream from which we all must wake before we can dream again' (Amys, Aiel Wise One) |
| Fri 06 Jun | Chris Davies | I'm still curious as to which bit of the kernel is actually alledged to be infringing.
It can't be the what I would regard as core kernel functionality, e.g. scheduling and process control, VM, etc. because all this has been written and rewritten by non-IBM core kernel developers.
Similarly, it can't be any of the peripheral device drivers, simply because Sys V and Linux are seperated by so many years of obsolesence.
Can anyone give some reasonable guesses as to what similar between Sys V and Linux, that goes beyond generic implementations of public domain algorithms? |
| Fri 06 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | Chris Dibona was on The Screen Savers talking about this issue. Linus named him as one of the people he would trust to check and see whether there's infringement. However, Chris stated he wouldn't do it, because the NDA that SCO is requiring would basically give him the ability to say 'yes' or 'no', and that's it. He wouldn't even be able to tell the world WHAT code was being infringed.
So, don't expect anything more than the type of article you just read, at least until it gets into court somehow (or someone convinces SCO to lighten up on the NDA). |
| Fri 06 Jun | T. Norman | Finding duplication is not enough. SCO could have taken Linux code and put it into their Unix. |
| Fri 06 Jun | Nat Ersoz | 'The month of June is show-and-tell time,' McBride said. 'Everybody's been clamoring for the code...and we're going to show hundreds of lines of code.'
http://news.com.com/2100-1016-1011627.html?tag=nl
Hundreds of lines of code? Its not uncommon to write several hundred lines of code per day - or more. What is the rule of thumb, 10 lines of code per day average? That includes the entire life cycle of a project: design, writing, debugging, integration, field support, ship party, etc. So, SCO's claim is about a couple of engineer-months worth of work, max? Once discovery takes place, this will be over in days.
As for how the code got into Linux, could SCO have done it themselves? Cringely makes a convincing case for it: http://www.pbs.org/cringely/pulpit/pulpit20030605.html
'Open Unix 8 is the first step in implementing the vision of the pending new company,' said Ransom Love, president and CEO of Caldera Systems in a company press release way back when. 'It combines the heritage of Unix with the momentum of Linux, and will be our premiere product for data intensive applications like database, email and supply chain management. The incorporation of the Linux application engine into the UnixWare kernel essentially redefines the direction of the product, and motivates a new brand identity -- Open Unix.'
'When we talk about unifying Unix and Linux, the two have a huge amount in common. A lot of people are running their businesses on Unix, while Linux has a tremendous population on Web servers and other front-end servers. So we are taking both and combining them into one platform.' |
| Fri 06 Jun | Brian R. | 'Finding duplication is not enough. SCO could have taken Linux code and put it into their Unix.'
This is the basic argument. Look for article links at openenterprise.com that talk about why they believe this is the case. |
| Fri 06 Jun | S. Tanna | Having common code, is in my opinion, not sufficient to prove SCO's allegation in itself - but it is consistent with SCO's allegation (and a number of possible alternatives). Frankly we haven't been given enough info to make a judgement.
I don't really personally care one way or the other (don't use Linux), but I am interested in this story.
A. We don't know if it's .h's or .c's (or I've seen nothing to indicate either way). If it is in a .h (or I guess some .c's) it could be stuff like function/structure definitions conforming to some outside spec (like Posix, ISO C headers, some hardware spec, etc.)
B. Personally I don't think it's enough even if there is common actual code between products A and B
1. Code could be copied from A into B
2. Code could be copied from B into A
3. And few people seem to be discussing this one, but code could originate in a common ancestors C, D, E, F, etc and put into both A and B. Such common ancestors might include public domain code, code under BSD license, code published by hardware manufacturers (Intel, device drivers by manufacturers etc.), possibly from books or whatever |
|
| Code Quality From Another Perspective | Thu 05 Jun | Darren Collins |
| Ive just read through the thread about measuring code quality. I agree with people that its hard (maybe impossible) to assign a figure of merit or some absolute measure of the quality of a given piece of code.
But does anyone have any ideas about identifying problem areas *within your own teams codebase*?
I dont really care whether any given piece of code is as high-quality as something NASA would write. Thats meaningless to me.
But Id like to be able to compare two parts of my own source code, and determine which one has the higher quality. Then Id know where to concentrate improvement efforts to get the most bang for the buck. Also, if those two components were developed using different methodologies, Id have some idea about which was the most effective.
Do you guys just track the number of bugs raised by component, or do you do something more complex? |
| Fri 06 Jun | Julian | Often the customer or integrator has the best perspective. My employer builds enterprise applications, which each engineer owning a different portion of the architecture. The guy who installs our software at the customer site and deals with support issues has a good idea of the relative quality of each person's code. |
| Fri 06 Jun | Danil | http://www.whiterose.org/cluey/archives/003558.html
A long winded answer, worth no more than you paid for it. |
| Fri 06 Jun | Nitin Bhide | ***But does anyone have any ideas about identifying problem areas *within your own team's codebase*? ****
There are MY thumb rules/guidelines to sniff out bad code.
1. Look for big functions/big files e.g. a single function with 200 lines or 3000 line file etc
2. Lots of parameters passed to one function (e.g. functions taking 9-10 parameters)
3. Big switch/case or if-elseif conditions.
4. Duplicate code with minor differences. e.g. functions with almost similar code but 3/4 lines are diffrent.
5. Complex code/logic. (this is generally found in large functions).
6. Function names like 'DoSomething', 'AddNumber' etc. Describing action and not intent of the function.
7. Lots of Get functions in a class
8. public member variables.
9. Lots of global functions using public member variable of classes or using Get functions of classes
10. Duplication of information (e.g. me information stored in two classes or two variables of same class).
Remember, all these are INDICATORs. and NOT absolute Rules. |
| Fri 06 Jun | richard | Nitin, having introduced many of the things you mentioned to our latest project I am feeling a bit sore :-O
Ultimately many of the conditional yuck arose through bug fixing and having to do a lot of wrapping/abstracting code to make our code operate in 2 modes (an embedded server & as a java applet).
A lot of the 'cleanest' code is stuff that has low value and has accrued almost no changes or bug fixes. In my experience things like classes that contain the mainline or similar initialiser, significant GUI classes and Utility classes typically build up a lot of cruft.
A lot of the cruftiest code has a large testing investment. So while following the advice in Code Complete is part of the quality equation, it is only one part. |
| Fri 06 Jun | Brent P. Newhall | Agreed with Nitin -- there are certain automatic indicators of bad code, but no absolute rules.
First, you have to define what 'high-quality' means. I value 'straightforwardness' -- the code may not be simple in an absolute sense, but it should be clear and completely understandable as quickly as possible. Ergo, I want to avoid long functions and complex logical statements.
Here is my list of code smells (automatically sniffed by a script):
* Any line of code with more than 3 levels of nesting.
* Any function definition with more than 5 parameters.
* Any function more than 25 lines long.
* Any use of globals.
* Any if() statement with more than 2 expressions (e.g., 'a = b AND b = c' is okay, but not 'a = b AND b = c OR d != e').
Note that it's okay to violate these rules if there's a very good reason to. But the vast majority of code shouldn't. |
| Fri 06 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | A lot of these rules really lead back to the excellent Refactoring book by Martin Fowler. He gives the 'sniff test' of when code might need to be refactored, and a bunch of mechanical refactorings that can be done.
That's not to say that code that needs to be refactored is necessarily bad. From the simplest measure, the question is: does the code properly perform its job? Refactoring can take that working code and make it easier to maintain and reuse. |
| Fri 06 Jun | jbr | Brad,
'does the code properly perform its job?'
When? Today? Tomorrow? 2 years from now after umpteen releases?
Ideally the code works today (HA!), but can you build on it and still use it a few releases later?
I have to work with code that was developed at least as early as the 80's (maybe even before). As we build on it, expanding the capabilities for our customers, things that had been working since the 80's break.
I found such a problem last year. Now there was a design flaw in that code, but it went uncovered for over 15 years, so it obviously 'worked' (our customers were satisfied until now), it just wasn't perfect, or adequate when the system changed.
.... and it was a pain in the butt to track down. |
| Fri 06 Jun | Nat Ersoz | I think Nitin just described the MSFT Windows API. Name space pollution, buhzillionty parameters passed per function, huge switch statements, ... Anything he missed? |
| Fri 06 Jun | Thomas | If you're developing with Java and Eclipse, you might try the http://metrics.sourceforge.net plugin. Warning, it is very compute-intensive and fairly memory-hungry. Warning 2, I haven't actually done much with it yet so I can't claim success with it.
-Thomas |
|
| Applying One theory in many different areas | Thu 05 Jun | MR |
| I am a recent CS graduate as some may remember me from my last post. As I wanted to broaden my knowledge in CS, I took maximum allowable senior courses. However, one thing I truly learned, is that there are so many overlapping concepts, it seems to be possible to unify everything to just a handful of theories. And most are related to some graph theories, in one way or another.
Example, not long after I learned about garbage collection in the compiler class and how it is done, I subsequently learned the same thing in the distributed system class. Though they are essentially the same, the “data” in each is different; one is for memory and the other is for names in database. It is obvious enough, some if not most, in the distributed class would have quickly recognized the same theory can apply in cleaning up memory, even if they have never taken a compiler class. (Note, I would have been happier, if the prof mentioned about other application, but she didn’t)
Anyway, I’m wondering if there is a book that talks about how a theory is being applied in different areas of CS. Or better yet, a theory from totally different field (ie, Education) can be applied in CS. |
| Thu 05 Jun | Jordan Lev | I think you have hit upon what I think of as 'the secret of life' -- everything is essentially the same pattern. I am not too well-versed in Computer Science, but off the top of my head, I think 'Goedel, Echer, Bach' by Hofstadter shows this in action.
However, I have also come up with my own corrollary to this 'everything is the same' theory:
Detailed Theory Vague Theory
<-------------------------------------------------->
Narrow Application Wide Application
~This is a 'spectrum of abstractness' -- the more general a theory, the more places it can be applied (e.g. using a pointer/lookup/url to refer to one 'thing' many times is way better than repeating that 'thing' over and over in different places). But at the same time, it will not explain all the intricacies of everything. For the fine-grained detail, you wind up with more specific theories, that can not be as easily applied to different situations (e.g. use numbers for ID lookups in a database as opposed to text values because the computer can search these faster).
Please excuse my rambling -- I just finished a presentation with a client that went really well and am feeling very philosophical. |
| Thu 05 Jun | Philo | Which see: Abstraction.
The *trick* is recognizing the law of diminishing returns in pursuit of the 'greater good'
The more abstract you can make something, the broader the application for that thing. However, the more abstract you make it, the harder it will be to develop against.
So - when do you stop trying to build the be-all design and accept some shortcomings for the sake of workability?
Therein lies the secret...
Philo |
| Thu 05 Jun | Simon Lucy | Go back to some of the fundamental work, not by Turing (though that's worth it too), but Shannon, Nyquist and so on. Their work was in communication theory but all of it is applicable to computational problems.
For instance, the computing equivalent of the speed of light is (2 log n) and that is derived directly from Shannon's theorem.
It doesn't just relate to the capacity of a given memory less channel but to any analagous process. Shift bits and it applies, search indexes and it applies. |
| Fri 06 Jun | My JOS Alias | I'm not familiar with it personally, but I have heard 'Category Theory' called the grand unifying theory of computer science. |
| Fri 06 Jun | richard | Ultimately you can abstract things to as high a level as possible, at which point everyone gets confused and it gets inapplicable.
You will lose a CS class completely, many experienced developers will distance themselves from people who try to abstract or over generalise. Joel has a nice term for them: Architecture Astronauts. People in pursuit of the Unified Code Theory or something.
Ultimately specifics are what we deal in, abstraction helps but only to a point. |
|
| How to hire a Medical Doctor? | Thu 05 Jun | mb |
| A doctor debate started on a recent thread.
Hiring is a constant theme on this board.
How do you find a good doctor? Interviews? Word of mouth? Throw the phonebook down the stairs and see which page it lands open on?
Personally Ive tried to go with word of mouth. The usual end result is anyone who says my doctor is great has a doctor who no longer accepts new patients. Everyone else says either let me know when you find one or my doc is just OK. Well, except for the people who tell me of the things their doctor did to them which made them much worse, but thankfully thats rare. |
| Thu 05 Jun | David Clayworth | Here in Ontario the way to hire a doctor is 'take the first one who will accept you', because most are full. |
| Thu 05 Jun | Wayne Earl | At least in the US, the hiring of the doctor is largely controlled by health insurance requirements. |
| Thu 05 Jun | Stephen Jones | When I taught in Primary School in Riyadh in the early nineties an average of 60% of the parents were doctors.
I didn't have a just have preferential access to a doctor but to a dermatologist, a heart surgeon, a dental surgeon and every other speciality you could think of.
Pity I was scarcely ever ill! |
| Thu 05 Jun | Joe Grossberg | Some publications list 'the area's best doctors'.
I picked up a copy of Washingtonian (?) Magazine at the supermarket, cross-referenced it with my health insurance company's list of providers, and just started calling around. Yes, you'll have to make 20 phone calls, and hear 'we're not accepting new patients' 19 times. Suck it up; it's your health we're talking about.
BTW, do *not* just go through the provider directory and pick the guy with the most convenient location. I did that approach first. He sucked. |
| Thu 05 Jun | SuprDude | I second the situation in Ontario. I commute 40 minutes to work and my family doctor is 20 minutes in the opposite direction. I was lucky that my girlfriend met our family doctor through work.
It seems to me that finding a family doctor (here at least) is much like finding a new job. Networking is extremely important. |
| Thu 05 Jun | Alex Chernavsky | Here's what I do, at a minimum:
1) I check the disciplinary records for any doctor that I have contact with (or am thinking of having contact with). New York State conveniently puts all those records on-line:
http://www.health.state.ny.us/nysdoh/opmc/main.htm
2) I do all my own research. The University of Rochester allows community members to use the school's medical library (you just can't take materials out of the library). I would guess that many other universities have the same policy. The best place to get journal references is through Medline:
http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=PubMed
Then, you can look up the full-text articles at the library.
Many medical articles are more accessible than you might think. Most people who are reasonably intelligent could probably figure out journal articles without too much trouble.
Yeah, doing your own legwork can be a hassle, but it sure beats the alternative. |
| Thu 05 Jun | Lou | If you're talking about selecting a Primary Care Provider for an HMO you'll want to take a look at this month's Men's Health. Their article is quite informative and covers many of the things you don't know when looking for a good GP.
Here's one - look for an internist instead - they have to take classes every year, get recertified regularly, and have extra schooling on the types of things you'll be going to see them about - 'Why is my arm all green?' |
| Thu 05 Jun | Erik Lickerman | I fear this topic will be deleted shortly but since you asked- there is no way reliably to select a doctor, especially without any specific criteria. I think most people want a doctor who seems sympathetic and 'listens'. Neither of these indicate whether or not the doctor will do what is medically proper in any given situation. Many, possibly most ,of us will never (until life's end) have a serious illness which will not eventually resolve on its own. Most of us will never have a disease which is particularly difficult to diagnose (i.e. the average doc will miss it but a great doc will pic it up).
The only good suggestion I have read here is to check the doctor's disciplinary record. The bad doctors, over time, may build up a record. Beware, though, using lawsuits filed as a criteria- this tends to have more to do with specialty and personality than actual incompetence.
Also, my opinion is that '100 best doctor' lists are likely to be crap. They may sell magazines but I fail to see how they could be reliably compiled, once again, in the absence of good criteria. |
| Thu 05 Jun | Christopher Wells | I (also in Ontario) use the family practice clinic of the local teaching hospital. |
| Fri 06 Jun | tapiwa | self diagnosis baby!
Seriously though, I haven't seen a doctor in years. The last time I saw a doctor was back in 1995, when I'd had a climbing accident, and had broken my leg.
When I get sick it is typically a cold (about twice a year). The rest of the time, I just 'listen' to my body, eat when I'm hungry, drink when I am thirsty, and rest when I am tired.
Never understood the whole 'you have to see a doctor every three months nonsense.' I really do have better things to do with my time, and I hate the smell of surgeries.
PS. The best cure for a cold, is Lemsip, Paracetemol, herbal tea, honey and (the most important ingrediant) Scoth whisky. One large mug of that and a good nights sleep, I get up feeling like a Swiss watch. |
| Fri 06 Jun | deft | Lemsip contains Paracetamol already, so make sure you don't overdose by taking the 2 at the same time... |
| Fri 06 Jun | Katie Lucas | Well, lets see, I've got a physiotherapist, two surgeons, two psychiatrists[1] and I'm about to gain an endocrinologist when I can get round to making an initial appointment.
An awful lot of these I was referred to by each other, and the start point was wandering through the appropriate part of a suitable phone book[2] and then talking my GP into writing referal letters to people she's never heard of in specialities she's never dealt with before. (Fortunately she's cool about doing this.)
The surgeon, for example, I was sent to by the physio department when my 'ligament damage' failed to improve over time. {It later transpired this was because what was actually hurting was a wrongly healed fracture site...}
At the time it was very much 'right, you'll be needing to go talk to our knee specialist then'.
GP-wise I asked the local health authority for a list of local surgeries and found the one closest to the house on the basis that having a doctor's I can crawl to seems a reasonable sensible idea...
And some of us have to go every month to have our blood pressure checked, three monthly checkups is a **luxury**
[1] Both of whom are more bonkers than I am.
[2] Location of such, exercise for reader. |
| Fri 06 Jun | Katie Lucas | You saw a doctor when you broke your leg?!?
Hah! Wuss!!
PROPER software engineers just carry on. Fractured femoral condyle (didn't actually know this was what had happened) on an Easter Sunday.
They got me home on the Sunday and asked if I wanted to be taken to A&E, and I absolutely refused to spend the rest of the day sitting in a waiting room. So I just took loads of painkillers and then we all went to the cinema, me propped up by a couple of friends...
Was back at work on the Tuesday... bit heroic and all that, but there was software that needed writing.
I managed about four months walking[1] around before finally the other half got fed up of me eating painkillers and still having it hurt and made me go to the doctors.
Where they diagnosed the aforementionedly whined-about 'ligament damage' and sent me to physiotherapy.
It was another couple of months before anyone actually found the big hole in my bone caused by the fracture not healing properly and even then they made me hobble about with it like that (on crutches admittedly) for three months to see if it would heal up on its own.
It was coming up on ten months after the actual injury before I found myself in hospital having dead bone drilled out of me.
And that was easily the DUMBEST, STUPIDEST thing I've ever done in my whole entire life. Never, ever, ever, ever do anything as stupid as this.
Because of course by then things in my knee were really messed up - two and a half years on, I still can't walk properly.
So I cannot emphasise this enough: When you break bones, go to A&E.
[1] Mmmmm. Weeeelll... sort of limping badly more than walking. |
| Fri 06 Jun | Christopher Wells | > I managed about four months walking[1] around before finally the other half got fed up of me eating painkillers and still having it hurt and made me go to the doctors.
There's an RTFM lesson in there: the label on a packet of Tylenol says 'If pain persists for more than 5 days, consult a doctor.' The last time I didn't want to go on living without exceeding the recommended dose, I took myself to hospital where they found and fixed an abcess. |
| Fri 06 Jun | Steve Barbour | Don't forget to check the waiting times.
This is my biggest complaint, and I've dealt with it two ways. Normally, if it's just me, the doc is allowed to be fifteen minutes late. After that time, I go to the front desk and tell them that my appointment was fifteen minutes ago, and that I will be leaving in five minutes. Then if I'm not in the exam room in five minutes, I go back to the front desk and tell them goodbye, and leave.
If they do send me to an exam room, I give the doc another ten minutes, and then I do the same thing as before, give 'em five minutes and then walk.
Sometimes it works, sometimes it doesn't.
With my wife, I give it ten minutes and then start to complain at five minute intervals. After thirty minutes I start billing at my consulting rate.
If you can't see me at the time you said you would because you're too busy, then you shouldn't have scheduled it.
My current doc, has an average waiting room time of 7 minutes, and an average of an additional five minutes in the exam room. He's terse, but dammit, I'm not paying him to talk about the weather.
Also, always remember, if your doctor calls you by your first name, then you call him by his or her first name. Tends to bring the annoying ones down a peg or two. |
|
| Programming puzzles book in C++ | Thu 05 Jun | Wayne Earl |
| A son of a friend of mine is now getting his toes wet in programming - hes learning C++ for his first language. He is also a puzzle fanatic. Wanting to encourage both behaviors, I was wondering if anyone could recommend a good book on puzzles that can be solved using C++? One that progresses from simple to more complex puzzles, along with solutions and an explanation of those solutions, would be absolutely perfect.
Please only include books that deal with C++ or C, as this is to both entertain and sharpen his emerging programming abilities in these languages. Also, websites as an alternative to books would be welcome also. |
| Thu 05 Jun | HeyCoolAid! | Puzzles != C++
I kind of doubt you'll find both of these subjects in a single book as they're both very specific... and not really related.
You may want to search for books that contain brain teasers, or other types of puzzles. Then challenge him to use the C++ code that he's learning to run/solve the puzzles. |
| Thu 05 Jun | Ben Combee | http://www.gotw.ca/gotw/index.htm
These are Herb Sutter's Guru of the Week columns, all designed as puzzles for C++ developers. Some of them are collected in his books 'Exceptional C++' and 'More Exceptional C++'. |
| Thu 05 Jun | Philo | Hey KoolAid -
What makes you think you can't do puzzles in C++? Many classic programming problems are puzzles.
'The Tower of Hanoi' is generally used to teach recursion...
Philo |
| Thu 05 Jun | David Blume | Ben,
Herb Sutter (and Andrei Alexandrescu) are a little out of the league for a kid trying on C++ as their first language. Those authors should come after Scott Meyers. Besides, Herb's puzzles are *about* C++'s particular quirks.
This kid should probably start with Dr. Ecco puzzles or books recommended at Fog Creek's own TechInterview site. |
| Thu 05 Jun | Punter | Programming Pearls.
Basically a set of tricky problems, with the solutions. |
| Thu 05 Jun | Tom Vu | I don't know about C++ puzzle books but you should look at http://www.topcoder.com for puzzles that you can hack up in no time. It's great for learning how to code in a language you are not familiar with. |
| Fri 06 Jun | X. J. Scott | Three books:
1. Obfuscated C and Other Mysteries
Essential C information, shocking code mysteries and endless hours of amusement and perplexity.
2. The C Puzzle Book
Oh man, out of print for years and it was such a good one.
3. Programming Pearls.
Fits the bill but not as humorous as the others. Does have puzzle/exercises in each chapter, many of which are quite challenging.
--
As far as C++ goes, just dig up some const-correct templating code with complete and robust exception handling. |
| Fri 06 Jun | Synder (OFRPGT) |
Puzzled Programmers: 15 Mind-Boggling Story
Puzzles to Test Your Programming Prowess:
Solutions in Basic, Pascal, and C
Dated, but good. Also the Dr. Ecco series. |
| Fri 06 Jun | Katie Lucas | My other half got a book entitled 'How Not To Program in C++: 111 Broken Programs and 3 Working ones'
Which was brilliant. Which is strange because it's basically the bits of programming job interviews I hate. |
| Fri 06 Jun | HeyCoolAid! | Philo,
I didn't say you can't do puzzles in C++. I said that they are not the same thing (!=), and it may be hard to find a book that is about both specifically. That's all. |
|
| Last ditch effor: Accessing Exchange Mailboxes | Thu 05 Jun | Ed |
| Perhaps you all can help me. Ive posted this question to MSs forums to no avail, so I hope the great minds that read this blog can help:
Does anybody know of a good solid example in VB 6 of
how to access a Exchange 5.5 inbox of a different user
from the one currently logged in? I can write code all day
to log in to exchange as the current user, but what if you
simply need to supply the user name/pw of a different
network user and read that inbox. This seems like such a
simple task, but nobody has provided any examples.
This will be done either via a web app, or a windows service. I need the option of checking multiple mailboxes belonging to multiple users.
Any ideas?
Thanks
Ed |
| Thu 05 Jun | Stephen Jones | A linked question. I have a mailbox to which I have delegate access. I wish to create a new contacts form from an Access data base and populate it with data and save the form to the shared mailbox contact folder..
It's trivial to do with a .pst file, but I'm not so sure about the details if the contacts folder is on a mailbox with delegate access. |
| Thu 05 Jun | igor | If you use CDO 1.21 you can logon to mailbox of any user as long as you have correct access rights. CDO 1.21 is not installed by default, but you can install it either from Office (it's an option under Outlook) or by installing Exchange (just installing Exchange Admin is enough in 5.5). I would recommend using the latest versions (e.g. Office XP or Exch 5.5 SP4).
To access a mailbox of another user use Session.Logon and pass 'server' & 'mailbox' for the profileInfo argument (the last arg). If you are going to do this from IIS or another service make sure that the service is running as a user that has permissions to access mailboxes in Exchange.
The documentation on CDO is pretty good once you know which flavor of CDO you need. |
| Thu 05 Jun | Ed | Igor, i use the following:
objMapi.Logon ProfilePassword:='password', ShowDialog:=False, NewSession:=True, NoMail:=True, ProfileInfo:='mail' & vbLf & 'The MailboxName'
And i still get access denied. The mailbox and password are correct, and I can even add these mailboxes to my own outlook account, but using cdo 1.21 i cant open the mailbox remotely. I can however, open my own assigned mailbox using that code...
If i move that code to another machine logged in a different user, i get the same access denied error...
|
| Thu 05 Jun | Steve H | It might be worthwhile to spend 10 minutes trying to use one of these tools: http://www.slipstick.com/dev/cdo.htm#tools to see if they show you the other mailboxes you have permission to.
If the tools also fail then there may be some config issue on the server side. If they work then you can blame your code :) |
| Thu 05 Jun | Ed | Steve H, thats the thing. Im not trying to access mailboxes that are 'owned' by me, but those which are owned by a totally different network user than the one logged in.. |
| Thu 05 Jun | Stephen Jones | I don't know if this article will give you any help
http://support.microsoft.com/?kbid=268372
It appears that the dialog box cannot be set to no without causing an error message |
| Fri 06 Jun | ko | Ed,
a website which i've found a fair bit of useful stuff in the past relating to CDO stuff is http://www.cdolive.com/start.htm . They've just changed their website to be more of a commercial site, but the info is still there.
Hope it helps. |
|
| Measures of Code Quality | Thu 05 Jun | jbr |
| Does anyone work at a place where they measure code quality using some algorithm? Have you found it a useful predictor of future maintenance costs and/or defect-prone areas? Did you think the cost of the tool (either implementing or purchasing) warranted the benefits? |
| Thu 05 Jun | Ed | I would imagine the best algorithm is one created in your mind. Code 'quality' is such a subjective term....
Who's to say that the 20 yr veteran's 400 line routines perform worse than the 2 yr veterans 20 line routine? Perhaps the 20 line version references some external objects which actually cause more of a performance hit.. |
| Thu 05 Jun | He-who-would-not-be-named | Algorithm that measures code quality?
If you believe there's something like that, then I have a brooklyn bridge to sell you.
Seriously now, quality is subjective and not really measurable. That does not stop people from measuring 'bugs found per line of code', or various other ridiculous measurements.
Bugs found per line of code is a measurement that combines both code quality and QA quality into a measurement that has no scale. You can improve it to no end by, e.g., firing your QA team. Similar actions will improve the state for any other code quality measure, but usually decrease code quality (in a subjective but generally agreed sense).
Also, take a look at the K code at [ http://nsl.com ] ; I think any algorithm will rank it 'low quality', but if you spend the time to grok it (and it takes a lot of time to grok!), you'll probably reach the conclusion that it ranks among the highest quality code you've seen (in terms of robustness, compactness, feature set per source line; readability will only be added to the list after you're a fluent K programmer). |
| Thu 05 Jun | jbr | Actaully, I was looking at SEI's 'Maintainability Index Technique for Measuring Program Maintainability' recently, and was wondering if anyone actually uses it, or something like it, other than IBM or DoD. |
| Thu 05 Jun | jbr | Link: http://www.sei.cmu.edu/str/descriptions/mitmpm.html#78991 |
| Thu 05 Jun | S. Tanna | > Bugs found per line of code
This is why I wrote my programs like this :-) Less bugs per line, and I produce way more lines of code per day than other programmers :-)
int
main
(
int
argc,
char *
argv[]
)
{
printf(
'Hello World\n'
) ;
}
Seriously...
- isn't code quality 100% subjective? Witness the numerous discussions here about what is good code/practise.
- QA has already been addressed by somebody else.
- And often whether you choose to say a defect is in one function or another (e.g. two functions calling each other or working on the same data), is a decision a programmer makes rather than an objective fact. In other words, I'm not sure it's realistic (rather than just one particular interpretation) to assign many defects to a particular piece of code. |
| Thu 05 Jun | Ged Byrne | I rather like this measure for code complexity:
http://sern.ucalgary.ca/courses/cpsc/451/W98/Complexity.html#RTFToC10
I think complexity is a good sign of poor code, and this neat piece of graph theory enables you to get a good measure of complexity. |
| Thu 05 Jun | jbr | Ged,
Have you actually done a Cyclomatic Complexity analysis (or other measure) on a piece of code (or code base as a whole)?
Was it worth it? |
| Thu 05 Jun | igor | S. Tanna, the defects/loc metric definitely depends on how you count lines of code. Generally, you'd only want to use it as a personal tool to see if you're getting better from project to project. If you really want to compare code written by different people you might want to adjust for different styles. One simple way of doing it is to only count open braces and semicolons (this works fairly well for Java and C/C++).
Also, it's usually easy to assign defects to a particular piece of code, especially if you architecture is fairly modular. This is a great way to see which part of the application are causing lots of problems. In my experience, most apps have just a few components that result in the most number of bugs. You can often improve the whole app by rewriting once bothersome module.
Of course, both of these can be manipulated by someone with perverse goals or in environments that focus on 'blame casting' rather than improving product quality. |
| Thu 05 Jun | S. Tanna | I was joking about the lines of code part, and just trying to demonstrate is it easily manipulible, intentionally or just because of different styles. Braces and to a less extent semi-colons are poor measures just because of different coding styles.
for ( int x = 0 ; x < 10 ; x++ )
for ( int y = 0 ; y < 10 ; y++ )
for ( int z = 0 ; z < 10 ; z++ )
if ( array[x][y][z] == somevalue ) callfunction() ;
vs
for ( int x = 0 ; x < 10 ; x++ )
{
for ( int y = 0 ; y < 10 ; y++ )
{
for ( int z = 0 ; z < 10 ; z++ )
{
if ( array[x][y][z] == somevalue )
{
callfunction() ;
}
} // for z
} // for y
} // for x
I personally consider the 2nd example, _because_ it contains the braces, better, as this makes it easier to edit and read.
As for choosing where to place a bug. I disagree
If I call something function in another module, and it doesn't work. This can fail for many reasons including passing parameters or making assumptions with that other module doesn't handle. It is often a matter of interpretation whether you consider this to be a bug in the caller or callee. Even if the other module has a well-defined interface and assumptions, it is still arguable as to whether that interface/assumptions are defined correctly (in accordance with actual use as opposed to anticipated use), or whether my code is incorrect because I didn't work within the assumptions. |
| Thu 05 Jun | 1/4 Ain't Bad | It's too subjective to be useful, I agree, yadda yadda. The only general measure of quality that I've actually seen in real life was in the early stages of a new product that we shipped.
Our program breaks down into roughly 4 major sections, and each of these sections is most often handled by one particular programmer each. In the first two months after shipping, customers were complaining that 3 of the 4 sections were much too buggy, and only one section was up to par.
Little did the customers know that they were in fact measuring the quality of code created by each of our programmers. Since I was the one with the good section, I was rather pleased by this. Granted, it took me 3 years of creating excellent code before anyone could really say it was excellent...
I guess I don't have a specific point here, but this is the only real-life example I've seen of measuring general code quality across the board. |
| Thu 05 Jun | Li-fan Chen | S. Tanna, I have no problem with how you code but do your fellow coders not object to the strange way it looks? I guess you cna get a code formatter and get any standard you want...
There are so many tips for writing clean code so I am not going to regurgitate.
For me:
1. normally when code get really convoluted add a little more white space.. I usually sanity check how I code when I realize there maybe another way to code something convoluted so that it is just as fast, but much easier to read. Everyday stuff stay succinct. Don't be terse unless it's the norm expected by other coders.
2. I do expanded hungarian ({m_|g_}{[bool}int|str|arr|bit|err|obj}MainDescriptor_SpecificDescriptor) in the VB world for variables. I don't force all data functions into one module or class. When I have time I subclass or create base objects to depend on. Otherwise I just write more specific classes to work independantly of base classes. No subclassing.
3. In VB I use _ and & _ to try to ensure coders don't have to see one big like of embedded SQL or anything where clarity could be a great help. I do the same when possible with other languages. I use blank lines to paragraph intent.
Some people hate that, and find it clearer if you just code the way Programming Pearls would do it.
-- David |
| Thu 05 Jun | S. Tanna | David I was joking.
I was merely trying to point out that measuring code quantity (e.g. lines or amount of code) on an purely objective basis is hard. If quantity (lines) is hard to agree how to measure, and quality (defects) is at least partially subjective, measuring quality per quantity (defects per line) is very hard. |
| Thu 05 Jun | Li-fan Chen | LMAO.. I should read the thread. |
| Thu 05 Jun | jbr | I was thinking of code quality as a measure to predict future defect rates, not as a post-mortem analysis of actual defects found (though that would be useful to calibrate your predicted rates).
I believe McCabe Code Analysis is a commercially available tool that does this. I was wondering if anyone has actually used it, or something similiar, and if they thought it added any value. |
| Thu 05 Jun | Ran Whittle | There was a slashdot article posted a few months ago that suggested a relationship between defects and the number of variables that set aside in memory (Dimmed) but never set and also to the number of variables that are set but whose value once set is never read.
The hypothesis suggested that these were areas of the code that had been modified in haste and were therefore likely nesting grounds for bugs.
It offers a metric that is a bit more objective than LOC or defects per routine. |
| Thu 05 Jun | old_timer | Code/Porn similarities: To paraphrase the courts, I don't know how to define quality code, but I know it when I see it. |
| Thu 05 Jun | Simon Lucy | I've used McCabe. That's as much as I'd wish to say about it. |
| Thu 05 Jun | Philo | Ged - doesn't cyclomatic analysis automatically indicate why goto's are evil?
Philo |
| Thu 05 Jun | Jim S. | I've been an architect/developer for most of the last 20- years. Like many in this economy I've been sentenced to unemployment or something very nearly as bad - in my case I'm running production support for a large-scale EAI group.
Now, I've always been sympathetic to supportability, and as a developer I've been successful at putting in place some very robust, low-maintenance systems, but my current work leads me to conclude there are only two true measures of code quality: number of problem tickets per week and the number of hours per week support staff are called in after-hours to fix the application. Other subjective measures of maintainability, efficiency, defects per KLOC, etc are secondary. From my current vantage point, I'm surprised how the actual act of writing code consumes so much focus in the system development/IT management process.
To put it another way, algorithms, particulalry error-handling algorithms, are far more important than whether something has good style and nice object model in J2EE or whether it's some ugly, unfashionable piece of code. If the code meets functional requirements, has predictable capacity requirements, the failure modes fit business workarounds/compensating controls and the system doesn't fall over very often, then it's good code. Otherwise it is exorbitantly expensive (a polite way of saying it sucks.) It just doesn't really much matter if the code takes 20Mb of memory and 1,000 LOC when someone else could make it do the same in 500k and 10 LOC. I know someone is going to speak up for maintainability; I agree that's important too, but not nearly as important as I would have thought, say, a year ago.
FWIW, where I work is full of quite good developers. We all bitch and moan constantly about being stuck in support, yet there is a consensus that the experience will make us much better developers in the future.
Disclaimer: this is for mission-critical, enterpise corporate type software. I have no experience with shrink-wrap, embedded or others types. |
| Thu 05 Jun | Christopher Wells | The book _Code Complete_ describes many (quantifiable)aspects of code quality, and is worth its price if you're writing software. As a book, it's an algorithm, not an automated tool. It seems to me a more sophisticated algorithm than the 'Maintainability Index Technique for Measuring Program Maintainability' which you referenced. |
| Fri 06 Jun | Michael Moser | You can't measure the Tao ;-)
--------------------------------------------------------------
http://www.hsoi.com/hsoishop/workshop/programmingtao.html
Something mysterious is formed, born in the silent void. Waiting alone and unmoving, it is at once still and yet in constant motion. It is the source of all programs. I do not know its name, so I will call it the Tao of Programming.
If the Tao is great, then the operating system is great. If the operating system is great, then the compiler is great. If the compiler is greater, then the applications is great. The user is pleased and there is harmony in the world.
The Tao of Programming flows far away and returns on the wind of morning. |
| Fri 06 Jun | Michael Moser | What i was trying to say was - if you need to measure code quality, then something is probably wery wrong in the way you do things.
Its a wrong question. |
| Fri 06 Jun | Michael Moser | The right question is - is your customer pleased?
Another thing that is hard to quantify. |
| Fri 06 Jun | T. Norman | Jim S. - I agree that the real measure of code quality is the cost and effort post-release fixes. But I think the original poster is concerned with how to predict those future costs based on a present-time evaluation of code quality. In other words, how to look at a body of code and have an idea of how many problem tickets and after-hours work will be required to support the code in the future. |
| Fri 06 Jun | jbr | T.,
Bingo.
Moser,
I don't buy that whole Tao shtuff. It's called Computer 'Science' or 'Engineering', not Computer 'Art' or 'Interpretive Dance'. By definition you shouble be able to apply the scientific process to it.
And BTW, no, our customers are not happy with code quality. Hence this discussion. |
| Fri 06 Jun | Brent P. Newhall | Am I correct in understanding that the original poster wants to predict the number of problems that a given piece of code will have in the future? How is this not trying to predict the future? |
| Fri 06 Jun | jbr | Brent,
People predict the future all the time... and when your sample base is large enough to give you good statistics, you can make a pretty good a living at it (just ask the life insurance companies).
It works when you're not concerned with predicting the individual but for the group (and the group has to be large).
To continue the analogy, life insurance costs smokers $X more monthly because smokers (as a group) have a higher chance of croaking. Smokers can take the preventative action of becoming non-smokers and save themselves that re-occurring $X (although it might cost them a one time $A in nicotine patches, etc).
Similarly with code, you can see that if a particular section of code has a score of Y on some rating, and you can equate that to a potential cost of $Z (by calculating the expected cost of defect correction based on percentage of defect occuring based on Y), then you can determine if it's worth spending $B to reduce that risk.
So you're not trying to predict if bar() has a defect, but rather if it's worth it to refactor libary foo. |
| Fri 06 Jun | jbr | Brent,
Having just re-read your post, I'm not sure now what you were trying to imply... I thought it was something like 'predicting the future is inherently fuzzy like interpretive dance, and thus can't have rules/logic applied to it.'
I apologize if I interpretted it wrong. |
| Fri 06 Jun | Michael Moser | >I don't buy that whole Tao shtuff. It's called
>Computer 'Science' or 'Engineering', not Computer 'Art'
>or 'Interpretive Dance'. By definition you shouble be able
>to apply the scientific process to it.
i guess that code quality cannot be measured by one or several numbers.
code can be very different, so metric A for embedded C code will be useless for GUI code in C++.
Now comes the stuff that lies between different layers - lots of error handling/unexpected things - different metric
If you want to be scientific - then you will first have
to classify type of code you are talking about.
For a complex project you will spend a lot of time classifying
each function, then applying different cross metrics to each of them.
If a system is very complex (like the economy/software systems in general) then simple numbers just don't do it.
Good luck, i would rather do something usefull. |
| Fri 06 Jun | jbr | Moser,
Good points. You don't want to try comparing apples and oranges. The particular domain I'm working is a large, multi-processor/platform embedded C project, with a (very)little C++ here and there, so any analysis would have to be for just one or the other (unless you can derive a correlative factor...).
From the rest of your comments, I take it then that you've never done such an analysis, nor do you see any benefits of doing so. |
| Fri 06 Jun | Brent P. Newhall | jbr: That's sort of what I wanted to discuss. The issue I see is the same one that Michael Moser addresses.
Yes, one can predict the future if one has a very large, stable basis for prediction. I don't know of any code or situation that offers such a stable base. |
| Fri 06 Jun | Devil's Advocate | I find that John Lakos ('Large Scale C++ Program Design') has a metric he calls CCD (Cumulative component dependency). This is basically the sum of all link-time dependencies in the project.
I believe this correlates well with, say, the time required to fix a bug because a module with many linking dependencies has many files whose data or code may have some bearing on the bug.
(I realize that the CCD can be artificially reduced by combining all of the modules in a project into one gigantic module, but let's assume for the moment that we are not quite that stupid) |
| Fri 06 Jun | Michael Moser | >I find that John Lakos ('Large Scale C++ Program
>Design') has a metric he calls CCD (Cumulative
>component dependency). This is basically the sum of all
>link-time dependencies in the project.
That does say nothing about the stability of the interface. You might link to a function that works and that has not been changed in years - these should not contribute to the statistics (or contribute less).
Now that again is a subjective quantity.
Ah! I want to introduce my own sociological measure of code quality (has nothing to do with the code ;-)
WH := cumulative working hours/ man years / cat years.
DT := diversion time (time spent on
WEB/EMAIL/PHONE/EXTENDED COFEE BREAKS)
QualityOfCode := WH - DT
----------
WH
That would measure the sence of purpose of your organisation (belive me, i have seen large projects).
With a high score of this metric, i would regard any reference to 'code quality' as an expression of department internal politics (also seen in large scale projects).
Politics defined: some dude wants to be department head and invents another metric that makes the present one (or past one) look bad |
|
| What is actually wrong with VBs As New? | Thu 05 Jun | Ged Byrne |
| It is common knowledge that VBs as new declaration should not be used.
ie. You should always use
Dim A as Object:Set A = New Object
and never
Dim A as New Object
However, I dont actually know why. I think it has something to do with threading, but cannot be certain.
I searched on Google but couldnt find anything. The best find was this MSDN article, which seems to indicate that there is no differece between New and As New.
msdn.microsoft.com/library/en-us/vbcon98/html/ vbconhowobjectcreationworksinvbcomponents.asp
Could somebody please clarify why using As New is a bad idea, or am I victim of an Urban Myth?
Thanks. |
| Thu 05 Jun | Application Specialist | Because even after you do
SET A = nothing
you will STILL be able to reference A and get a NEW object after that.
As long as you are in scope you will always get a new object. That's WACKED !
Bling bling ! |
| Thu 05 Jun | John Topley (www.johntopley.com) | Also, when does the Class_Initialize event fire? |
| Thu 05 Jun | Philip Dickerson | Objects can be 'created' in VB in either of these ways:
(1) Dim objX As New ADODB.Connection
(2) Dim objY As ADODB.Connection: Set objY = New ADODB.Connection
With the first approach, the object is not actually created until it is referenced in some way (any way). For example, when you do:
Dim objX As New ADODB.Connection
MsgBox objX.Version
- the object is created when 'objX.Version' is executed. Behind the scenes, it's a little more complicated because the VB interpreter wraps every reference to an object that is Dim'ed 'As New' with code that checks whether the object already exists and creates the object if it doesn't - and this causes a very slight decrease in performance (issue #1).
However, note that I said 'any reference' to the object will create it, so a seemingly logical statement like:
If objX Is Nothing Then
will also create the object (even if it has never been used yet, and even if the immediately previous statement set it to 'Nothing') and therefore the object (Dim'ed 'As New')cannot be 'Nothing' in this 'If' condition. A reference to the object variable in any statement will create the object if it doesn't already exist.
Normally, you should use the second approach for creating objects in VB, and also you normally don't call the 'Set' statement until just before you need to use the object - for example:
Dim objY As ADODB.Connection
[... several statements to check input parameters, construct values, etc.]
Set objY = New ADODB.Connection
[Call a method on the object]
[Close (if appropriate) the object and set it to Nothing]
[...]
Note - if the object you are creating is running in MTS (or COM+) then you should not use the 'New' operator to create the object at all, but use the 'ObjectContext.CreateInstance' method (or the 'CreateObject' method if you are sure you will only be using COM+) - but this is a separate topic. |
| Thu 05 Jun | Ged Byrne | Just tried some sample code and your right - it is quite mad! |
| Thu 05 Jun | Justin | Philip is correct, however, aware as I am of the technical implications, I avoid the 'As New' construct because I just don't like the look of it in my code ;)
Foolish consistency, or what? |
| Thu 05 Jun | Stephen Jones | Dim thread as old :)
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=24747&ixReplies=26
I'm surprised you missed this one actually Ged |
| Thu 05 Jun | Ged Byrne | I'm surprised too. I must have been doing some real work that day. |
| Thu 05 Jun | Robert Conley | Dim X as New Widget does this everything time you access the variable
If X is nothing then
Set X = New Widget
End if
So
X.Alpha = 'Hello'
X.Beta = 'World'
X.Gamma = 'Today'
is executed as
If X is nothing then
Set X = New Widget
End if
X.Alpha = 'Hello'
If X is nothing then
Set X = New Widget
End if
X.Beta = 'World'
If X is nothing then
Set X = New Widget
End if
X.Gamma = 'Today'
this happens behind the scene and can slow down execution speed.
Doing
Dim X as Widget
Set X = New Widget
avoids all this. |
| Thu 05 Jun | Albert D. Kallal | >Also, when does the Class_Initialize event fire?
That hits the major reason on the head.
Yes, the real reason here is you can control in code better when the initialize event fires. This might be your own custom class object, or any library/com object you use. |
| Thu 05 Jun | Nate Silva | So why doesn't the compiler just optimize all instances of 'As New' into the more efficient format? |
| Thu 05 Jun | Nate Silva | Posted too soon... Albert says it's so you can control when the Initialize event fires. It seems a high price to pay that the more intuitive 'As New' syntax would invoke an 'If X Is Nothing' test on every access to the object -- just to give you a little more control over the Intialize event. Like the cure that's worse than the disease. |
| Fri 06 Jun | Albert D. Kallal | Actually, what VB does is wait until you actually use the object, AND THEN the initialize event fires. So, using the new keyword is not really that bad at all. It is just that you are more explicit in your code as to where the actual object gets initialized (event) when you drop the new keyword.
For example:
If you are just reading some code like:
MyTour.TourId = 123
Now, looking at the above code, is the initialize event going to fire? You don’t know. If did not use the new keyword, then the programmer would have had to write:
Set MyTour = new clsRides
MyTour.TourId = 123
So, now the above code is clear to you that the object was just initialized.
So, Nate’s suggestion that the compiler should take care of this is in fact what kind of happens. Well, ok, the first time you use the object anywhere in code, then the initialize event fires...I not sure if the compiler actually does this, but in effect it is the same result.
If we need the initialize event to fire, and not yet use any methods, or set any properties of the object, then dropping the new keyword is better.
We can use:
Set MyTour = new clsRides
So, no new keyword means we can just initialize the object without actually using a property or method of the object.
It is wrong of me to state that the initialize event fires when the new keyword is used in 'dim'. That does NOT happen. The initialize event fires on the first use of the object anywhere in the code. One might even argue that this is BETTER then having to force the initialize event manually. If you have a lot of code, then you actually might prefer that the first reference to the object in code runs the initialize event.
However, trying to debug, and figure out when that first use occurs can be very hard. So, it is question of clarity, not performance. Use of new key word in a dim is not great, but it is not that bad either...
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
|
| Worst Java IDE ever? | Thu 05 Jun | RP |
| I spent the last 4 days wrestling with PowerJ from Sybase.
After trying to compile a simple jsp/bean combination and failing, I lost it and threw my keyboard across the room.
The things so complicated and unstable that Ive spent most of the time of my project trying to make it work, instead of working with it.
Whats the worst experience youve ever had with an IDE, either for Java or anything else? |
| Thu 05 Jun | Taylor | Go back to VB |
| Thu 05 Jun | Eric Budd | Love them or hate them, Microsoft has some of the best IDE's in the business. |
| Thu 05 Jun | Walter Rumsby | Visual J++ was a really good Java IDE at the time (and Microsoft has the best VM too).
(That time was 1999). |
| Thu 05 Jun | Walter Rumsby | (had) |
| Thu 05 Jun | Ed | Whats wrong with a text editor and sun's command line utlities? |
| Thu 05 Jun | Fred2000 | Go check out IntelliJ. Best. IDE. Ever.
It's been a massive pain to work in VS.NET for the last few days after using IntelliJ. |
| Thu 05 Jun | Scott Rogers | Emacs with JDE. |
| Thu 05 Jun | Greg | I don't blame the ide so much as the team, but for me it was Borland JBuilder. It used to ask a song+dance to make a new package. I stopped using it quickly, did penance using wordpad, then found best-of-breed tools.
It got much better though. |
| Thu 05 Jun | Daniel Shchyokin | visual cafe 2.0-3.0 used to crash every time you ran the debugger.
I love JBuilder |
| Thu 05 Jun | Fred2000 | Seriously, try IntelliJ. If they made a .NET IDE, I'd be first in line. |
| Thu 05 Jun | IDE Victim | I seem to recall reading somewhere recently that IntelliJ is planning to release a .Net version of IDEA. I can't remember where I saw it, so I can't back that up with an article. Anyone have more info?
Worst Java IDE:
First prize: Visual Cafe
Close runner-up: Websphere Studio Application Developer |
| Thu 05 Jun | Martin Dittus | Worst ever: Sun ONE Studio 4 (used briefly, it's slow and ugly)
Best ever: Eclipse IDE (slick, great features, looks good). |
| Thu 05 Jun | Fred2000 | I thought I heard about an IntelliJ .NET IDE as well, and since starting some .NET projects, I've been dying to figure out where I heard it. I can't find any information about it now. |
| Thu 05 Jun | Walter Rumsby | IntelliJ are trying to hire C# developers. If they can find a couple of good ones they're planning to make a .NET version of IDEA.
A lot of IDEs and CASE tools are pretty painful actually. |
| Thu 05 Jun | Christoph Daniel Schulze | I loved Visual J++ back when I was learning Java. I moved on and tried other IDEs, among them were JBuilder (seemed quite nice at the time, but the free version was too restricted and I couldn't afford a full version at the time), Forte for Java (back when it ran in SDI mode, which I hate; Forte and its Open Source brother Netbeans got better, though; they're just a bit too slow) and jEdit with a few plugins. I stayed with the latter. It's alright, especially since I hate those code wizard and form design tools in Java.
Really looking forward to try VS.NET 2003. |
| Thu 05 Jun | Punter | vi dammit! |
| Fri 06 Jun | Karel | I also cut my teeth on J++. I think 60% of what i know of java came from reading the accompanying MS source.
Power J was another innovative idea that unfortunately sunk. Sybase basically tried to do Optima++ over in Java.
Optima was a VB like gui builder that generated C++. Ditto PowerJ. Product has been shelved and JBUIlder licence bought.
There are some workarounds and the sybase fora if you are stuck with the products. |
| Fri 06 Jun | Phil | IDEAJ is best.
NetBeans is worst.
Visual Age for Java was too hungry.
JCreator is quite nice and easy for starters. |
|
| The OO programming benefit no one talks about | Thu 05 Jun | Peter Parker |
| Hi,
Im very new to OOP. Ive programmed in VB 3 and 6.
The way OOP has always been explained to me, the benefit is that you reuse code, so you save time by not needing to rewrite THAT code. However, I think thats BACKWARDS...
Ive now found that the OPPOSITE is true. The benefit of OOP is reusing all of the NON OBJECT CODE.
HERES WHY...
Suppose we have a program composed of Non-object code and some Objects. Now, lets say the Objects are 20% of the code in our program.
Now, lets say we write 10 more programs of equal length. If we reuse all our objects, we save about 20% of the coding.
This is how Ive always seen OOP benefits explained. You reuse the object and save code. HOWEVER, after reading Design Patterns Explained (by Shalloway/Trott) it seems that the REVERSE is true...
The real benefit of OOP *seems* to be that if we can reuse the non-object code to create a new program by CHANGING THE OBJECT, then we save 80%, not 20%.
As the authors explain: you encapsulate what CHANGES into an object.
I realize there are lots of other benefits of OOP. However, Im a pragamatist. Ive always looked for a compelling benefit of OOP or a single programmer. I think this is it.
QUESTIONS:
1. Am I on the right track?
1a. Am I hearing OOP proponents (OOPPs?) correctly when they state the benefit is reusing the obj code?
2. Is the benefit of reusing the non-obj code really a much bigger advantage than the oft touted reuse of the obj code?
3. Am I being insightful here, or obvious (or obviously stupid? if so, why).
______________________________________
EXAMPLE BELOW
SKIP IT, if the above was clear.
______________________________________
The example below is from a real program I wrote using the above methodology, although I didnt realize it was an OOP approach.
I always thought that the benefit of OOP was to create an object which is reused.
HOWEVER, Im reading Design Patterns Explained by Shalloway/Trott. It suggests that its sort of the OPPOSITE. Let me explain.
So if I have a program that shows users a picture and lets them type the word for it, then if I want, later, to let them CHOOSE an answer instead of typing, then the INPUT method is what is changing. So, I create an object (objINPUT) which can be EITHER a textbox OR a list box. To the PROGRAM they look the same. SO.... when I write a new program that now needs to let the user CHOOSE instead of typing, I just change objects.
Notice that were not reusing the OBJECT. Were reusing everything that is NOT the object. Its actually a much BIGGER savings. (If the object is 1% of my code and I use it in 10 programs, I save 10% of my total code. If I, instead, am able to reuse the PROGRAM by swapping out the object, I save 99% !!!
This is actually the way we wrote our programs, but we did it with case statements (switch you c++ers) ex:
select case ProgramTYPE
case Fill-in-the-blank
textbox.visible=true
case multipe-choice
listbox=true
end case
These cases are repeated throughout the program. Each could be replaced by a simple:
objInput.MakeVisible
.. then the Fill-in-the-blank object would show the text box.
..... the multiple-choice object would show the list box, etc. etc.
.... we might extend later by creating a multi-multi-select object that has SEVERAL list boxes. |
| Thu 05 Jun | Chris Tavares | You're right on the money. You've discovered the benefits of polymorphism. For some reason, the OO salesmen really pushed inheritance, but polymorphism was always the big win.
I look at it this way: functions let you re-use the function that gets called.
Objects let you reuse the code that does the calling.
And it is good. |
| Thu 05 Jun | Walter Rumsby | If you're reading Shalloway and Trott you're on the right path.
I don't understand why this book isn't more widely celebrated - perhaps it's not as hardcore as the GoF book, but I think it addresses the fact that OO is generally poorly understood. |
| Thu 05 Jun | FullNameRequired | 'I've now found that the OPPOSITE is true. The benefit of OOP is reusing all of the NON OBJECT CODE.'
I love these moments :) nothing like the moment of realization... |
| Thu 05 Jun | He-who-would-not-be-named | And, with enough time, you'll probably reduce that 20% to 10% then to 5% and finally to 1%. OOP is highly overrated. It has some place in GUIs and various other niches, but as a general programming technique (as practiced today), it sucks.
OOPs greatest benefit is, perhaps, job security. Everyone will scorn goto-spaghetti people, but everyone adores class-spaghetti people, because it's OOP and supposed to be good.
Free some time, (say, an hour or two), read [ http://www.geocities.com/tablizer/oopbad.htm ] even though you will probably dislike the presentation style. Then go back to your project and try to see if you agree or not. Then, a month or so later, read it again.
You'll learn a lot. |
| Thu 05 Jun | Leonardo Herrera | For me, OOP is all about polymorphism. I ditch hype. |
| Thu 05 Jun | S. Tanna | That article on geocities is worth a looking, although I got bored after reading a few points. One point that did strike me, is I tend to agree that oop is better for modelling internal programming constructs rather than necessarily real world objects (however the article goes on to say because not all books explain it that way or some use real world objects in examples, oop is flawed blah blah)
What I do know is my life has got easier when using oop. My own path was non-oop to oop (Turbo Pascal latter versions) to non-oop (C) to oop (C++)
I agree polymorphism is a major benefit of oop
I think oop benefits get undermined when you get people who get religious about 100% oop.
As for persistence, relational/OOPs mismatch. I'd say I prefer to make an OOP model of a relational database, rather than trying to squeeze a pre-existing OOP model into a relational database which doesn't really fit. Start relational and work to oop, rather than vice-versa. |
| Thu 05 Jun | Andy | To the first poster, you're right that sometimes when people think of reuse they only think of reusing the called code. But it works both ways. You can reuse the calling code as well.
This is like the distinction between a traditional library and a framework, more or less. In a standard C-style library, you call the library's functions to do work for you, printf or whatever. In a framework you fill in the functions to be called. That is, you're reusing the calling code.
Another way of looking at it is that there isn't always a good reason to make this distinction at all. OOP promotes orthogonal designs. That is, changing one thing shouldn't affect the other. That's what interfaces are for. You can change the calling code, or you can change the called code, and as long as they agree to the same contract/interface, things still work. It's reuse either way.
So in short:
1. Yes 1a. Not really, most OOP proponents recognize that both kinds of reuse are important and beneficial 2. I don't think you can say either is more beneficial, it depends on the circumstance 3. Yes, I think this is a key observation toward fully understanding OOP. I think this has dawned on many experienced programmers at some point. You go from the traditional library reuse to the framework style reuse. But after awhile you realize they are part of the same concept. |
| Thu 05 Jun | FullNameRequired | 'Then go back to your project and try to see if you agree or not. Then, a month or so later, read it again.'
but..but..but....the man is talking a load of bollocks.
whinging on because sql databases are not designed to work with OO programming?
bleating about protocol coupling...that mostly occurs during the design phase before you work out exactly what should go where...if he never got any further than that, no wonder he doesn't like OO programming....bottom line is that if you cannot separate objects out cleanly then you should re-examine your divisions..
?? part of it reads like he is seriously comparing OO programming and SQL? talk about apples and oranges...
who would take this seriously? |
| Thu 05 Jun | Simon Lucy | Actually it sounds like a nematode worm complaining about how all the trilobites are sucking up all the food these days.
Out evolved. |
| Fri 06 Jun | Andy | >Actually it sounds like a nematode worm complaining
>about how all the trilobites are sucking up all the food
>these days.
Not the best example. Trilobites - extinct, nematode worms - exist in huge numbers all over the world.
I agree with your sentiment, though. |
|
| Turned down again | Wed 04 Jun | Attention! Forward March! |
| Its been 2 years since Ive graduated from college and I keep getting turned down for interviews and jobs.
What would you do:
1. Go back into the military.
2. Keep current job and forget about the IT business.
3. Start my own business.
4. Keep current job and keep trying to get a job in IT. |
| Wed 04 Jun | anonymous | I would think about what it is you actually want to do. The answer to your question has little to do with what any of us thinks |
| Wed 04 Jun | Philo | A random thought - go for broke and be aggressive. When you're turned down for an interview or a job, call them and ask 'what can I do to make myself more attractive to you? What do you want to see so that next time I *do* get the job?'
Philo |
| Wed 04 Jun | John Rosenberg | Start your own consulting company, give yourself the title of 'VP of ____ ' and then go apply for jobs. |
| Wed 04 Jun | Christopher Hester | Don't go back into the military. Not sure where you were before, but take a quick moment to remember the days of being tired, cold, wet, hungry, pissed off, and still having to go another three clicks to get to a patrol base, only to clean an M-16 in the rain. That visualization usually kills the idea for me.
That other guy is right though, my opinion doesn't matter.
However, don't go back in the military. |
| Wed 04 Jun | Attention! Forward March! | Philo,
I have tried that approach and most of the time I get an answer of 'We can't discuss that with you' or 'You're not the only one (turned down)' even after I ask them what I can do to improve they still won't discuss it. Must be a matter of liability? They must think I'm gonna sue 'em. |
| Wed 04 Jun | Attention! Forward March! | Christopher,
I remember it all too well. :-) |
| Wed 04 Jun | | you need professional help. go to a career counselor. find a place to do mock interviews. read all you can.
2 years???
you're beyond our medicine here. |
| Wed 04 Jun | James Ladd | What you should do is the thing you would do each and every day if you did not have to worry about money.
I would write code all day every day even if I wasnt paid (and someone was paying my bills) so thats what I do for work. I love it.
When you have made that choice, then go for it.
If you dont get a job then ask why. Look at yourself and see what things you could do to improve at an interview.
If you really want to do the thing you want to do, then you will succeed.
Regs, |
| Wed 04 Jun | Joel Spolsky | Dude, cleaning M-16s in the rain is nothing compared to cleaning Galil's in the rain. All those plastic parts. |
| Wed 04 Jun | | Reality is harsh. If you haven't worked in IT since graduating two years ago, you're not ever going to work in IT. I would examine the other options. |
| Wed 04 Jun | somebody | Wow, two years is a bit extreme. You must be going at it wrong or live in a particularly bad area. You'd be in management by now if you were completely incompetent so that can't be the reason.
A better idea than posting this question might be to outline how you've approached getting a job, what you know, and what you've done to keep your skills fresh and your knowledge current, and then ask for some specific advice on getting into the field. |
| Wed 04 Jun | Marc | What is you skill set? Maybe it is too obscure? |
| Thu 05 Jun | www.marktaw.com | Are you just getting turned down, or are you not even getting interviews?
It may sound crazy, but you can contact people who didn't hire you 3 months ago and ask them why. The person on the other end may just be receptive, and it may lead to a job if they see you're motivated enough to call and ask that sort of question. |
| Thu 05 Jun | Joel Spolsky | You could find a smart but tactless person who will agree to interview you for a bogus job that doesn't exist -- call it a practice interview -- and have that person tell you in brutally honest terms what's wrong. I'm sure there are lots of people in this discussion group who might be willing to be tactless :)
I guess you could make a better decision if you knew whether you were coming across badly for some reason, or if it's just the economy. Maybe you need to hire one of those image consultants that buys you a new wardrobe, gets you a hot haircut and teaches you not to pop zits on your nose while you're talking. You won't know until somebody tells you, and they're not going to tell you unless that was the point of the interview :) Many university recruiting centers offer 'practice interviews' with real executive alumni for just this reason. |
| Thu 05 Jun | www.marktaw.com | My girlfriend continually accuses me of being tactless, and I've done my fare share of reading books like John T. Malloy's 'Dress for Success' though my wardrobe would never show it, and my hair is still longer than most girls I know.
Maybe I should offer myself as a consultant for people who are out of work - that's probably the largest market out there today. I've certainly noticed a ramp up in ads for places like Devry, and they act is if there's no downturn in the industry and you'll definately get a job.
Wanna hire me? I have 3 books of sample interview questions too. |
| Thu 05 Jun | Marc | That is the first time I've seen someone actual pitch themselves as an A-Hole for hire. :)
MarkTaw Interview Specialist - 'I'll make you cry! Maggot!' |
| Thu 05 Jun | www.marktaw.com | I'm not an asshole, I'm actually a really nice guy, but if you ask for feedback, I can be tactless...
My girlfriend spends way too much time with me to have a realistic view of my personality. |
| Thu 05 Jun | tactless and willing | I can appreciate the need for personal diplomacy, in the right circumstances, but the situation in this industry is beyond that. Wishful thinking and trite philosophy belong to a boom era.
I am always meeting young people that think they have a profitable future in software development. This is probably an issue for another thread, but in my opinion programming is a dying field. There will continue to be a lot of innovation, new companies and money made, but we simply do not NEED so many programmers. Don't be fooled by the cyclical bullshit. All those jobs have gone for good and they are NOT coming back.
Work only ever gets easier in IT and easier work means fewer employees. Just imagine how bad the employee scene will be in 10-20-30 years when you're in your 50s. This is a very risky industry to grow old in, as many good people are discovering.
This may be cruel but does anybody really believe that the person in this story will ever be a programmer?
http://www.pbs.org/newshour/bb/education/jan-june03/fl_06-03.html#
My honest non-tactful suggestion, get into something else before you get too old.
You've got to be cruel to be kind. |
| Thu 05 Jun | Veronica | I risk getting offtopic here, but I can't resist.
Cleaning 'Galil' in the rain is much much better than cleaning M16. Galil was actually designed for easy maintainance in the field. It has less tiny parts with tendency to get lost and dirty. |
| Thu 05 Jun | Michael Moser | .. and you get less rain in Israel than in other parts of the world,
within a short time you get a lot of rain, but then its quiet. |
| Thu 05 Jun | | Marc, going back to what I just posted in another thread - people pay for that kind of thing too (bizarre as it might seem).
Personally in the OPs shoes I would not give up the day job. As to what's wrong, not having met the guy/gal, I can't say. You really need feedback from someone who as interviewed you. If MarkTAW is serious, why not take him up on it? There's no chance of spoiling a friendship ('what? I have BO? F*ck you!') since you don't know him. |
| Thu 05 Jun | Matt H. |
He allready has a day job that pays the rent, right?
That's probably a huge part of the problem. Entry-Level programmer at $26K, or experienced X at $50K. Finding 'The Right Job' under those conditions might be hard to impossible.
Matt's suggestions:
1) Go into the guard or reserve - get a computer-ish job. Even the Guard has LAN, WAN, and System Administrator positions. :-)
This will both build the resume and your personal balance sheet. Hey, use the GI Bill and Guard tuition assistance to go to school as well. :-)
2) http://jobs.perl.org/search?offsite=1
Look for telecommuting/part-time work. Build up a portfolio.
It probably won't make you big bucks, but it might make a few.
3) Get involved in professional organizations like the Perl Mongers. Run for office. Network.
4) Get involved in open source projects - for example, QA for Mozilla is easy and doesn't take much time at all.
(http://www.mozilla.org/start/)
5) If you don't go into the guard, think about a job at a community college, teach VB or C++ or Java or such one night a week.
6) The point is to make it clear that you are a professional. That you have come to that point in your life where you've said:
SOFTWARE DEVELOPER = Me.
Instead of being a pay-check collector.
Companies that notice that spark will take an interest, and, eventually, you can get hired.
I know a mechanical engineer who developed his own graphics library, then tried to find work as a coder for companies that needed graphics guys. It worked for him ...
good luck, |
| Thu 05 Jun | anon | 'SOFTWARE DEVELOPER = Me.' Holy fuck. I just realized that yesterday. I've been spending the last few months skating around development, wondering what it there is to like about it. And I realized in my own way what it is not to simply want to emulate, but to become.
I realize that made absolutely no sense whatsoever, but it's how I think. ;) |
| Thu 05 Jun | Matt H. |
'Software Developer = Me'
It's not mine, I got it from Tom DeMarco:
http://www.systemsguild.com/GuildSite/TDM/Professionalism.html |
| Thu 05 Jun | anon |
Cleaning an M-16 anytime simply sucks. Cleaning one in the field seriously sucks, rain or not.
Frankly, I've always hated the M-16, though it was the only infantry rifle in service during my time in the US Army (I just missed the M-14 era). I like firing the M-16 and can shoot well with it--ergonomically, I like the configuration and especially the sights. It was my assigned weapon while I was enlisted, and for about half my commissioned time -- the rest of the time as an officer I was assigned an M1911 .45 -- not terribly useful, but fun to take to the range (the 9mm Beretta's were just being fielded at the time).
The basic round is pretty good, the .223 ball ammo provides good damage to the target -- personally, if I were to get shot, I'd rather get drilled by a .308 or a 30-06 (both 7.62mm, just different lengths and amounts of powder, for the non-US reader) that will punch a hole straight through than get hit by a .223 that will tumble and have an exit wound possibly several feet away from the entrance wound, or might just rattle around inside me for a while acting like a blender on 'frappe'. The normal ball ammo's not much good against any sort of hardened target though, and the round loses accuracy in the bush as it is easily deflected off-target by branches, but everything's a compromise.
But IMO the M-16 is too damned fragile (esp the way the stock is mounted to the receiver -- too weak an arrangement there for my taste), and I've never understood the fascination with gas-operated weapons that spray their own exhaust back into their working parts. Granted, the true Russian-made AK-47's are gas-operated and have a great reputation for tolerating filth (though they sacrifice longer-range accuracy as compared to the M-16; max effective for M-16 was 460 m vs the AK's 300 m back in my day--probably by having looser tolerances, I'd guess). I've never worked with an AK myself, though, so I'm going off anecdotal 'info'.
Personally, I prefer HK's delayed roller-lock bolt mechanism. You're still going to get some blow-back of crud into the working parts, but they avoid the hard-to-clean areas because they don't have that screw-ball area behind the chamber on the M-16 where the locking lugs fit. It takes one or two extra finger joints, special scrapers, or, as we sometimes used to use, bent coat-hangers to get in there and get all the crap scraped out. Witness the existence of the forward-assist handle on the -16. When the area behind the chamber fouls, the locking lugs on the front of the bolt don't readily seat under their own energy, requiring an extra push by the forward assist handle.
Kind of a Rube-Goldberg arrangement if you ask me. If you look at the early AR-15 and early model M-16's, the development/refinement cycle for the basic design took quite a bit of time to get right. Initial service experience in Vietnam was very, very poor -- lots of malfunctions due to, in my opinion anyway, a fundamentally poor design. They added the forward assist and did a lot of work with refining some of the metal surface treatments, I believe, as well as fielding some new cleaner-lubricants if I recall correctly, before they got it to operate fairly reliably.
OTOH, HK's mechanism seems inherently more sensible to me, as you don't have energy re-directed from the front-to-back motion into rotation. Because the locking mechanism is implemented as roller bearings that lock against the receiver housing, rearward of the chamber opening, you have a smooth, conical area behind the chamber that is both tolerant of fouling, and when fouled, is far easier to clean than the convoluted M-16 arrangement. The basic delayed roller lock bolt mechanism, when used in a full-auto weapon has a much higher cyclic rate of fire as well, which it gets because it's inherently more efficient, mechanically. I own an HK rifle based on this design and it's quite easy to clean as compared to the -16. The German G-3 is based on it, as are several other models by HK. The basic delayed roller-locked bolt design was first fielded by Germany in WWII, so it had its own trial-by-fire, and proved quite successful. It's been present in German military weaponry ever since, and I think a model using this mechanism is being used by German anti-terrorist units.
I have no experience with a Galil -- is it gas operated, delayed roller-locked bolt, or some other blow-back design?
well, that was a fun diversion. back to software stuff.
|
| Thu 05 Jun | Christopher Hester | Gentleman-
I have seen this occur on more than one occasion, when you are removed from an environment that has both good and bad qualities, given enough time you only remember the good, and even romanticize the bad. I keep the following in mind to ensure I don’t have similar delusions.
Things that kept me from staying in the US Army: Concertina wire, Kevlar Helmets, MOPP gear, hot spots and blisters, TA-50 inspections, Red Company…
Having said that... Here is a pretty historical photo of Eugene Stoner and Mikhail Kalashnikov holding one anothers weapons. (Stoner invented the M-16, and Kalashnikov the AK-47)
http://kalashnikov.guns.ru/photos/4.jpg
(from Ethan Herdrick) |
| Thu 05 Jun | J. Lenin | Happiness is a warm gun! |
| Fri 06 Jun | Michael Moser | >I have no experience with a Galil -- is it gas operated,
>delayed roller-locked bolt, or some other blow-back
>design?
The Galil is a actually a copy/modification of the AK47.
AFAIK the Israeli army no longer uses it for combat (as far as i was told) nowadays they are all M16. |
|
| Russian Developers | Wed 04 Jun | Startup Guy |
|
What say you chaps?
Sounds like an interesting model to me :-).
Besides Startup labors costs should drop dramitically?
Does anyone have any experience with such outfits?
Good, Bad etc??
Responses welcome.
------------------------------------------------
Sample advertisement on Atlanta.jobs news group.
-------------------------------------------------
Russian company of experienced programmers, having 5 years of experience in
such spheres as:
- Web development (PHP, Perl, ASP, HTML, XML, etc) - 5 specialists
- Software development (C#, C/C++, Visual Basic, etc) - 4 specialists
announces prosecution of marketing campaign:
Middle and large project, ordered before the 1st of June, will cost you:
600-800 USD for the month
of work fulltime (8 hours per day)
If you have any questions about this scheme, well be glad to answer them.
Contact email: pilot_group@km.ru
------------------------------------------------- |
| Wed 04 Jun | Philo | Tell me if I'm wrong, but is the cost of living in Russia really so cheap that people can live on $4/day?
Philo |
| Wed 04 Jun | Startup Guy | If you don't believe me
subscribe to alt.bestjobsusa.atlanta.jobs it was posted today.
Or.
any of the following:
biz.comp.services,
biz.jobs.offered,
alt.bestjobsusa.atlanta.jobs,
alt.homepages.designtips.uk
I suppose the cost of living in Russia very low incomparision to other parts of europe. |
| Wed 04 Jun | Startup Guy | Given the labor cost, who really needs VC money for development?
Plow the money in to a good web advert coverage. |
| Wed 04 Jun | Stephen Jones | Dear Philo,
Just said this elswhere but low cost of livings can be the result of low salaries, but low salaries are never the result of a low cost of living.
However programmers who think that $600 to $800 a month is equivalent ot $4 a day are definitely overpaid at either figure! |
| Wed 04 Jun | Ethan Herdrick | I'm sure that price is per developer.
Let's see...
Total number of interactions with your future dev team: 1.
Number of serious miunderstandings: 1
Best of luck! I mean, Zheliu udachi! |
| Wed 04 Jun | Stephen Jones | But for five years of experience in C# $4 a minute would be poor pay!
And are they 'prosecuting' market development because they've heard the US is a litigator's Paradise. |
| Wed 04 Jun | Chris Tavares | The only people who have 5 years experience with C# are the people who worked on the compiler at Microsoft. Heck, the initial NDA releases didn't start coming out until early 2000! |
| Wed 04 Jun | Startup Guy | Umm forgive me if mis-read the original posting,
I believe it says developers with 5yrs of experience, with technology coverage areas include C++, C#, etc..... |
| Wed 04 Jun | Christopher Hester | If you want to hire these guys, go for it. However, call me before you have wasted all your money. I have a few real estate deals you may be interested in. |
| Wed 04 Jun | Alexander Chalucov (www.alexlechuck.com) | Why not just use rentacoder.com? If you are going to outsource your software development to somebody you don't know anyway, why would you care where they live?
In Bulgaria (which is in slightly different economic situation from Russia) the software development outsourcing business is booming. The lack of management is a major obstacle though. Without management the chance of misunderstanding is 100%, which translates into costs. |
| Wed 04 Jun | Li-fan Chen | I have friends who are from eastern europe tell me the going wage for a BSc in CS/IT in the more stable eastern european countries is anywhere from USD$17,500 and up a year starting off. Is that true? |
| Wed 04 Jun | Clay |
US dollars may be very very rare in Russia, even today. So $800 a month may not sound like much, but those are US dollars.
Imagine this scenario: you're a smart russian programmer, but you can't afford to immigrate to the US (where you can then be unemployed ;-).
You might work for pennies to save up enough to immigrate.
I base this on the stories my father in law has told me about how HE go to the US from Poland (then a part of Russia, It think.). |
| Wed 04 Jun | william williams | I remember that in 1997 or so, a big Canadian company was asking for designers with 5 years+ of experience in Java to develop speech recognition applications (?). |
| Thu 05 Jun | www.marktaw.com | Sounds like a business idea I had.
Send a computer science school to a seriously impoverished country. Obviously the people who attend cant pay for it, so they'll owe the school tons of money that they can never pay back, so they'll work for the shell company you create over there that hires them out as basically indentured servants.
Okay, I was basically kidding, but you might want to think about this model next time someone metions India or you pay your student loans. |
| Thu 05 Jun | UI Designer | Anybody hear of the phrase:
'You get what you pay for' |
| Thu 05 Jun | Mike | They all say 5 years of experience because that is what the hire dweebs put in the ads.
If a language magically appeared tomorrow and never existed previously there would be tons of people claiming 5 years or 5+ years of experience.
Probably a more honest ad would be 'we have heard of your technology and have some books on it.' |
| Thu 05 Jun | Adam in Poland | In Poland currently, plenty of CS graduates start working for $250 per month. 'Good money' once you've worked in a company for a few years and proved yourself is $1000.
The very lucky/talented people find work with a foreign company and earn a bit more, but that's a very small proportion of graduates. |
| Thu 05 Jun | Martin | >>I base this on the stories my father in law has told me about how HE go to the US from Poland (then a part of Russia, It think.).
Your dad must be very old then. I work with a guy from the Ukraine and have chatted to a couple of his pals, also Ukrainian. I think that by and large their skills are quite good, certainly as good as anything that the UK education system turns out. Remote management can be a problem, but it's got nothing to do with the programmers being Russian. Y |