Jump to content
Xtreme .Net Talk

Nerseus

*Experts*
  • Posts

    2607
  • Joined

  • Last visited

Everything posted by Nerseus

  1. From what I've learned over the years... It can pay to be a contractor, but you've got to get good gigs and that means having connections. Meaning, you're not going through rent-a-coder but going through companies that know the value of an experienced developer - often, through word of mouth. Sometimes a company will say they want a developer, but they really need a designer, business analyst, database admin, and report writer. Sometimes you do it, sometimes you say No (if you can afford to). Depending on who you know and how good you really are, you can make good money or not much at all. When I did freelance work, I averaged $68/hour - that was a few years ago, but none of it was part of the big internet craze that got so many contractors BIG money (and often for little talent). I can see how going through rent-a-coder or similar "lowest bid wins" scenarios can be a hard way to make a living. If people don't know the value of a good programmer and what it takes to write a good piece of software, then they're likely to think they can get someone good for $10-$20 an hour. If you encounter someone like that, turn away. As mentioned, they often have NO idea what the really need, only what they want. And that will change many times as you develop a solution for them. If you're unfortunate enough to either not have a document of exactly what you'll provide or you're working in a team that doesn't have that kind of document, be prepared that you might not even get paid! I've encountered this situation: do a lot of work and create exactly what they said they wanted. Then, they say they need a few new features or the product is useless. If you were already at your original budget, good luck convincing them that what they're proposing is an enhancement and needs a new contract. If you're smart, this will only happen once (or never) and then you'll have a contract that stipulates everything, in detail. Again, if the idea of that kind of contract scares the company you're working for, then turn away - you're only going to get burned later. I don't mean it to sound harsh - I had a LOT of good experiences doing freelance work. You definitely get a wider variety of jobs than working for one company. And, assuming you charge the right rate (make sure to include money for your own health insurance in the US, money to let you "ride" for a few months when a contract ends, educational money, etc.), you can often work only 6-9 months out of the year. Not too bad if you can live with the "risk" and can get the contracts you want :) -Nerseus
  2. Nerseus

    Help....

    Static members are just global variables, more or less. With custom serialization, you can do whatever you want, pretty much. -nerseus
  3. I wonder what kind of architecture you're designing that you must call a webservice on every keystroke? If speed is in mind, this doesn't sound like a good place to start :) Is this a type-as-you-go combo of sorts, to dynamically filter? There are better approaches than calling a webservice on every keystroke. Why not wait for a pause (a half second or more) and then call the webservice - give the user a chance to type 2 or 3 letters (or more). WebServices are going to be slow - slow enough that I wouldn't count on a single user getting in/out 4 or 5 times a second. Not unless you have a no more than a few users per website. -nerseus
  4. Nerseus

    Structures

    You could probably use reflection to build up a string of "Player1" and find the actual property, but I don't think it's a very good design. There are SO many other, better options. A hashtable, for instance, allows storing data and finding it by a string name. If you really want to find a control by "name" (meaning, the string translates into the actual control name) it can be done. For finding fields in a struct, I would think this is a last resort. -nerseus
  5. Get it fast: only 5 days left... http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=3383820531 Ok, not my favorite - but I lauged when I read it. -Nerseus
  6. And Microsoft's reasoning, from what I heard...? C# developers didn't ask for it, so they figured why put it in. Ugh... (going off to complain about squeaky wheels getting the grease) -Nerseus
  7. I used to get Visual Studio magazine (started when it was just for Visual Basic) but stopped about a year ago. I think it's a great magazine, especially to introduce you to some features of .NET that you might not otherwise get into. Microsoft has SO much information and SO many pre-built technologies/components that it's hard to figure out what does what and when you might want to use something. Magazines like this help in that regard. You'll basically find two kinds of articles: very simple, surface scratching topics or super in-depth. The super in-depth articles are usually written by someone who has applied some technology to create a solution for something specific. These articles are less likely to help you unless you have a similar problem. The surface scratching articles are generally more helpful if you're just interested in reading about some technologies you don't have time to investigate yourself. The Q&A portions are nice to glance through and bookmark. Who knows when you won't encounter a similar problem even if the question doesn't seem to have any meaning for you when you read it. I used to get MSDN magazine as well. Generally speaking, MSDN had MUCH better articles, and much more in-depth. But, they covered a much broader range of topics including issues with IIS, SQL Server Admin, and Exchange Server. That generally left 2 or 3 articles that pertained to developers (mostly what I was reading it for). I'd say the $20 investment is worth it IF you plan on reading some of the articles. If work could pay for it then it's a no-brainer - let them spend $20 on your education/happiness :) I tried the online version of Visual Studio magazine. Besides two specific times I went online to search for an article I remembered reading but couldn't find, I never used it. I prefer to read things on paper, not online. The search was Ok, but generally Google is better for that. For asking specific questions and getting specific answers, you really can't beat this forum (blatant, yet honest, plug). -Nerseus
  8. I'm sure many of you listen to music while "coding"... so this is sorta computer related (yet still Random Thoughts). I just got The Cure's "Join the Dots - B-Sides and rarities". It's a 4 CD collection of The Cure with previously unreleased songs (on CD anyway). I've been waiting *years* for this! Previously, you could get one small collection but only on tape (Standing on the Beach, the singles). To get the rest of these songs you'd have had to buy every Cure single that came out just to get the B-sides. I'm all for paying for what I like, but I don't want to spend $8 for a single B-side (since I'd already have the main song on the full album). I started listening to The Cure in the mid 80's and been a fan ever since. This is a Great (!) collection if you're a Cure fan. Bad if you're not (twice as bad for my wife who hates them). Had to share the joy :) -Nerseus
  9. I think you want a join between Products and Group, with the parent being Group and the child being Products (a product contains the Group code). Make sure to add Primary (unique) key to the group table first. This is all done in the dataset, btw. I didn't look at your database too closely, but it seems like this is what you want. -Nerseus
  10. I can't say I've tried it that way. I know I've used a general try/catch with the catch using SqlException and that DOES hit when the proc runs over RAISERROR... Is the OnInfoMessage supposed to hit on a "16, 1" type of error? Or just on info-level messages? -nerseus
  11. It's a static method on the Printer object, part of the framework. I use it to verify that a string ("\\server\printer name") is a valid printer name before I pass it onto some 3rd party software. I get the strings from a database table and you can't ever trust your users to cut and paste things right :) I know it works to locate a printer, but I don't think it will give you any kind of status. I also don't know of any way to determine if the printer is locally connected or not. I would guess you could, just never had the need. -nerseus
  12. Simple question - do you need the Mininmize and Maximize buttons? If not, you can disable all 3 (including the "X") by setting the corresponding properties to false. -nerseus
  13. Can you use something as simple as Printer.IsValid()? -Nerseus
  14. As you mentioned, you should have specified the password on the command line when you installed MSDE. Or, as hog mentioned, you can use a config file (I used a shortcut with the command line option). I use Visual Studio's Server Explorer to do most of the work in MSDE. The website http://www.msde.biz also has a free Query tool you can use. I even used it to restore a backup made with SQL Server 2000. To log in, regardless of the tool used, you should be able to use userid="sa" and whatever password you specified during setup. If you chose to turn on mixed security, then you can setup your Windows users to be SQL users as well. I'm not 100% sure, but you might be able to login using your Windows "Administrator" account (it's password). -nerseus
  15. I'm a bit confused by your use of the term "MSDE". MSDE is the free engine from microsoft - you shouldn't have to pay for it. You can download the engine from MS directly as well as receiving it on CD/DVD as part of Visual Studio (enterprise only maybe?). Distributing this to clients is free as well. -nerseus
  16. What kind of SELECT are you using? Make sure all columns have a name (if you use "SELECT MAX(fielda)..." with no alias on the MAX for example). What line of code does it break on, dataadapter.fill? -nerseus
  17. Try running dbmon as well to see what the exact error is. It often gives extra error info that you won't get from the managed code. dbmon is an executable that you run (comes with the DX SDK) before you run your project in Visual Studio. It detects all calls made to directx and can show you extra error info. -Nerseus
  18. I don't know that a typed DataSet will work the way you want unless you do something like what Mothra suggests. If the typed dataset sees the column as int and defines the internal variable as an int, then that value CANNOT be Null in any form (null or DBNull). That means you'll need some value that you can translate back to null. Zero is often a good choice, I like -1 too. Since you don't want to see the value in the bound field, you'll need some kind of translation. For a textbox, I'd suggest hooking up the Format and Parse events (part of the DataBindings collection of the Textbox, I believe). It allows translation between the bound data (DataSet) and what the control display (a Text property). Look in the MSDN help for examples of the Format/Parse events. You might experiment with the NullValue property of the DataSet - I've never tried it but it might be usable. If your DataSet is "static" - not changing the typed dataset very often - you could tweak the auto-generated typed dataset code. Change the int to type object, which allows DBNull. Of course, it's no longer "typed", but might get you what you want if it's only for a few int fields. -Nerseus
  19. Where's the online versions of the TRUE classics? That's what I'd like to see. What if I want to go head to head in Gauntlet, or Joust, or even Ms. Pacman? Why has no one done that? I know there are a few ports out there, but no one has setup a master server. Maybe Gamespy could hook up with Atari and get us some classics, playable online! Hook it into Paypal and charge a quarter a game or a small monthly fee. (drooling...) Donkey Kong... -Nerseus
  20. A quick Google search for "ldap" turned up this: http://www.openldap.org/ I've never tried it so I can't speak for it. To use MS's LDAP you'll need WinNT, Win2000 Server (any version but Pro) or Win2003 to get an active directory installed. If this is for work, you should be able to code against your DC. If this is for home/practice, you might try the above link or something similar. You *might* be able to use MS's LDAP components to communicate with their LDAP server, but I haven't tried it. -Nerseus
  21. No, there's nothing built into .NET that will detect changes to the Database and refresh your client. I'm not sure the type of app you have - maybe this is a requirement. Generally, for data entry apps, you assume data hasn't changed until the user goes to save the data. Since the user's screen might be "stale" (someone else might have updated the same record since the time the user first got it), you'll have to take care of how you handle the second update. You'd also have to have a way to determine if the above actually happened. Generally, you can store a date/time stamp in every record. When you retrieve a record, keep the date/time stamp handy and compare that to the date/time stamp on the record just as you are about to do the update. If they're the same, no one has updated the record since you touched it - otherwise you'll have to handle it. Developing a scheme for the above is hard enough. Trying to have the DB server alert your app when data has changed seems downright nasty. Now, if the DB is a local DB (say, Access running locally), then it becomes a lot easier - relatively :) -nerseus
  22. Check out this site, or the following link: http://www.syncfusion.com/faq/winforms/search/550.asp -Nerseus
  23. I use Folder about 95% of the time. Since MS came up with the Active Directory (confusing enough in its own right!), I phased out using directory for anything but the AD. Why only 95% then and not 100%? I still do command line and when I type "cd" or "rd" or "md", my mind says "directory". Another poll that doesn't matter: http://www.katalinmedia.com/poll.php (2 for the price of 1 in fact) -Nerseus
  24. If you installed the SDK with the samples (STRONGLY reccomended), you already have a number of samples. In the samples folder, look for the "tutorials" folder which has a number of simple samples (the "tutorial" part is in the help). -Ner
  25. You'll need to use strcmp to compare the two strings or don't declare your "string" as char*, use an actual string class. -Nerseus
×
×
  • Create New...