|
MALE SHOEGAZE posted:Serious question but why? You like, seem to enjoy doing this. learn Common Lisp or Scheme, and then just use S-expressions for your DSLs and have some Common Lisp/Scheme trivially generate whatever other language you need from them
|
# ? Oct 14, 2015 07:06 |
|
|
# ? Jun 5, 2024 19:51 |
|
Old Manager left 2 and a half weeks ago. Still not been given any work. Have reached out to other teams they have said yes come on. Still not given any work. I'm going to get even more terrible at programming because I don't do any. Very much don't want to work on my own code during work time and then i head home so apathetic I don't want to work on it there. Send help.
|
# ? Oct 14, 2015 11:33 |
|
So, someone wrote an experimental WiiU emulator but didn't post the sourcecode on Github, only binaries. Not only are people now feeling entitled and demand the author release the sourcecode, there is ALREADY a war going on debating the right license to use.
|
# ? Oct 14, 2015 11:55 |
|
KidDynamite posted:Old Manager left 2 and a half weeks ago. Still not been given any work. Have reached out to other teams they have said yes come on. Still not given any work. I'm going to get even more terrible at programming because I don't do any. Very much don't want to work on my own code during work time and then i head home so apathetic I don't want to work on it there. read a book like SICP idk man just do something
|
# ? Oct 14, 2015 12:40 |
|
KidDynamite posted:Old Manager left 2 and a half weeks ago. Still not been given any work. Have reached out to other teams they have said yes come on. Still not given any work. I'm going to get even more terrible at programming because I don't do any. Very much don't want to work on my own code during work time and then i head home so apathetic I don't want to work on it there. polish your resume
|
# ? Oct 14, 2015 12:41 |
|
Soricidus posted:polish your resume
|
# ? Oct 14, 2015 15:11 |
|
Qualifications: am smartest kid
|
# ? Oct 14, 2015 15:12 |
|
KidDynamite posted:Old Manager left 2 and a half weeks ago. Still not been given any work. Have reached out to other teams they have said yes come on. Still not given any work. I'm going to get even more terrible at programming because I don't do any. Very much don't want to work on my own code during work time and then i head home so apathetic I don't want to work on it there. Sometimes that's it and it isn't a big deal, and sometimes it's some sort of weird power thing where you have to play political games just to do the basic stuff of your loving job. Like they're paying you this salary but work items are treated as some sort of currency and everyone is hoarding what they can. If it's the latter then that's really dysfunctional and you should sever immediately, but if you just have a manager who is hands off, then find something that needs doing that no one is working on yet, and do it.
|
# ? Oct 14, 2015 15:21 |
|
MALE SHOEGAZE posted:Serious question but why? You like, seem to enjoy doing this. Why do I enjoy it, you mean? Well, there's some naive stuff and some cynical stuff to it: Naive: 1)Like I said, I was literally stabbed in a gang fight at 15. I was basically supposed to go nowhere and now I have managed to claw my way rear end-backward into an upper-class income. Epic paid for the education and took the chance on me, so there's a lot of good feelings there. 2)Even if the technology isn't always awesome, the problem domain is. What I do has, provably, saved people's lives. It's saved hospitals money that they've used to save more lives. Our software has been used in research that found new treatments for diabetes and asthma, and so on. It's a pretty loving good feeling, rather than waking up and thinking "How can I make Satiya some more money today?" 3)Sometimes, it really is fun to solve "solved" problems with the tools available to you. For example, I need to create a natural sort algorithm (e.g., one that would sort "a9" before "a10"). MUMPS globals are inherently sorted in the ASCII collation order, and that's usually good enough so no one had really bothered writing sorting algorithms. Solutions in other languages weren't directly portable. Instead, I got to write this pretty neat little function, which takes advantage of the structure globals and an uncommon method of traversing them a to achieve a sort (there's code surrounding this that I removed because it's more proprietary, but you should be able to guess what most of the variables do): code:
Cynical reasons: 1) Variation on above, I was never supposed to get this far in life. I was born and raised in Wisconsin and I don't know that I'd even want to live in some of the major tech areas, even if I could get a job there. I doubt google is looking for programmers with poetry degrees and a history with the law. 2) I've done programming in other languages (like the aforementioned OSes course I took in C), but it was hard and I have major impostor syndrome all the time. I worry I wouldn't be able to work anywhere else. 3) The tech bubble looms, but healthcare IT is pretty protected by the Meaningful Use program and the relative necessity of an EMR today. We have multiple national governments as customers at this point, so Epic is a pretty stable place to be long-term. 4) They give me health insurance that covers everything (for real, everything) with no copays or deductibles. My meds caused me $2 a month, and it's $50 to use the ER. That's it. I get a match in my 401k up to 3%, and there's a lot of ancillary frills to being here. This is probably too earnest a post for the 'pos, but I hope that helps you a little. It's important to like what you do every day. Having a fun or meaningful job is way more important than getting to work with the latest tech that we'll all just be making fun of 5 years from now anyway.
|
# ? Oct 14, 2015 15:34 |
|
your job and work sounds really cool. did you learn all the MUMPS on the job?
|
# ? Oct 14, 2015 15:56 |
|
how else would you learn that poo poo? are there any public instructional materials on their bespoke language horror?
|
# ? Oct 14, 2015 16:04 |
|
apparently i had two managers fighting over me because my new manager had volunteered me for something and i had reached out to someone. it just got sorted. the one i got volunteered for won. still not been given any tasks.
|
# ? Oct 14, 2015 16:07 |
|
Barnyard Protein posted:your job and work sounds really cool. did you learn all the MUMPS on the job? Yeah, your first few months are an orientation period where you go to in-house classes about the languages and technologies we use. I went to a MUMPs class for 2 weeks which covered the language and some of the data structures we've built on top of it. Then there's a 3 week crash course in VB6 and the old client tech we built on that. There's also a 6-week course in C# .net + Javascript that covers are new client tech, but my area hasn't moved to the new platform yet so I've only taken the basic intro to C# .net's basic features. There's also a bunch of classes you take about how healthcare works as a whole, what IT's role is in healthcare, expectations on how you interact with your coworkers, how to take criticism, etc. My favorite thing is one of our classes is actually pretty openly critical of the US healthcare system and compares it pretty disfavorably to both the NHS and to Germany's hybrid system. Our CEO is basically miss frizzle and I honestly think she cares way more about saving the world than about making money. It's a pretty refreshing culture to work in, even if some people are just way too true believer for my cynical rear end. AWWNAW posted:how else would you learn that poo poo? are there any public instructional materials on their bespoke language horror? Yes actually. MUMPS isn't bespoke to us. It was created in the 60s by a hospital. The VA's medical record system, ViSTA was programmed in it. Meditech was made in it and then converted to their in-house variety. A few banks use it. The "definitive" text is http://www.amazon.com/Mumps-Programming-Language-Kevin-OKane/dp/1438243383. Some nerd maintains this site about it too: http://71.174.62.16/Demo/AnnoStd The MUMPSorceress fucked around with this message at 16:35 on Oct 14, 2015 |
# ? Oct 14, 2015 16:07 |
|
Kilroy posted:When you say you're not 'given any work' what do you mean exactly? Some teams will expect you to figure out what other people have on their plate and then take some of it off. I got transfered to a new manager who literally said to me i don't have any work while this project is starting up and said enjoy the time off
|
# ? Oct 14, 2015 16:09 |
|
my wife's mom learned BASIC in this course where she and all the other students wrote their programs out long-hand and the instructor just read through them and assigned a grade, seems like a way someone could/would learn MUMPS
|
# ? Oct 14, 2015 16:09 |
|
Barnyard Protein posted:my wife's mom learned BASIC in this course where she and all the other students wrote their programs out long-hand and the instructor just read through them and assigned a grade, seems like a way someone could/would learn MUMPS If you're morbidly curious, GT.M is an open-source publically-available implementation of MUMPS. You can literally install it and play with it. For further horror, ViSTA, the VA's EMR, was programmed in MUMPS and the source code is owned by the American people, so you can download it and play with that too.
|
# ? Oct 14, 2015 16:37 |
|
I don't know if "is used by the VA to track patients" is a good endorsement for your software
|
# ? Oct 14, 2015 16:48 |
|
Luigi Thirty posted:I don't know if "is used by the VA to track patients" is a good endorsement for your software The VA doesn't use our software? I was just giving examples of MUMPS things that are publically available for anyone who wanted to touch the poop. In fact, one of the outcomes of the scandal with the VA's waitlists is that they were ordered to get a new scheduling system. They just finished the selection process and went with us. So, in a year or two, the VA will be using our software to schedule patients. If they're honest about wanting to improve wait times, their wait times are going to go down after they go live, just like they have for every other customer who's taken our software.
|
# ? Oct 14, 2015 16:55 |
|
is that why it's called MUMPS, hahaha
|
# ? Oct 14, 2015 17:05 |
|
Awia posted:is that why it's called MUMPS, hahaha wikipedia posted:MUMPS (Massachusetts General Hospital Utility Multi-Programming System) It's a terrible backronym made by some database dork in the 60s who Mass General paid to make them a medical database.
|
# ? Oct 14, 2015 17:08 |
|
all hospital systems should be named after infectious diseases imo
|
# ? Oct 14, 2015 17:10 |
|
Awia posted:all hospital systems should be named after infectious diseases imo Quick, someone find a backcronym for AIDS and I'll try to convince the CEO to name a product that. Bonus points if you can also think of a HIV product that clearly works with AIDS somehow, but AIDS can't be provably shown to derive from it.
|
# ? Oct 14, 2015 17:16 |
|
LeftistMuslimObama posted:Quick, someone find a backcronym for AIDS and I'll try to convince the CEO to name a product that. Bonus points if you can also think of a HIV product that clearly works with AIDS somehow, but AIDS can't be provably shown to derive from it. Heuristic Information Visualization/Asychronous Interface for Distributed Systems
|
# ? Oct 14, 2015 17:55 |
|
Luigi Thirty posted:Heuristic Information Visualization/Asychronous Interface for Distributed Systems
|
# ? Oct 14, 2015 18:03 |
|
Luigi Thirty posted:Heuristic Information Visualization/Asychronous Interface for Distributed Systems pos me
|
# ? Oct 14, 2015 18:18 |
|
Luigi Thirty posted:Heuristic Information Visualization/Asychronous Interface for Distributed Systems lol
|
# ? Oct 14, 2015 18:41 |
|
Luigi Thirty posted:Heuristic Information Visualization/Asychronous Interface for Distributed Systems
|
# ? Oct 14, 2015 18:42 |
|
Luigi Thirty posted:Heuristic Information Visualization/Asychronous Interface for Distributed Systems
|
# ? Oct 14, 2015 19:33 |
|
Luigi Thirty posted:Heuristic Information Visualization/Asychronous Interface for Distributed Systems
|
# ? Oct 14, 2015 19:41 |
|
LeftistMuslimObama posted:3)Sometimes, it really is fun to solve "solved" problems with the tools available to you. For example, I need to create a natural sort algorithm (e.g., one that would sort "a9" before "a10"). MUMPS globals are inherently sorted in the ASCII collation order, and that's usually good enough so no one had really bothered writing sorting algorithms. Solutions in other languages weren't directly portable. Instead, I got to write this pretty neat little function, which takes advantage of the structure globals and an uncommon method of traversing them a to achieve a sort (there's code surrounding this that I removed because it's more proprietary, but you should be able to guess what most of the variables do): this is legit. solving problems by working round crazy restrictions is genuinely fun. it's the same impulse that drives people to write things in esolangs, or to code golf, or to port things to obscure processors, or to write javascript frameworks.
|
# ? Oct 14, 2015 20:17 |
|
Soricidus posted:this is legit. solving problems by working round crazy restrictions is genuinely fun. it's the same impulse that drives people to write things in esolangs, or to code golf, or to port things to obscure processors, or to write javascript frameworks. or to play tis-100
|
# ? Oct 14, 2015 20:25 |
|
LeftistMuslimObama posted:Cynical reasons: The Google engineer on the other end of my first phone screen interview (which I absolutely flunked) had a degree in poetry, so don't discount yourself
|
# ? Oct 14, 2015 20:32 |
|
Symbolic Butt posted:or to play tis-100 oh cool i didn't know about that
|
# ? Oct 14, 2015 20:35 |
|
dude i made a thread about it. it was bigger than jesus but only briefly
|
# ? Oct 14, 2015 21:14 |
|
Luigi Thirty posted:Heuristic Information Visualization/Asychronous Interface for Distributed Systems
|
# ? Oct 14, 2015 21:45 |
|
the language does operate like a cripplingly disease to the programmer.quote:http://thedailywtf.com/articles/A_Case_of_the_MUMPS
|
# ? Oct 15, 2015 01:11 |
|
Nitrocat posted:the language does operate like a cripplingly disease to the programmer. That's out of date, fortunately. It's now possible to explicitly declare variables explicitly. You can create a curly-brace language style if block using a the do operator. The other stuff is still true though. I'll post my 99bottles program tomorrow at some point so you can see just how fun XECUTE is.
|
# ? Oct 15, 2015 03:07 |
|
xecute doesn't seem any different from eval in other interpreted languages, hardly the worst or most unique feature of mumps fyi if you can write useful programs in mumps while also understanding and clearly describing the drawbacks of the language, as you have done in this thread, you can probably get a job doing another type of programming that pays more than 75k. just in case you decide on a career change
|
# ? Oct 15, 2015 03:38 |
|
JewKiller 3000 posted:xecute doesn't seem any different from eval in other interpreted languages, hardly the worst or most unique feature of mumps Maybe with a bit more experience. The 75k job only lasts for a year and then at the end my work is evaluated and I get promoted to the big-boy 6-figure job. I'm the equivalent of a junior dev or whatever you'd call it right now. Since this is the terrible programming thread though, let's talk about the implicit variable declaration for a minute. It's fun . Up until the mid 90s, the MUMPS specification did not include a way to create variables other than to simply assign a value to an identifier. To avoid the obvious issues with this, a couple different solutions arose. Programmers came up with naming conventions that ensured that "locals" would have names unique to the routine they were declared in. For example, if you were writing a routine called ^STUPID, you might name all your variables rfsVarname where "rfs" stood for the "really loving" team and their "stupid" routine. Another solution was to explicitly null or kill variables you used before using them initially. This was incredistupid because the value would be changed all the way up the call stack to the initial creation of the variable, and the functions and subroutines you were returning to might have depended on that value. Add to this that for a long time there was no concept of functions in MUMPS (though we're talking pre-90s here), resulting in the concept of "assumed" variables. Assumed variables are when a subroutine declares a variable and expects another subroutine it calls to populate that variable with a value. Back then, you'd do this by doing something like 's result="" d subroutine^ROUTINE', then expecting that subroutine to populate result. In the 90s, they added the NEW operator (and functions at some point too). What NEW does is give you true locals like you'd have in most languages. When you NEW a variable, it initializes it to null and this becomes the active variable of that name for anything added to the stack. Any variables shadowed by the newed variable aren't accessible from this stack level or higher, but now subroutine-local variables act like the locals of methods in other languages. Of course, by the time NEW was added, most of the applications still using MUMPS were pretty mature so there's still assumed variables all over the place, and many subroutines' behavior depends on them. One of the biggest pain points in MUMPS programming is debugging issues involving assumed variables. Because they're not declared actively anywhere, and there might be dozens of codepaths to the subroutine where the issue manifests, it can be difficult to nail down which initial declaration of the variable is the one affected. Stack traces aren't always enlightening because of situations like: sub A creates bugVar and calls sub B. sub B calls sub C, sub C calls sub D. Sub D calls sub E, which sets bugVar to "i suck" E returns, d returns, c returns. B calls sub F which checks bugVar's value and sets it to a new value based on that first value. sub F calls sub G, which then manifests the behavior that indicates the bug. C, D, and E won't show up anywhere in that stack trace, so all you know is that bugVar is getting hosed up before it gets to G. There could be 4 or 5 other paths to G that also do things with bugVar, so often the only way to find the bug is to read any and all code that has a variable called "bugVar", set a bad value in it, then watch for that bad value in the subroutine that's having problems. This almost always requires you to stand up a private instance of the database server in a VM so you're not loving up code other people's work is depending on. This is significantly alleviated by the existence of NEW and functions that explicitly return values. It means that a variable is usually only being set in the code that declares it, and if it's needed in another routine it's passed in as a parameter. Of course, this doesn't stop old-timers who've been working in MUMPS since the 90s from doing things the old way and loving up your day when you do code review for them. Fortunately, they all got paid enough that they're mostly retired now. Now, here's an extremely fun MUMPS fact that is truly stupid: Up until the newest MUMPS specification (a couple years back), the only way to null-check a variable was to do this: code:
code:
Fortunately, we have very rigorous code reviews now and a strict emphasis on readable and easily debuggable code, so these sorts of gross things only appear in old code, which we're under orders to rewrite as we touch it. If you guys see any other gross MUMPS stuff you'd like me to talk about, I'm glad to. It's probably one of the weirder languages still in use today and I totally understand the mild horror most of you view it with. It's kind of what makes the job fun, but it also can lead to pretty bad days too. I think that's most programming jobs though.
|
# ? Oct 15, 2015 04:21 |
|
|
# ? Jun 5, 2024 19:51 |
|
What are your editing tools like? I don't think I'd be able to deal with scala if I didn't have an ide - go to declaration, show type of variable, and show implicits in scope save a huge amount of time and effort. And that's not including any of the refactoring tools like renaming variables across all usages in multiple files.
|
# ? Oct 15, 2015 07:29 |