Probably most PCs were in offices at the time so it makes sense I guess.
1,026 karma · joined January 12, 2014
Probably most PCs were in offices at the time so it makes sense I guess.
I never got a compliment for the solution (just a "okay if you think we can make it work go ahead", and afterwards a "nice work, let's hope it doesn't break") so this is a first. Thanks again.
If the consumer became a supplier of raw recyclable materials, and those materials had value, they deserve to be compensated, and will probably be more engaged in the sorting and quality control processes. I drink a lot of beer - that makes me a great supplier of ready-made glass bottles to anyone that wants them. Rather than bulk collecting a random pile of potentially recyclable material, here's a bunch of sorted glass bottles each quarter. Anyone that can hook into that kind of idea and find some kind of economy of scale might make a killing.
Pre-shopify, I loved Magento when we were just building basic eCommerce websites. I hated it when we had to provide bespoke functionality to suite various niche business purposes because rarely did any of the community plugins work well together, and life became a routine of building custom intermediary plugins that resolved the conflicts - but at least Magento had a way to resolve conflicts between plugins.
I loved Doctrine when I could define my object model with simple block comments. I hated it when the client's business model enforced an object model incompatible with Doctrine's, and we had to extend Doctrine to allow for it.
I tried making a game from scratch many times over the years. From writing my own assembly pixel routines (draw a line without gaps... that's a fun challenge), to decoupling logic from rendering, custom double-buffering, etc. At the end of the day, fuck it, Unity does everything I need much more efficiently than I have the time to figure out.
Unless you're doing really low-level embedded (and even these day's there's off the shelf hardware with frameworks rather than bit-bashing IO ports), having no framework at all is usually worse than having "a" framework. Want to build an entire game engine from scratch or why not just use Unity? If you have a good reason and can justify the cost of doing the stuff Unity does yourself, just to achieve the stuff Unity can't do, then go for it!
Like I guess, I don't hate frameworks, but I don't LOVE them either. Pick the tool for the job. I hate jingoism, where someone will tell you Redux is the only way we're going from now on because functional reactive programming is Jesus, or we've decided from now on the project will use webpack, even though it's been working fine for a decade using a different build strategy. Oh and we need to convert the APIs to GraphQL instead of OpenAPI on no budget, it's your fault for not understanding best practices duh...
Could we just generate a document in plaintext? No. It had to be pixel perfect dummy. And PDF!
Could we just recreate a pixel-perfect HTML to PDF template? No. That would take weeks and the client only budgeted a few hours.
So I asked, how do they do it currently. And they sent over a mail-merge MS Word template. We said, hey, so, we use PHP, open source, Linux. TOO MANY WORDS WE'RE PAYING YOU TO MAKE IT WORK.
Could we use the template in an open source framework compatible with the PHP solution we'd built? Yeahhhhhhhh... but no. The open source framework mangled the fonts, layout, and the PDF rendering was bodgy to say the least.
And yes, we went back and asked really, trully, honestly, does the government really give a shit if this document is not formatted exactly the same as whatever law they apparently passed said it had to look like.
No dice.
So we could have used any language I guess, but we were familiar with PHP. PHP has a DCOM extension that only works on Windows. So I spooled up a Windows Server instance (firewalled within the DC of course) and installed XAMPP and did a bunch of config to ensure it stayed updated automatically and rebooted every night at 1am. A small PHP script on the Windows server provided an API the website could call at any time. The Windows PHP endpoint had an unzipped DOCX, the script would copy the folder, search-and-replace based on API inputs, zip it up as a new DOCX file, opened in Word with DCOM to save as a PDF which was then streamed back into the website's logic all in the same POST request that a client submitted.
It was a kludge, I could think of other ways to do it today, but at the arse-end of a project with an apparent doomsday requirement suddenly dropped in the mix, in the end it took about three days to implement when at the time we were facing a crisis.
So yeah, give DCOM some flak I guess because it failed to launch but it saved one small project for one small insurance company.
Edit to add: That solution ran for years without issue until the company merged with a larger healthcare provider.
Similar to the recent / ongoing pandemic, there's tons of variables and I've made a similar argument to people who decry in a mocking tone the "scientists" with their "agendas" etc... like dude these are people individually who devoted ten years of education and research MINIMUM learning about one specific thing.. BEFORE they were taken seriously enough to even get a job. Pushing pixels and shovelling dirt are both important and necessary, but when it comes to complex matters, listen to the person who made a lifetime commitment to studying that thing. I get it, and apologies if I somehow sounded like I was brushing that away. As you say, I'm just curious.
So anyway I'll take this all with a grain of salt. Seems interesting but as you imply it's a bit overhyped. It's just another small wheel within an intricate mechanism of gears and the overall swing of the machine is to hotter temperatures, more carbon dioxide, nothing changes, the overall trend is still clear. As I say, I was probably too drunk to hit reply, but I'm glad I did.
Thanks for the reply, it gave me a chance to pause and reflect.
As a layperson I've read about the Vostok cores and understand how closely correlated CO2 concentrations and dust are as proxies for global temperature. Also I've read up on how phytoplankton essentially are the reason we have oxygen to breathe, so there are risks like ocean acidification that could kill us all regardless of temperature.
If some of those little buggers can give us an out or at least give us a longer grace period to sort our stuff out, I want in.
Is there a reason why some links like "Water" take me off to another organisation's website or am I just missing things? (edit: I am guessing it's just an older site and no one is around to take care of it anymore?)
This is a great resource and I hope I get a chance to spend more time reading through it.
If the world's microbiome is geared to maintaining (rather than merely existing in / responding to) temperatures and atmospheric gas ratios within a fine margin that would be noteworthy.
I've probably drunk too much and it's too late at night for this conversation to be honest. I probably shouldn't have even pressed "reply".
My angle on this thread is that I don't have much control over the frontend frameworks and usually when I land in an enterprise integration job a lot of the broader architecture is already in place - longer term I can have some influence but generally debugging involves numerous stakeholders. A tool like replay seems useful because most testers / users are reporting issues from their direct experience using the frontend, and being able to record and scrub through their interactions would be a massive timesaver, in lieu of setting up custom testing frameworks etc.
I get what you're saying though, and I'll definitely check out cypress, just wanted to add some context.
I mentioned in my other comment about Windows support, but even better if you could do something like browserstack, where I could just direct users to a URL where in the backend you guys are running the replay browser, but from their perspective they're just "using the website", that would be a killer feature. "Here, go to this URL and make the bug happen again, as soon as it happens click the little bug icon" - wouldn't have to convince an IT department to allow custom software on their COE, I could foot the bill and pass it on in my invoices so don't need to convince their accounting to approve licensing, etc, and you wouldn't need to compile OS-specific clients...
Anyway I digress, really cool stuff and thanks for expanding a bit on how it works, taking something so low-level as syscalls and wrapping it up in a user-friendly interface is no mean feat - good luck!
Being able to get them to record the exact process and scrub through it at my leisure without having to worry about hammering APIs would be a massive timesaver, replication is about 90% of the time taken to fix a bug, while the fixes themselves are usually trivial. Not having to worry about accidentally replaying a bugged-out API call is a huge plus.
In my case the major hurdle I can foresee is the majority of my enterprise-level clients use Windows and a brief look at the website says currently there's only Mac / Linux support for the replay browser. What's the timeline on Windows support?
The only other thing I can think may be an issue is that the recordings are cloud-based and a lot of the clients I deal with are finnicky about exfiltration and governance, and would be a lot more comfortable self-hosting where possible. Is that possible or on the roadmap?
This looks like a super useful tool to add to the toolbelt for sure, I would love to have all my clients using something like this to report issues. Nice work all!
Next time I visit my folks I'll check out and see if they have any of my old disks. I doubt anything survived this long but your post has planted a seed of nostalgia.
I had a bunch of old Amstrad games I wrote in the 80s that I'll probably never see again. Silly little text adventures mainly, also learned binary by poking character maps... a bit sad they're almost certainly lost forever except for dwindling memories in the haze of childhood, super cool to see some of this stuff being preserved for cultural value if anything.
As someone who grew up never able to accept failure (I remember my first B in high school quite vividly), this fear drove a lot of my anxiety in my 20's and 30's. Fear can be helpful as a survival tool that warns of danger. Anxiety can be hugely motivating but it will eat away at you, like having your own inner Gordon Ramsay screaming at you 100% of the time to be better.
Some advice never worked for me in the past like "foster a work life balance by doing x, y and z" or "these simple automations will free your mind from work" etc - that kind of prescriptive steps-to-success stuff was like putting a bandage on a burning house, just completely the wrong remedy for what I had going on.
I have been getting monthly CBT with a clinical psychologist for the past year and it's been wonderfully helpful. I see it like taking your mind in for a tune up at the brain-garage. Sometimes you'll wonder if that oil change was really necessary and grumble at the expense, other times a simple oil change will dislodge something that was held together by old gunk and you'll need to spend some extra time to replace a worn out part or two, but afterwards you'll be running a lot more efficiently.
Another thing that has helped was simple meditation, nothing spiritual, just setting aside quiet time each day to sit still, disconnect, and focus on calming the mind. It might seem counter intuitive to draw on that house fire analogy to sit still in the midst of it all, but think of meditation or therapy as a fire extinguisher instead and it makes more sense.
It's really tough to advise because we're all different, however the way I see it now, there's an entire profession of people who specialise in debugging minds, finding a therapist I could gel with and making serious time for it helped me, possibly saved my life even. It might be the best investment in myself I've ever made.
Good luck with the launch, sorry to hear you've been having a difficult time of it, it definitely isn't easy.
I'm guessing the issue with that other than the technical challenge would be filling space with too much noise?
There are workarounds for sure; VB macros, unzip XSLX and parse the XML, write scripts to automate Excel-to-whatever using DCOM, or import into an intermediary service and re-export into the format de-jure, but that all takes time and costs money too, and often causes confusion when even spoken about. Asking for a CSV takes a couple of seconds and is easily understood by most people. Anyone experienced with importing / manipulating CSV data can deal with the variance in delimiters and escape sequences without major issues. It's a headache at times but easier than the alternative of alienating or confusing clients who are looking for a simple solution to whatever issue they have today.
On the other hand once the data is in the target system, if they're still asking for CSV exports I do probe to ask why, and try and figure out if there's a better way. Reporting is the usual reason, and plenty of the CRMs I work with have built-in reporting that can replicate and improve upon whatever spreadsheet they are using, and have APIs that can interface with cloud-based reporting services. But there's a lot of inertia against change in most small-to-medium organisations, not everyone is a data expert and you can't sell someone something they can't use or understand. Ultimately people win, and the solution ends up being a balance of hopefully incremental technological improvements that they can still integrate into their day-to-day. Not every organisation is able to undergo a full digital transformation with time, budgets, and skills at hand.
I agree with the sentiment but I'd hate to see a future where everyone's locked into proprietary ecosystems - not that that is what's advocated for in the post, but we have CSV because that's what the big platforms seem to allow, not because they don't know there are better options. There's no technical reason Excel couldn't export to WordPress or SuiteCRM. Take CSV away and it gets harder, not easier, to move between platforms.
The design and data called for thousands of nested POIs all searchable by a range of filters (facilities, activities, etc), with pop-up info boxes and automatic clustering groups, with a custom layer from their XML-based geoserver full of park boundaries (polygons) which could filter the POIs within. By design this all required a round-trip to their geoserver which did a spatial query. The specification pushed one of the more popular JS mapping heavyweights of the day (I forget which) which due to the specific mix of required features ended up being painful, slow, janky, and with mobile-responsive becoming the frontend de-jure, a battle against nested layers of opinionated templating abstractions, all of which added up to a couple of hundred KB of dependencies and endless fragile callback-induced race-conditions, slow round-trips to their geoserver, and XML parsing issues. The mapping became a blocker on the project as the weeks wore on - hammer down one gopher, and another head would pop up. Design compromises were being considered to get the job over the line.
Enter Leaflet which was considered risky and new at the time, but on a whim and my own time I threw together a quick demo and got permission to spend a few days on it. I replaced weeks of frustrating spaghetti code and rebuilt a faster and more stable solution in a couple of days, polished it up after getting the "nod" and the site was finally ready to launch a couple of days later. Leaflet enabled the solution by being compact, only did the thing it was designed to do and didn't interfere elsewhere, and the plugins were tiny, did their job, and did it much more transparently. The main thing I had to do was transform their XML into GeoJSON on our webserver (their backend had only rudimentary GeoJSON support at the time - I think their internal teams either refused or were not allowed to update it?).
Anyway didn't mean to write a mini-blog post shilling Leaflet, it's a great library, my first experience of it was that it saved a seemingly doomed project, it does exactly what it says on the box and not much else, which is perfect when it's just a small component of a much larger and more complex project. It's my first go-to for interactive map rendering and even non-map stuff, like zoomable gigapixel photos.
As I understand it, it would take a dramatic leap from this kind of interpolation to being able to extrapolate and "self improve". So far I haven't seen anything that convinces me we're close to this, but again I'm not close to the wheel on the research side of things.
If you asked me 20 years ago, or even 10, I'd have said it was total science fiction. I wouldn't have been able to imagine how to do it. If you asked me 5 years ago, I'd have vaguely said something about AI, half jokingly. At the time I thought perhaps the models could be trained so we can do test-only development and let AI trained on formal test cases generate endless code until all tests pass, but I didn't really imagine it would be possible to get a computer to take freeform written English (even in a tightly controlled manner) and produce functioning code.
Over the past couple of years I have seen increasingly fluent demonstrations and tried a few myself, and I have fallen off the fence and I think that with the pace that machine learning and AI assisted programming keeps advancing, this outcome is all but inevitable, as far fetched as it seems.
I was messing with the OpenAI sandbox over the weekend and it helped me generate several game design concepts from prompts similar to my post above that I could see myself being interested in building and playing. It's not difficult to imagine down the line with a few more advancements in this tech that the generated design could then instruct the code generator, fetch the assets, and stage the environment for a player or user to enter without ever touching a line of code.
I'm not close enough to the research itself know which of those problems are hard and which are easy, so I don't know if we'll see the first totally AI-generated "proto-holodeck" tech demo in the next 5 years, or the next 20 years, but I can't see it being more than 50 years away, and something tells me with the pace of things it will be much sooner than that, assuming we're all still around at the time to enjoy it.
"You mean to suggest a bunch of *click* _monkeys_ could steer the planet? Those creatures-in-the-dust who couldn't even survive _radiation_? You are hereby sentenced for *chirp* roach-heresy."
"Computer, I want to play a game."
"Okay, what will the game be?"
"I want to be a starship captain, give me a cool space ship I can explore the galaxy with"
"Okay... like this?"
"Not quite, make the galaxy more realistic, with real stars and planets. Also make it 3d. I want to be the captain inside the ship."
"How about now?"
"Cool, and there should be space stations I can visit near planets, and I can fly my ship to stars with hyperspace. Make it so I have to trade for fuel at the space stations, maybe I need to mine asteroids or search derelict space ships for treasure. I want to play with my friends too, they can have their own ships or walk around my ship."
"Done, was there anything else?"
"Yes, add different alien races to some of the star systems, and make some of them have alliances. I want to talk to the aliens about their history and culture. Sometimes aliens are unfriendly and we'll have space battles if talking doesn't work. Make it so I can command a fleet and call for reinforcements."
"Processing... Done. Anything else?"
"Actually this is boring, can we start over?"
"Game erased. Please provide new prompt."
As the senior developer I'd designed most of the in-house tooling and trained most of the staff, then laid out team structures and project workflows. Over time our clients became more sophisticated and I found myself drawn more to pre-sales architecture / engineering / estimating, hiring, performance management, etc.
I was given the title of CTO, and more of my time was spent on product strategy, aligning technical strategy with business goals etc. Lots of spreadsheets, lots of modelling and planning. This would have been fine but I never was fully able or allowed to let go of my previous role. I was still the "guy" when it came to build systems, git merge conflicts, server issues, etc, and the company could never justify replacing my old role while I was still on the books.
This was stressful mainly because of context switching and workload. I was happiest when I could focus on one role or the other for extended periods. Having to wear both hats eventually wore me down, as it was hard to constantly keep the big picture in mind while having to focus on minute details like which version of SASS we should be running across our projects, or manning the support helpdesk after hours.
Switching to a new company lets you walk into a new role without the history - you might be less likely to be chased up to provide critical support or jump on the tools while you're trying to wrap your head around a 5-year digital transformation strategy for a federal contract. I switched to freelancing though so I can't speak to making the switch from experience, just what it was like to move up within a company.
Your mileage may vary, and as others commented it comes down to company culture.