I've just checked-in a batch of code that wraps a dataset in a POCO so that it can be displayed in a property grid. This included figuring out how to dynamically set the name and descriptions of the POCO PropertyDescriptors from database entries, rather
than hard-coded attributes.
This is such a nice change from databinding datasets or writing handlers for datagrid events, that I feel like a 'proper' software engineer. I did a lap of honour around the office (luckily no one else had arrived by this point).
So what was the last coding task that had you punching the air and shouting 'YESSSS!" ?
Herbie
-
-
Hmm, not sure - I have a lot of victories that excite me, finally this morning I 'cracked' something regarding enabling a system where asp.net applications could have 'web stream providers', these basically abstract away how the url is generated (and handled), and how the streams of data are stored.
And it lets parts of our 'framework' code, request a storage stream where the storage and url is specified by the application instance.. we use this mostly for our preview handling framework, which needs to request streams to store say.. a thumbnail of an image its been told to preview.
It had to be very specific that the framework could discover and use these providers very easy, but the actual application instance had complete control over how they would be stored and what the urls for them looked like, it took me a long long time to get a pattern into my head that worked, given theres a somewhat circular dependency between the url part and the storage part..
So yea I'm pretty excited this morning, I even pulled a mockup of the interfaces out of my * this morning to see if it would actually work, and it worked on the first try, which is always something that makes me laugh - not because I'm a bad coder, but imagine you spent say.. an hour writing a testless prototype.. and at the end of it, everything worked on the first try.. -
a full-weight ASP.NET server control that customizes the columns of a table by using drag and drop and check boxes (client-side), similar to how in explorer you customize columns that you want to display/hide, just that here you could also arrange them, all on client-side without external dependencies, working in IE/FF/O/S
consider that a success because was kinda hard to do it, there was many performance and compatibility complications... -
Not really a coding success but a trouble shooting one...
A Dev here had to get a troubled laptop to boot one more time just to get some last things off it before it went back to dell for repairs.
Stupid thing would not pass bios for the anything. Stupid dev was at fault of course but was in a pickle so I was not going to kick them to hard.
So I tossed the thing into the freezer for 15 minutes.
Took it out and it booted first time....
Don't throw stones just throw money.....
-
http://www.partnersalesresources.com/GearUp/default.aspx
My first Silverlight project since going crazy learning it, and taking the Silverlight Tour in San Jose with Shawn Wildermuth(I recommend it).
Mainly because I did it in like 5-6 days(crazy overtime with it's deadline) when other vendors said it couldn't be done in the time alloted, which was I guess 2-3 weeks back when they said no
OT FTW!!!111!!!
p.s. I had the idea to blinky-blinky the lights on the printer. And it's only 1 line of Xaml for each light...hehe -
Figuring out a problem in fora not related to anything I've done or am doing, and finding out a week or month later that I really needed to know the problem I solved earlier.
I do empathise profusely with your assertion of databinding and handling events, but they are the things that "bring home the bacon" where the more interesting solutions are from a project manager or architects view, not economically remunerative or lead to a protracted project.
I think you can assume that most projects are first about getting the problem fixed or customer pleased, the eloquent coding and optimising always comes after. I know people always cringe when they look at code that they wrote that is a few years old, but it got the job done (at the time) -
Great q dr herb. really made me think back to my dev days.. the good old days.
it would have to be about 20 yrs ago now, I was writing Turbo C code for the Z80A on an S-100 card bus system that was running a dual station quartz crystal x-ray machine. I pulled an all nighter working on statistical analysis of the brag angles of quartz bars being xrayed, the shipping company arrived at about 8am and started crating the machine I was working on, another code change and another live test on the machine as the shippers were building a shipping crate around it. The EPROM took 45 minutes to erase and burn with new code and by 9am we had final code and a sealed crate. ahhh, the good old days, I really miss pulling all nighters coding.
the crate was packed and shipped out, the machine worked flawlessley for years and I moved on to more interesting things in other countries. It sure felt good that morning after working 24+ hrs straight to ship, and I mean literally shipping something physical to another country and have it arrive and work.
and now I script...
@harlock123 -> brilliant solution to a difficult problem. -
I remembered another one. (That happens to old curmudgeons like myself)
We were doing a demonstration of a new logic board that was going to be a prototype controller for all sorts of appliance's. I was responsible to putting the prototype together using the components on a proto board and wire wrapping them together.
I however being new to this sort of thing did not take into account that the wire wrapping from the backside of the board meant that the connections were mirrored thus backwards from the way I wired them. (DOH!)
Also being the eleventh hour we had no time to do it again. So... I realized that I could take all the chips off the boards other side. carefully bend the pins upwards 180degrees and insert them reversed and upside-down into their sockets.
It worked and I was able to pass it off as a security measure. (The techs around me knew better but the suits were none the wiser)
God I am old, that was like 25 years ago....
-
I tend to write code that's really close to the metal, and one of the supervising projects I got to help write was a garbage collector in C++.
There are many problems with garbage collection in general, but one of the tricky ones is what to do when you run out of memory on the heap. Generally this means you need to migrate all objects on the heap to a new heap, which is easy enough so long as you kept a reference to them, but you have to make sure that everyone with a pointer to an object on the heap gets their pointer updated so that it points to the new heap, otherwise they'll be pointing to dead data.
Basically the process goes thus:
1) Do a full collect.2) Try and find out which objects are still live, so you know which ones to move. This involves hideous volumes of assembler as you walk the stack to get all local variables and parameters that are currently being used.3) You create a new heap.4) You migrate every object from heapA to heapB5) You go through every object which is now on heapA and update all of its managed fields to point to the correct managed reference, which is now on heapB.6) You go back to the stack and you update all of the variables which are _live_ on the stack, updating their references to heapA to point to heapB.7) You return, and pray that your copious amounts of assembler, altering of EBP and ESP registers, migration of all live data and updating of the live stack worked.
All of the above steps need to work correctly, or the program simply dies, and all of the above steps need to be done at the same time - it's kind of hard to test each step one-by-one, so after a week of solid coding we ran the program and it worked, I did my lap of honour, and it was a proud, proud day. -
Yesterday, I got unsigned integer arithmetic working in Fortran 90 using structures (called types in Fortran) and operator overloading (called interfaces in Fortran) inside a module. This made some code that I had written earlier in the year start working after I rewrote it with the new unsigned integer arithmetic type.
Fortran 95 added support for unsigned integer arithmetic and pure user defined functions/instrinics (it has nothing to do with C++'s pure member functions and don't ask me to elaborate) and if I had been allowed to use Fortran 95, the amount of coding would have been cut in half (I would have had to emulate unsigned integer arithmetic) and it would have spared me from having to debug my unsigned integer arithmetic code, which had hard to find bugs that were in the code because Fortran doesn't let you use parameters the same way C/C++/Java/<insert recently developed language here>.
Today, I figured out how to do bit pattern copies from integers to floats (fortran calls them reals), which has been puzzling me for months (the documentation I have avaliable to read is really bad). This is all for the same project and it is among the first code I have ever written in Fortran. It is also my first real world project and I am not being paid a cent for doing it. Instead I expect to receive more work afterward and a recommendation when I apply for graduate school.
Anyway, I made alot of progress on that project lately because I have been using an IDE since Thursday. I installed a combination of Ubuntu Linux, Eclipse, Phortran (a Fortran plugin for eclipse), the Intel Fortran compiler, Photran's Intel Fortran compiler plugin, and alot of GNU stuff on my laptop. I also spent alot of time fiddling with configuration options until I could compile and execute a Hello World Fortran program in Eclipse. Thanks to that (and several papers other people wrote on algorithms related to the problem I am expected to solve that I went through heck getting), I expect to be able to wrap up my months long project in a few more hours and I will never have to write Fortran in a terminal window ever again.
-
Pretty much anything that involves more than 100 lines of JavaScript
-
lol, why?PerfectPhase said:
Pretty much anything that involves more than 100 lines of JavaScript
-
Cuz JavaScript stinks for anything larger than a screen of text...Ion Todirel said:
lol, why?PerfectPhase said:*snip*
I mean we have all these wonderful language constructs to help with all manner of tasks in computing and what does like 80-90% of the web glue depend on
JavaScript, and it stinks....
Maybe I am putting words in PerfectPhase's mouth but that's the way I feel about JavaScript
It Sucks dead badgers through steel conduit...
-
actually I disagree, I think JavaScript is a great language and that many doesn't appreciate it's power and think it's a tiny useless toy, you could do OOP in JavaScript, I wrote really huge client-side controls (1000+ lines of code if lines of codes means anything...) and I can tell, you can do complex/huge things and maintain control over itharlock123 said:
Cuz JavaScript stinks for anything larger than a screen of text...Ion Todirel said:*snip*
I mean we have all these wonderful language constructs to help with all manner of tasks in computing and what does like 80-90% of the web glue depend on
JavaScript, and it stinks....
Maybe I am putting words in PerfectPhase's mouth but that's the way I feel about JavaScript
It Sucks dead badgers through steel conduit...
-
Interestingly javascript is the one thing that can really depress me, every once in awhile I get a feature that gets the honour of being javascripted, as in - we've accepted that there is a need for more 'experience'.. say drag and drop.Ion Todirel said:
actually I disagree, I think JavaScript is a great language and that many doesn't appreciate it's power and think it's a tiny useless toy, you could do OOP in JavaScript, I wrote really huge client-side controls (1000+ lines of code if lines of codes means anything...) and I can tell, you can do complex/huge things and maintain control over itharlock123 said:*snip*
I write something and mess around get something, then I just start to notice how unreliably it is, some browsers run the code slow, some have alignment issues, and theres things where you just dont have enough control, like doing drag and drop say and the user scrolls, the scroll step cannot accurately be determined and so you end up with a dragging entity thats about 3" away from the cursor..
Usually then I remember the last time.. oooh yea thats why I hate javascript.. in terms of loose ecma like dynamics, actionscript is more fun, at least then its a much more reliable experience. -
harlock123 said:
Cuz JavaScript stinks for anything larger than a screen of text...Ion Todirel said:*snip*
I mean we have all these wonderful language constructs to help with all manner of tasks in computing and what does like 80-90% of the web glue depend on
JavaScript, and it stinks....
Maybe I am putting words in PerfectPhase's mouth but that's the way I feel about JavaScript
It Sucks dead badgers through steel conduit...
Yes that's pretty much it! As I spend > 90% of my time in c# and switching to javascript just hurts my head. Then I write something quite large and get in the swing of it and for one shinning moment I think this isn't that bad, then something breaks and the moment passes!
I really have been meaning to invest a few days in having a look at script# -
That sounds like how things are with me and Fortran. Code is really easy to write in C/C++ (I hate to admit it, but Java is easy too), but a pain to write in Fortran and the moment I think I have the hang of it, I need to modify my code to do things slightly differently (e.g. using the fortran equivalent of a global variable) and it stops working.PerfectPhase said:harlock123 said:*snip*
Yes that's pretty much it! As I spend > 90% of my time in c# and switching to javascript just hurts my head. Then I write something quite large and get in the swing of it and for one shinning moment I think this isn't that bad, then something breaks and the moment passes!
I really have been meaning to invest a few days in having a look at script#
Thread Closed
This thread is kinda stale and has been closed but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.