Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

VB Hedz....Where do you work?

Options
  • 15-01-2003 1:13am
    #1
    Moderators, Society & Culture Moderators Posts: 2,688 Mod ✭✭✭✭


    Ok seems lots of you here are using Visual Basic, and lots more are looking for work in it, So to help get a bigger picture of what the average Irish VB programmers life is like, we'll ask you all where do you work or study and what kind of projects are you doing or have you done??

    Myself....

    I work as a VB developer (2 years) for a Dublin based company called Westpier Software,

    most of the stuff is front end VB GUI screens, backend Access Database and SQL transactions. or else IBM MQ Queues and message handling. Also image handling and workflow stuff too.

    Ive also managed to create a Windows NT 4.0 Service using Visual Basic (and microsoft said it couldnt be done!!!) Ive used and developed tons of ActiveX components, and used C Dlls.

    so spill it here and tell us who you work with and what your doing there!

    :rolleyes:


Comments

  • Closed Accounts Posts: 9,314 ✭✭✭Talliesin


    I work for Spin Solutions (DeVore, Regi and Vexorg's company). I mainly work on Index, our CMS project.

    Programming wise this mainly involves GUI, ADO and XML.

    The "fun" stuff is a few things that required some VTable hacking (VTable hacking is very unsafe but enables you to do an awful lot of the stuff that people will tell you can't be done in VB) and a bunch of classes that do API-based stuff, particularly a lot of GDI stuff.

    I also do a wee bit of C++ which I have to say I find a lot more pleasant even though I am nowhere near as proficient as I am in VB.


  • Moderators, Home & Garden Moderators, Regional Midwest Moderators, Regional West Moderators Posts: 16,724 Mod ✭✭✭✭yop


    Contractor so no where is my home - :confused::(

    Mainly VB - SQL Server, Access, Oracle.
    Use ADO, XML, ASP and of late .NET and JAVA

    Work also for myself so work from home.


  • Closed Accounts Posts: 5,564 ✭✭✭Typedef


    www.kbs.ie

    VB,SQL, C++, Windows/Linux sysadmin & installation.

    I also do contract Linux installations and administration, cheaper then most, but for a damn sight more money then KBS pay me for the grunt UI & DB dev I do.

    I work for food... hire me.


  • Closed Accounts Posts: 7,230 ✭✭✭scojones


    that site has eircom colours. DIE!!


  • Registered Users Posts: 1,997 ✭✭✭The_Bullman


    you also asked about students right?

    I am studying software development(1st year) in Dundalk IT. Unfortunatly the progress we are making seems to be a little slow, especially in the programming side of things(which is only vb at the moment).

    I am hoping that things will pick up soon, as it is a little slow here at the moment


  • Advertisement
  • Closed Accounts Posts: 9,314 ✭✭✭Talliesin


    Wouldn't worry too much about the course having done "only vb at the moment". If it's taught well then the key lessons will be about good programming practices that translate into other languages.

    Unfortuantely VB is often taught badly. Courses and books seem to often go roughly:
    1. Forms + the built in controls
    2. Basic language features
    3. Other controls
    4. Using ActiveX Components that aren't controls.
    5. Building controls
    6. Classes (near the end!) 101
    7. Building ActiveX components that aren't controls
    8. Interface-based Polymorphism.
    The only justification for this is it matches the chronological order in which features were added to VB.
    Ideally they should go more like:
    1. Basic language features.
    2. Classes
    3. Interface-based polymorphism.
    4. Forms (as a special kind of class).
    5. Using ActiveX components that aren't controls (as a special kind of class).
    6. Building ActiveX components(as a special kind of class).
    7. Using Controls (as a special kind of class).
    8. Building Controls(as a special kind of class).
    A lot of common miscomprehensions would be gone.


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    I´m not working at the moment, I´m travelling. But when I am working:

    VB, SQL, PL/SQL, Java
    Oracle, SQL Server (a little bit)
    and some ms-office.

    I´m familliar with the likes of FileNet and Paragons imaging stuff. I´ve done a bit of WIN32 API work too, not as much as I´d like (and nowhere near what Talliesin is doing), most of its been in VB but I´ve done some with InstallShield. Setup programming yes but its a good package is installshield, quite powerful.

    On top of that I have all the other development responsibilities. Documentation is one of my stronger skills so I do a lot of that (for my sins), generally I´m a senior developer so I also make purchasing choices when it comes to toolkits and software, write test scripts, mentor to junior staff, do design work, loose my temper with managment and get made redundent.


  • Closed Accounts Posts: 5,564 ✭✭✭Typedef


    Aside: Someone mention a 'good' reason to use polymorphism.

    Before someone goes there, lets disjunct operator overloading from the definiton of what polymorphism is.

    Now, someone give me a 'good' reason to use polymorphism, in the virtual function sense where the function that gets called 'eventually' is based on the object type that is calling the function.

    Perhaps loading of new objects based on class (x) from a shared objects .so or dynamic link libraries .dll would be a valid use of polymorphism, but .......


  • Registered Users Posts: 21,264 ✭✭✭✭Hobbes




  • Closed Accounts Posts: 9,314 ✭✭✭Talliesin


    Aside: Someone mention a 'good' reason to use polymorphism.
    Seriously? Isn't this like "a 'good' reason for eating food instead of living of chewing gum you find on the street"?

    VB uses polymorphism extensively. That's why when you update a DLL you don't break every program that uses it. It's also why you can have functions that take a parameter of type Form and use it whether it's actually DialogForm1 or DialogForm2.

    Okay, here's an exemplum of explicit polymorphism actually in a program:

    Index (amongst other things) allows one to edit documents that conform to a certain XML structure.

    This structure is, by necessity, complex in terms of what is allowed where, and many elements allow mixed content (that means a mixture of elements and text to any non-XML/non-HTML ppl).

    Obviously I have classes modelling the various types of element, and classes modelling text nodes.

    A non polymorphic design would make many tasks that all of these elements have to perform in slightly different ways (serialising to XML, drawing to a Device Context, receiving a new child element, etc.) could be done in a variety of mechanisms, all of which suffer severely from efficiency and/or maintenance issues.

    About the cleanest such mechanism that doesn't use late-binding (far to slow for something like this were dozens of calls would be needed in one window-update) would be something like:
    Sub DrawNode(ByVal Node As Object, ByVal hDC As OLE_HANDLE, ByRef CurDrawPos as Point)
    	If TypeOf Node Is Paragraph Then
    		DrawBlockNode Node, hDC, CurDrawPos
    	ElseIf TypeOf Node Is ListItem Then
    		Ellipse hDC, CurDrawPos.x, CurDrawPox.y, CurDrawPos.x + 10, CurDrawPos.y + 10
    		CurDrawPos.x = CurDrawPos.x + 15
    		DrawBlockNode Node, hDC, CurDrawPos
    	ElseIf TypeOf Node Is Text
    		Dim tDraw As Text
    		Set tDraw = Node
    		DrawText hDC, tDraw.Contents, Len(tDraw.Contents), DrawRectFromPoint(CurDrawPos), FORMAT
    	' Lots More Such TypeOf Tests
    	'....
    End Sub
    
    That's a gross simplification helped by the DrawBlockNode sub (which presumably has to either to similar testing if it isn't to use late-bound mechanisms to obtain the children of the node to call DrawNode on each of them) and also by ignoring a few issues which mean that a naïve call to DrawText wouldn't actually work in practice.
    In comparison polymorphism would allow us to rewrite the above function as:
    Sub DrawNode(ByVal Node As DocNode, ByVal hDC As OLE_HANDLE, ByRef CurDrawPos as Point)
    	Node.Draw hDC, CurDrawPos
    End Sub
    
    And leave it up to code in each node to deal with the issues of how this happens (most of them by faking inheritance with delegation so they can share much of the code).
    Not only is the above a lot clearer, easier to deal with when a new node has been added, and less prone to error. But it's also more efficient as a series of RTTI tests (TypeOf) have been replaced with a polymorphic call (behinds the scenes this becomes a call through a function pointer).

    In fact in the real code I don't use hDC, but a polymorphic wrapper called DeviceContext which allows me to use RAII to obtain the handle.
    RAII is very important here, firstly because so much work happens with the hDC that there are dozens of places where an exception could conceivably happen and ensuring clean-up any other way would require very complex error-handling code. Also the clean-up required differs on how the hDC was obtained, so I have different classes (ScreenDC, ClientDC, PaintDC) which all have the polymorphic interface DeviceContext, but which carry out different methods for obtaining and destroying or releasing the hDC.


  • Advertisement
  • Closed Accounts Posts: 9,314 ✭✭✭Talliesin


    Actually, while I claim polymorphism is an alternative when late-binding isn't practical, late-binding is polymorphism in disguise.

    It works by all of the objects involved being derived from IDispatch, with IDispatch providing mechanisms for obtaining functions which implement the late-bound calls.

    VB hides this, but all VB classes are really subclasses of IDispatch, including private classes.


  • Registered Users Posts: 2,781 ✭✭✭amen


    VB uses polymorphism extensively. That's why when you update a DLL you don't break every program that uses it.

    can you explain that please ?

    I always though that was more to do with binary compatibility than polymorphism?


  • Registered Users Posts: 2,494 ✭✭✭kayos


    Well I am working as a Senior Architect in http://www.dmtintl.com after spending 4 years of my life working here (hold on I want those 4 years back :D) .

    Any way these days I mainly use such hi-tech tools like Word, Excel, Project, Visio etc. but sometimes when I'm good they let me do some .NET and SQL :p

    Before I got roped into writing documents all day I spent my time knocking together insurance systems for the likes of One Direct and Hibernian in VB6. When I was not using VB6 it was either OLAP/SQL/Crystal reports (I hate crystal reports).

    Any way all my code was backend so I have been lucky and avoided all the UI stuff :).

    kayos


  • Closed Accounts Posts: 5,564 ✭✭✭Typedef


    So by inference the 'only' practicle place to use polymorphism is in extending the sorts of functions that can be called apres the fact.

    So unless you do plan on having an application that is based around dlls (or) shared objects polymorphism serves little purpose really.

    Myself one of the things I find neat, is operator overloading, say of the '=' character to call a function assigning one sort of data-type to another safely.

    Still, I wouldn't go as far as to call VB 5/6 OO.

    A procedural language that supports aspects of object orientation 'maybe'.

    But ostensibly crap, for reasons like. Despite it being 'theoretically' possible to replace the DefWindowProcedure on a VB form with your own user defined version of the function, when you come to practicle application of the theory in that regard it is the case 'in my experience' that the theory falls flat on it's face.

    Compare this problematic replacement of the DefWindowProc function for a VB style form to for example building 'each' form from classes defined in .bas modules or simply building your forms C++ style. Yes I accept VB facilitates RAD, but it does also in my opinion bring a diminution of functionality vis-a-vis interface with the underlying guts of the WinAPI.


  • Closed Accounts Posts: 5,564 ✭✭✭Typedef


    kayos

    Crystal reports (I hate crystal reports).


    If I had a big stick, and a room filled full of Crystal execs.....

    </daydream>


  • Closed Accounts Posts: 9,314 ✭✭✭Talliesin


    I always though that was more to do with binary compatibility than polymorphism?

    It's both:

    CoolClass is provided by CoolCom(v 1.0)

    CoolCom(v 2.0) adds methods to CoolClass.

    CoolClass in v2.0 in cannot have binary compatibility with CoolClass in v1.0. Hence stuff breaks.

    Instead v2.0 can have CoolClass2 which implements the interface of CoolClass. To older code that uses CoolClass CoolClass2 will remain cool. To new code CoolClass2 is even cooler because of the new methods.

    *backflip and dismount* Ta da!


  • Closed Accounts Posts: 9,314 ✭✭✭Talliesin


    Originally posted by Typedef
    So by inference the 'only' practicle place to use polymorphism is in extending the sorts of functions that can be called apres the fact.
    Where are you getting that "only" from? In my example I wasn't extending anything, there is no "unextended" behaviour for the draw call (except to throw an error noting the obvious mistake).

    This is a bulletin board, not a 6 week course in OO!
    So unless you do plan on having an application that is based around dlls (or) shared objects polymorphism serves little purpose really.
    One decide on whether you are going to use shared objects and/or dlls according to the application model, not the other way around.
    Myself one of the things I find neat, is operator overloading, say of the '=' character to call a function assigning one sort of data-type to another safely.
    Indeed. In a lot of cases that can go hand in hand with polymorphic techniques. A lot of times I've wished VB6 had operator overloading, although it's always something you can live without (a notational convenience only).
    Still, I wouldn't go as far as to call VB 5/6 OO.
    I'd say it's sucky OO. It has as much OO has some of the languages that were first so labelled. But yes it does lack a lot of features that are very important in OO theory (inheritance being sorely missed by anyone that has to do much VB - you can fake it with delegation but that's messy).

    But ostensibly crap, for reasons like. Despite it being 'theoretically' possible to replace the DefWindowProcedure on a VB form with your own user defined version of the function, when you come to practicle application of the theory in that regard it is the case 'in my experience' that the theory falls flat on it's face.
    You what?
    Replacing DefWindowProcedure is a crucial technique for any professional VB coder. How on earth can you say that the "theory" of doing so falls flat?

    Compare this problematic replacement of the DefWindowProc function for a VB style form to for example building 'each' form from classes defined in .bas modules or simply building your forms C++ style.

    A comparison I do frequently when designing applications on a case-by-case basis. RAD is good, but not God. RAD doesn't make VB better than C++, nor is C++ better than VB. There are lots of cases were one is clearly better than the other, and a great many were there are reasonable arguments for either. A good program design will consider the advantages of each, not go with one for largely ideological reasons.


  • Closed Accounts Posts: 5,564 ✭✭✭Typedef


    Replacing DefWindowProcedure is a crucial technique for any professional VB coder. How on earth can you say that the "theory" of doing so falls flat?

    On the version of VB 5 we use here running SP 3, even the trivial examples provided on the NET with one form and one .bas containing the new WindowProc function and calling the old one, when literally copied and pasted into the pertinent areas of the VB project 'crash' in the development environment and crash when compiled.

    Like so many things in Windows, it's broken 'by default'.

    Apparently if I took the time to convert (n) thousand lines of code to .NET and upgrade the client site (missing out on the VB 6 iteration), rolling your own window procedure is trivial, not so in VB 5.

    It is supposed to be trivial in VB 5, but the thing falls over and before 'anyone' goes there, downloaded code and code copied and pasted from the great cake into the pertinent VB areas falls over, without a quiff of interference from Typedef.

    Funnily enough, I'm not surprise, because the code to replace the DefWindowProc function requires usage of a VB pointer hack, and since VB wasn't really supposed to have supported pointers, why am I not surprise that the replacement of the DefWindowProc function is 'not' a viable thing to do to a commerical application under VB 5 in so far as I can tell, due to breakage arising from a 'typical' m$ apres the fact breaking of things.


  • Closed Accounts Posts: 9,314 ✭✭✭Talliesin


    Sorry, don't have VB5 here, so I wouldn't be able to see if it is truly impossible or if you are having issues.

    I've done it in VB6 a lot though, don't even think of it as an "advanced technique".
    the code to replace the DefWindowProc function requires usage of a VB pointer hack

    Still shouldn't have those issues, since AddressOf is "official" and documented.

    When you use VarPtr, StrPtr and ObjPtr then you're really crossing into the unknown!


  • Registered Users Posts: 4,676 ✭✭✭Gavin


    Just to hop onto the bandwagon. ( hmm.. maybe I should make a new thread, anyway we'll see wot happens)

    What's the state of play as regards C++ MFC programming out there ? Are there many people working in it ?

    During my INTRA ( work placement, www.videsti.com ) I was doing 6 months of C++/MFC and got to know MFC fairly well. Would be interested in possibly continuing it for a while anyway, so curious to see how commonly it is used. It seems to be all VB people on this board..

    Gav


  • Advertisement
  • Registered Users Posts: 14,714 ✭✭✭✭Earthhorse


    I was hired nine months ago on a three month contract to test the Excel VBA add in of a consultancy firm.

    It didn't work; so I slowly built up my knowledge of VB/VBA through what was in the program itself and MS help. I went permanent this January.

    Trying now to expand my skillset. Have a book on Java at home and I've done some of the exercises but it's hard keep up the pace when you're as lazy as I am.

    But enough, I feel like I've hijacked this discussion on polymorphism...


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    Originally posted by Earthhorse
    I was hired nine months ago on a three month contract to test the Excel VBA add in of a consultancy firm.

    It didn't work; so I slowly built up my knowledge of VB/VBA through what was in the program itself and MS help. I went permanent this January.

    Nice :cool:

    congrats.


  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    Originally posted by Earthhorse
    I was hired nine months ago on a three month contract to test the Excel VBA add in of a consultancy firm.

    It didn't work; so I slowly built up my knowledge of VB/VBA through what was in the program itself and MS help. I went permanent this January.

    Trying now to expand my skillset. Have a book on Java at home and I've done some of the exercises but it's hard keep up the pace when you're as lazy as I am.
    Respect ;)


  • Moderators, Society & Culture Moderators Posts: 2,688 Mod ✭✭✭✭Morpheus


    OK! this was MY thread!

    Im a VB programmer and ive gone from GUI to activeX to C dlls,to Isis papyrus interfacing, an NT service (that actually worked),MQ Series, Topcall, Staffware Workflow, and GOD knows wat else, ive polymorphed and used .bas modules...etc...

    Problem is, its been 3 months since i had a VB job, the f*ckers let me go after 2 years of blood sweat and tears! ( im now searching for work, while holdin down a retarded temporary day job that a one armed chimpanzee would find boring, sending orders of stationary off to the likes of IBM and Microsoft. Ive even considered slipping a copy of my CV into one of the stacks of A4 paper we send em!!

    Im trying to avoid recruitment agencies and was beginning to think there are no VB jobs out there, so i wanted to see if there were (A) any VB programmers and (B) rather self gratuitously where u worked in the hope i might strike up an interesting conversation along the lines of"oh your an unemployed fellow VBer, hmmm i know of someone looking for someone like you!" or "hey try whipping your CV off here" etc,

    Ive some Java experience and ive done advanced java nd VB courses outside of my degree from DUNDALK IT (reason ur vb programmin is coming along so slow up there is probably cos uv got smelly old Anne Cummins teachin you!:rolleyes:

    but PLEASE dont hijack my thread to discuss VB programming niceties. it just makes me mad....:mad: and when i get mad... things get bro.... "FZZZZT...CRASH....SMASH....WHACK".....ken...

    anyway, its been....emotional.;)


  • Closed Accounts Posts: 5,564 ✭✭✭Typedef


    Whatever man. www.fas.ie .

    That is a good starting point in a jobsearch, 'note' any jobs that advertise a requisite language skillset are probably only present so that foriegn national (x) * can get a visa.

    *preferably a girl
    *or somebody up on the intricies of virtual functions muhahaha

    edit : kudos to you Earthhorse


  • Closed Accounts Posts: 9,314 ✭✭✭Talliesin


    Originally posted by Morphéus
    but PLEASE dont hijack my thread to discuss VB programming niceties.

    The diversions came naturally from "what kind of projects are you doing or have you done?". This is a programming board, the only point for having a thread like this is it allows one to look at what can be done with the language, and what makes sense to attempt in the language.
    so i wanted to see if there were (A) any VB programmers and (B) rather self gratuitously where u worked in the hope i might strike up an interesting conversation along the lines of"oh your an unemployed fellow VBer, hmmm i know of someone looking for someone like you!" or "hey try whipping your CV off here" etc,

    This is not a recruitment board. You can hardly compain if the discussion doesn't go in a directly that aids you to do something this board is not for.
    it just makes me mad....:mad: and when i get mad... things get bro.... "FZZZZT...CRASH....SMASH....WHACK".....ken...

    and when i get mad users get banned :)


  • Moderators, Society & Culture Moderators Posts: 2,688 Mod ✭✭✭✭Morpheus


    ok ok... point taken, i wont break anything!

    i really did feel like there were no VB programmers left til i came here (to boards.ie) recently, so i wanted to see where u worked and what sort of stuff u did.

    Anyone used VB.Net and VB6.0... is the learning curve a steep one to trangress?

    im revising Java and VB now, in vb its particularly SQL Databases stuff thats current in the job market, but what of this .net stuff? is it learnable from books, or is it necessary to shell out on a course? whats the demand like for the .net languages?:cool:


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    Try a recuritment agency, really. Its better than what you´re doing now.


  • Closed Accounts Posts: 7,230 ✭✭✭scojones


    Try the jobs section of ireland.com. It's looks good!


  • Advertisement
Advertisement