The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
1. The lounge is for the CodeProject community to discuss things of interest to the community, and as a place for the whole community to participate. It is, first and foremost, a respectful meeting and discussion area for those wishing to discuss the life of a Software developer.
The #1 rule is: Be respectful of others, of the site, and of the community as a whole.
2. Technical discussions are welcome, but if you need specific programming question answered please use Quick Answers[^], or to discussion your programming problem in depth use the programming forums[^]. We encourage technical discussion, but this is a general discussion forum, not a programming Q&A forum. Posts will be moved or deleted if they fit better elsewhere.
4. No politics (including enviro-politics[^]), no sex, no religion. This is a community for software development. There are plenty of other sites that are far more appropriate for these discussions.
5. Nothing Not Safe For Work, nothing you would not want your wife/husband, your girlfriend/boyfriend, your mother or your kid sister seeing on your screen.
6. Any personal attacks, any spam, any advertising, any trolling, or any abuse of the rules will result in your account being removed.
7. Not everyone's first language is English. Be understanding.
Please respect the community and respect each other. We are of many cultures so remember that. Don't assume others understand you are joking, don't belittle anyone for taking offense or being thin skinned.
We are a community for software developers. Leave the egos at the door.
I have the basis for what might be an interesting article in and of itself within my MIDI library.
There's a very tricky call i have to make that relies on passing essentially variable length structs, and consequently, the .NET marshaller cannot handle it out of the box. Instead of using StructLayoutAttribute and MarshalAsAttribute to mark up your structure and p/invoke function calls, you basically need to use StructLayoutAttribute and then use the Marshal class methods to copy the variable length portion in manually.
I don't know how many people have run into P/Invoking into C style libraries that take variable length structs, so is anyone interested in this?
I'd rather put this out there up front before I spend time and effort on an article that nobody cares about, and this is kind of arcana.
My biggest achievement along the same lines I can't show in code, a) because it was commercial - wrapping a c++ PGP library and creating a C# layer for it, b) iirc it was relatively 'simple' structs etc
First make it work
Then make it work *fast*
Then find out why it doesn't work anymore
Then ask for an actual test budget/timeline for projects.
Then get blown off.
Then ask a coworker to look at the code
Then hack it to work
Then make it work with a new feature
Then make management happy until the customers start calling because it blew things up.
Then ask (again) for an actual test budget/timeline for projects.
Then make it tested.
Then make it work
or something like that.
(cowboy coding in the dotcom boom 1990s trying to serve way more pages than servers were worth in those days and on impossible timelines)
I do like that companies I worked for started realizing that actual development lifecycle and testing was important, though sometimes it took some failed projects.
those were the salad days.
I'm sure the above has many variations, and everyone can come up with one. We all have war stories. It's what makes it fun.
- Make a super techy proof-of-concept, fast as Elephant!
- Made it. [Not me personally but I saw it happen.]
- They sold it.
- They sold it again and again and...
- Now add a bunch of features!
- Why the Elephant is that so hard? Who the Elephant wrote this pile???
"If we don't change direction, we'll end up where we're going"
You must be with the advanced team.
- Discuss a feature in a meeting.
- Decide it is feasible.
- Manager tells the sales team.
- Submit a budget and time frame for development.
- Sales team sell the feature as completed.
- Manager wants to know why the feature has not been completed.
- Ask management for budget approval.
- Sales manager goes ballistic because he has a pissed off rep and customer.
... it goes on and on and never gets better!
Never underestimate the power of human stupidity -
I'm old. I know stuff - JSOP
It's 2000, the peak of the telecom bubble. An all-hands meeting, maybe 250 people in attendance. My boss, the VP of Engineering, is Sri Lankan. Best boss ever. No nonsense, and no tolerance for corporate politics. Calls stuff like that boo-sh*t because Tamil lacks the ll sound in bull. But only in his staff meetings.
He gets up to speak and laments how hard it is to find qualified developers. He describes the people coming in for interviews, saying "We have lots of Joe Blows, but no Joe Blow jobs." Laughter, but probably a lot more than he expected.
Totally innocent. He would have been absolutely mortified if he'd realized the double entendre. Today, some snowflake would have gone whining to HR, and his job might be in jeopardy. Back then, no big deal.
At COMDEX in 2000 some coworkers (with our CEO) threw burning pizza boxes out the window of their hotel. I had nothing to do with that particular incident of debauchery, but there are others that happened during those couple of weeks that I won't mention outside of vegas. I was however, in the car when said CEO drove the rental car up a curb and blew out the tire, he drove it back on the rim and they gave him an SUV instead. Vegas is full of enablers/ Fun times.
I lost the keys to our rental car in 1986 while glacier trekking on Galdhøpiggen in Norway. I had foolishly put them in my pocket, and they must have fallen out when I sat down somewhere.
So I called the NAF (Norwegian Automobile Assocation) and explained the problem. They would send a guy out first thing Monday morning. It's now Friday at 5pm, and I explained that our flight left Oslo, many hours away, on Sunday.
OK, they'd send someone out in the morning. But this was a little different. He had to break into our car, take apart the steering wheel, and bash the ignition lock into submission. Something that looked like a potentiometer was left hanging from the steering wheel, and the car had to be started with a screwdriver.
When I dropped off the car at the Oslo airport and the check-in lady asked for the keys, I handed her the screwdriver. I told them to charge my credit card for the repairs, but they never did.
I'm guessing it's still like that in a lot of places.
Except that very few now care about making it fast (or not a memory pig). Our customers used to raise hell if the system's capacity degraded by more than ~2% in a major release, which was naturally the result of their feature demands.
Nowadays, "stateless" programming is all the rage. Good Lord, we would have been out of business yesterday.
I've been out of the field for a decade, and I think it grew up while I was away.
I don't know, because I don't work in it directly anymore, but I get little impressions here and there, everything from friends, to the ads I see on code project, to the types of developers I run into these days, it seems like the industry is more straight-laced than it was in the 90's and early aughts.
Like, me, I stand the hell out wherever I'm at, whether I mean to or not. I'm very eccentric (technically actually quite mad), and it used to be almost a selling point in the field. Now I think it would be a red flag to a lot of potential employers, like it is in a "real job"
So for you breadwinners and wageslaves in the field who have been in it for awhile, is this impression anywhere near accurate, or is the industry still a sideshow of geeks *and* freaks?
"Eccentricity" isn't a positive trait so it's not something companies particularly look for. Especially big ones and ones with HR departments as they have to think about team cohesion and they tend to not want people who don't "fit". Saying that, though, it's a creative industry and I always say that if you want to work with creative people you're going to have to put up with a little crazy, but most people I run into in the industry are fairly normal with a smattering of the occasional "character".
Most software engineers work in small startups, in large corporations, or in academia. As always, eccentricity is tolerated in small companies (especially if one is a founder) or in academia (if one is also brilliant), but is discouraged in large companies. The only difference is the mix - a larger proportion of software engineers work in large companies.
In short, the industry has (partly) grown up.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
Last Visit: 3-Jul-20 20:16 Last Update: 3-Jul-20 20:16