This was a nice surprise to see today as an Ex-Excel developer who worked on trying to bring Python to Excel (and, I guess, failing ;)).
7+ years ago I had the option of leaving the Excel team. My then boss’s boss knew I had an interest in bringing Python to Excel and offered me a chance to tackle it if I chose to stay. What was meant to be a 6 month project turned into a ~3 year project, the Python part faded away and we ended up enabling JavaScript Custom Functions in Excel instead.
For Python we were also running ‘in the cloud’ (AzureML v1), although there was some back-and-forth on if we should run locally. I think what made the Python part disappear was our partner AzureML team re-orged, re-released, re-hired, we lost a PM and our work caught the attention of another partner team who realised they could use our code to execute their JavaScript out-of-process. And so I spent a lot of time ensuring that feature was successfully shipped at, I guess, the detriment of Python.
I had a lot of help from some strong engineers and learnt a lot. The core of the work was modifying the calculation engine of Excel to allow functions to compute asynchronously, allowing the user to continue working on other parts of their spreadsheet while the remote endpoint (be it JavaScript, Python or something else) was computing. Previously the spreadsheet would lock up while calculations were running, and that wouldn’t be cool for long-running unbounded calculations. Have to wonder if any of the stuff we built made it into this new feature.
Super great to see this and look forward to trying it out.
Thanks for your work! The async JS functions are amazing and allowed me to ship rock-solid Custom functions with xlwings and Python. The problem with Office.js is that it’s just simply too hard to get started with all the npm bloat for the average Excel user (even more professional devs struggle). Well, I am pretty happy how I am saving users from having to use Node.js: https://docs.xlwings.org/en/latest/pro/server/officejs_custo...
Oh this must be Felix! I saw and played with xlwings many years ago and was impressed :)
Agreed with the friction around getting started. I would like to see it reduced. It’s cool to see you using them to wrap Python functions - I have done something similar before myself, and still need to get around to shimming Haskell into excel at some point.
Another thing I don’t like is how JavaScript Custom Function cell formulas have a horrible string after the _xldudf marker, which becomes noticeable if your workbook doesn’t/can’t load the custom functions addin (or you unload the addin)
It's me, yes, are you Michael then ;)? Yeah, I love the Office.js platform, I believe it's the most versatile extension platform there is, it just came out during an unfortunate time (when people believed that you can't use JS without React anymore ;) Anyhow, the magic of Office.js is that you can use it like a JS framework with total freedom what you use on the backend (it's just a fetch call away), so whether that is .NET or Node or Python/R/Julia doesn't matter at all, it's just that the official docs don't really bother to explain that or show an example other than Node & C#. What's a game changer (and only available on Office.js) is the integrated authentication via SSO/Azure AD, which is the first thing any IT department in a corporation is interested in.
> The problem with Office.js is that it’s just simply too hard to get started with all the npm bloat for the average Excel user (even more professional devs struggle)
IMO deployment is an even harder problem. The Office team makes it incredibly difficult to deploy web add-ins (presumably for business reasons) and accordingly most companies I'm familiar with are still using the ancient, barely-supported COM+VSTO add-in models.
The part that makes it a non-starter is that it has to be in some kind of a store (whether it's on prem via SharePoint) or the Internet. What is needed is that you can install something on the user's computer (xcopy install, msi, w/e), but without requiring any other Microsoft end-point. And then, the bits installed either run completely on-node (similar to COM/VSTO) or it would require that access to remote web-server be required. If a remote web-server is required (which is a bit of a limitation), it should be something that can be pointed to without Microsoft's involvement. Just like I can create a web-site, give you a URL to it, and you can go it using your WebBrowser. No app-stores.
That doesn't mean app-store shouldn't be an option. I would love to also publish my add-in in the Microsoft AppStore, but it should be my choice, not a hard-requirement.
That's why people are still using VSTO, not because we have a problem with JavaScript vs. C# or COM.
The app store / Office admin stuff. When I was dealing with this stuff 2 years ago, it was insanely difficult to deploy a web add-in internally (something involving the "Microsoft 365 admin center"), let alone deploy it to customers (gotta get approval to deploy it in the special Office app store, and hope+pray that your customers' IT departments don't block that).
Compare to VSTO, where IIRC installation just involves editing a registry value to let Office know where your add-in can be found on disk.
You just reminded me I tried to make an office addin a few years back and distribute it on the office store. Terrible experience trying to get Microsoft’s admin/business center (whatever it is/was called) to verify I was actually a real human/owner of the domain as a sole proprietor. Terrible.
By chance I built quite an interesting addin for excel using VSTO. It was great, nothing to complain about. In the corporate world Microsoft tech is widely common.
I don’t unfortunately. Given the more technical nature of the feature I’m inclined to agree Microsoft should make a bountiful supply of working examples.
> the Python part faded away and we ended up enabling JavaScript Custom Functions in Excel instead.
Nobody could have anticipated that GPT4 would author Python better than anything else.
Nonetheless, I kind of just want Google Drive except Excel, without adopting anything more than the Office ecosystem, that just works with simultaneous editing.
Air quality is something I've been thinking about more and more. I'm currently mostly in Bangkok and now I check the air quality (aqair) before I exercise outdoors, and often end up skipping. Though I haven't looked into it deeply, I'd love to see some trustworthy conclusions about how I'm affecting my future health by living in Bangkok. I've really come to miss the Pacific Northwest partly because of the clean air (except, of course, during the wildfire seasons)
I'm building a house in Bangkok and up in Chiang Mai of all places (see the company is from there) and was thinking of adding some air quality sensors there so will definitely check airgradient's out.
If I may ask Achim, do you manufacture in Thailand? What kind of scale you at? No promises, but I have access to some decent sized factories and given your mission, there might be something we can help with.
Recall Christmas Day eating some sweets (which I didn’t like) and playing this (which I did like). I got this for my 6th (?) Christmas. Most memorable things for me were demonstration of gears (using mammoths) and the guy who would pop up if you went AFK.
Also dorling kindersly’s eyewitness soundtrack deserves a special mention.
Yup combined Christmas and birthday presents and additionally forfeit any money I received from relatives back in the year 2000. Had to fight for it and made to feel guilty on how much it cost.
I also worked on Excel and in the calc code. XOpers, LBLs… it’s all coming back. We never figured out what the Hungarian prefixes kml and ptg stood for. There was a rumor kml might be the initials of duanec’s girlfriend
Yes, it is inaccurate to the point of being the reverse.
Muscles are controlled through the software, with pattern of activation uploaded from an iPad via Bluetooth and generally managed by am accompanying person. The patients absolutely do NOT control the muscles with their brain.
TL;DW the equipment is empty as it is just like a fancy light switch, an ardiuno hack could replace it, it's all the car's job to negotiate the power it needs. The cost is in the installation.
Why do they need to be smaller? The Tesla EVSE is about the size of a loaf of bread. And I doubt it needs SiC because it's just a smart relay for 240v anyway; it's not switching power at high frequencies or getting hot.
As others said, conventional EVSEs are just spiced-up power switches, so there's not much to gain from SiC. It does however open up a pathway to smaller / cheaper / more efficient residential DC fast chargers which can also enable a widespread rollout of V2G.
I was wondering where she is now - her LinkedIn says Amazon. Looks like she went back into academia before that. Wonder if she worked on any more projects like this during her 2nd stint at university.
7+ years ago I had the option of leaving the Excel team. My then boss’s boss knew I had an interest in bringing Python to Excel and offered me a chance to tackle it if I chose to stay. What was meant to be a 6 month project turned into a ~3 year project, the Python part faded away and we ended up enabling JavaScript Custom Functions in Excel instead.
For Python we were also running ‘in the cloud’ (AzureML v1), although there was some back-and-forth on if we should run locally. I think what made the Python part disappear was our partner AzureML team re-orged, re-released, re-hired, we lost a PM and our work caught the attention of another partner team who realised they could use our code to execute their JavaScript out-of-process. And so I spent a lot of time ensuring that feature was successfully shipped at, I guess, the detriment of Python.
I had a lot of help from some strong engineers and learnt a lot. The core of the work was modifying the calculation engine of Excel to allow functions to compute asynchronously, allowing the user to continue working on other parts of their spreadsheet while the remote endpoint (be it JavaScript, Python or something else) was computing. Previously the spreadsheet would lock up while calculations were running, and that wouldn’t be cool for long-running unbounded calculations. Have to wonder if any of the stuff we built made it into this new feature.
Super great to see this and look forward to trying it out.
Recalc or die