|
I've got 360 spare at the mo, you can have 150 if you need them?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Awsome! Thank you! I'll just ask Chris to increase my credit limit.
|
|
|
|
|
Sorry, it's 1:30am here and I've been working all day, so I may have missed something in that article that discusses alternatives to CodeProject. I'll look again though.
|
|
|
|
|
It's not discussing alternatives to CodeProject; what it's showing is how to write a question that will get answered here on CodeProject. To be fair, the same guidelines apply to pretty much any programming forum - in general the people answering will all have the same expectations.
This space for rent
|
|
|
|
|
Oh yeah, for sure. I posted at least one question that I thought was going to lead to a simple yes or no response, but since I didn't explain why I was asking such a basic question, it looked like I hadn't put forth any effort at all.
|
|
|
|
|
You've been a member since 2008 and have been an MVP for all but two of those years. So I'm guessing you didn't start learning C# at a time when there's an ENORMOUS volume of outdated information that looks just as current Online today as it did 15 years ago when it was published. A lot of it doesn't have dates either, because the web site owner whats it to appear fresh to the user.
It's a different ballgame today.
I was hoping for a different resource where conversation more closely resembles a discussion with a colleague.
Also, everyone has a different definition of "thoroughly" and so I think my rule will be to ask whatever questions I have, brush off any negativity I experience if someone else thinks my question is stupid, and just remember the struggle when I get really good, so I can encourage others to continue learning the language. Without that, it's just ColdFusion.
I was about as good as one could get in classic ASP back in 2000... a lot of good that's doing me now.
|
|
|
|
|
Surprisingly perhaps, C# was released in 2002, and I started learning it in ... 2008, when I joined this site. Before that, I was mostly embedded C / assembler with some Windows C++ and VB experience.
So much of the resources I had then were (relatively) just as outdated as the ones you have now!
There is a lot more bollocks and misinformation now, because anyone who can use google and cobble together an app from SO fragments (Stack Overflow Patchwork | CommitStrip[^]) thinks they know it all and can produce a YouTube video on C# ... but there was a good amount of that back then as well.
Rick_Bishop wrote: I was hoping for a different resource where conversation more closely resembles a discussion with a colleague.
That's called "mentoring", or "tutoring" and it's a considerable amount of work for the mentor / tutor - time that often just isn't available because everyone here is a volunteer, and most of 'em have paying jobs which - understandably - have priority. And how many people can you mentor / tutor on a one-to-one basis at a time? Very few, if you are going to do it properly, and fewer still if you are doing it for free! That said, any question where the asker is showing interest can easily turn into a discussion, and does regardless of where it is posted.
Rick_Bishop wrote: I think my rule will be to ask whatever questions I have, brush off any negativity I experience
Negative feedback in the most important and valuable feedback you can get! But only if you act on it and understand why it's there: is it something you did (asked a stupid question or asked it very badly) or is it the respondent who the problem? Or is it that the question you asked relies on context that you haven't supplied because you know all about that (but the reader doesn't have any access to)? As the article(s) Pete linked to say "asking questions is a skill" and if you don't develop the skill, you will get negative comments. Just brushing it off doesn't help, it hides any problems from the only person who can fix them: you. Don't ignore negative comments - they can help you seriously improve the way you think.
Basically remember this: a lazy question gets a lazy answer. If you think about what you are asking, and how you ask it, that shows. It produces a good question which encourages a good answer. And very often it gives you the solution yourself, which is why I sometimes tell people to "explain that as if you were explaining it to your mother on the phone". The effort you have to do to explain what you code does (or should do, or doesn't do) to a non technical mother without the benefit of diagrams is substantial - but it forces you to think about your presumptions about what you have been trying to do.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Thank you. That was well said. I hope others read this too.
The lack of surety in programming is part of the reason software is fragile.
|
|
|
|
|
I know about Pete's article, but a vague memory suggests that @Marc-Clifton wrote something similar.
|
|
|
|
|
One of the articles that Griff mentioned in his reply is this[^] one. In general, if you show that you've made at least some effort, you will find that people are more willing to help you. If, however, we feel that someone keeps posting questions that shows that they have put no effort into finding something out for themselves, they will quickly be labelled a Help Vampire, and will be ignored or, in some cases, removed from the site altogether. Really, that's all we ask; that you have at least tried to find something out for yourself.
This space for rent
|
|
|
|
|
I agree. We're splitting hairs now. I'm looking at Experts Exchange, as a possible resource. It never hurts to have several.
|
|
|
|
|
Not sure I agree. I find that the forum that works best is the one you feel most comfortable in. Many people swear by SO, and many by CodeProject, and many by others that I have not used. But as others have already said, think about what you are asking, and whether you could actually find the answer by using Google, reading a good study guide etc. I was late coming to C# (about 5 years ago) and there is still lots I don't know, but the articles here that cover the subject can answer most of my queries.
|
|
|
|
|
I'm on SO every day, however, I would not recommend that for absolute beginners. You'll be calling it quits after that experience if you don't really have a desire to continue, because answers were given in the context of the time when the question was posted. So I've been really discouraged after spending a great deal of time going down rabbit holes and spending money buying books on topics that have since become outdated.
The lack of surety in programming is part of the reason software is fragile.
|
|
|
|
|
IMO a forum is the wrong, erm, forum, as what you probably want is a more of a discussion of the pros and cons to different approaches, often including not just the technical discussion but help with evaluating third party solutions vs. roll your own.
As I've mentioned to others, I enjoy mentoring and would be happy to help. If this whole mentoring thing takes off with more than a few people, I might set up a Slack (or similar) site!
Latest Article - Code Review - What You Can Learn From a Single Line of Code
Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny
Artificial intelligence is the only remedy for natural stupidity. - CDP1802
|
|
|
|
|
Yeah, something like that! If I worked with developers, I could just hit one of them up on Skype, but I'm a firefighter and don't have access to that now. It will be less important to me when I get a job in the tech industry again, but until then, I'm pretty isolated.
The lack of surety in programming is part of the reason software is fragile.
|
|
|
|
|
@RickBishop It seems to me that you have been getting good responses on the QA forums here. Have you accepted any of the solutions ? Do you respond promptly to queries that ask you to clarify your posts ?
Compared to StackOverFlow, CP is 1000% gentler, kinder
cheers, Bill
«While I complain of being able to see only a shadow of the past, I may be insensitive to reality as it is now, since I'm not at a stage of development where I'm capable of seeing it.» Claude Levi-Strauss (Tristes Tropiques, 1955)
|
|
|
|
|
@BillWoodruff I'm very pleased with Code Project and I agree with you completely. I wasn't wanting to replace it. I was hoping for a resource to ask quick questions, nothing that requires digging through code and whatnot. Just ask for some quick advice, like "do you see this in the real world?" and "Is there an easier way to handle NULL values than == null?" stuff like that.
The lack of surety in programming is part of the reason software is fragile.
|
|
|
|
|
Hi Rick,
I think the kind of questions you mention are fair game for QA.
I hypothesize that some questions that appear simple are hard to distinguish from questions dashed off by folks who are looking for a quick fix for homework ... so many of those on QA.
Other questions that QA responders may see as being an indication that the OP is not engaging in basic research, is not taking the time to read the docs ... those questions, imho, may also get ignored, or dismissed with a quick reply.
For me, I know that anyone who shows responsiveness to my attempts to clarify questions in comments, or responds quickly, and in depth, if I respond with code or links to resources ... well, I am motivated to engage further.
cheers, Bill
«While I complain of being able to see only a shadow of the past, I may be insensitive to reality as it is now, since I'm not at a stage of development where I'm capable of seeing it.» Claude Levi-Strauss (Tristes Tropiques, 1955)
|
|
|
|
|
I'm uploading files to a server. The FTP class reports progress:
foreach (var file in publishInfo.Files)
{
Progress<double> progress = new Progress<double>(x =>
{
ShowProgress("", x);
});
client.UploadFile(file.FileName, targetFile, FtpExists.Overwrite, true, FtpVerify.Throw, progress);
}
then...
private void ShowProgress(FileEntity file, double progress)
{
}
I need to pass the loop object 'file' to the ShowProgress method. How do I get access it inside the progress callback?
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|
|
|
I have a stored procedure like this
PROCEDURE PRC_ABCD_GETALL (resultset_out OUT TYPES.cursorType)
AS
BEGIN
OPEN
resultset_out FOR SELECT * FROM ABCD;
END PRC_ABCD_GETALL;
using (OracleConnection conn = new OracleConnection(cnn))
{
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "PRC_ABCD_GETALL";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("resultset_out", OracleType.Cursor, ParameterDirection.Output);
OracleDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
result.Add(Construct(rdr));
}
}
but I'm getting error 'OracleDbType' does not contain a definition for 'Cursor' in
OracleType.Cursor. Any solution for this??
|
|
|
|
|
Hi,
I'm not familiar with OracleDB, however reading one page of documentation[^] suggests you might want RefCursor .
|
|
|
|
|
hi luc,thanks for reply . let me try it using refCursor
|
|
|
|
|
I'm using the code below to temporarily set a window to top most foreground. How can I return it to the standard function of being in the foreground depending on the last time it was touched by the mouse? I can't seem to figure out which uint32 to use to achieve what I'd like?
private static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);
private static readonly IntPtr HWND_NOTOPMOST = new IntPtr(-2);
private const UInt32 SWP_NOSIZE = 0x0001;
private const UInt32 SWP_NOMOVE = 0x0002;
private const UInt32 SWP_NOZORDER = 0x0004;
private const UInt32 SWP_NOREDRAW = 0x0008;
private const UInt32 SWP_NOACTIVATE = 0x0010;
private const UInt32 SWP_DRAWFRAME = 0x0020;
private const UInt32 SWP_FRAMECHANGED = 0x0020;
private const UInt32 SWP_SHOWWINDOW = 0x0040;
private const UInt32 SWP_HIDEWINDOW = 0x0080;
private const UInt32 SWP_NOCOPYBITS = 0x0100;
private const UInt32 SWP_NOOWNERZORDER = 0x0200;
private const UInt32 SWP_NOREPOSITION = 0x0200;
private const UInt32 SWP_NOSENDCHANGING = 0x0400;
private const UInt32 SWP_DEFERERASE = 0x2000;
private const UInt32 SWP_ASYNCWINDOWPOS = 0x4000;
private const UInt32 TOPMOST_FLAGS = SWP_NOMOVE | SWP_NOSIZE;
private const UInt32 NOTOPMOST_FLAGS = SWP_SHOWWINDOW;
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
SetWindowPos(this.Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS);
Thanks!
|
|
|
|
|
|