I just got the strangest email at work. I have some local pending changes for in progress work I'm doing... The way TFS is setup we ahve to lock files we are working on, I just got asked to undo all my local pending changes (which only exist on my machine!) So that the lead dev can do a release... I don't know where to begin with this. And it's only Monday 😞
Source Lack-of-Control System? Reminds me of the good old days of RCS.
Talk about going down the OOP rabbit hole. I'm working on someone else's code, it's a simple 4 line function and I think it's pretty slow for what it's doing. SO I tore it out of the solution (c#) and into linqpad so I can jsut focus on that one function. Obviously it didn't run, it needs teh Database class. So I copied that in. Uh-oh, that needs another few classes, so I'll copy those in... 706 lines of pasted code later, I can finally run these 4 lines I want to test.
oof
more like OOPh
wow, I didn’t realize I’d been using git
for that long, but this concept sounds completely alien
although I do remember similar issue with Perforce, back in the day
Yeah, its strange. If i want to edit a file and someone else has locked it, either i have to wait till they are finished, or get them to undo all their work and unlock it again. Which means they take a local copy to another folder on their machine, or lose their changes. Its dumb but the lead doesn't like source control and doesn't believe in branches. Says its too complicated.
And he says if we have branches then merges will be a nightmare. The team size is 6 people...
I remember the shift from RCS to CVS, and thinking that automatic merging was obviously not going to be practical, only to discover that it does actually work. At least, on linear code; if it’s, say, a text based representation of data structures with no semantic ordering then it can get unpleasant.
What's rcs?
ask the lead if it would be more of a nightmare than the current situation 😆
RCS == Revision Control System. The first one ever, I think - I used it in the 80s. It worked by locking files that others had checked out for editing. Plenty of Dining Philosopher experiences back in those days, I can tell you.
I've actually started my own system of notepad and a separate folder and I keep track of changes manually, then copy across when im finished so i only lock for a very short time...
I actually think it might be worthwhile to just create a local git repo based on a copy (completely outside the aegis of TFS), do your work there in your own local feature branches, and apply patches in the TFS dir if/when you are able
Hmmm. Didn't knlw i could do that, ill have to investigate! Thanks.
yeah just cp -r
to somewhere, go into it, do git init
and you’re off
@qmstuart and this lead codes in Clojure or… ?
Oh no, this work project is his vb. Net baby...
Vb and js. I swear there is a file called javascript. Vb, which is vb that strings up js
I’d setup Clojure CLR in his project and send him some code, just for fun :sheepy:
In all seriousness, it sounds like a dire situation; actively opposing source control? That’s something. Sounds like a person who is very opposed to anything remotely unfamiliar.
Hi people! Is there a good library in Clojure to work with stripe and it's integration?
Or perhaps the code is so convoluted, that there’s no way to split up the work without touching a million files… In that case perhaps “locking” can make sense. But instead of addressing the issue (simplifying the code), you’re using a band-aid (locking the files).
yep, the stripe java library
A quick google search returns this: https://github.com/clojurewerkz/elephant (but I haven’t used it)
i'd personally trust the non-wrapped java lib more than any given wrapper
case in point that project's readme says
Last time I used it, the Stripe API I believe it was relatively simple to just use from HTTP
The project is too young to begin documenting the API.
This section will be updated when the API stabilizes.
and it hasn't been updated in years.
That too^ you can always just use their http api if you want to
Yea… I would just go with simple HTTP and see if you need anything more; I have a hard time believing that a Java library would be nicer/simplier/easier than just calling the HTTP endpoints from a regular Clojure HTTP library of your choice…
I have decided to just use stripe-java
. The clojure libs available are very old and not very actively maintained. So I guess it's best to write a simple custom clj wrapper for it. Thanks for the help guys :thumbsup:
@cassiel RCS wasn’t the first one: it appeared in 1982 and was a challenger to SCCS which appeared a decade earlier. SCCS was my first version control system — I thought RCS was a huge step forward at the time! But, yeah, RCS is considered ancient these days 🙂
@qmstuart A decade or so back, when I was freelancing, I took on a project for a client that had no version control, no issue tracking, and used a shared development server that everyone accessed remotely via LogMeIn. Nightmare! But I downloaded all the code to my local machine (via LogMeIn — took ages) and then did git init
and managed all my changes locally, uploading changed files to their server at various times for testing. I would present them with the change history and a list of diffs from git
as documentation accompanying my work and they were absolutely amazed that such a thing was possible!
I found myself reaching for "Solving The Expression Problem" again and it was not readily reachable, although the PDF is still hosted. No idea how long it will still be available for, here's a direct link for posterity https://www.ibm.com/developerworks/library/j-clojure-protocols/j-clojure-protocols-pdf.pdf
@seancorfield Ah yes, SCCS - I forgot that one. And these days I find myself almost missing expanded $Id$
strings.
Anyone here got a Raspberry Pi 64bit (with 64bit OS)? Can you verify that uname -m
prints aarch64
for you?
Linux rpi4 5.11.4-1-ARCH #1 SMP Sun Mar 7 23:46:10 UTC 2021 aarch64 GNU/Linux
did you use the -m
flag?
uname -m
== aarch64
that was uname -a above
Thanks!
(babashka on rpi4 coming up)
Now released. See #announcements