last updated:29 Mar 2004 13:46 UK time
|
 |
|
(Comments added for week ending Sun 28 Mar 2004) | View Other Weeks
|
|
| Out of memory--what should I do? | Sun 28 Mar | A drifter lost in Philadelphia |
| Ok, my librarys churning along just fine. Its moving things around, making lots of noise, and spitting stuff out, when all of the sudden, it asks the heap for just a tiny bit more memory—and the heap says no.
What *should* it do? If a call to malloc() or realloc() fails, whats the best practices for library routines? My first instinct is to just return NULL or 0, but then you end up with situation where every function has to check the return value of almost every other function, leaving you with overly verbose syntax to make sure the stack unwinds correctly:
HTTP_Request *http_get_request(SOCKET socket)
{
HTTP_Buffer *buffer = http_new_buffer();
if (buffer == NULL)
return NULL;
...
}
...
HTTP_Buffer *http_new_buffer(void)
{
HTTP_Buffer *buffer = (HTTP_Buffer *) malloc(sizeof(HTTP_Buffer));
if (buffer == NULL)
return NULL;
buffer->type = ...
}
I know some big, important libraries (like libghttp) just ignore this problem all together and dont even bother to check malloc() or realloc() return values, and other libraries just exit() or abort() when malloc() or realloc() fail.
This got me thinking. If each routine returns NULL/0 when theres no more memory available, then youve set up a potential point of failure for almost every single routine, and if the user actually does their part and bothers to check each and every return value, then what exactly can they do to handle the error _besides_ exiting or aborting the process?
My library isnt graphical, and it handles allocation and deallocation through custom routines. It also allows for user-defined error handlers, so a real attractive solution to me would be to have these custom memory routines call the appropriate handles when allocation fails, letting the user abort or whatnot, and then just ignore the return values of each allocation function called within the library.
Suggestions? Comments? Anecdotes? |
| Sun 28 Mar | A drifter lost in Philadelphia | "call the appropriate handles" should have been "call the appropriate handlers." |
| Sun 28 Mar | Christopher Wells | Throw an out-of-heap exception.
Compact the heap and try again.
See also 'Static Allocation Pattern' and 'Pool Allocation Pattern' at http://www.informit.com/articles/article.asp?p=30309 |
| Sun 28 Mar | Chris Tavares | This is the age of virtual memory. Unless your library's running in an embedded system, or you know you'll be using truly massive amounts of memory in regular use, I wouldn't bother dealing win out-of-memory, cause it just isn't going to happen. |
|
| Linux: First determined move against Microsoft? | Sun 28 Mar | K |
| From what can be gathered, Novell has aquired SUSE. HP has decided to bundle LINUX citing customer demand. IBM has invested 50 million in Novell. Sun has come out with a desktop version of Looking Glass. Open Office is getting better by the day.
Seems a very determined move against Microsoft. What do people think here?. It will be only a matter of time before Linux catches up. Yeh, i know Microsoft has 90% market share. But it is only a matter of time. Microsofts operating system are nothing that cannot be improved upon....
Th only thing Linux lacks is a good RAD tool, a usable interface etc. But this may soon change. |
| Sun 28 Mar | My Cousin Vinniwashtharam | >>'Microsoft's operating system are nothing that cannot be improved upon....'
Well, let's see...........
TV out of video card .... work on Windows .... doesn't work on Linux (no driver)
Scanner ..... works on Windows. ...... doesn't work on Linux (no driver)
Transferring pictures form digitial camera to computer .... works on Windows....doesn't work on Linux (no driver)
Photoshop ... works on Windows .... no Linux version .... nothing equivalent in Linux
Soundforge (audio editing) .... works on Windows ... no Linux version .... nothing equivalent in Linux
and on ... and on ... and on.......
I dislike Microsoft as much as the next guy, but you've good it exactly backwards. It's Linux, not Windows, that needs lots of improvement. |
| Sun 28 Mar | http://www.alexlechuck.com | While I can't necessarily agree or disagree with you, the use of the word only in "Th only thing Linux lacks is a good RAD tool, a usable interface etc." is hmm .... amusing :) |
| Sun 28 Mar | K | Yes, Linux lacks a lot. But microsoft did not have all this 10 years back. Infact, there were no digitla cameras 10 years back!
Look forward 10 years and ask yourself. |
| Sun 28 Mar | . | Yeah, I think it would be really terrific if free software dominated the market and software development was accorded its proper place in the scheme of things - at the bottom, like sweeping the floor.
Why should developers charge for software? It's wrong and immoral. |
| Sun 28 Mar | John Topley (www.johntopley.com) | 'Yes, Linux lacks a lot. But microsoft did not have all this 10 years back. Infact, there were no digitla cameras 10 years back!
Look forward 10 years and ask yourself.'
What? Linux will be where Windows is today? Windows will be ten years ahead? |
| Sun 28 Mar | Aaron F Stanton | Actually it's not the use of the word 'only' that's amusing to me, it's the 'etc.'
It's a really big 'etc.' that's missing. Linux was originally intended as a free replacement for Unix, not Windows. It's a different market orientation from the start. I don't see many of the things listed as missing from Linux as being available for Unix either, or is that just me?
I don't think there's going to be a real threat to Windows' dominance in the market until something like Wine is at least as stable as Windows and is part of the default install on nearly all major Linux distributions. It has to be compatible at both the binary and source level with Windows, and it has to just work. No special configurations, no decisions to make, it has to just work right out of the box. Until then, forget it. |
| Sun 28 Mar | Eric Debois | Are we talking buissness desktop or home user desktop? Big difference.
I think Novell and IBM will be ready to compete big time on the buissness desktop very soon. Novell has RAD-tools and stuff like that in the works aparently, along with migration and integration tools. I think it will show on the markeshare figures ere the end of this year.
Home desktop though.. not in a while. |
| Sun 28 Mar | Bob Abooey | No Photoshop for Linux? Are you mad? The GIMP is at least equivalent to Photoshop and is widely recognized as such. |
| Sun 28 Mar | FullNameRequired | the drivers have always been lacking for windows because of the lack of demand...with the large corporates now pushing Linux, thats gonna change.
Its irrelevant that Linux was aimed at the Unix market originally...so was BSD but osx is built on top of that.
The desktop is going to improve hugely with the corporate support for it that is now available.
Most of these companies have only seriously started pushing Linux in the last few months AFAIK..but with their support and resources its going to make a huge difference.
Meanwhile Microsoft is coming out with ideas for 'trusted computing' that vendors want, but consumers..not so much, I will be watching with interest to see the takeup on that.
Their next version wont be released for another year or so at _least_..thats another year for Linux to improve its offering with the resources increasingly available to it.
Across the world countries are increasingly taking up on the Linux/Open source offerings, for reasons of national protection of their local programming jobs, cost and a reluctance for their government to be reliant on the software of a company based in an entirely different country...there are questions of national security there.
This will _also_ push for improvements to the desktop and drivers.
The huge microsoft dominance is going to disappear.
The really interesting question to my mind is whether the computing industry has to behave as its always done, with one operating system having 90% advantage or whether it will settle down to a fairly clean split between Linux and Microsoft, with niche offerings like MacOS, Lindows, etc etc sharing out the dregs between themselves.
If one operating system must be in the huge majority, then Microsoft is going to have a hard time of it.
My own suspicion is that the network effect means that in general one operating system is going to have a huge dominance, so Im expecting to see Linux become the dominant player, with Microsoft battling things out with the other more niche like operating systems.
The upside is that the size of the cake is increasingly growing as well...more and more countries are becoming computerised so there is a good chance that although MS will lose market share based on % of total, its number of actual users will continue to increase over time.
Be interesting to see.
Either way Im a x=plat developer anyway, so for me not much change except I will continue to reconsider whether to begin developing my (closed source) products (and those of my clients) for Linux over the next few years. My own suspicion is that by this time next year it will be just barely worthwhile for me to do so, by the year after it will be nicely justifiable. |
| Sun 28 Mar | Mike |
'Its irrelevant that Linux was aimed at the Unix market originally...so was BSD but osx is built on top of that.'
OSX is a success because you had a leader that decided it would be smart to give users something decent. That leader is Apple. Linux does not have this. It does not exist among open source programmers. We've already seen how their UIs suck. OSS needs someone to bitch slap it and say, 'no, we don't need another text editor, or another way to view server logs.' 'We need a way to make a brainless end user productive.' Microsoft has ALWAYS understood that and built their sales model on that.
With Linux you need to know a little about computers to be productive. With Windows if you can go several minutes without drooling you can use it. Which market is larger? Sell to the masses! |
|
| Xbox 2 compatibility with Xbox | Sun 28 Mar | Cristian Cheran |
| Apparently Xbox 2 wont be back-compatible with Xbox- unlike PS3 to PS2.
Isnt that something really stupid to do (although it cuts tons of problems from (re)start)? |
| Sun 28 Mar | Prakash S | not sure if it is stupid.
I am not aware of the buying patterns of the typical gamer..so this might sound stupid, but what is the % of people buying a PS3 when they already have PS2 and the time frame is less than 3 years since they bought their PS2?
thoughts? |
| Sun 28 Mar | Leauki (Andrew J. Brehm) | There is a rumour that Microsoft are thinking about integrating Virtual PC into the Xbox2 in order to solve that problem. This could also be an explanation for why the PowerPC (Mac) version of Virtual PC 7 is still under development (fall this year is what I heard as release date).
Assuming Microsoft integrated as much as possible of the emulated environment natively on the PowerPC architecture and allows for direct access to the video hardware (for the emulator), this might very well be fast enough. |
| Sun 28 Mar | Immature programmer | Many of the design decisions about the XBox2 are bizarre.
3 3.5GHz G5 processors? No HD? ATI graphics chip which can read directly from the CPU cache?
Architecturally, it's more like I would expect a GameCube2 to look like rather than an XBox2
And it's kinda humorous to see Microsoft shipping Apple Power Mac G5 as XBox2 devkits.
If backwards compatibility were to be a feature, it would have to be via some sort of run-time. Integrating Virtual PC into the XBox2 would seem to make a lot of sense. |
| Sun 28 Mar | Chris Nahr | 'Architecturally, it's more like I would expect a GameCube2 to look like rather than an XBox2'
Guess Microsoft decided they didn't want to make a pirate's paradise platform after all... |
| Sun 28 Mar | Chris | It depends... if XBox 2 is a lot more innovative than the current version and integrates some of the big media center features like dvr, mp3 playing and photo viewing etc... no one will care. If it's closer to the PS2 which was just a better game system (vs the PS1) I think it's a mistake. |
| Sun 28 Mar | Mike | A new console that plays your old library of games is always a good thing. Microsoft has utterly failed with the Xbox and will have to crap a golden egg with xbox2. Watch for a different model all together.
They can't beat Sony by making a better console. I think they will try to make a bunch of stuff current consoles don't do easy to do with the xbox. Microsoft tends to do best when they are the only product in the market. So they will try to invent technology and shape the market around that rather than making a better game console as consoles exist today. |
| Sun 28 Mar | Cristian Cheran | By refusing the backward compatibility with Xbox, they will enrage the current Xbox owners which are the first customers they would get otherwise. Why? Not only they already adhered to the MS product (and stuffed lots of money into various titles) but they happen to be early adopters that are also friendly to Microsoft.
Hopefully this Virtual PC thing will be the solution. Another element that frightens me is the lack of HDD. Huh? How in the world will they actually do an economically feasible PVR without a HDD? Will they sell an external USB2.0 HDD? Will they rely upon user's PCs HDD? |
| Sun 28 Mar | Leauki (Andrew J. Brehm) | One more point that keeps coming up in my mind...
As Joel said in one of his articles, 'smart companies try to commoditize their products' complements'. Since Microsoft are a very smart company, it must mean (or has to) that Microsoft are trying to do exactly that.
The commodity in question here is, of course, the CPU. Microsoft used to have it good, what with Intel, AMD, and others (Cyrix?) producing interchangeable CPUs for Windows to run on. But Cyrix seem to have been left behind and Intel and AMD CPUs are no longer as interchangeable as they used to be.
So Microsoft added a new third CPU to the mix, if only for their game console, in order to show Intel and AMD that it is Microsoft, not Intel or AMD, who float on the top. When the Xbox2 becomes an established platform, Microsoft will have a third hardware platform to move to, just in case.
Microsoft have a history of supporting several hardware platforms whenever the future is not quite clear. When the 486 was to be replaced, Microsoft bet on the Pentium, MIPS, PowerPC, and Alpha architectures with NT 3.5 and NT 4. Now, with the Opteron, Itanium, and G5 (and the other 64 bit CPUs still there), Microsoft seem to go with at least three of them again. This secures Microsoft not only a selection of more or less interchangeable CPUs for their software platform but also an exit strategy should one or more of the architectures fail to produce faster CPUs at some point.
I am sure Microsoft maintained their non-x86 ports of Windows NT internally for all these years. The NT port used in the XDK and, presumably, on the Xbox2 when it is available, is very probably a continuation of their original 32 bit NT port for the PowerPC architecture back in 1994.
As for Virtual PC, maybe the Mac version will be able to run Win32/x86 games, just to eliminate one more reason to make games portable. |
|
| binary xml - just say no | Sun 28 Mar | Dennis Atkins |
| How many times now have you found the following:
1. A program has xml output of its files, claiming that with the new xml format, the program supports an open format for your valuable data!
2. The xml files all look like the following:
0C0000004D6963726F2054756E65720001000000010000000500000001000500 0000FEFFFFFF0C000000504D756C7469496E707574000000FEFFFFFF06000000
... etc - 300k or more of hexadecimal numbers
--
This is so stupid - just save that darn thing as binary data already. Oh, but then you would not be EELEETE using the cool new open format of XML, which all the way cool people use. |
| Sun 28 Mar | Dennis Atkins | Just to clarify - yes, it is very easy to get the binary data out; my beef is that this is not really a sensible use of xml -- if using xml the wayf to do it would be to have the fields in the binary data each surrounded by xml tags indicating what sort of data it was and so forth. I have no beef with xml itself, I just thing that having xml files that contain nothing but a single giant blocrk of binary data encoded as hex makes absolutely no sense beyond allowing the marketing department to claim something is xml compatible. |
| Sun 28 Mar | http://www.alexlechuck.com | At least the sales people can use XML in their presentations. Implementing export to binary-in-xml takes less then a day I guess ... so why not? |
| Sun 28 Mar | T. Norman | Looks like the MS Office XP XML format ... |
| Sun 28 Mar | Joe Hendricks | scenario: you offer text xml for clients wanting 'standards' or unknown systems, but also offer FASTER binary xml for clients needing speed (and willing to download or write their own compatible receiving software) what's wrong with that ? Same middle tier offers both, depending on preference for standards vs speed tradeoff. Seems a win-win to me ! |
| Sun 28 Mar | Beth | MIME is probably a better choice for transporting binary data.
Dumping an arbitrary string of binary data into XML isn't safe because you may accidentally include characters that shouldn't be there (like '>') and make a total mess of it for the parser on the receiving end. But if you're trying to move the binary data 'fast', why bother with the overhead of parsing an XML document in the first place? |
| Sun 28 Mar | no name | I need to save a waveform (e.g. an audio stream) in a file. I'll use XML to describe the stream (compression, type, date, etc). In this case what would you do with the data itself:
- store it in a separate file, outside of the XML file?
- store it as binary data (e.g. Hex-encoded) in the XML file
- store it in a more verbose but parsable format in the XML, e.g. 12 0, 0, 0, 45, etc ... |
| Sun 28 Mar | MR | >I'll use XML to describe the stream (compression, type, date, etc).
Use whatever facilities the binary stream already has (e.g. WMA, RA, etc.) and you have both the data and the little extra stuff already built in -- and it's in a format which doesn't require all the stupidity of XML. |
| Sun 28 Mar | no name | It's streams of medical data. There are several storage standards for medical device signals already, including XML-based standards. XML is a Requirement: because it's so easily extensible (store new kinds of tags in it later), and because there are tools to handle it (e.g. save it Oracle, query it, and so on). Yet this data has a "binary" component also. I realise this isn't the same as the OP's gripe, about XML that contains nothing but binary data. |
|
| Should I do it? | Sun 28 Mar | I want to be an ISV |
| Howdy,
Im a 17 year old student from Australia about to start university, and I am and always will be very passionate about software development. Ill be going for a degree in Software Engineering, and in my first year Im also going to do a diploma in small business management.
Even if I had such a resume, I have seen that it is very difficult to start a career in software development without real experience. About a year ago I created my own Web Server in C++ (http://swebs.sf.net), and Ive spent the last few months developing a few PHP based web sites for businesses.
I have plans for a product that I would really like to create, using C# and .NET. Its aimed towards a developer market, mostly at programmers. Not only would I like to sell the product (at between $200-$500, because of the type of application it is), but I would also like to sell the .NET components Ill be creating when I am building it. These components perform rudimentary tasks like handling unhandled errors and submitting bug reports, providing database access to a wide range of database types, etc etc.
But while I have been programming for the last 5 years or so, I have never created a shrinkwrap product before, and Im not sure whether its worth doing.
Its something I would really love to create, and I think it might have a good little niche market (vertical) when completed, BUT I have no idea how well it will actually sell.
If I sold 100 copies of the end product at $500 over a 12 month period, I would be extremely happy. I also plan to sell the components BEFORE the end product is completed, so that they can be tested in the real world, and so I can get experience with selling software.
So my questions are:
1) How likely would I be to sell 100 copies of the product?
2) How likely would I be to sell the database wrapper component?
3) Does selling the components seperately sound like good plan, or should I keep totally quiet and release everything when the end product is ready (keep in mind it will take about 7-9 months to develop by my estimates).
I still live with my parents and I havent finished High School yet, but I really feel Im ready to get out there and make myself some real money with my software. Ill be registering a business name, getting an ABN, creating a professional website and all that, so I am very serious about going through with this. I have no day job to quit, so I really dont have anything to lose.
Then again, would my time be better spent at McDonalds?
Any information you can supply me with estimates as to how well the products might do would be wonderful. I would really prefer not to talk about what the end produc will do, because I would rather keep it secret. |
| Sun 28 Mar | Matthew Lock | Do it. Even if you never make any money the experience will be well worth it, and it's the kind of thing that will enhance your resume, whereas McDonalds won't.
I would be careful though. University in Australia can be quite tough, and you wouldn't want it to interfere to much with you studies. |
| Sun 28 Mar | son of parnas | Do it. You'll probably won't be successful from a business
perspective, but that's not really the point. Don't worry
about school. Nobody will care about your grade point
average in the real world. I would like to see grades
eliminated so i could look at a portfolio of the kind
of work you are proposing. |
| Sun 28 Mar | Gerald | Do it, the best time to try to start a business is when your young and relatively unencumbered with expenses and obligations. |
| Sun 28 Mar | Matthew Lock | Nobody may care about your GPA (academic record in Australia), but they will care about whether you have a degree or not, so make sure you actually can pass the semesters. |
| Sun 28 Mar | Tom Vu | Yes, try it. Keep in mind "registering a business name, getting an ABN, creating a professional website and all" mean nothing. And to answer your how likely questions wee would need to know the product and your personality. Also, DO worry about your grades because at all places I have been employed they matter. |
| Sun 28 Mar | Entrepreneur | Be very careful about what the laws require you to do, and do them before the deadline.
This is easy if you take care.
If you don't, you probably won't submit accounting papers on time, and get fined for quite a lot of money.
So - be careful and do all that is required. |
| Sun 28 Mar | Greg | Yeah, 100 copies/month @ $500 *should* make you pretty happy :-) You could sell much less than that and still be making a good living. |
| Sun 28 Mar | . | It is _extremely_ difficult to sell products to the developer market. I won't expound too much upon this, but I believe Joel made a comment about it in one of his prior essays (paper? rant?) |
| Sun 28 Mar | Aaron F Stanton | Do it. It will be mind-crushingly hard, but it sounds like you've got a pretty good shot at it - better than most, at least.
Listen to what people say about finding out what your legal obligations are and do them on or ahead of time.
Do not underestimate the power of marketing and advertising. Make press releases. Don't bother with print ads until revenue is solid.
Do your homework, both in school and in this, and you'll be fine whether or not this makes you rich. |
| Sun 28 Mar | Philo | 'Also, DO worry about your grades because at all places I have been employed they matter.'
Tom, where have you been employed? (just wondering)
Philo |
| Sun 28 Mar | Eric Sink | Do it. But keep it simple. Don't hire anyone else. If you work hard and your idea is decent, it's not *that* tough to make a living selling something to other geeks like yourself. However, keep your expectations low. The developer tools market is a lousy place to build a company if you want it to be growing big.
One of my recent articles on MSDN contains a paragraph or two where I fuss specifically about how awful the developer tools market really is:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsoftware/html/software01262004.asp
Bottom line: Even if your business tanks, you will have learned a lot.
Enjoy! |
| Sun 28 Mar | Billy Boy | Go for it. In my opinion, late teens, early 20s is easily one of the best times to start a business. You have less obligations, hopefully less children, etc that tie up a lot of your time and require a very steady income.
While I was in uni (way back in the early 90s), I remember not worrying too much about bills, getting home on time so I could get up for work/class on time and having a great time living on 10-15,000/year. All of my peers were also living on peanuts so it was not that hard.
Also I had the stereotypical programmer jobs, working 60 hrs/week in the summer months for crap money and then getting a real job also working insane hours to prove myself. Man I wish that I had invested that time in starting up my own company.
I am in the process of boot strapping an ISV now. I think it is probably harder now that it would have been 10 years ago. I need to work full time to cover financial obligations (mortgage, insurance, cars etc) and also balance time with my wife and child and then find more time to spend on the company. There are steps that I could take to alleviate some of the financial stresses but I'm not at the decision point for the going full out on the business yet.
Hope you find some value in my ramblings. |
| Sun 28 Mar | Billy Boy | BTW, even though Eric did not mention it directly, have a quick read over his series of MSDN articles on starting an ISV. They should promote some questions in your mind that you will need to answer.
As well, it helps alot if you have a supportive family. Have you mentioned this to your parents? |
| Sun 28 Mar | Aussie Chick | Everyone has been saying 'go for it', and I agree so much.
Do you still live with you parents? If so, stay living there, make life as cheap as possible and throw 2 years into getting life experience.
Not only will you gain some great experience while you are young, and 2 years is nothing.
But also when you finally do go to university you will be two years older and have a far far greater understanding of everything (not just because you will be so much more mature then all the fresh-out-of-highschool seventeen year olds).
As for grades, I am an Australian and all the employers I have interviewed with have mentioned gpa, but then if you start university with a two year working history you will have the jump (and probably some subject exemptions). |
| Sun 28 Mar | no name | Don't do it. Developers won't pay for little things they could do themselves. If they can't do it themselves, they won't understand why your thing is useful. It's a very tough market. |
| Sun 28 Mar | Wants to be an ISV | Alright, I'm definately going to do it! I'm doing accounting at school, and my mum is a small business advisor and my dad runs his own small business, so I know I can get a lot of advice from them with handing in my accounting records. School will come first and I'll make sure to pass and get the TER (Tertiary Entrance Rank) score I need to do my courses.
Even if it doesn't work out financially, like you said it will be damn good resume material :)
Thanks for all the input guys! |
| Sun 28 Mar | Wants to be an ISV | Ooops, forgot to add:
I've talked about this to my parents plenty of times and they are in full support of it (so long as it doesn't get in the way of school of course). And I've already read all of Mr Sink's articles on MSDN (plus a lot on his blog), along with the while JoS archive, before I even bagan thinking about this. |
| Sun 28 Mar | Special Ed | Don't try to read too much into the fact that Mr. Sink is an inauspicious title for anyone running the ship. |
| Sun 28 Mar | matt | No, don't do it. You're 17 years old and about to go to University, which can be the best time of your life if you want.
Concentrate on meeting pretty girls and taking interesting classes. You're only young once. |
| Sun 28 Mar | Aussie Chick | >Your only young once
Exactly, now is the time to throw caution to the wind and just have a go. The girls will come later, so will exams and the pressures of life. |
| Sun 28 Mar | no name | Dear 17 year old student, there was a survey out recently that said there is 18 percent unemployment among Australian programmers. Even higher for new grads.
You might want to keep your options open at uni. |
| Sun 28 Mar | Aaron F Stanton | The best way to avoid being unemployed, in my opinion, is to be self-employed. If he has a business of his own he won't have to worry about finding someone else to employ him.
Listen to Aussie Chick on the women part. She's Australian and female. I would suspect she knows how that bit of your society works better than a male non-Australian. |
|
| A big usability leap for browsers? | Sun 28 Mar | karthik |
| Probably for middle aged people/elederly who are not computer savvy, this is going to be good. My father would love a program where he can say Show My E Mail and it does it for him. Opera has not reached there. But one day it will.
http://timesofindia.indiatimes.com/articleshow/578308.cms |
| Sun 28 Mar | MX | There is a lot of voice command software which does that.
The problem is: they don't work very well. |
| Sun 28 Mar | KayJay | And really awkward to use, unless it can also respond to 'zara us *email* ko *open* karke padna' or even worse, 'andhey *email*-ai *open* panni padi'
Regards
KayJay |
| Sun 28 Mar | Paul | And what happens when someone walks past and shouts out the URL of an adult site while your boss is in your office talking to you about the future of your job? |
| Sun 28 Mar | Matthew Lock | I remember playing with voice control software on windows 3.11 back in 1993, it was included with my sound card. (Can't believe it cost $300 back then for a 16bit Soundblaster)
It was the kind where you 'trained' it on a phrase, and then you could use that phrase to open programs. It was quite good, but I never found it quicker than actually double clicking on an icon. And you kind of felt stupid sitting at the computer saying 'word', or 'excel'. |
| Sun 28 Mar | Simon Lucy | In about 1985 Apricot produced the Portable, a landscape format LCD screen and computer in the one box with an integrated microphone, about pencil size.
One of the marketing guys I know and worked with had the job of doing the promotional video. He built a batch file that launched visicalc with a spreadsheet and ran a chart and associated that with the phrase 'Give me the sales figures'.
For years afterwards people would taunt him with 'give me the sales figures'. But it did work.
So voice commands for specific actions have a long history, the complications turned out to be not so much background noise (which can be compensated for), as moving from single discrete commands to what amounts to a conversation. |
| Sun 28 Mar | My Cousin Vinniwashtharam | >>' for middle aged people/elederly who are not computer savvy'
Translation: people who are too lazy to spend a little time learning how to use a mouse.
Attempts at voice-recognition have been around for a really long time and still don't work well. The truth is, voice-recognition only appeals to a few people -- particularly corporate executives who view typing on a keyboard as menial clerical work that is beneath them. |
| Sun 28 Mar | anony coward | We've spent thirty years moving from command line programs to GUIs. Now they want to go back to command line (okay, you say it instead of typing it, but you still need to remember all of the commands and enter them correctly). That's better than a menu/icon/hyperlink design?
This might have a limited market for data collection, for example a lab technician speaking results of measurements when their hands are full or wearing gloves. Other than that it seems like a solution in search of a problem. |
| Sun 28 Mar | Philo | 'Canned phrase' voice recognition has a very real niche among users who don't have hands free or can't look at a screen (drivers come immediately to mind).
For general use, voice recognition isn't going to sell until it can just plain work and we can dictate letters or emails with 99.999% accuracy. And of course then there will be even MORE pressure to give workers private offices. [grin]
Philo |
| Sun 28 Mar | Stephen Jones | The Voice tags on my mobile work about 60% of the time. And I sure look stupid the other 40% |
| Sun 28 Mar | Aaron F Stanton | 'give workers private offices'
That's exactly why companies won't adopt voice software. Large companies are pretty committed to cube farming, and unless you are in the hopefully-soon-to-be-dead industry of telemarketing and therefore talking all the time (and therefore used to filtering out your neighbors who are also talking all the time), it's really tough to get useful work done surrounded by people talking.
This makes me realize that for it to be useful it not only has to recognize voice a very high percentage of the time, it has to be able to do so in a situation with a lot of other people talking nearby. Humans are pretty good at it, but until dictation software can follow the nearest speaker and ignore the three nearest neighbors (and beyond) it is pretty much screwed. |
| Sun 28 Mar | Julian | One important market for voice-driven software consists of people who can't type due to physical disabilities.
For example, my wife used voice-recognition software to keep her programming job when she had wrist problems. Though it was rather frustrating for her to write Perl code in emacs by voice. |
| Sun 28 Mar | Michael Bean | Some research has shown that speaking uses auditory memory, which is in the same space as your short-term and working memory. It's hard to speak and think at the same time.
See:
http://www.washingtonpost.com/ac2/wp-dyn?pagename=article&node=&contentId=A56499-2002May8¬Found=true
While speech may help blind and disabled people interact with computers, it's unlikely to become the dominant way people connect with them.
From the article, University of Maryland's Ben Shneiderman says of speach recognition, 'It's the bicycle of user interfaces. It gets you there but it's not going to carry the heavy load that visual interfaces will.' |
|
| Are there really software buyers still using 56K? | Sat 27 Mar | JWA |
| Hi All,
Notice that I said software *buyers* not web users.
Theres a lot of talk about the 20MB .NET Framework being large enough to hurt or even kill sales due to the number of buyers who are connecting to the web over a dial-up 56K connection. Is that true? Obviously the type of software is important here, but even averaging it out across software in general Id be surprised if too many people who would seriously buy software programs either a) were too cheap to pay for a broadband connection, or b) live in an area where broadband isnt available. In my experience living in the midwest every type of person that I can think of has cable or DSL. When I lived in South America everyone into computers had DSL.
I cant think of a good way of researching the percentage of people who have dial-up and who would also pay for a new software program. However, my intuition would say that the great, great majority of people interested in using their computers enough to consider buying programs other than those that come with their OS would also be interested in the web enough to pop for broadband. In most cases that Ive come across since say 99, people using dial-up got a second phone line for it. Here in the midwest at least, it is $15/month for a second phone line and say $20/month for AOL or whatever ISP. RoadRunner through Time Warner is $40/ month total, so around here everyone has RoadRunner.
I also wonder about the size issue. All of the older runtimes, data access components, etc. that were around at the height of 28K and 56K dial-up surely were exponentially larger compared to the connection speed/drive space/processor/RAM than 20MB is over todays connections on todays hardware. The framework also does so much of the heavy lifting for you that your resulting app itself is much smaller than it would be in say VB6, so its not a full 20MB overhead either.
I just dont get what all of the hassle is about. Even if it is something where potential demo users may be hesitant over a 25MB download compared to a 5MB download, you can always list the framework as a requirement along with everything else and have your installer check for it and let the user know that it needs to automatically download and install it.
Is it actually such a deterrent to sales that it outweighs the development efficiencies? (I know this depends on what your alternative method of development is - but VB.NET is clearly light-years faster to develop in than VB6 at least.)
This is all not to say that it makes absolutely no sense for MS not to have worked a little harder to get it out there than to just throw it into Windows Update as an optional component. And I do think a linker would have been nice. But still.
--Josh |
| Sat 27 Mar | Walter Rumsby | Yes. |
| Sat 27 Mar | Mitch & Murray (from downtown) | Depending on where you live, there are many, many places in the USA where 56K is the best you can do and you are lucky to get that. A lot of the old phone systems huff and puff to connect at 28K.
Get just a few miles out of a medium-sized city and there may be no cable and no DSL. Either dialup or satelite is all that is left. More than a few of the people living out in the sticks are software developers who can work anywhere and choose to leave the rat-race and head for the country. These people buy _lots_ of software.
And don't get me started about pizza delivery ... |
| Sat 27 Mar | Michael Bean | According to usability guru Jakob Nielsen, as of January 8, 2004, 62% of Iternet users are still using dial-up in the US. In Europe and Asia, an even greater percentage are still using dial-up.
See: http://www.useit.com/alertbox/9703a.html and look at the January 2004 update on the bottom of the page.
Nielsen believes we won't be able to assume broadband for another six years or so. |
| Sat 27 Mar | otaku | But if they have broadbad, they could just get it of a p2p network, and would be less likely to buy software. While if they have dial-up they might buy software to avoid the long downloads.
Its a catch 22 isn't it? |
| Sat 27 Mar | MSHack | Yes, there are still many. I would also agree that 20 meg probably is a death sentence. That works out to 45 minutes+ in a download. (http://maxpages.com/gerard/A_useful_utility - low end numbers)
I also agree with M&M and Mitch, that those are good 56k connections and they are in limited number for a while. I lived in a digital apartment complex that took a dive, from 56k to 24k, just in the conversion to the local analog system. (Phone company's response - What did you expect?)
As for otaku; Having a speedy download does not make someone more likely to pirate, any more than owning a power saw makes someone more likely to steal lumber.
(just throwing this in ...http://www.megat.co.uk/wrong/) |
| Sat 27 Mar | Brad Wilson | It will be interesting to see how the uptake of XP SP2 is affected by dialup users. The download for RC1 is 273MB (that's not a typo), and I don't expect it to shrink much for final release.
We are one of those 'live in the boonies' people, with no chance for DSL or cable modems (no cable TV at all). We were using ISDN until some smart enterprising person said 'I bet all these people want high speed internet' and brought us line of sight wireless. |
| Sat 27 Mar | no name | I work for a company that sells software that is downloaded from the internet. Lots & lots of our customers are still on dialup. It's a PITA, but you have to deal with it. You also have to deal with people wanting to run our software but having really old machines. Like 3 years old, ya know? ;) Lots & lots of people haven't broken the 1Ghz barrier yet.
Heck, now that I don't download porn or linux anymore, I don't really need broadband. |
| Sat 27 Mar | Bib neckbarce. | What the hell? There are _millions_ of AOL users. Has it occurred to you that some of *them* might buy software?
I'm a software buyer, user, and developer, and I still use 56k—it's cheap, secure, and it works.
Now, 28k is a different story all together. |
| Sat 27 Mar | Bored Bystander | It amuses me no end that the software industry, even at the consumer end, is so arrogant and techie-fixated that it's automatically 'assumed' that an ordinary non technical consumer is interested in ultimate online speed, just as most end users do take awhile (years) to upgrade to the same kinds of machines that developers are now using.
Sometimes I think 'most' large SW companies target enterprise applications because they lack the skill to code anything efficiently.
It's a deja vu feeling. Back in the early 90's, OLE embedding was all the rage, but the machines that most normal consumers owned would run any OLE based application like dog sh*t. But you'd talk to clueless code heads with souped up development machines, like EVERYONE was supposed to trash and replace their PC every 6 months, and they would run on about how 'useful' OLE was. True, it IS useful, but machines in general circulation needed 2-3 years to catch up to the software (8-16 meg RAM was a *loaded* machine in '92...)
To most people, a dialup connection is unobtrusive and simple (a $3 splitter from Radio Shack on their phone jack), and the idea of adding equipment and another $20-30 charge to their monthly ISP bill just seems useless.
I've perused the download statistics at the shareware sites. It's really interesting that the most popular titles are the smallest in size. Something like 'Total Commander' that is about 3 meg to download is REALLY popular... |
| Sat 27 Mar | fw | '56k—it's cheap, secure, and it works.'
How is it secure?
Anyway. For your 200meg download, Satellite is fine. In fact, it's perfect. For a local software developer, it's fine.
However a huge amount of my work is over a ssh tunnel to work, thus it's not workable. However I do know a few developers in the sticks who need to update their cvs and upload files, download files, and it's perfect. The one second overhead (which is what it appears to them to be) is fine.
Realtime work is different. Email is fine, downloads are fine, but when you need to do work on a remote box, low latency counts more than high speed.
So it depends on your situation. |
| Sat 27 Mar | Sum Dum Gai | Even with broadband, I'd still rather have the small download size.
Remember, even if you increase your download speeds 10 times, the 2mb files still downloads 10 times faster than the 20mb file.
All other things being equal, I'm more likely to try out the 2mb version. |
| Sat 27 Mar | My Cousin Vinniwashtharam | >>'I would also agree that 20 meg probably is a death sentence. That works out to 45 minutes+ in a download. '
45 minutes? More like 1 hour 15 minutes. When I was on 56k dial-up my typical download speed was 16 meg per hour.
I know several people who live in rural areas and can't connect at a speed above 33k |
| Sat 27 Mar | Aussie Chick | I still use 56k. Would like to upgrade, and would save money in the long term if I did....just don't have the cash right now. |
| Sat 27 Mar | Mr. Analogy | I'd guess that 10% of my customers have no internet access (they ask if inet access is required. I say no, but ask if they have it). I'd say another 30% to 50% have 56k or below. Actually, I'm surprised that as many of them have high speed lines (I'd guess at least 30% maybe as high as 60%).
Our software sells for about $100 per program and we have 20 programs.
Speed of internet access is no indicator of whether a person is willing to pay for a SOLUTION to a PROBLEM. |
| Sun 28 Mar | JWA | 'Speed of internet access is no indicator of whether a person is willing to pay for a SOLUTION to a PROBLEM.'
I know, but it seems that everyone that I know (and I don't hang out in tech circles - other than reading JoS) sees slow browsing as a problem. Even my parents and my grandparents all have broadband, and not due to my involvement. Old computers, yes, but on cable. |
| Sun 28 Mar | John C. | JWA, by contrast, my dad still dials up over a 56K modem -- despite the fact that he spends probably 3-4 hours a day on the Net, could easily get broadband and can certainly afford it, and has a wife that pesters him regularly about his incessantly hogging the single landline. (On top of which, she can't be online when he is.) And he is plenty tech-savvy, too. But for some reason I can't understand, he has convinced himself that dialup is good enough and is hugely reluctant to change. My friends and I talk about this and can only conclude that it's a generational thing, because just no logical explanation for it.
On a similar note, my brother and his wife still have dialup at home because they both have broadband at work, don't have much time to be sitting around surfing or downloading at night, and would rather put the few extra bucks a month toward home improvements.
Beyond that, I've got lots of friends and family in places where broadband simply isn't available. (Some of them have opted for satellite or microwave, but those are not really mass-market services.)
Oh, and all these people DO buy software. |
| Sun 28 Mar | no name | JWA,
If you want to develop and market a desktop software product that can be download via the World Wide Web and is targeted primarily at the home computer user market then you would be better off using Delphi or the C++ programming language. You can also use classic VB if that is what you happen to know best.
Most people who have a broadband connection at home but don't have a valid reason for needing it obtain their software via piracy and probably wouldn't purchase whatever you want to sell to them. |
| Sun 28 Mar | Sum Dum Gai | I was just about to say it occurs to me that modem users are probably more likely to buy software, since piracy is massively less convenient on a modem.
But someone beat me to it. ;) |
| Sun 28 Mar | T. Norman | I think the original poster was referring to buying software that is delivered over the Internet. In that case, having a slow connection is just as much a deterrence to buying the software as it is to pirating it.
If the software is distributed on a CD, then the .NET runtime could be placed on the same CD, so lack of bandwidth would not be a problem. Or is it that the .NET runtime not freely or cheaply redistributable, thereby forcing users to head to Microsoft.com to download it themselves? |
| Sun 28 Mar | Dave Rothgery | The runtime is definitely freely redistributable. |
| Sun 28 Mar | Stephen Jones | I am on dial-up. There are few places in Saudi with DSL, and even if my exchange was one (it isn't) I wouldn't go for it because for the hundred or so hours a month I spend online from home it is still cheaper to pay phone charges ($1 an hour).
In Sri Lanka I use dialup, because there are only five exchanges in the whole country that have DSL at present (which really irritates me because in Lanka it's dirt cheap ($20 a month) while the phone charges are real expensive.
The premise that people don't have Broadband because they are too cheap to get it is infantile. Most of Western Europe is without it, even though they spend a load more on software than the Koreans, who have the world's largest takeup of Broadband. And there will be people who can havei it but only use the internet occasionally. That doesn't mean they won't buy software for doing their tax, or dieting, or for knitting patterns, or to make differential calculus so much easier, or whatever.
And, as I mentioned above, remember that people outside the States pay for local telephone calls, sometimes paying as much as $3-4 an hour. A 20 Meg download will easily take a couple of hours, and if you don't have a program like GetRight, they may have to try three or four times. |
| Sun 28 Mar | JWA | Stephen - 'The premise that people don't have Broadband because they are too cheap to get it is infantile. '
Please notice the b) section in my scenarios - acknowledging that there are plenty of areas where it isn't yet available.
I guess upon thinking about it a bit I would concede that for software in general, it is an insurmountable hurdle just because of how many small utilities there are out there.
My company develops programs for mid-large businesses. I guess that might have skewed my thinking of the nature of the market in general. I guess that even developing for the small business market you'd still have to think about it before accepting the 20 (actual 25 with ADO.NET) meg addition.
--Josh |
|
| Old technical books - usable as firewood? | Sat 27 Mar | T. Norman |
| I have a few dozen technical books taking up space which Ill almost certainly never have use for again. Books on VB 5.0, Java 1.1, HTML 3.0, Oracle7, etc. Got any good ideas of what do with them, other than just dumping them in the trash? I considered donating them to the local library, but that would be a waste of their limited shelf space. |
| Sat 27 Mar | Bored Bystander | If you find out, post the answer here. I've cataloged several dozen books (which cost me hundreds of dollars in their day) that I can find no way, rhyme or reason for disposing of in a responsible way.
The funny thing is, even some 'theoretical' CS type books that you would think would have enduring value probably aren't that attractive anymore. Example: I have several books on image processing (nowadays, everyone uses a library or some OSS module); serial communications (USB and ethernet killed this off for all but legacy purposes); several other books on OOP centered on C++ - still worthwhile but everything's gone to Java or C# for instruction purposes; a book on compiler design (Allen Holub's), which I see still gets a reasonable $ value on the used book market but is based on C and uses no off ths shelf tools. It too offends my sense of value and equity to just trash the lot. So they sit in the basement, taking up space.
I've thought of picking the 'best' books out of the lot, making 'bundles' of related subjects out of them, and posting the bundle on Ebay as a complete set, take it or leave it. |
| Sat 27 Mar | T. Norman | I thought about eBay too, but with the shipping costs they probably can't even be sold for 1 cent!
Like the subject of the thread says, I wonder if they will burn cleanly and completely in a fireplace. |
| Sat 27 Mar | Jeff | I donate mine to the local library. Historical reference I guess?? I get to do a tax write off of the donation if I like. Just about to take a stack of old Oracle books there today. |
| Sat 27 Mar | Justin Johnson | I'm about to truck down to my nearest used book store and dump them for dollars per pound of paper. It's hard, but they're really no more valuable than paperbacks after a couple years. I've pretty stopped buying technical books extreme for extremely theoretical ones for just this reason.
Unless anyone wants the complete O'Reilly set to Perl 5 on Win32. Or the original Java AWT book.
The sad fact is that the Internet is a better reference than a good technical library, especially if it's combined with something like O'Reilly's Safari network (I hope to see more offerings like this in the future). |
| Sat 27 Mar | Rick | I dump mine at Goodwill and claim a couple hundred a year for them on my taxes. |
| Sat 27 Mar | T. Norman | For reference, nowadays the Internet is indeed a better resource. But when it comes to learning new topics that involve a couple hundred pages of reading, I find that a book is a lot easier on the eyes and body than spending so many hours at a computer screen (after having already spent so much time at the office). |
| Sat 27 Mar | Curious | List it on craigslist for free. Someone will call you within 24 hours (this only works in a craigslist-serviced metro) |
| Sat 27 Mar | Mark Hoffman |
I still have 'DOS 5 Techniques and Utilities' by Jeff Prosise and a couple of Norton's books on Assembly Language. They were some of my first programming books for the PC and I can't bear to throw them away
For the rest of them, I carted them down to Half Price Books and sold them for a few bucks. (I would have given them away, but this way I made enough to buy some coffee while I shopped there!)
It was tough at first to chuck them, but like you said, if you don't then you end up with bookshelves littered with useless books. |
| Sat 27 Mar | Stephen Jones | DOS and Assembly Language are still useful. It's the Windows 3.1 and OS2 books that you can throw away |
| Sat 27 Mar | no name | This reminds me of the conversation with someone on this board a while back about interviewing. The guy claimed that he wouldn't hire somebody if they hadn't bought any books recently.
Glad to know there's other people on this forum that have been around more than a few years. I could've had a really nice mountain bike instead of shelves full of obsolete programming books. |
| Sat 27 Mar | mackinac | Your local public library might take them, not to put on their shelves but for books sales to raise money.
You can probably find several local charitible organizations that run book sales to raise money and will take whatever you give them. |
| Sat 27 Mar | Prakash S | Norman,
Bella posted such a topic around a year or so back, do a search. |
| Sat 27 Mar | T. Norman | I still haven't found anything about whether they're useful in place of firewood. |
| Sat 27 Mar | no name | No, they'll foul your fireplace or stovepipe.
I sell a lot of books through Amazon - usually a month or two after I've bought them from Amazon. I get from 50-70% of the purchase price usually. |
| Sat 27 Mar | Vince | when I was in high school, my friend and I would go to the library and dig up old out of date computer books and buy them for $.50 a pop. We didn't have money to buy expensive books, and we were trying to learn as much as we could. I'm sure those books are useful to some people. |
| Sat 27 Mar | K | Ha, when I was in high school I got this great book on principles of compiler design (the book with the green dragon on the cover) from my library for 5 cents. It's still a handy reference. |
| Sat 27 Mar | Dennis Forbes | Recently I paid closing on $100 for some mid-80s issues of Compute!, and the same for another block of mid-80s Compute! Gazettes. These things often regain value to people who read them years ago, and want it on their bookshelf for retro purposes. |
| Sun 28 Mar | Matthew Lock | If they really are old don't donate them to the library. I used to work in a library and we would routinely throw donations in the bin - as they were obviously useless.
There are often programs where you can donate your books to big charity booksales. Ask the library and they will put you in touch with it. |
| Sun 28 Mar | mackinac | By some coincidence I had the television on last night when announcements of local events came on. One was the annual AAUW book sale. I don't know what they might take in donations, but a Google search might locate one near you. |
| Sun 28 Mar | Stephen Jones | With old computer books you have the same problem you have with old computers.
There are plenty of organizaitons and people in the Third World who would love to have them, but the cost of getting them there and distributing them is greater than the value. |
| Sun 28 Mar | Darren Collins | I chuck all my old books on eBay, at $1 no reserve. If someone is willing to pay shipping, let them have it! It's better than throwing it out or burning it.
Occasionally I've been very surprised by the price a book fetches. There might be someone out there who has to support an old Oracle installation or whatever, and your book would really be of use to them. Even better, there might be two such people, and they'll bid against each other and drive your price up :-).
The net is great for learning about current stuff, but if you're stuck on an older version of some piece of software or language, it's often hard to find useful information online. In this situation, old books can be invaluable. |
| Sun 28 Mar | T. Norman | About what % of the books that you put on eBay actually got a buyer? I did a search on eBay for some of the books I want to get rid of, and found quite a few sellers of the same books but none had bidders ... |
|
| top ten software firms | Sat 27 Mar | rahul sharma |
| what is the list of the top ten software companies in the world? |
| Sat 27 Mar | one programmer's opinion | The answer is going to depend on what you mean by "software firm"and what your criteria for judging these firms is. |
| Sat 27 Mar | Matthew Lock | Rank Company Annual Revenues
#1 Microsoft Corp. $23,845,000,000
#2 Adobe $1,266,378,000
#3 Novell $1,103,592,000
#4 Intuit $1,076,000,000
#5 Autodesk $926,324,000
#6 Symantec $790,153,000
#7 Network Associates $745,692,000
#8 Citrix $479,446,000
#9 Macromedia $295,997,000
#10 Great Plains $250,231,000
From http://www.joelonsoftware.com/articles/Stupidity.html |
| Sat 27 Mar | Nick | Software magazine publishes an annual list of the top 500 software companies. The top 10 for 2002 and 2003 are below.
Notes:
1 - They include both software and consulting revenues in their rankings (hence IBM #1).
2 - The revenues below are only the portion that pertains to software. For example, IBM's total revenues were $81.1M, so the $49.4M figure below is for software / services only.
2003
================================
$49.4M - IBM
$28.4M - Microsoft
$21.5M - EDS
$12.8M - Lockheed Martin
$11.6M - Accenture
$11.4M - Computer Sciences Corp.
$10.2M - Hewlett-Packard
$ 9.7M - Oracle
$ 8.2M - Hitachi, Ltd.
$ 7.7M - SAP
2002
==================================
$47.9M - IBM
$24.7M - Microsoft
$21.5M - EDS
$13.3M - Accenture
$10.9M - Oracle
$10.5M - Computer Sciences Corp.
$ 7.7M - Compaq
$ 7.5M - PricewaterhouseCoopers
$ 7.5M - Cap Gemini Ernst & Young
$ 6.5M - NTT DATA Corp.
Source: http://www.softwaremag.com/S_FocusAreas.cfm?Doc=The500
The site requires registration. Thank you mailinator! :-P |
| Sat 27 Mar | Steve Jones (UK) | Surely there are some zeroes missing in that chart?
I assume Microsoft sold more than $30M worth of software last year. |
| Sat 27 Mar | Devil's Advocate | Judging from the $23.8B figure cited for MS above, I'm guessing we should read those M's as B's. |
| Sat 27 Mar | Stephen Jones | Should be Billions not millions |
| Sat 27 Mar | . | Why does it matter which software companies are the top ten or twenty? Are you planning to buy one? |
| Sat 27 Mar | Stephen Jones | ---' Are you planning to buy one? '---
No, he's planning to sue one! |
| Sat 27 Mar | Nick | Yeah, those should be B's instead of M's. |
| Sat 27 Mar | Joel Spolsky | My list is "PC software companies" and comes from the Soft*Letter 100. |
| Sat 27 Mar | Michael Bean | Amazing that only the top four pure software companies have revenue > $1 billion.
Is SoftLetter worth the $395 / year subscription for a small software company? |
| Sat 27 Mar | Herbert Sitz | Michael -- Were you meaning to imply that they got ripped off for buying inaccurate data? Maybe they did.
Why is Oracle not on the list? They had revenues last year of over $9 billion.
Computer Associates had revenues last year of over $3 billion.
Electronic Arts and Peoplesoft both had annual revenue last year of over $2 billion.
Actually, in Fortune's annual rankings that recently came out, Adobe was ranked 12th in terms of annual revenue.
So something is wrong with the list the original poster gave. It doesn't seem to have been including all software firms in the ranking. And seeing as how it was supposed to be listing the top 10 software firms in terms of annual revenue, it's basically worthless. |
| Sat 27 Mar | Herbert Sitz | Looking more closely it looks like Joel was quoting the original list form "In Search of Stupidity"? Something seems to be confused there; don't see how their list could be so far off. Hmmm. |
| Sat 27 Mar | Michael Bean | Herbert-- I'm just interested in knowing if people like the SoftLetter. It's fairly expensive for a magazine, but about average price for a trade newsletter. However, in my experience, most (but not all) trade newsletters are not worth the money. I'm just curious to get others' take on the quality.
Regarding the discrepancy of the lists, it seems to me that the first list contains only pure-play software companies, where the other list contains companies that make a significant portion of their revenue from non-software sources like consulting and hardware.
The most useful list would be one that compares the software divisions only. But this is extremely difficult to do which is probably why it wasn't attempted in either case. |
| Sat 27 Mar | Herbert Sitz | All this information information is publicly available, so I wouldn't pay any money for a newsletter that reports it. Hopefully the newsletter has other stuff worth something.
In any case, it makes little sense to throw the numbers or lists around without saying what's included and what's excluded.
I don't see how the pure software/ consulting revenues could be the dividing line. Electronic Arts, so far as I know, sells only shinkwrap retail games. I can't imagine they do any consulting. Yet they don't appear at all on the first list when they had revenues greater than '#2' Adobe.
And Oracle, Peoplesoft, Computer Associates may have significant revenue from consulting, but it's all software based consulting, isn't it? And they have huge revenue from the sales of software; I don't think they sell hardware at all. And in the case of Oracle, I'd be willing to bet that just the sales of the 'pure software' Oracle licenses would place them in #2 position all by itself. Seems ludicrous to me to leave these companies off of a software company list, especially when there isn't any explanation of exactly what the criteria are or why the criteria were chosen.
I realize this is just a silly message board, but sheesh. |
| Sat 27 Mar | Herbert Sitz | Okay, okay, it's all fine. Sorry for the rant. |
| Sun 28 Mar | Michael Bean | Does anyone who has read or reviewed SoftLetter have anything to say about the quality of the newsletter? |
|
| Time Zones | Sat 27 Mar | Paul Stovell |
| Howdy,
Im having some problems with an SMS sending engine that is supposed to send an SMS to clients at customised times, in their own time zone. Ill explain how the system works, because Im having a problem with the time zones part.
At 9:00AM in Australian Central time (GMT +9:30), a script is run that collects data and creates an SMS to be sent.
The SMS is added to a queue (in a database) of SMS that havent been sent yet. The time it is supposed to send (for example, 4:00 PM, the clients time), and their time zone are recorded as a GMT TIMESTAMP.
Every half hour, another script runs and sends any SMS that need to be sent within a 15 minute period +/- the current time. This ensures all SMS are sent. The current GMT time is calculated, and compared to the time the SMS is supposed to be sent, and if its within the 15 minute +/- period, the SMS is sent.
My problem is with the calculations, to figure out what time the SMS should be sent. The server is located in the United States, at GMT - 8:30.
So, is this what my calculation for when the SMS is sent should be?
time() + 8*60*60 // To get to GMT time
+ UsersTimeZone*60*60 // Take their Time Zone into account
+ 9.5*60*60 // Because the script ran at australian cent. time
+ TimeOfDayToSend // Because they chose when it sent
- 9*60*60 // Because its already 9:00AM when it was sent
Its all very confusing |
| Sat 27 Mar | Sgt. Sausage | ==>It's all very confusing
Only because you're making it so confusing.
Start with creating 2 simple functions:
ConvertToGMT(theLocalTime, theOffset)
ConvertFromGMT(theLocalTime, theOffset)
Before doing any calculations, convert all times to GMT. Then do all calculations in GMT, and then convert the output from GMT to wherever it's appropriate for the output.
You can even add a third handy function by nesting them to convert from one timezone to another:
ConvertTime(theTime, fromOffset, toOffset)
{
return ConvertFromGMT(ConvertToGMT(theTime, fromOffset),toOffset)
}
If you're not used to it, it can be difficult to read, but once you get used to it it will be much easier to do these sorts of things.
See if that's enough to get you going down the right track.
It makes it much simpler when you think about it this way. |
| Sat 27 Mar | no name | You are writing the server, or just trying to pump entries to it? Are you sure that you have the format of the time correct? I know that the timestamp component of an SMS header is, err, somewhat unconventional (not as 'unconventional' as the two adress components, which have different formats, but odd regardless) so if the server is taking the time in that format then, well, good luck.
And yes, I agree that TZs are a little confusing. If you are using the Windows functions things get even worse because they seem to have a completely opposite view of these offsets than what is implied (that's not very clear, but to be honest I found it so confusing myself when I had to look at it that I'm really not surprised that I can't say it more clearly!). Short version: make sure your + and - signs are the way the functions are expecting them (which may be diferent to what you expect). |
| Sat 27 Mar | Dan Maas | I would say make sure all times in the database are in GMT. Convert the user's requested transmission time to GMT immediately before inserting it into the DB. During the half-hour checks, convert the server's current time to GMT, and then make all comparisons with GMT time.
GetSystemTime() on Windows returns the current time in GMT. So the only hard part you have to worry about is converting the user's request from their own time zone to GMT. |
| Sat 27 Mar | Michael Bean | We use Date and Time 'fixed time around the world' feature to update our clients about server updates. We just include a link in our server update emails to the clients.
For example, here's a link to Saturday March 27, 2004 3:30 PM in San Francisco: http://www.timeanddate.com/worldclock/fixedtime.html?day=27&month=3&year=2004&hour=15&min=30&sec=0&p1=224
It's a nice, simple site. Our clients seem to like it and it reduces confusion about when the servers will be down. |
| Sun 28 Mar | John C. | Is the U.S. server really at GMT-8:30? That seems odd. I'm not aware of any non-integral-hour time zones in the U.S. or any of its possessions. EST (Eastern Standard Time, e.g. New York) is GMT-5, and PST (Pacific Standard Time, e.g. California) is GMT-8. Just a typo, perhaps? |
| Sun 28 Mar | Jordan | http://www.aglobalworld.com/Zones.html shows that New Delhi and Darwin's time zones are GMT+- H:30 (only two examples). |
| Sun 28 Mar | Philo | New Delhi is a US Possession?
Philo |
|
| proxy gate | Fri 26 Mar | colombo |
| Hi all,
Ive just started to write my own proxy-gate server. The idea is to redirect the traffic to the machine whose IP-address i need to use and to use that host as the proxy gate.
can anybody point me to the step by step tutorial on how to do that. Or even list them here. I already have simple tcp-ip server and client.
Thanks, |
| Sat 27 Mar | Duncan Smart | what on earth is a "proxy gate"? |
| Sat 27 Mar | Fred | I guess a host that acts both as a router ("gateway") and proxy to perform port forwarding? |
| Sat 27 Mar | colombo | come on , please, somebody help! |
| Sun 28 Mar | Simon Lucy | I'd start with the three tomes of Internet protocol,
Internetworking with TCP/IP by Comer Stevens. |
| Sun 28 Mar | colombo | thanks for that, but i haven't got too much time to go through these volumes, need to check one thing quickly, hence a nice and dense tutorial or code is needed. |
| Sun 28 Mar | Philippe Back | http://sourceforge.net/projects/cinaproxy/
win32 proxy server progged in easy visual basic, WinSock-Pool, SOCKS4/5, SMTPRelay, Gateways, DialUp-Manager, HTTP(S)-Proxy, WEB-Server(PHP,XML,Dir), Remote, Shutdown, Port-Mapping, FTP,cryptapi socket,*Web-Adblocker*, nt-service, telnet
may be a good start
www.sourceforge.net, put 'proxy' in the search box and here you go ! |
| Sun 28 Mar | colombo | thanks Philippe
proxyc is what I was looking for!!! |
|
| Not able to understand this limitation of Excel | Fri 26 Mar | JD |
| Hi,
Today I was trying to copy worksheet from one workbook to another in Excel.
When I tried it gave me following message:
The sheet you are trying to copy has cells that contain more than 255 chars. When you copy the entire sheet, only the first 255 chars. in each cell are copied.
To copy all of the chars., copy the cells to a new sheet instead of copying the entire sheet.
This is one of the longest message I have seen in Excel and the message has only OK button! No cancel button!
Most interestingly, If I were to MOVE worksheet from one workbook to another, this mysterious 255 chars. limit doesnt apply! I find this extremely stupid!
Any other similar limitation you find in Excel or your fav. program??
Regards,
JD
http://www.phpkid.org |
| Fri 26 Mar | Alyosha` | Here's one that ticked me off the other day: no bitwise operators.
And if you REALLY want to drive yourself batty, try figuring out why HEX2BIN only works for -512 < x < 511. |
| Fri 26 Mar | PDF | I hate the 65,536 row limitation in Excel. We often have reports/lists that have more than that number of rows, but we can't use Excel to work the data in them. |
| Sat 27 Mar | Nevertheless not a corel fan | Curiously, Corel Quattro Pro doesn't have the 65k row limit. It can probably handle more than 255 characters, too. Funny how these things work out. |
| Sat 27 Mar | Stephen Jones | ---'I have seen in Excel and the message has only OK button! No cancel button! '---
Puzzling what the OK button does. I would presume it cancels anyway. Alternatively it might copy anyway, leaving you to decide whether to use the entire worksheet you've just copied the data to or simply cancel it.
Should be continue and cancel if you are going to have a choice. |
| Sat 27 Mar | JD | Okie, just copies it instead of abandoning the whole process.
I think this message should have cancel button so that if I wanted to cancel copying I could. In this scenario, it gives me message and once it has copied worksheet with cells having max. 255 chars. I have to go and delete the copied worksheet!
JD |
| Sun 28 Mar | i like i | Excel can't handle very many columns at all.. try it! |
|
| Another Sanity Check, please? | Fri 26 Mar | Name withheld out of cowardice |
| So I was having a meeting with someone who is supposed to be helping us implement the Rational Unified Process. Now I have been using many of the artifacts from this process for years and I consider myself a very good object-oriented designer and programmer. This person, in context. explained to me that once you have the basic UML diagram, the members and methods come from the supplemental specification. I requested clarification and she said that the supplemental specification contained non-functional requirements such as the user interface will respond to clicks within 500 ms or The application client will run on Windows XP.
Confused I pressed her on how in the hell such a document would yield your members and methods and she finally replied something to the effect of I am going to say something rude. I really admire your cohones (pardon spelling`- not sure) arguing this point with me because I have been teaching this process for years to large corporations blah-blah. I have been practicing holding my tongue and so refrained from asking question like have you ever written a line of code?.
Am I nuts? Is this some obvious thing I am missing? |
| Fri 26 Mar | Katie Lucas | My honest answer to this is that every methodology I've come across has, at its kernel, a very small section labelled 'do magic here'.
RUP is much the same. You draw the user interaction diagrams, you do the flow things, , you draw class diagrams with methods and stuff and then they get turned into code and the application falls out of the bottom of the process.
Reciprocity talks about something called 'complexity smearing'. Which is where the class of people referred to as 'packers' shuffle things around and write larger and larger documents, with the end result that the complexity is all broken up and spread out and no single page actually contains noticable complexity. It's still there, but it's hidden inside a lot of words.
A lot of reciprocity reads like the writings of raving madmen, but there are bits of it which sound disturbing sensible.
RUP looks scarily like a way of hiding that complexity in lots of pages so it doesn't look worrying to the packers and they think they've 'solved' it.
Now, don't get me wrong here, I think it has its uses.
I think having nice standardised diagrams of stuff like that is REALLY useful. One OO architect drops dead and your replacement walks in and can pick up the documents and read them because they already speak that language. That's a great thing. I sort of wish it had been pushed as being that -- a lingua franca for documenting designs.
Instead it's pushed as a way of getting normal people to do something normal people can't do. Normal people can't do OO design properly. I don't mean that derogatively as such. I can't draw still life, I can't run 100m races {Well, these days I can't walk 100m races, but even as a kid I was crap at the 100m}. People have various different talents. One of those talents is doing OO design and some people just can't do it. No matter how much paperwork you surround it with.
And at the core of RUP is a small area where you have to use OO design talents.... if you don't have them, it's like having a methodology for running the 100m.
'Step 1: write about running really fast. Step 2: Go and draw a plan of the racetrack. Step 3: go and buy really tight lycra shorts. Step 4: run really, really, really fast. Step 5: cross line first'
It's that step 4 that's the tough one. But if you put lots of emphasis on 1,2,3 and 5 it's possible no-one will notice and then you could probably make a lot of money selling the methodology to would be athletes who think there's some 'secret' to being a 100m running over and above being born with the ability to run fast.
Unfortunately, the outcome of RUP is that you end up with extremely well documented TERRIBLE designs. Unless you have a good OO designer to start with. In which case they'd have come up with a good design anyway, but on less paper.
As I say -- if you regard it as a standardised writing system that's portable between companies, the whole thing works OK.
I don't know if that answers your question or not. |
| Fri 26 Mar | Andres | It's with a 'j' not 'h'.
Just in case you wanted to know. |
| Fri 26 Mar | Sam Livingston-Gray | Your sanity is fine. No trainer with 'N years of experience' who can't answer a question without resorting to ad hominem is worthy of the name.
Regardless of that, it sounds like you have to work with her (my condolences). I'd suggest that next time you ask her to walk you through an actual example so you can see how the magic happens. Sometimes, watching it happen crystallizes everything else you've been reading in a way that nothing else has. This was my experience on reading the following:
http://www.objectmentor.com/resources/articles/xpepisode.htm |
| Fri 26 Mar | Aaron F Stanton | It remind me of the underpants gnomes:
Step 1: Steal underpants.
Step 2: ...
Step 3: Make a profit.
(or something like that)
Personally, I'd ask very nicely if she would be so kind as to help someone who clearly doesn't understand the method by walking them step by step through a concrete example, going from design to working code. Make sure she understands that she has to demonstrate this to a slow learner so she will need to take really small steps and explain each one. A brief one day or less workshop should do the trick quite nicely, I'd think. (Please notice, I'm not saying that you are a slow learner - quite the opposite, in fact. This is just a good way to set someone up to fail when they have no clue what they are doing.)
Then when she can't do it, explain to her that it's ok, you have actual work to do writing actual code. Wish her a nice day and send her on her way.
On the other hand, she may actually surprise you by pulling usable and useful code out of thin air by a magic process. If she can do it, by all means learn what she did and make it no longer magic. If it's repeatable, it's no longer magic, it's science. |
| Fri 26 Mar | Philo | Ask her to show you how it works with something like Notepad or Minesweeper - walk you through the process.
IMHO, there is a near perfect disconnect between UML and Class diagrams. There is no 'flow' from one to the other. UML works okay to draw pretty pictures and help you analyze the more complicated user scenarios, but it doesn't help at all in actually creating the magic boxes that will hold code.
UML is a formalized whiteboard.
Philo |
| Fri 26 Mar | Name withheld out of cowardice | 'there is a near perfect disconnect between UML and Class diagrams'? are you refering to the other diagrams in UML such as Activity and Sequence? I only ask because UML has its own class diagrams and they are nice. I use them myself, usually with something like Dia or Visio rather than Rose. I am suspiscious of automatic code generation.
If this is what you mean, Philo, then I agree. My way of doing things has always been to have some kind of requirements document (use cases actually are good for some types of projects) then create an object model and a nice UI. I guess I always figured that given these three artifacts, good developers should be able to start churning out some code. This idea that we can step through these other artifacts and the code kind of writes itself, is somewhat incredible.
The problem is that the process salesmen claim this is so and that they have run successful projects that prove it. I am resigned to following the process. It's a pain in the ass, but my team is committed to it. I was just wondering about her one assertion. It doesn't really affect me because I can come up with members and methods the old fashioned way. I just thought it was a bizarre assertion to make and I wanted some second opinions on that.
Thanks all. |
| Fri 26 Mar | Philo | Yeah, sorry - I always think of UML as the other fuzzy diagrams excluding class diagrams. :)
Philo |
| Sat 27 Mar | Ignore my ignorance | 'UML is a formalized whiteboard.'
Philo, I liked that. Do you claim a copyright on it? |
| Sat 27 Mar | one programmer's opinion | Hi name withheld out of cowardice,
Can you tell us exactly how this consultant is helping your team implement the RUP?
Are you currently in a classroom setting or are you actually working on a project right now? |
| Sat 27 Mar | Philippe Back | To answer the first question in a RUPish way, let say that there are 3 levels to cover (for business apps, something that RUP is tailored for in my view):
1) domain model level
2) analysis model level
3) design model level
1) is about finding out about the concepts the biz manipulates (e.g. Account, Customer, Contract, Sale ...)
Doing that is useful.
How do the fields,operations & relationships get added to the classes ?
Well, by allocating responsibilities.
Do they come from the supplemental spec ? Of course not.
They come because you have to support them somewhere in your processes. Usually to be found in the use cases and so on and not in the supplementary spec, which speaks about other aspects of the software (FURPS+ stuff excluding use cases).
So, find the responsibilities and try to answer those 3 questions then for the classes:
What do I have to know ?
Who do I know ?
What can I do ?
To answer them, functional stuff and domain stuff have to be examined in a loop.
Supplementary requirements are to drive the technical architecture and will have to be supported by the analsys & design discipline while domain is covered in the requirements discipline.
Anyway, she's wrong.
I do teach RUP at times and also develop software.
RUP and UML are good if they are kept at their place.
UML as a notation to describe systems (solving nothing, for that you have to THINK!, no notation can replace it)
RUP as a framework from where you can pick ideas to tackle the risks your project faces.
From RUP creators themselves, using all of it will result in delivering nothing.
So, once again, you have to THINK! in order to select what is useful.
The goal is not the process, the goal is running software that works.
And IME, no amount of UML tooling, RUP knowledge and paperwork will save the day if nobody is willing to do the hard work of THINKING!
I happen to be selling UML tools (Enterprise Architect), RUP agent (WayPointer from JacZone Ivar Jacobson's own biz), and other process support software but none of them are of any value if they are not there to support your thinking and creativity.
Since someone talked about packers, I consider myself a mapper and maybe UML and RUP should be considered the result of the thinking of some mappers who were able to write down their internal maps !
END OF RANT |
| Sat 27 Mar | Philippe Back | And people like that consultant you met are just making a bad name out of a set of useful tools. Yes, *tools* ! Not *religions*. |
| Sat 27 Mar | Name withheld out of cowardice | We are currently attempting to create software and not in a class. This RUP person is part of our team. She, herself, says repeated that one can use as much or as little of the process as helps him do the project and that for some projects she recommends a minimal set of artifacts. Of course her minimal set of artifacts seems like overkill to me.
My question with respect to producing each artifact is always 'does this help someone on the team do his job'. I originally assumed we could get by without sequence diagrams but my architect now says he needs them because it is inobvious which use cases create and destroy which objects and so forth. Fine by me, we can make sequence diagrams.
As many other posters pointed out, all this is useless if the teammembers don't think. I am becoming concerned that we are using adherence to process as an excuse to put off work (coding). |
| Sat 27 Mar | Mark Hoffman | Oh geesh.
Obviously, you were smart enough to read between the lines. What she is really saying is 'I've become very skilled at manipulating managers with my fancy acronyms and PowerPoint presentations. I'm making a lot of money pretending to be an expert. Don't stand in my way little man or I will squash you like the bug that you are.'
Of course, there is a small chance she does know what she is talking about but she just can't communicate it. Any 'expert' in RUP who can't explain things clearly to a developer shouldn't be responsible for implementing it, however.
As an aside, this is one of the reasons that I'm not a big fan of heavy process methodologies like RUP. Besides becoming unwieldy in their own right, they tend to spawn a cottage industry of blowhards who only view development through their own narrow perspective. |
| Sat 27 Mar | Philo | Hey!
What is wrong with manipulating managers with PowerPoint presentations?
Oh, unless you mean that's her *only* talent...
Philo |
| Sat 27 Mar | Name withheld out of cowardice | Only I am getting weighed down in process because I am expected to produce document for which I do not see the value. I kept saying that if you could explain to me why we need this artifact or if the architect or developers tell me it will help them, then I will be glad to produce it. They keep falling back on the idea that they have seen RUP be sucessful in the past. It is impossible to examine this claim without causing trouble.
I also fear that the team is using the process as an excuse to put off work- 'I can't possibly do my work until I have sequence diagrams'. It also seems to be trying to get people further up the chain to specify exactly what people further down the chain should be doing. If I am expected to produce a diagram that shows exactly what is happenning in a use case as far as object creation/destruction, method calls and returns, frankly I would prefer to write the code myself and skip the extra diagrams.
It seems to me that we are using the process to turn a three person project into a seven person project. I'm all for full employment but given that they keep telling us we have a budget problem it is a bit frustration.
I am just trying to keep my mouth shut and limit my complaining to this forum. |
| Sun 28 Mar | Philippe Back | Since all projects are contextual, some awareness of the context is in order.
RUP bits and pieces to use should address that context.
Defining precisely what 'downstream' people have to do is just impossible in a software project.
I like that concept of the 'cone of uncertainty' that Steve Mc Connell uses in its 'Software Project Survival Guide Book'.
And as he says there: 'the person who claims to be able to estimate the impact of those myriad of decisions before they are actually made is either a prophet or not well informed about the intrinsic nature of software development'.
So, diagrams and all that are tactical tools, not strategic ones.
I agree that having a sequence diagram showing up the standard interactions between RUP-subsystems is good. Showing all the interactions in there is just a waste of time.
BTW, if you are programming in Java and have access to some copy of Together/J, that beast will do the low level diagrams for you (I used IDEAJ, no diagrams, thank you, I'll do the detailed ones on the whiteboard, for subsystems I'll use EA).
Which artifacts are you asked to produce ? |
|
| Quality C++ IDE | Fri 26 Mar | tool wimp ;) |
| Ive been a Java developer for the past two years, out of necessity (thats where the moneys been). Now, however, Im determined to get back to coding in C++ full-time (or, as close as possible!).
My problem though, is that Ive been spoiled. I found IntelliJ, and my productivity in Java jumped by at least 50%. It just worked, and I benefitted greatly.
Now, however, after a cursory look at the state of C++ development environments, Im near horrified. MSVC++ is obviously the standard on that platform, and it has good code-completion, but Ive always been uncomfortable working in it. Project Builder on OS X has a lot of nice features (the build and go functionality is amazing, or so Ive been told), but no code-completion, no refactoring.
So, any suggestions? Essentially, Id like to have IntelliJ for C++, with all of the great code-completion, refactoring, symbol lookup features that it provides. Wish, and ye shall recieve? :-) |
| Fri 26 Mar | apw | might have to wait for whidbey |
| Fri 26 Mar | Seun Osewa (afriguru.com) | Might we know why you have decided to go back to C++ at a time when others are moving to java and C# from C/C++? :-P |
| Fri 26 Mar | tool wimp ;) | I write applications and do consulting to groups that are decidedly cross-platform: there is a pretty even mix of Windows and OS X boxes these days, with a smattering of linux as well. C# is therefore useless to me, and I've lost most of my previous hope that Java would become useful for production-quality graphical applications.
C++ is, therefore, my last resort (and an old friend that I miss :-) |
| Fri 26 Mar | MX | Borland C++ Builder
Visual Studio .NET also has C++ development, for both .NET and Win32 platform |
| Fri 26 Mar | Oxana Seglova | Borland C++ Builder 6.0 is excellent. |
| Fri 26 Mar | Frederik Slijkerman | ... but no longer supported. |
| Fri 26 Mar | Giovanni Corriga | Try Eclipse with the CDT plugin:
http://www.eclipse.org/cdt/ |
| Fri 26 Mar | MX | Yes, the latest version is called something like C++ Builder X, or something. :)
And IT IS supported. |
| Fri 26 Mar | Oxana Seglova | > ... but no longer supported.
Meaning?? I write almost all Windows application in it! |
| Fri 26 Mar | runtime | I heard that an upcoming version of IntelliJ will support C#. IntelliC#? :-) |
| Fri 26 Mar | John Volk | >Project Builder on OS X has a lot of nice features (the 'build >and go' functionality is amazing, or so I've been told), but no >code-completion, no refactoring.
Apple's XCode (requires 10.3) has code-completion. Maybe you could give that a look? |
| Fri 26 Mar | tool wimp ;) | Ah, someone just mentioned Visual Slickedit -- that would be ideal, if they had an OS X version. I'll have to check that out.
It was also my impression that Borland was going all C# with their C tools. I'll check them out again. |
| Fri 26 Mar | Jimmy Jo-Jo | I would recommend 'ed' under Linux. It's very fast.
? |
| Fri 26 Mar | christopher baus (www.baus.net) | I must be a Luddite, I keep finding myself going back to emacs, although for Windows only work, I would (and do) use the VC.net IDE. It finally has most of the features that I need.
It is an interesting time to get back into C++. There is a lot going on with boost http://www.boost.org, and it seems for better or worse there is a push to add garbage collection to the standard language.
The freak accident that the template language happens to be turing complete, has lead some to use it as a language construction platform. For an example of this, check out the http://www.boost.org/libs/lambda/doc/ library or spirit http://spirit.sourceforge.net/
I'm up in the air about all this. My feeling right now is that while this is a neat from a academic standpoint, in production it is a nightmare. Compilier errors are impossible to read, syntax becomes inconsistent (again look at spirit), and compile times go through the roof. I personally haven't seen the claimed productivity boost. |
| Fri 26 Mar | tool wimp ;) | I suppose I'll have to explain to many people over the next months my motivations for going back to C++. :-)
The cross-platform angle is the key. I'd still be going full-bore with Java if it had resolved its UI issues, or if I had any confidence that it would do so satisfactorally in the near future (hopefully along with its absurd desktop deployment options, and a horde of platform-specific gotchas). C# is certainly better for windows-only development, but that's not where what my clients want (yeah, I know about mono....no, I don't want to base my livelihood on it).
Sorry, don't want to start a religious thing here (I'm still going to be using Java for web stuff for the foreseeable future). I just hope I can find a way to not take too much of a productivity hit in the transistion, and a great set of tools will help. |
| Fri 26 Mar | Craig | I'm a head developer at a medium sized CTI software company.
My boss walks in one day and asks for 'An IP PBX using the SIP protocol', that was the spec.
One of the first jobs was to write a SIP parser stack, the first attempt was hand coded, brittle, and hard to understand.
Obvously this was not going to fly, enter spirit (the boost parser library), hundreds of lines of code colapsed into just a few lines, it was fantastic!, hand parsing code is a thing of the past.
As the project developed, we used more and more of boost (lambda, file system, regex, mpl, date time, auto pointers), devleopers were activley encouraged to learn boost.
Sure compile times get large, but customers do not care about that.
But what they do care about is getting a rock solid, fast system.
Boost allows the code base to be very tight and consise.
The 'new' C++ is a very powerful tool, Joels comments about 3 different string classes, and useless Meyers books just go to show how out of touch he is.
Just my 2c..... |
| Fri 26 Mar | tool wimp ;) | I think Joel was referring to how Microsoft has changed the way they handle strings in their own API's, not how they're handled in C++ proper. |
| Fri 26 Mar | Craig | True, string handling in Microsoft APIs (COM arrgghh!!) is shite. |
| Fri 26 Mar | Andrew Burton | Going to go out on a limb here...
What about Python? Between Tkinter and wxPython, you have cross-platform GUI abilities. Between (WinPy|PyWin) and IDLE you have GUI IDE's, and I'm fairly sure either IDLE or some wxPython IDE will run on OS X. It's as fast as Java, as object oriented as Java or C++, and it'll run on just about any platform that has a GUI (even some Nokia phones).
Mind, I'm not trying to insult C++ or Java, and I am a Python neophyte. However, from the things I've read and the tinkering I've done, Python sounds like what you need.
On the other hand, vi is my favorite IDE for *nix and Notepad for Windows. *ducks* |
| Fri 26 Mar | tool wimp ;) | Andrew:
Whew, that'd be quite a jump. I've long been intrigued by Python, but it's definitely qualifies for 'fringe' status (i.e. it's all open-source at this point, which is nice if you want to be on the bleeding edge, but generally not so great if you want to build and deploy commercial-quality desktop apps). Not to mention the fact that I've only tinkered with Python, and it'd take me 6 mos. to a year of real work to get myself to the point of being confident about my abilities. C++ is, as I've said, an old friend.
What GUI toolkit I use is a completely different question. wxWindows is a candidate, as is Qt, as is *maybe* designing the apps such that the UI's are done in Cocoa for OS X and VB on Windows, with core shared libraries/DLL's holding the main application magic. I'll take that leap when I need to. |
| Fri 26 Mar | christopher baus (www.baus.net) | I'm still not convinced that the lambda library is a good idea. It bothers me that I can't read syntax of a language I've been using for 10 years without doing 2 days of work to understand a library like lambda. |
| Fri 26 Mar | Craig | Is not the lambda syntax simpler that conventional C++ functors?
std::list l;
std::find_if(l.begin(), l.end(), _1 == 'Blah'), seems very consise to me. |
| Sun 28 Mar | somanyquestions | So, as far as I can tell, the major IDE's out there that may interest you are Microsoft's Visual C++, Borland's C++ Builder, and Metrowerks' Codewarrior. I am sure there are many others, but these appear to be the major IDE's.
Visual C++ seems to be used the most to develop commercial applications, perhaps because it has the most tools, and because people tend to like the interface. I do not know how the whole .NET thing fits into this. Anyone care to elucidate? What's different between Visual Studio 6.0 and Visual Studio .NET?
C++ Builder seems to be the easiest IDE to learn and become comfortable with, although it is not as flexible as the Visual C++ environment. It sounds like this is the best choice for the hobbiest, though it can be used to make professional level applications. Does anyone have any idea how stable Borland is as a company? If one gets comfortable with this IDE and then Borland disappears, how hard would it be to transfer one's skills to one of the other environments?
Finally, Codewarrior seems to be developing quickly, but still lags behind the other two on Windows. It would probaly be a good choice if you want to develop for both Macintosh and PC though.
What do you all think of this synopsis? I'm facing a similar question myself. I have a reasonable amount of programming background, but I have done little work in making free-standing applications in Windows. What is the best way to learn how to do this? It seems to me that Builder may be the fastest and most satisfying way to do this while Visual Studio is probably the best choice for someone who wants to get a job programming. I'm a mere hobbiest, so perhaps Borland is the best choice for me. Any advice or thoughts are greatly appreciated.
Thanks! |
| Sun 28 Mar | Entrepreneur | I am the owner of my own company, and I am also a good C++ programmer. I like the language a lot, and written a lot of software in it.
However, from my experience:
- Good C++ developers are hard to find because the language is complex and unforgiving.
- Good Java, Delphi, VB developers are a lot easier to find.
This is why my company does new development in Java and Delphi, whenever I can.
There are many types of applications that can be written faster using Delphi or Java.
By writing in Dephi or Java, you get a lot of extra safety. By this, I mean I have fewer problems like:
- The developer forgot to free some objects, and the app leaks memory and Windows resources
- The developer used pointers extensively. The app now uses a complex dynamic structure with lots of pointers, and has a pointer-related bug which is extremely hard to track down and requires a very good and expensive C++ programmer.
C++ certainly has it's place, but for many apps, another language such as Python, Delphi, Java is a lot more suited for the job. |
|
| Technical Solution Blocking Scam Mails At Source | Fri 26 Mar | Seun Osewa (afriguru.com) |
| Hi,
Many Nigerian Network administrators have a problem of getting their Ips blacklisted often because 419 scam mails are often sent through their networks, by people who are difficult to trace because cybercafes do not have records of their customers. Some attempt to cure the problem by heavyhandedly blocking outgoing SmTP in the entire network (sometimes an entire ISP) but most of our scammers use free email addresses anyway.
I and a network admin friend are considering a solution that involves scanning all outgoing HTTP POST requests for scammy patterns, and in cases where the message is detected by Bayesian methods to be very likely to be a spam, the post (usually e-mail) has to be approved before it is allowed to leave the network. It seems to obvious that I am surprised I have not come accross a solution before. Do you feel the idea is sound?
Regards,
Seun Osewa |
| Fri 26 Mar | Li-fan Chen | Osewa, unfortunately Bayasian works best for individual profiles.
It works because it knows keywords that are relevent to your life, and keywords that are very much not. Some training is involved, and the profile you build for it to make smarter decisions in the next iteration of filtering is personalized to your inbox.
So when you are filtering out going email, you have the problem of building a 'theoretical' profile of 'all the users out there who could possibly receive email from you'. And most bayasian tools don't work with this.
Another thing that look so promising, but ofcourse won't work, is digests. There are reservoirs of registeries containing nothing more than MD5 hashes (ordered in a look up table) that you can hit. All you have to do is filter all outgoing messages, take each sentence in the message, do an MD5, and compare this MD5 with the registries, if it matches, it says the likelihood of this sentence existing in a previous sent email (widely accepted by the world as spam) is also in your current email. But spammers have been getting around this by intentionally doping sentences with completely random typose (on an individual message basis)... to chase thsi particular arms race would require very very large reservoirs and too many hits to do unique look ups.
The nicest thing you can do is add a neglegible cost to your emails. And flag some of the more heavy users. If you have the fortune of hosting your own webmail, add captha challenges. |
| Fri 26 Mar | Stephen Jones | Do you realize how much time it will take? Have you thought of the legal implications? How many customers will sign up to use an ISP that will read all their emails? |
| Fri 26 Mar | Stephen Jones | Incidentally only about one in a thousand 419's get through the Bayesain filters.
The real problem isn't Nigerian scam, it's US spam of the type that an apologist for the scumbags on another thread is all in favour of. |
| Fri 26 Mar | Li-fan Chen | Don't mean to shoot you down but you can't filter SSL HTTPds going to Hotmail and Yahoo mail and the like. What you can filter for is really heavy traffic to these sites on a SOURCE IP basis.
If you host non-SSL webmails that's another story, your idea to snoop WOULD work.
Let me show you another trick that may help. Provided most of the junk emails are HTML only, and you are the relaying SMTP server, try this trick:
Add a shim image (non-visible, zero length) to all out going emails. The shim goes to a URL you host. The asp server you are hosting answers these shims by 1) provided the gif file and 2) logging the url encoded code. The code should be the email account's random unique id you use to track accounts.
Whenever people open one of these emails, you will get a hit on your asp web server. Whenever users delete them or ignore them or choose to not open them with images loaded, you'll get no hits.
And then at the end of the month you do a simple count:
1. Who sent tons of email?
2. Of those who sent tons of email, are they usually getting responses in the form of email opens?
By determining this you can pin-point troublemakers pretty quickly. But mind you this assumes spammers aren't smart enough to ditch an account after a month.
If the system is properly designed, you can narrow the monitoring report to weekly or even twice weekly. |
| Fri 26 Mar | Li-fan Chen | For more details try this explanation: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=32054 |
| Fri 26 Mar | Seun Osewa (afriguru.com) | >Osewa, unfortunately Bayasian works best for individual profiles.
These scam mails are so similar. For a large number of people I probably can't use these tools to determine that probability that the mail is _not_ a scam mail, but I can use it to determine the probability that the mail _is_ scam. The scammers attempt very little customization of the mails, (for now).
>Do you realize how much time it will take? Have you thought of the legal implications? How many customers will sign up to use an ISP that will read all their emails?
The problem is that they don't 'sign up'. They go to cybercafes to browse. They cannot afford phone lines much less dial-up access, so we all use cyber-cafes. And there are no records of who uses which system in a cybercafe. So unless mails are intercepted in real time, by the time the complaint comes around the criminal is in a different cyber-cafe!
>Don't mean to shoot you down but you can't filter SSL HTTPds going to Hotmail and Yahoo mail and the like. What you can filter for is really heavy traffic to these sites on a SOURCE IP basis.
As far as I know Yahoo and Hotmail only use SSL for authentication (yahoo uses it for authentication only if you spoecifically request for it). Please educate me further if I am wrong.
I'll now look into your solution, but bear in mind that there is no user accounting whatsoever being used in these cafes because they, or we, are afraid if we start asking for people's names or addresses they will be put off. they just get vouchers which enable them to browse for specific periods.
Regards,
Seun Osewa |
| Fri 26 Mar | Li-fan Chen | Well, Osewa, at the moment very organization has had to pick and choose form the many anti-spam tactics to use for their special situation. You keep pointing out the cybercafes as been the source of anonymous spam and you are also explicitly saying that you cannot change the business decision to make it less anonymous, so you are reduced to using less draconian--and potentially less effective--methods of solving the problem. Good luck anyways :-) |
| Fri 26 Mar | Li-fan Chen | The major problem (from where I stand): To you or the cyber cafe owner there are no monetary incentive to solve this problem. The minute you can determine a significant cost saving or profit increase caused by an anti-spam measure, is the minute you can sell this to a business-minded cyber cafe owner. |
| Fri 26 Mar | Brian | First, re: SSL. If you control the client machine, you can read SSL traffic. There is a commercial app whose name I've forgotten that lets you do this. It essentially mounts a man-in-the-middle attack on the SSL session, but it works because you've added there key to your browser. I've forgotten the exact details, but it's definitely a technical possibility. Much harder than sniffing clear traffic.
Second, you have to realize that your filter is never going to learn from its mistakes, otherwise the scammers could poison it. Therefore, some posts will be wrongly blocked, and the user will have no recourse. |
| Fri 26 Mar | Seun Osewa (afriguru.com) | Thanks for the tip, Brian.
The value proposition is simple: For networks currently on various e-mail and e-commerce blacklists all over the web, a solution such as this helps them to get off those blacklists! |
| Sat 27 Mar | Stephen Jones | I doubt if you'll get off the ecommerce blackliists.
Most email blacklists are the result of open relays. Check those first and then start writing to the main ones. Persistence will probably pay more than technology here.
Most Nigerian 419's come through Hotmail or Yahoo, The Nigerian ISP will not enter into it. |
| Sat 27 Mar | Seun Osewa (afriguru.com) | Ok, I am sure there are open SMTP relay scanners freely available, so I'll publicise them on my site.
With mail sent with free e-mail providers, it is very easy to determine the originating IP, but I'll have to go and confirm if the originating ISPs are still blamed. |
| Sat 27 Mar | FN | Seun,
1) One VERY SIMPLE way to blocking Scam emails is to lock down your desktop so that users do not install programs. 95% of the 419 guys use freely available programs to mass mail the 419 emails. Lock your desktop and most of your problems are solved.
2) Second technical solution is proprietary and is something I have thought about for the past 2 years. Contact me privately and maybe we can go into business together. |
| Sat 27 Mar | ITDirector | how about something like this for controlling junk mail: http://www.rfxtech.com/index.html |
| Sun 28 Mar | Seun Osewa (afriguru.com) | The problem I was trying to solve was 'what do I do as a network admin whose network is being used for such activities, and whose ip addresses are getting on various blacklists, assuming I have no cooperation from the free e-mail providers?'
And the answer would seem to be 'use technology thatke it very difficult for frausdsters to not leave a trail'. In other words, detect and intercept the fraud while the fraudster is still at the cyber-cafe terminal. Is it possible that this is less significant than I am making it seem? I wonder, afterall my particular ISP seems to have never found its way to e-mail blacklists. |
| Sun 28 Mar | Seun Osewa (afriguru.com) | And then I think I also ignored the fact that replies to these mails have to be *recieved* so be of any use to the scammers, so that might be another avenue for blocking. And at that point seems like a much simpler problem to handle. Because when you broadcast such mails to 1000 people, one of them will be smart enough to report the mail, _before_ you get to recieve any replies. |
|
| Network "tunnelling" for Terminal Server access? | Fri 26 Mar | Javier Jarava |
| Hi again!
Im looking for advice on how to solve a networking tunnelling / access problem Im facing right now.
I do quite (a lot, really) of work on client premises, as a deployment consultant. Itd be extremely helpful for me if I could access my (office) pc from the clients premises, but as they usually are Gvmnt. or Big Company, Internet access tends to be quite limited on the different offices (usually proxied and the like)
I wanted to know if there was a way for tunnelling Terminal Server traffic through a proxy I dont control. I can carry my own laptop to the premises, so getting an SSH (or similar) starting point would be no problem. At my companys end, I already have an open port on the router to access my computer (BTW, is there a way to proxy TS / SSH traffic so that I dont have to open direct routes to my PC, but rather proxy the traffic a bit more safely?)
Thanks a lot. |
| Fri 26 Mar | Just me (Sir to you) | http://ccfaq.valar.co.uk/modules.php?name=News&file=article&sid=230 |
| Fri 26 Mar | fw | Say the remote machine is 192.168.0.1 , and their gateway on the internet is 1.1.1.1, and ssh is open on the gateway. For example, to tunnel to port 80 on their remote machine (192.168.0.1),
ssh -L 2222:192.168.0.1:80 user@1.1.1.1
Then connect to localhost port 2222 and you've now got to 192.168.0.1 port 80 |
| Fri 26 Mar | old_timer | Careful sparky. You may be violating some security regulation by doing that without permission. Better check with the supervisor of the Gummint entity you are doing it for, or you could end up with big legal woes, not to mention lack of a job. |
| Sun 28 Mar | Javier Jarava | Thanks for the tips/pointers.
And for the advice about network security :) I do know it's not something to be done lightly, and never w/o their network guys knowing. I've been told that it's OK as long as I can go through the firewall w/o having to re-configure it (ie, have to be able to go as HTTP traffic, or at least as HTTPS); if it were _extremely_ necessary they could open up the FW for Remote Desktop traffic, but they'd rather not, if it can be avoided (and in the really-sensitive areas they have no outside network connection whatsoever, and of course no Internet, so the question is moot). That's why I was trying to find a way to avoid punching holes in a working system.
As for security, I am considerded a 'trusted third party' (after all, we provide security software that is going to run on _all_ desktops, so we'd better be trusted and trustworthy ;)
So the requisites would really to be able to _tunnel_ through the gateway, but I can't conunt on their having any 'particular' sw running, as the idea is to be able to connect from any client, not from an specific one.. All of them allow HTTP and HTTPS traffic (ie, traffic to the respective Ports)... I'd say that quite a number of them also have SSH running on the GW (though a number of them are windows-only)...
Any more ideas? Thanks a lot for the pointers you've already provided |
|
| Laptop for heavy VMWARE use? | Fri 26 Mar | Javier Jarava |
| Hi all!!
I know laptops have been talked about quite a lot, and am reading through those threads ATM. But Im seeing that most people rate the laptops wrt development work (not strange, Id say, given the people here).
I am looking for a laptop that has some serious punch, and that I dont have to marry the dealers daughter to pay.
My needs: I am a deployment consultant at my company, so I do _very_ heavy use of VMWARE. Its not uncommon for me to have 3 VMs open at the moment (1 server and 2 clients; 2 servers and 1 client; 3 servers to model an odd AD setup). My PC now is a 1 GB RAM Dell Optiplex 260, where running 3 VMs is no sweat, but as Im on site quite often, I think a laptop would give me greater flexibility.
I know Ill need quite a bit of RAM, and some processor. Other people at my company have Thinkpad T40, but they say it gets sluggish when seriously pounced on. I guess that, to help swapping performance, a fast HD would be a plus....
Im not very up2date with Laptops specs and the like, so Id love to hear peoples opinions / rant on the matter.
Thank you very much in advance |
| Fri 26 Mar | Stephen Jones | HD''s appear to be the bottleneck with laptops.
The desktop replacement variety normally use desktop CPU's (whcih are cheaper anyway).
The second bottleneck might be RAM. Most laptops only have twio memory slots, which might limit you to 1GB of RAM.
Modern BIOS's can boot off a USB drive, so you might consider taking a bootable USB2 removeable HD to the clients site and running it off their machines, though you will probalby find they are deficient in RAM |
| Fri 26 Mar | Brian Niemeyer | What is your host OS? Windows XP, Linux? That is a big factor in what laptop to consider. I have had pretty good luck with maxed out dell inspirons (I think the latest ones support 4 gigs of memory and fairly beefy processors) running either Windows XP, SuSE Linux or Gentoo Linux (the gentoo platform is really sweet if you have the time, it's compiled to fit your platform exactly, use all of the processor optimizations, etc.) I would recommend against Sony Vios, they don't support enough memory to be really useful to a developer, and the latest Compaq laptops have real problems with their windows XP drivers, lots of strange reboots, etc. if you really hammer them. |
| Fri 26 Mar | Brad Wilson | The question is whether you have a lot of funds to spend or not.
If you do, then as a previous poster pointed out, one of the new breed of laptops that use desktop chipsets, desktop CPUs, and most importantly desktop RAM, will allow you get a laptop with 2GB of RAM at no more expense than doing it with a desktop PC. Plus you'll get top end CPU performance. The downside is it'll be heavy, hot, and have marginal battery life.
If you don't have a lot of money to spend, then the thing I would focus on is making sure it has a 7200 RPM drive and 1GB of RAM. My laptop is a 1GHz P3 and it performs very well with VMware and Virtual PC, because of the fast hard drive and the 1GB of RAM. All told I spent ~ $1700 when I bought it two years ago. These days, you should expect a P4 |