Regardless, good if it makes meaningful change.
147 karma · joined May 30, 2019
Regardless, good if it makes meaningful change.
Almost every project I have been on has been understaffed. My project last year was one year of funding to research application of deep learning for a problem that had only some classical engineering algorithms applied before. Besides the r&d, we promised to deliver software that they could use to verify experiments and test models against their systems, basically everything up to but not including integration (with integration coming later if results were good). The team was a PM, domain expert, and me. That's one person to do all the research and experiments and provide basically two working and tested software deliverables. Good times.
My current project is one piece of a government effort run shared between two three letter orgs, a smaller contractor that's kind of PMing plus infrastructure, a large contractor handling modeling, and us handling correlation. We already had a correlator written in Java for portability--that is why we were brought on--so should be easy, right? A bit of data analysis, configure the software accordingly, pass off the jar and config and should be good. The effort was funded for about two people plus a PM but had had one full time and one partial for the past six months. Our part of the project ballooned to helm charts, four Kafka interconnected docker containers, security scans on all that plus a bunch more stuff required every release, lots of core rewrites to hit their scalability goals, constant data analysis because every week a performer comes in with a "hey why didn't this particular example get correlated as expected" question. Basically one person to cloudify + do data analysis on big data + rewrite Java software to scale better is just crazy. I am on it because the "half time person" left a year ago and wasn't replaced, and the full time person is now leaving also in August, so they're finally forced to restaff. I was told I'd do data analysis and algorithm work only, but over the first month I've only done security fixes and cloud infrastructure related tasking.
I bring this up to point out, yeah it's cool to learn new stuff, but the shortage of people also means double or triple role work that definitely accelerates burn out.
There are people who want or need the full pay but need flexibility. An example is parents, like wonder_er mentioned. At my work, there is a flexible work schedule option where you have to hit 80 hours biweekly and need to work the core hours of 10-2 at least eight days during that period, but other than that you are free to work whenever. This option is super popular with parents because random things come up with kids all the time where you need time in the morning or afternoon but can easily make it up on the other side or another day. It's also popular with younger folks because they can work a bunch at one side of the two-week period and take a three or four day weekend (or even longer if you plan back to back biweekly periods right) without burning any vacation time. They like lots of time off but want full-time pay and are fine with longer hours some days to make up for it. That's variation in schedule even though it's still 40 hours a week on average. All these examples are people still aligned with their connections. In fact, the variation produces more opportunity to shuttle kids to school, participate socially, etc.
To your point, the type of variation where you work less and aren't aligned with the schedules of others in your life is definitely not desirable for anyone with others in your life. I was in the military and worked these schedules for about five years on a 24/7-staffed watch floor. The schedule format changed every time someone new came in and took over, so we probably changed structures every year or so during that time. I can say with surety it wasn't a particular shift schedule but just the off-normal-schedule part of them that made it hard. One that stands out as particularly bad was 12 hours on, 12 hours off (midnight-noon or noon-midnight), three days on, three days off. That was brutal for everyone. Your first day off was a recovery day where you tried to back on normal schedule, and your first day back to work was about trying to not fall asleep as you adjusted back. It switched later to 12 on/12 off, three on four off, but having more time off a week still didn't help. Everyone spent their first day trying to recover so they could do stuff with people in their lives. Later we went to three shifts a day, and workers on the midnight to 8am shift kept that up, but the number of days off til the next shift were fewer, making it worse. The best I figure out to do working that for a few years was stay up when the shift was done and try to sleep at like 4-6pm, but that only was successful because she wasn't working.
It is overkill/brute force to install all the Anaconda default packages when a beginner is not going to use over maybe 5-10 libraries, but it's a solution that has worked flawlessly for beginners from my experience watching non-software engineers and "non-technical" people using Linux, Windows, and MacOS try Python for the first time in math and data science classes.
Proprietary features don't matter here like there. We get MathWorks employees here at least a couple times a year hawking their latest (paid) libraries, but at this point they're always something 5+ years too late, something that already exists in preferred languages--often for free.
Since our clients never deploy Matlab, it doesn't matter if their libraries are fractionally faster in any case besides mockup/experimentation in R&D, and for that I've never met anyone who chooses it for speed there. Plus in this day where even laptops are fast and cloud instances spun up in a few seconds, there's no point. It's also nicer for the dev to complain about not having enough ram to get a better machine than take the time to learn a new language for a specific use case. Likewise the project manager will prefer the quicker solution, buying.
The one item close to a "tie" with Python here is probably migration. Matlab always and Python most of the time get rewritten into something else, Java in my department.
For writing tests in a deep learning code base, rather than simply including a native data file (image, CSV, whatever), I've taken to writing a fake data creator class. It always feels like overkill when an alternative solution is including a native data file or two that already exists.
You can get dog tags made up for like $5 or so online probably...pretty cheap and effective.
Where that isn't a concern though, it will push devs over to Ubuntu (the only other Linux flavor I've seen around here) probably, and quickly the friction in government against non-Red Hat Linux flavors will drop. As an example of that friction, last I looked Red Hat published themselves guides and scripts to get CentOS stig'ed to the level we need here, while neither Ubuntu nor anyone else had automated it.
The power you describe comes in part from network size (which is why NNs became more useful as we could size up as computing got more powerful/cheaper/more efficient). Small network means less powerful ability. The research showed smaller networks didn't work, but larger ones did. Seems like you'd agree?
Just riffing now, let's say you add benefits the police officer can use after a term (versus only retirement type benefits that incentivize staying in) and some means of assistance into a new occupational field within the first term. It would seem the force also gets the added benefits of (1) more and a wider range of recruits, (2) workers who hate it have incentive to leave or at least don't feel/aren't trapped, and (3) just guessing, but I imagine the cost of the whole force goes down. Between a drop in average time in service of police officers due to more dropping out and fewer staying to retirement, the cost of the whole police force would drop. The new benefits' costs are an offset, though.
Edit: I wonder how an ROTC-type program would do. Make the rule police officers need a degree. That gets the level of officer up. The department pays for the four year degree and perhaps some living stipend, but you commit to an equal number of years on the force. As an office approaching end of that first term, you're making some new-ish public worker pay despite having a good Bachelor's degree (and no student loan debt). That gives incentive to leave.
Having to graduate first is a definite pro for the department, but it does run into problems if the recruit student fails a class, doesn't graduate, etc. Not sure how you deal with that. Maybe they work a lower level job for the department while in school to help offset that.
I'd say in general the likelihood of something illegal on the job being reported is high, while doing something illegal on one's off time (like something alcohol related) is much lower, especially among those of similar rank. On the former, my workplace had a huge layered nest of rules from all levels of organizations, and those being broken were taken seriously, though I did have to argue with my chain of command on whether certain ones needed to be reported. Some of that was due to particular bosses.
Personal/Personal time ones, I heard of things that got reported and some that didn't. Those are definitely more mixed.
On in versus out of unit, I can't really think of much mixing with people out of a unit. I think if there is a difference, someone is more likely to report on someone within one's own unit. From boot camp on, you learn the weak link ("shitbag") in your unit is going to get you all in trouble, so you need to make sure they're dealt with. In my first school after boot camp, there was a beach party reported that had underaged Marines among them. For like a month, the whole detachment on base, maybe 300 Marines, we're not allowed to be out of uniform even in our own room, among other punishments. Group/Mass punishments mean you either deal with a person who will lead to trouble or report them.
I'll say though, those who think it will be better out almost always get out when they can. The limitation of those so disenchanted with the Corps they think using the GI Bill or doing some other work will be better is the end of their current contract. It provides a sure out. You have to actively convince yourself it doesn't suck enough to be trapped another 2-6 years, while other jobs you need to take an active role in leaving. Those who stay in think the Corps is worth it.
I've been in a couple industries and never seen the same. People hate their job/occupation field/company, and stay in it for a million reasons. The military is nicely set up to spit out those who won't buy into the institution.
I would be curious to compare percentages within military and police forces of those who agree that "life would be better out, but I don't have a better opportunity out". I'd put money on that subsection of the population being much lower for military than police (and most to all other industries really).
I've never met anyone who uses Sage and work at large research center. If your college background is math, you used Matlab in school. If your background is in computer science, you go with Python or another programming language. Sage seems like the middle ground between those two, but who is that?
The cases posted here seem to be like yours where there is occasional need for workers or students whose employer or school doesn't or won't supply a Matlab license. Matlab is in most college math departments and offers keys directly to students for like $50-100, so there are few of those cases. An employer with math researchers isn't going blink at the $2k for a perpetual license, so anyone doing the work regularly gets Matlab who wants it.
I do think Sage is good software and it is important to have a free alternative to Matlab. The audience is pretty limited, though.
Thanks for the effort. Looks like a great project.
Isn't that true of most "adult" things taught to young children? Says you want to teach a sport, basketball. At a young age, all the kid is going to do at best is "master the syntax". That doesn't mean it isn't useful to start at an early age.
The author's argument can be applied to anything complex. You don't think kids "master the syntax first" learning math? Should we not start teaching math at a young age?
It seems the author is really just upset that anyone thinks coding is something simplistic to any degree.
I put it in context because it's not quite a direct comparison since I have been in greatly different situations and ages between studying math and CS, but putting that aside, I have to say I have greatly enjoyed the computer science means of teaching more than math, doubly when it comes to self-learning. Concepts in math are generally taught entwined with the means of proving those ideas. That's important if you're a grad student looking to be a math researcher, but (IMO) it is not so great if you're a newer student or learning on your own and trying to grasp the concept and big picture. A proof of a theorem can be (and too often is) a lot of detail that really doesn't help you grasp the concept the theorem provides or is used towards, often because it involves other ideas and techniques from higher levels or just different types of math, both of which are out of the scope of the student learning the topic. Worse yet, it is standard for a proof to be written almost backwards from how it would be thought out. Anyone from a math educational background has the experience in homework of solving a problem, then rewriting it almost in total reverse to be in the proper form to submit. This means not only is the proof of the theorem not useful towards conceptual understanding, reading the proof doesn't show you chronologically how you would discover it yourself. That is a lot of overhead cost to break through to get to real understanding, real learning. As you mention, notation as well is another thing you need to break through.
I have found computer science and related classes to be taught more constructively. Concept is given first, and then your job as student learner is to construct it. Coming from the ML field, I love comparing math and CS proofs of topics here. Explanations from CS people of back propagation, for example, are always visual, and books/courses will have you construct a class and methods to do the calculations. Someone with a bit of programming knowledge can follow along in their language of choice. Math explanations get into a ton of notation from Calc 3+, and it's going to take a lot of playing around and frustration to get a working system out of the explanation. Even the derivation section on Wikipedia is not something most people will understand and be able to turn into useful output.
The more I see other ways concepts are taught, the more I wish math had been taught a different way. There is a lot to break through in order to get to real understanding, just by the way it's formed and taught.
If you don't use more than a gig or two a month, that's close to one of the cheapest plans around. There are some cheaper prepaid plans, though.
The projects in my department take customer data, process/develop it in some way, and push it back out. Since we don't deal with the display at the end, there is a constant push for slides, demos, etc., from management to help sell it.
Hacked up demos by non-ui software engineers then became the product, and we have million dollar contracts coming for a mobile app and something that works in the browser.
The center's selling point is it's way cheaper than a private company or contractor, so subcontracting a UI designer isn't an option. I'm sure we'll have a working product, but it will probably be something like you describe. We shouldn't have taken it on, but when someone with money says, "I love it! How much?" it's hard to say no.
This is not an uncommon situation.
I realize that misses FB willfully doing what they did and Equifax not intending to be hacked, but for me my consent is equal or more important than what the holders of the data did after they had it.
Let's say I send a saucy picture to a friend and s/he shoots it all around to show off his/her banging bodied boyfriend (that being the "profit" factor). Now let's say a stranger finds my lost phone, gets the picture off the SD card with intent to use it for some personal gain, and through some series of events that gets leaked. Who did worse, the friend sharing the data I gave to them, or the stranger who got it without permission? Missing from this is Equifax had a lot more sensitive information than I put on FB.