@IvenBach I've been shifting bits a lot lately. The VBA binary is compressed using byte packing and bit-shifts, and I had to write a FAT12 parser over the weekend which was all 12 bit packing. But they're edge cases.
@Hosch250 You wait ages for a bus, and then 2 4 come along at once.
but seriously, most agencies only care about the commission. They'll have you accept a job/rate that isn't appropriate, and they'll have clients accept a candidate that isn't suitable.
@Mat'sMug @Hosch250 it's better than working a checkout
but besides, as a graduate, the rate doesn't really matter. It's getting some experience that will add value to your CV, and make the next job attainable.
@Hosch250 True, and good experience it is, but it's not subject to commercial pressures, and it's not typically dealing with all of the politics that comes in a paid job.
> The Visual Studio Tools for Office runtime automatically cleans up resources used by the custom task pane when the add-in is unloaded. Do not call the Remove or RemoveAt methods in the ThisAddIn_Shutdown event handler in your project. These methods will throw an ObjectDisposedException, because the Visual Studio Tools for Office runtime cleans up resources used by the CustomTaskPane object before ThisAddIn_Shutdown is called.
contracting get's higher daily rate, but overlooked for training/promotion/benefits. Permanents have better job security, but can earn bonuses, have substantial benefits, career planning and progress.
@Mat'sMug IKR - I wonder if there's some way to use a dummy ToolWindow that isn't subclassing or using WPF. If we can reliably have it killed by VBE first, it could tear down the RD ToolWindows?
@Hosch250 the other way of looking at it is $30/hour towards building your experience and funding a move to Alaska out-of-state.
Start your developer career with a paid #internship. A few summer positions are still left! Browse jobs →… https://twitter.com/i/web/status/857354676748111873
@Hosch250 That's one big sacrifice. I love my dog, but I'd find a way of moving and keeping her.
In my experience, what you do and accomplish in your twenties, will largely determine what you do and accomplish in your thirties, which in turn will largely determine what you do and accomplish in your forties.
@Mat'sMug It seems common across the add-in models (VBE, VS, VSTO) that the Windows aren't destroyed on Close, and that the Shutdown event is too late to tidy up. I think the ToolWindows would be OK except for the subClassing... But VBE just doesn't expose a suitable event that can trigger tear-down, and cleaning up the subclassing needs to occur before the ShutDown event.
@Mat'sMug I think I worked out how to write a VSTO add-in that can deploy via ClickOnce and allow a user to use late-bound calls to retrieve data from the add-in. I create a callback in the VBA, and call it from the VSTO add-in, passing in a COMVisible object. The VBA callback then stores that object in a private variable, and other VBA code can then use that variable to call into the object's methods in the VSTO add-in.
it's messy, but it doesn't require anybody to have admin rights... if it works.
@Mat'sMug hence the dummy ToolWindow suggestion. Do you remember seeing whether the windows are closed in a particular order (maybe order they were created)?
Yeah, I've read about this until my head spins, but I don't know what I'm worth, what the going rates are, or anything.
I figure that 90 days into the job, I should know their systems enough to be hitting my stride, and at that point, I figure I'll be worth close to 70-80k. But again, I'm new to the game, and I may well be estimating high.
But again, I'd guess I'm more experienced and a quicker learner than most people with that experience. RD and Roslyn have trained me in pretty good, I'd say.
And I do have three years of C# experience, and one additional year of C++.
I have no doubt, but you have to sell your skills to the company, and that means getting in front of them. Too many companies discard/overlook good candidates because they're too focused on artificial metrics like number of years of experience rather than actual ability
and there's discrimination in the workforce too. Even if you don't hear it, there will be people saying "You're not even 30 yet, you can't possibly know anything". Smart managers won't care and will just choose the best talent (but how do they identify and find that talent), but there's too much bias and group-think at many employers
@Hosch250 Why can't you bring your dog out of state?
@Kaz I made that exact mistake in my current role. I was already within the company, different department though. My hiring manager has a DBA. I got two interviews and was told I would hear back later, and also that there were more candidates they were interested in. After asking for only a few grand more than what I was making I learned I was the only candidate. This guy was ecstatic to get someone for that price who could automate everything his team needed.
Even worse, I was teaching my co-workers on the job within two weeks, and a month in I was transferred to a new role because I had automated everything and I did nothing all day.
@BrandonBarney Sounds like your manager doesn't appreciate the value of having an effective automation engineer. IMO, the correct response to "I've automated my entire job away" should be: "Awesome, lets move you up to the next organisational level and see what you can do to an entire department".
@Kaz That is actually exactly what happened lol. My new team is automation for the entire department. When my new boss first got me he gave me an automation project, expecting to have to teach me more advanced vba. He ended up realizing he couldn't teach me anything, and now I am training him and my coworker. The difficulty though is I locked myself into a low salary right before the new budget negotiation, and the official transition of me going to the new role is taking months.
@Kaz TLDR Not being a good negotiator locked me out of financial groth, but thankfully didnt lock me out of career growth.
If it was in a place like near the MS/Boeing compounds and I had a job with one of them out in Washington, I might be willing to buy early, but I'd still need to wait for a while to get my local credit better.
In my case my wife is making a decent paycheck, we have lived in the area for our whole lives, and we hated the apartment we were in. It was just a given to a degree.
From the front page of an exam paper I recently saw:
"Your Answer Sheet will be read only by a dumb machine. Do not write or doodle on the sheet except to mark your chosen options. The machine 'sees' all black pencil markings even if they are in the wrong places. If you mark the sheet in the wrong place, or leave bits of rubber stuck to the page, the machine will 'see' a mark and interpret this mark in its own way."
> The hotkeys seem to work regardless of whether or not the program is in the foreground. i.e. When I press Ctrl+T in another program, the find symbol popup opens up in the background and stops the code from running.
what happens if the temp tables are actual tables instead?
how often is the source data updated?
you could have a SQL Agent job run overnight (or every hour, ...whatever) to recreate the working tables and do most of the work, and then the actual user-facing query would just pick up the results and filter
> When the Indent Current Procedure feature is used while the Rubberduck code parser is unable to complete without failing, all of the UserForms are removed from the project.
ask the DBA (or whoever is in charge of the server) to create a schema that you would own, where you could CREATE TABLE and DROP TABLE and TRUNCATE TABLE, and if part of your job is to write queries and make them efficient, you require SHOWPLAN permission everywhere ffs
Like I know Oracle permissions are dumb and they can't give me permission to write temp tables without giving me permission to write to other tables, is the way I currently understand it
(So I can only do CTEs in Oracle, which is frustrating)
I was just hoping to avoid the use of 'On Error Resume Next'. It always looks ugly to me. In my case I ended up just doing something like 'On Error Resume Next: Worksheets("SheetName").Delete:On Error GoTo 0. I just need to check if it exists so I can delete it before creating a new sheet with the same name.
It is reasonable in other projects, and I have used that same exact kind of function in other cases. In this case though it is literally one subroutine that needs it, and there's four subroutines total.
It would be harder for someone to understand a function call where I would say 'If Exists then Delete' versus 'Force a delete if possible' kind of case. And I do want to avoid error resume, but I would either have to loop through worksheets for the SheetExists, or use something like Iven's (still needing the on-error)
Is there any good way of keeping Class files up to date in macros? I have a class file I use consistently, but time after time I find a project that brings a problem to light, or exposes a feature I need, and then ultimately other projects become out of date because of it.
If it needs to be installed at all, I dont think they can. I also need it to be as simple as 'Heres the macro in an excel workbook'. When I say I am dealing with people with varying technical competency...that can be difficult at times.
heck, you could have a .ps1 or .bat script that runs on startup and fetches a centralized "latest version" of the add-in and overwrites it in %appdata%
That may be worth looking into if I can 'dump' it remotely. I think I know the add-ins folder you are referencing, but I have no way of remotely accessing machines. The best I can currently do is 'take this'. At that point it is easier to just send them the updated version of the workbook
That may work if I can find a network folder that I can use
I have no functionality with VB6 which it is written in
Ultimately my reasoning is just that if there is any way to get something that recognizes the #If Foo then structure. and then go around it, and deal with that specific portion anoher way
that's the problem actually: because the parser only sees WS tokens, the rewriters don't get the full picture, they're missing the bits we removed during pre-processing
I'm pretty sure RD's parser is the single most accurate and reliable VBA parser out there. Everything else that tries to parse VBA code, @ThunderFrame can break
to be fair, @ThunderFrame can break our stuff too
most parsers blow up when you give them line continuations
and then, we don't just parse/tokenize the code: once we do that, we go and resolve identifier references - if our resolver worked 100% flawlessly, we could write a VBA compiler that outputs C# if we wanted