Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "source control"
When I was in my second semester of college I was tasked with creating a file encrypt/decrypt program. Take in normal textfiles and spit out a new random text and symbols file. I worked on it for two weeks and read up on all different encryption types and stuff. I was so excited when it was done. After it was done compiling I tried it out on its own source code. Encrypto.c and named the output file Encrypto.c 😰 The next thing I did was google " best version control and how to use it."17
when your company doesn't let you use source control because it's afraid people would steal the code 😩20
4 years ago I was placed on probation for not having the special format in source control check in comments. When I asked, the 'special format' was
clearly documented on page 18, sub-section 4, sub-paragraph 2, "All check in comments will include the solution name, separated by a colon,
and why the code was changed." My check-in comment was only missing the colon. Indecently, over 80% of the other comments consisted of 'adsf',
'bug fix', and several 'BOOM!'s. So I mistakenly said out loud 'This check-in policy appears only to exist to allow management to cherry pick
developers they do not like, find something wrong, and put them on probation.' That comment got on a 30-day ‘corrective action plan’ for openly disagreeing with a
company policy. Today, all those managers were either fired or quit and now I set policy. Dear Mr. ex-Bosses, I won.6
Boss: I don't trust anything open source, I don't want you using anything that is open source
Me: But why?
Boss: Years ago I used plugin z and it was open source then days later it took control of my computer and wiped the prod database.
Me: *burns internally*
Me: By any chance do you happen to remember the name of the plugin?
Boss: Yeah, I think it was x
Me: *googles* Hey, according to this it is closed source?
Boss: Exactly what I said, closed source software sucks.
So am I allowed to use open source software or not???
To become an engineer (CS/IT) in India, you have to study:
1. 3 papers in Physics (2 mechanics, 1 optics)
2. 1 paper in Chemistry
3. 2 papers in English (1 grammar, 1 professional communication). Sometimes 3 papers will be there.
4. 6 papers in Mathematics (sequences, series, linear algebra, complex numbers and related stuff, vectors and 3D geometry, differential calculus, integral calculus, maxima/minima, differential equations, descrete mathematics)
5. 1 paper in Economics
6. 1 paper in Business Management
7. 1 paper in Engineering Drawing (drawing random nuts and bolts, locus of point etc)
8. 1 paper in Electronics
9. 1 paper in Mechanical Workshop (sheet metal, wooden work, moulding, metal casting, fitting, lathe machine, milling machine, various drills)
And when you jump in real life scenario, you encounter source/revision/version control, profilers, build server, automated build toolchains, scripts, refactoring, debugging, optimizations etc. As a matter of fact none of these are touched in the course.
Sure, they teach you a large set of algorithms, but they don't tell you when to prefer insertion sort over quick sort, quick sort over merge sort etc. They teach you Las Vegas and Monte Carlo algorithms, but they don't tell you that the randomizer in question should pass Die Hard test (and then you wonder why algorithm is not working as expected). They teach compiler theory, but you cannot write a simple parser after passing the course. They taught you multicore architecture and multicore programming, but you don't know how to detect and fix a race condition. You passed entire engineering course with flying colors, and yet you don't know ABC of debugging (I wish you encounter some notorious heisenbug really soon). They taught 2-3 programming languages, and yet you cannot explain simple variable declaration.
And then, they say that you should have knowledge of multiple fields. Oh well! you don't have any damn idea about your major, and now you are talking about knowledge in multiple fields?
What is the point of such education?
PS: I am tired of interviewing shitty candidates with flying colours in their marksheets. Go kids, learn some real stuff first, and then talk some random bullshit.18
Soms week ago a client came to me with the request to restructure the nameservers for his hosting company. Due to the requirements, I soon realised none of the existing DNS servers would be a perfect fit. Me, being a PHP programmer with some decent general linux/server skills decided to do what I do best: write a small nameservers which could execute the zone transfers... in PHP. I proposed the plan to the client and explained to him how this was going to solve all of his problems. He agreed and started worked.
After a few week of reading a dozen RFC documents on the DNS protocol I wrote a DNS library capable of reading/writing the master file format and reading/writing the binary wire format (we needed this anyway, we had some more projects where PHP did not provide is with enough control over the DNS queries). In short, I wrote a decent DNS resolver.
Another two weeks I was working on the actual DNS server which would handle the NOTIFY queries and execute the zone transfers (AXFR queries). I used the pthreads extension to make the server behave like an actual server which can handle multiple request at once. It took some time (in my opinion the pthreads extension is not extremely well documented and a lot of its behavior has to be detected through trail and error, or, reading the C source code. However, it still is a pretty decent extension.)
Yesterday, while debugging some last issues, the DNS server written in PHP received its first NOTIFY about a changed DNS zone. It executed the zone transfer and updated the real database of the actual primary DNS server. I was extremely euphoric and I began to realise what I wrote in the weeks before. I shared the good news the client and with some other people (a network engineer, a server administrator, a junior programmer, etc.). None of which really seemed to understand what I did. The most positive response was: "So, you can execute a zone transfer?", in a kind of condescending way.
This was one of those moments I realised again, most of the people, even those who are fairly technical, will never understand what we programmers do. My euphoric moment soon became a moment of loneliness...20
It's just ridiculous how most people complain about Google and their behavior of wanting to know everything about you... And use alternate products of companies like Microsoft that do almost the exact same things. Or even social media. Wake up. Even small companies want all your data if they have a well running product on the market.
You should rather ask yourself if it's worth giving away your data to more and more companies where you don't know at all what data they get and what they do with it or if it's okay to just give your data a hand full of big companies that sell your data like everyone else but at least have a bit of control over it to not fuck off all of their users and use most of it for personalized advertising.
Of course there are also people who use open source solutions for everything, but that's not what this is about.45
*my first day on the job to work on a website used by dozens of companies worldwide and 1000s of users*
me: So where can I find the git repository?
me: Uh... what kind of source control do you use?
dev: We don't use anything fancy like that.
me: *freaking out a little, I already committed to this job*
me: So then where do you edit your code and how do you back it up?
dev: Oh, I just edit it on FTP and zip all the code every week.20
I've had many, but this is one of my favorite "OK, I'm getting fired for this" moments.
A new team in charge of source control and development standards came up with a 20 page work-instruction document for the new TFS source control structure.
The source control kingpin came from semi-large military contract company where taking a piss was probably outlined somewhere.
Maybe twice, I merged down from a release branch when I should have merged down from a dev branch, which "messed up" the flow of code that one team was working on.
Each time I was 'coached' and reminded on page 13, paragraph 5, sub-section C ... "When merging down from release, you must verify no other teams are working
on branches...blah blah blah..and if they have pending changes, use a shelfset and document the changes using Document A234-B..."
A fellow dev overheard the kingpin and the department manager in the breakroom saying if I messed up TFS one more time, I was gone.
Wasn't two days later I needed to merge up some new files to Main, and 'something' happened in TFS and a couple of files didn't get merged up. No errors, nothing.
Another team was waiting on me, so I simply added the files directly into Main. Unknown to me, the kingpin had a specific alert in TFS to notify him when someone added
files directly into Main, and I get a visit.
KP: "Did you add a couple of files directly into Main?"
Me:"Yes, I don't what happened, but the files never made it from my branch, to dev, to the review shelfset, and then to Main. I never got an error, but since
they were new files and adding a new feature, they never broke a build. Adding the files directly allowed the Web team to finish their project and deploy the
site this morning."
KP: "That is in direct violation of the standard. Didn't you read the documentation?"
Me: "Uh...well...um..yes, but that is an oddly specific case. I didn't think I hurt any.."
KP: "Ha ha...hurt? That's why we have standards. The document clearly states on page 18, paragraph 9, no files may ever be created in Main."
Me: "Really? I don't remember reading that."
<I navigate to the document, page 18, paragraph 9>
Me: "Um...no, it doesn't say that. The document only talks about merging process from a lower branch to Main."
KP: "Exactly. It is forbidden to create files directly in Main."
Me: "No, doesn't say that anywhere."
KP: "That is the spirit of the document. You violated the spirit of what we're trying to accomplish here."
Me: "You gotta be fracking kidding me."
KP grumbles something, goes back to his desk. Maybe a minute later he leaves the IS office, and the department manager leaves his office.
It was after 5:00PM, they never came back, so I headed home worried if I had a job in the morning.
I decided to come in a little early to snoop around, I knew where HR kept their terminated employee documents, and my badge wouldn't let me in the building.
It was a shift change, so was able to walk in with the warehouse workers in another part of the building (many knew me, so nothing seemed that odd), and to my desk.
I tried to log into my computer...account locked. Oh crap..this was it. I'm done. I fill my computer backpack with as much personal items as I could, and started down the hallway when I meet one of our FS accountants.
L: "Hey, did your card let you in the building this morning? Mine didn't work. I had to walk around to the warehouse entrance and my computer account is locked. None of us can get into the system."
*whew!* is an understatement. Found out later the user account server crashed, which locked out everybody.
Never found out what kingpin and the dev manager left to talk about, but I at least still had a job.15
HO. LY. SHIT.
So this gig I got myself into, they have a whitelist of IP addresses that are allowed to access their web server. It's work-at-home. We just got a new internet provider, and it looks like I get a different public IP address everytime I disconnect and connect to the WIFI. And since it looks like the way they work on their codebase is that you either edit the files right on the server or you download the files that you need to work on, make the changes, and then re-upload the file back to the server and refresh the website to see the changes, now I can't access the server because I get different IP addresses. And it's highly inconvenient to keep emailing them to add IP addresses to the whitelist.
No source control, just straight-up download/upload from/to the server. Like, srsly. So that also means debugging is extremely hard for me because one, they use ColdFusion and I've never used that shit before and two, how the hell do you debug with this style of work?
I just started this last Tuesday, and I already want to call it quits. This is just a pain in the ass and not worth my time. I'll be glad to just go back to driving Lyft/Uber to make money while I look for a full-time, PROPER job.
By the way, can I do that to a contracting job? Just call it quits when you haven't even finished your first task? How does this work?17
"Hey, about that matter from yesterday..."
"Yes, what about that?"
"We need to talk about that again! How often do you trigger that system?"
"Yes, but i can check it, if you like."
"See, only once."
"Can it happen at a random point later one?"
"Are you sure?"
"Can you check it?"
"Look here, as you can see, it will not happen at other times."
"Do you have an idea why it could happen anyway?"
"Maybe that system does the action without my software telling it to do so, wasn't that specified that way?"
"Yes, but it normally does that roughly 10 seconds after you give the command the first time, so we thought maybe you could say what makes it do the action at other points maybe."
"Did you check that systems sourcecode?"
"No not yet. But did that happen with the older version?"
"No. But we didn't try."
"Did you change something between the versions?"
"Yes, the new feature."
"Could that make a change in behaviour?"
"I don't see how."
"Can you remove that feature for test?"
"We can take the old version."
"No, we need the new version, but without the feature you added."
"That IS the old version, there is no other difference!"
"Are you sure?"
"Would you like to see it in source control?"
"No, ~ okay. What do you think causes the problem?"
"I haven't had any new ideas since we talked yesterday."
"Okay. Mhhh,...okay. Lets talk again later."
YES SURE! BRING IT ON! I'M LOOKING FORWARD TO THAT! PLEASE COME BY OR CALL ME AGAIN! AND BRING THE BOSS WITH YOU, TO SHOW HOW SERIOUS THE MATTER IS! LET ME TELL HIM THE STUFF I TOLD SEVEN TIMES LAST WEEK!3
Had a fun little conversation with a potential employer...
Him: We use git for version control. To work with our team you'll be expected to do the same and be proficient at it.
Me: Not a problem. I am well versed with all things git! May I ask, what does your work flow look like?
Him: All of our source lives in a single repo and everyone commits straight to master.
Him: Conflicts will not be tolerated.6
My second job. I've been hired as a research specialist, not a developer, but they found out I could code during the interview.
Boss: hey, so we have our main product line that shares the control panel for all the models, right?
Me: unh, yeah
B: well, we need to know how it works.
B: yeah, I mean, we should have a manual with all the tech documentation so we know how everything works
M: ...and didn't you handle the tech docs to the developers?
B: uh...no, actually we requests feature to the devs (note: external company) with a phone call, or email...now we need the specs.
The other company (which is part of the same group) handles me the source code.
It is a huge, 25k lines of spaghetti written by at least 7 people, one at a time, uncommented.
After a month I produce a 50page doc with how everything works, after actually compiling my resignation letter 3 times.
M: boss, here the docs
B: fine, I'll take a look
15 mins later
B: this is not what we need! You cannot describe those algorithm like this!
( I described the algorithms with their block flow, with a punctual verbal description)
M: umh.. So how do you need it?
B: we need an excel table, with all the entering conditions on the rows and all the exit conditions in columns, and the description of the condition of work in the crossing cells!
M: are you even serious?7
Sometime in mid 2013 or 2014 as a junior dev I woke up to a call from my company's CEO. He informed me that the legacy system they use for order processing is down nationwide that nobody can add new orders until it's fixed and that I needed to fix it. I had been working there 6 months and was hired along with a senior dev to begin developing a web app to replace this legacy system. The senior dev had left the company two weeks earlier for a better offer so it was put on me to figure it out. I was very frank with the CEO and told him I didn't know if I could fix it and suggested he try to call the company they hired to create it. I didn't even know where the source code was let alone what the design paradigm was or whether or not there was any documentation. He said he would try figuring out who created it and give them a call and asked "As a developer you shouldn't you be able to fix this?" I just told him it wasn't that simple and left it at that.
I get to work and the CEO has discovered that the company who created the software no longer exists and I tell him he may need to find a company to consult on this if I can find the source code and if I can't find the code he might be screwed.
I found the source code in a random IT shared folder there is no source control, no documentation, no unit tests, no test environment, and it looks like nobody had touched it since 2005 or about 8 years.
Despite being completely unfamiliar with the code and the design paradigm I was able to figure out that they were validating customer addresses against an old Google geocoding API that was shutdown the day before and the lack of response was killing the application. I fixed the issue and warned the CEO before deployment that I wasn't able to test but he said to go ahead and thankfully all went well.9
D: Hey, your stuff isn't working, fix your stuff or it will become a road blocker.
Me: Why it is not working?
D: Because I used the same table as you used, and I changed a few things. there are 22 reasons for it.
(polite conversation stopped and I redirected him to my manager)
WTF? ARE YOU FUCKING KIDDING ME? YOU CHANGED MY STUFF WITHOUT TELLING ME AND YOU ARE NOT USING ANY SOURCE CONTROL? WTF? YOU CREATED THIS SHIT AND CALL MY STUFF NOT WORKING? ARE YOU A FUCKING IDIOT?
CUT YOUR FINGERS AND POINT TO YOURSELF.2
There’s a lot misinformation about what OCD is, and it’s getting quite annoying..
“People with OCD:
Have repeated thoughts, images, and urges about diverse issues, including being compulsively neat and organized; fearing germs, dirt, contamination, intruders, or violence; or imagining hurting loved ones or committing sexual acts or behaving in a way that conflicts with religious beliefs.
Engage in repetitive behaviors or mental acts such as washing hands, locking and unlocking doors, counting, keeping unneeded items (hoarding), or repeating the same steps to any task again and again.
Have obsessions that are intrusive and compulsions that often feel out of the person's control but dictated by a rule that must be applied rigidly.
Get no pleasure from engaging in the behaviors or rituals but do receive some relief from the anxiety the thoughts cause.
Spend at least an hour a day on the thoughts and rituals, which cause distress and get in the way of daily life.”
Also, if you see a title for example that is slightly not centered and you feel uncomfortable, it doesn’t mean you have OCD. It’s just human nature. If you do have OCD it’s much wider.
Imagine, you get employed to restart a software project. They tell you, but first we should get this old software running. It's 'almost finished'.
A WPF application running on a soc ... with a 10" touchscreen on win10, a embedded solution, to control a machine, which has been already sold to customers. You think, 'ok, WTF, why is this happening'?
You open the old software - it crashes immediately.
You open it again but now you are so clever to copy an xml file manually to the root folder and see all of it's beauty for the first time (after waiting for the freezed GUI to become responsive):
* a static logo of the company, taking about 1/5 of the screen horizontally
* circle buttons
* and a navigation interface made in the early 90's from a child
So you click a button and - it crashes.
You restart the software.
You type something like 'abc' in a 'numberfield' - it crashes.
OK ... now you start the application again and try to navigate to another view - and? of course it crashes again.
You are excited to finally open the source code of this masterpiece.
Thank you jesus, the 'dev' who did this, didn't forget to write every business logic in the code behind of the views.
He even managed to put 6 views into one and put all their logig in the code behind!
He doesn't know what binding is or a pattern like MVVM.
But hey, there is also no validation of anything, not even checks for null.
He was so clever to use the GUI as his place to save data and there is a lot of parsing going on here, every time a value changes.
A thread must be something he never heard about - so thats why the GUI always freezes.
You tell them: It would be faster to rewrite the whole thing, because you wouldn't call it even an alpha. Nobody listenes.
Time passes by, new features must be implemented in this abomination, you try to make the cripple walk and everyone keeps asking: 'When we can start the new software?' and the guy who wrote this piece of shit in the first place, tries to give you good advice in coding and is telling you again: 'It was almost finished.' *facepalm*
And you? You would like to do him and humanity a big favour by hiting him hard in the face and breaking his hands, so he can never lay a hand on any keyboard again, to produce something no one serious would ever call code.4
Drove 1.5 hrs for a interview at a company which was developing mgmt software for fire departments. They were very pleased with me, as i am with a volunteer FD and a perfect fit in their opinion. I declined after i found out they code base is mostly VB6 and they considered source control unnecessary.
Thanks, but no thanks.2
These anti AI type news articles are ridiculous. We are decades away from anything like skynet. People have seen too much fiction. Everyone used to dream of flying cars, did that happen? No. Do not be fooled, machines can do clever things but they are no where near becoming sentient beings. You try and build something that has the same IQ of a dog and it will still require a shit ton of power and hardware. Plus as far as I'm aware dogs haven't taken over the planet with their level of intelligence.
At the end of the day machines need power to run and we control the source. If anything futuramas more realistic in how AI/robots will integrate with society than these shit piece newspapers.34
My dad has an acquaintance - let's call him Tom. Tom is an gynecologist, one of the best in Poznań, where I live. He's a great guy but absolutely can not into tech of any kind besides his iPhone and basic PC usage. For about a year now I've been doing small jobs for him - build a new PC for his office, fix printer, fix wifi, etc. He has made a big mistake few years ago by trusting a guy, let's call him Shitface, with crating him software for work. It's supposed to be pretty simple piece of code in which you can create and modify patient file, create prescription from drugs database and such things. This program is probably one of the worst pierces of code I've ever seen and Shitface should burn for that. Worse, this guy is pretentious asshole lacking even basic IT knowledge. His code is garbage and it's taking him few months to make small changes like text wrapping. But wait, there's more. Everything is hardcoded so every PC using this software must have installed user controls for which he doesn't have license and static IP address on network card.
Tom asked me to build him a new PC that will be acting like a server for Shitface's program. He needs it in Kalisz (around 150 km from my place). I Agred (pun intended) and after Tom brought me his old computer I've bought parts and built a new one. I have also copied everything of value and everything took me around three hours.
Everything was ready but Shitface's program. I didn't know much about it's configuration so when I've noticed that it's not working even on the old PC I got a bit worried. Nevertheless I started breaking everything I know about it and after next three hours I've got it somewhat working. Seeing that there's still some problems with database connection (from Windows' Event Viewer) I wrote quick SMS to Shitface asking what can be wrong. He replied that he won't be able to help me any way until Monday (day after deadline). I got pissed and very courteously asked him for source code because some of libraries used in this project has license that requires either purchase of commercial license or making code open source. He replied within few minutes that he'll be able to connect remotely within next 10 minutes. He was trying to make it work for the next hour but he succeeded. It was night before deadline so I wrapped everything up and went to bed thinking that it won't take me more than an hour to get this new PC up and running in the office. Boy was I wrong.
Also, curious about his code, I've checked source and he is using beautiful ponglish (mixed Polish and English) with mistakes he couldn't even bother to fix. For people from Poland, here's an example:
So I drove to Kalisz and started working on making everything work. Almost everything was ready so after half an hour I was done. But I wanted to check twice if it's all good because driving so far second time would be a pain. So I started up Shitface's program, logged in, tried to open ANYTHING and... KABUM. UNHANDLED EXCEPTION. WTF. I checked trace and for fuck sake something was missing. Keep in mind that then I didn't know he's using some third party control for Windows Forms that needs to be installed on client PC. After next fifteen minutes of googling I've found a solution. I just had to install this third party software and everything will work. But... It had to be exactly this version and it was old. Very old. So old that producent already removed all traces of its existence from their web page and I couldn't find it anywhere. I tried installing never version and copying files from old PC but it didn't work. After few hours of searching for a solution I called Mr Shitface asking him for this control installation file. He told me that he has it but will be able to send it my way in the evening. Resigned I asked for this new PC to be left turned on and drove home. When he sent me necessary files I remotely installed them and everything started working correctly.
So, to sum it up. Searching for parts and building new PC, installing OS and all necessary software, updating everything and configuring it for Tom taste took me around what, 1/3 of time I spent on installing Mr Shitface's stupid program which Tom is not even happy with. Gotta say it was one of worst experiences I had in recent months. Hope I won't have to see this shit again.
Fortunately everything seems to work correctly. Tom hasn't called me yet with any problems. Mission accomplished. I wanna kill very specific someone. With. A. Spoon.2
Before I took on my current position (internal transfer), I stated that for what my boss asked for I would need a small team.
He agreed to that and promised I would get 2-3 developers.
6 months after (with countless reminders) he told me I could train some people at one of our providers.
Turns out those guys were Java developers, even though I asked for C# (since our codebase is .net)
After a few training sessions, where concepts as source control were a big topic ("why not just copy the code to a new folder with _good_ naming?"), I gave them a test assignment.
After reviewing their code I just gave up. They cannot program. They don't understand concepts like scoping of variables. Concepts of separation of responsibility.
I told my boss this but I had to make it work with them.
I went to my bosses boss (Head of IT) with my resignation in hand, since I felt my boss didn't want to support me actually getting a team. After a few talks I was asked to "keep it cool" and wait until he presented his new organization.
Now my boss asked me for which skills new developers should have. To which I could just laugh at him and forward countless mails from the last 6-8 months asking for developers.
<Irony>I love my boss</Irony>6
For fuck sake, stop complaining about the lack of privacy everywhere.
I'm not saying that worrying about your privacy is bad, I also really want to be protected and I know the risks we run when put our information on the net, I care about my data, but please stop acting like whoever uses Google, Facebook or Windows is a fool and you're the only genius around.
Because guess, I use their services and when I use them I'm explicitly authorizing them to process my data, to track me and to create a profile about me. It's an exchange, I know what they're doing and I've control on the data I'm serving them.
If, for some reason, I want to be more protected then I fucking use some open source iper-safe alternative, and that's it.
Seriously, I'm happy if you use those fancy alternative services for everything (for your reasons, I don't care) and I'm glad if you decided to don't use any closed source service anymore, but please, stop screaming against who uses them24
We use the best source control software, it allows build and deploy like no other, are you familiar with Visual Source Safe?
I don't know what's worse... That I'm old enough to know what that is; that I know how to use it; the question; or the fact that the maintenance of it stopped 12 years ago...2
This morning i wanted to work on my freelance project and it was corrupted for some reason, i started panicking, shed some tears, did a few shots, shed some more tears and after about 30min of doing this I realised that my project is on github and everything's fine now
I'm freaking tired of telling colleagues at work not to create feature branch in upstream and use their fork instead.
Turns out idiots can't recognize the difference between a forked repo and the upstream.3
I fucking love school janitor's reactions when they are called to fix projector connection in my school, we have an old teacher and she connected everything but the projector had shown no signal (all she had to do was do a simple log off log in or duplicate screen and it would work) and she calls the janitor to fix it. So janitor comes and he grabs this fucking 5 meter long stick (we dont have remote controllers) and he goes to change video source and every source shows no signal, the guy knew that he had no idea what he was doing he just clicks buttons with this giant stick and has already passed all sources that showed no signal 10 times, so he gives up on the projector and goes to the laptop just because he didnt want to look stupid and he bloody looks at it for solid 15 minutes but hes not even doing anything he was obviously trying to mind control the pc and make it work, after shameless 15 minutes he says this is beyond me and goes out of the classroom.3
Last week our department drama queen was showing off Visual Studio’s ability to create a visual code map.
He focused on one “ball of mud”, vilifying the number of references, naming, etc and bragging he’s been cleaning up the code. Typical “Oooohhh…this code is such a mess…good thing I’m fixing it all..” nonsense. Drama queen forgot I wrote that ‘ball of mud’
Me: “So, what exactly are you changing?”
DK: “Everything. It’s a mess”
Me: “OK, are any of the references changing? What exactly is the improvement?”
DK: “There are methods that accept Lists. They should take IEnumerables.”
Me: “How is that an improvement?”
<in a somewhat condescending tone>
DK: “Uh…testability. Took me almost two weeks to make all the changes. It was a lot of work, but now the code is at least readable now.”
Me: “Did you write any tests?”
DK: “Um…no…I have no idea what uses these projects.”
Me: “Yes you do, you showed me map.”
DK: “Yes, but I don’t know how they are being used. All the map shows are the dependencies.”
Me: “Do you know where the changes are being deployed?”
DK: “I suppose the support team knows. Not really our problem.”
Me: “You’re kinda right. It’s not anyone’s problem.”
DK: “Wha…huh…what do you mean?”
Me: “That code has been depreciated ever since the business process changed over 4 years ago.”
DK: “Nooo…are you sure? The references were everywhere.”
Me: “Not according to your map. Looks like just one solution. It can be deleted, let me do that real quick”
<I delete the solution+code from source control>
Me: “Man, sorry you wasted all that time.”
I could tell he was kinda’ pissed and I wasn’t really sorry. :)2
One of our senior dev enjoys berating the other devs because they don't check-in code according to his schedule (once a day, once an hour..he flip-flops a lot), then when they do, he 'reviews' their code, beating them up because of incomplete features, commented out code..petty..petty nonsense.
Ex. (this occurred couple of weeks ago).
Ralph: "The button click code in this event isn't complete"
Dev: "No, its not, the code in my development branch. You said it was best practice to check in code daily whether the code worked or not. I didn't finish the event last night and ..."
Ralph: "Exactly. Before you check any code into source control, it has to work and be 100% complete. What if someone moved that code into production? What happens if that code got deployed? I'm not even going talk about the lack of unit tests."
Dev: "Uh..well..the code is on the development channel, and I branched the project in my folder ...I didn't think it mattered.."
Ralph: "Ha ha...you see what happens when you don't think...listen..."
- blah blah blah for 10 minutes of hyperbole nonsense of source control check-in 'best practice'
This morning Ralph's computer's hard-drive crashed.
Ralph: "F-k! ..F-k! ... my f-king computer hard drive crashed!"
Me: "Ouch...did you loose anything important?"
Ralph: "A f-king week of code changes."
Me: "You checked everything into source control on Friday ...didn't you?"
Ralph: "F-k no!...I got busy...and...f-k!"
Me: "Look at the bright side, you'll have a good story to tell about the importance of daily check-ins"
Oh...if looks could kill. Karma...you're the best.1
I am still in the state of finding a programming language to be my expertise. I'm sick of learning the basics of so many things.
Very recently, I found myself into version control with Git/GitHub. I made my own github.io repo and worked on it while following some random tutorials on the Internet. It was cool and I was happy.
So I thought about contributing to other repos. The ugly part? I cannot understand any open source code out there other than mine because my knowledge of specific languages are very shallow.
I learn the basics of a lot of languages. When things get hard, I lose a bit of motivation and started to be interested in other, perhaps more rewarding things(which are usually harder). This is likely because I don't know what's best for me.
I want to get real.17
My ex-boss who had 35 years of experience in IT Industry, didn't know one single fucking coding language, obviously had no clue about source control or anything even remotely related to computers, and had been project manager of a project having over 1 million lines of totally undocumented code split into 389 files with no apparent structuring. All variables were either alphabets or names of programmers who developed them.
Code was in Python 2 and had bugs/line ratio ~= 5.
He asked to write a 'wrapper' class and somehow run it in Java and fix all bugs automatically. (insert Shia LaBeouf's magic GIF here)
When I said it doesn't make sense, he said you should put in hard work and do it, and not give excuses.
Time given to do this - 1 hour :-P
Good thing I quit that shit place and that pathetic moron. Love my new job and life! :D
Seriously managers should trust their developers and allow some degree of freedom. It helps a lot.5
When the department’s large plotter printer broke down, the users demanded they still be able to execute their large reports. The area manager understood reality, if we are waiting on parts, not a lot we can do, but one developer decided to re-write the report/application as a web/.asp application. Mind you, he wasn’t a web developer, mostly VB experience, so the ‘report’ executed the same queries and filled up simple html tables. Did it work? Sort of. The output had none of the specialized formatting like headers, grouping, summary calculations, etc. Since the users could see the data in the web browser and scroll left/right, they were OK with the temporary fix. When I heard this:
Me: “You do know the application could output the report in HTML exactly the way it prints to the printer. All we would have to do enable that feature in the application.”
Dev: “Yea, but I thought it would be cool to do it as a web app.”
Me: “OK, but we should just update the app.”
Dev: “Um...that is going to be difficult, the boss liked my idea so much, he wanted the report replaced with my asp application. I deleted the application from source control and from the network. Sorry.”
Me: “OMFG!…tell me you make a backup!”
Dev: “Ha!...no…boss said you would fight innovation. Web is the future.”
Me: ”What is going to happen when the printer is fixed!? Users are going to flip”
Dev: “Oh, we didn’t think of that. Oh well, that’s your problem now.”
Me: “WTF? My problem?”
Dev: “Yea, you are moving to the team responsible for those legacy applications, since innovation really isn’t your thing. I just got promoted to senior developer.”7
When older devs must keep all obsolete code in comments, "Just in case". No amount of begging can change their mind. Source control is a thing now in 2016, maybe you should read up on it.. 😑2
Ever take a computer ethics class? It was probably shit, so you should ignore it. Instead, read my rants! The next few will cover various computing topics which I consider ethical issues, but most people unfortunately don't.
First topic: don't write rude software.
What is rude software? It's software that performs side effects without permission, usually in the form of spewing files all over your system. This and other unrequested side effects are immoral - they deprive the user of control over their system.
Software should inform users what sorts of side effects it's going to have beforehand, and provide options to disable them if feasible. Users shouldn't have to read the entire manual to figure this out either.
Why does this matter? A few specific examples:
- Running software in restricted / sandboxed environments where side effects have to be carefully controlled.
- Undoing the result of running the program (e.g., uninstall something).
- If a user needs the software to work every time, they need to know what all of the side effects are to prevent spurious failures due to changing environments.
- Some side effects can be inherently unwanted, like spyware or telemetry.
Keep this in mind when writing your software. Users' machines are not your personal sandbox in which you can just fuck around.
Imagine if the cable company, as part of installing cable in your home, left their paperwork and tools strewn about your bedroom, and also refuse to install your cable if you don't let them do this. You'd think it rude, right? This is the state of modern software.
The specific incident today which got me huffy enough to write this rant:
Openssh tries to create .ssh in your home directory without asking, and it's impossible to know how to prevent this without reading the source code. In addition, no options are available for changing the location of this directory. In fact it goes out of its way to prevent users from instructing it to put the directory elsewhere (setting $HOME to somewhere else). It assumes that modifying the user's home directory is always okay.10
Was forced to do some work on Windows this week (CAD tools that runs only on Windows). I spent a few days just setting up the tools. There were quite a few things I realized I forgot about Windows (as compared to Linux).
1) Installation times are down right horrific. What exactly are the installer doing for 10 minutes?
2) .NET is a cluster fuck. Not even Microsofts repair tool can fix it, but rather just hangs. I ended up using another tool to nuke it and reinstall.
3) Windows binary installs are insanely huge, thus, takes forever to download.
4) The registry is a pointless database that must have been written in hell with the single intent of destroying users will to live. The sole existence of the registry is another proof that completely incompetent engineers designed Windows.
5) Rebooting is the only way to solve many problems. This is another sure sign of a fundamentally fucked up OS design.
6) What the heck is wrong with the GUIs designers? The control panel must be the worst design ever. There are so many levels to get to a particular setting I'm getting dizzy. Nothing gets better by the illogical organisation.
7) Windows networking. A perversion of the tcp/ip stack that makes it virtually impossible to understand a damn thing about the current network configuration. There are at least 3 different places that effects the settings.
8) Windows command prompt. Why did they even bother to leave it in? The interpreter is as intelligent as retarded donut. You can't do anything with it, except typing "exit" and Google for another solution.
8) Updates. Why does it takes hundreds of updates per month to keep that thing safe?
9) Despite all updates that is flying out of Redmond like confetti, it is still necessary to install antivirus to keep the damn thing safe. That cost extra money, and further cost you by degrading performance of your hardware.
10) Window performance. Software runs like it was swimming in molasses. The final stab in the back on your hardware investment, and pretty much sends performance on your hardware back a few hundred bucks more.
11) Closed source is evil. If something crash consistently, you might find a forum that address the issues you have. Otherwise you're out of luck. On the other hand, it might be for the better. I imagine reading the code for Windows can lead to severe depression.
I'm lucky to be a Linux dev, and should probably not complain too much... But really, Windows, go get yourself hit by a truck and die. I won't miss you.14
Second coolest project that I have worked was optimizing an algorithm that used images to speedup by 2000x by parallel processing. While the cpu took 7.34 seconds to process just one image and source, the parallel embedded code did it just in 0.0034 :) The coolest one is still in progress where I am building an Ai for my mac control ;)
A free, open source, modular (plugin based) home automation control center.
Ultimate goal is to support the core / apis and other devs code the drivers for the 'IoT' devices.
Also integratable with all the speech assistants like Amazon Echo, Google Assistant, Cortana etc.
Not that money dependent but very time consuming project.
Im starting in a week tho!5
I really enjoy my old Kindle Touch rather than reading long pdf's on a tablet or desktop. The Kindle is much easier on my eyes plus some of my pdf's are critical documents needed to recover business processes and systems. During a power outage a tablet might only last a couple of days even with backup power supplies, whereas my Kindle is good for at least 2 weeks of strong use.
Ok, to get a pdf on a Kindle is simple - just email the document to your Kindle email address listed in your Amazon –Settings – Digital Content – Devices - Email. It will be <<something>>@kindle.com.
But there is a major usability problem reading pdf's on a Kindle. The font size is super tiny and you do not have font control as you do with a .MOBI (Kindle) file. You can enlarge the document but the formatting will be off the small Kindle screen. Many people just advise to not read pdf's on a Kindle. devRanters never give up and fortunately there are some really cool solutions to make pdf's verrrrry readable and enjoyable on a Kindle
There are a few cloud pdf- to-.MOBI conversion solutions but I had no intention of using a third party site my security sensitive business content. Also, in my testing of sample pdf's the formatting of the .MOBI file was good but certainly not great.
So here are a couple option I discovered that I find useful:
Solution 1) Very easy. Simply email the pdf file to your Kindle and put 'convert' in the subject line. Amazon will convert the pdf to .MOBI and queue it up to synch the next time you are on wireless. The final e-book .MOBI version of the pdf is readable and has all of the .MOBI options available to you including the ability for you to resize fonts and maintain document flow to properly fit the Kindle screen. Unfortunately, for my requirements it did not measure-up to Solution 2 below which I found much more powerful.
Solution 2) Very Powerful. This solution takes under a minute to convert a pdf to .MOBI and the small effort provides incredible benefits to fine tune the final .MOBI book. You can even brand it with your company information and add custom search tags. In addition, it can be used for many additional input and output files including ePub which is used by many other e-reader devices including The Nook.
The free product I use is Calibre. Lots of options and fine control over documents. I download it from calibre-ebook.com. Nice UI. Very easy to import various types of documents and output to many other types of formats such as .MOBI, ePub, DocX, RTF, Zip and many more. It is a very powerful program. I played with various Calibre options and emailed the formatted .MOBI files to my Kindle. The new files automatically synched to the Kindle when I was wireless in seconds. Calibre did a great job!!
The formatting was 99.5% perfect for the great majority of pdf’s I converted and now happily read on my Kindle. Calibre even has a built-in heuristic option you can try that enables it to figure out how to improve the formatting of the raw pdf. By default it is not enabled. A few of the wider tables in my business continuity plans I have to scroll on the limited Kindle screen but I was able to minimize that by sizing the fonts and controlling the source document parameters.
Now any pdf or other types of documents can be enjoyed on a light, cheap, super power efficient e-reader. Let me know if this info helped you in any way.4
When I arrived at my new job last year they were working on developing a large site using a live server with all the devs ftp-ing every change in the build process to test it. 😵
It was not uncommon to hear 'is anybody in the style sheet?' being shouted across the office!
Needless to say, I had to fix many bugs multiple times when my fixes were overwritten!7
Got to know about OSMC/Kodi last week. Took out my Raspberry Pi. Setup OSMC over the weekend, did all the cable setup for 4 external hard drives and connected to TV via HDMI. After few configurations, I'm all setup. I'm astonished by all the features it provides. Fetching data from TMDb (I had actually created a javaFX app to do this for my local library just last month), remote control from Android as well Web Browser. Enabled UPnP and now I have my complete media center floating around my house network. It is one of the best open source project I have laid my eyes upon. Wish I could attach more pics.6
There was a workshop about git in our university and I was the teacher.
After teaching main concept of version control and git commands I was talking about open source community and github repository. First I should notice /pul/ in my language means money.
When I was talking about pulling changes from repository one of the student raised his hand and ask me "Why they would give us money?"
After seconds of silence I had feeling between laughing and crying1
I was reminded of people's posts about preferred text editors in another post, so I thought I'd do the same, but also add some super old technology that I used along the way.
The first text editor I consistently used was pico. I used it to write my first webpage at school.edu/~username. It was a natural choice, because the it was the default text editor in pine, which is what we would all use for our email after opening a serial connection to the college's Digital Unix server. Or if we were the lucky ones who had a computer in a wired dorm, telnet. My dorm was not wired until my sophomore year.
I got my first job in tech in 2001, working as a night shift tier-one support technician. By this time, most people were using web based email, or POP3, but I wanted to keep using pine (or elm, or mutt) because I was totally in love with the command line by this time, and had been playing with Linux for two or three years by now. I arranged a handshake deal with a guy in my home town who had a couple well-connected NetBSD servers, to let me have an account on one for email and web hosting (a relatively new idea at the time).
I recall telnetting into my shared hosting account from the HP-UX workstations we had in the control room. I would look at webpages on HTML conventions and standards, and I kept seeing references to this thing called vi. I looked into it more deeply, and found that it was a text editor, and was the reason I always had to CTRL-Z out of elm. I was already finding pico to be lacking, so I found a modern implementation of vi called vim that was already installed on the aforementioned NetBSD server, and read through vimtutor on it. I was hooked instantly. The modality massively appealed to me, and I found editing files to be an absolute delight, compared to pico, and its nascent open source offspring/successor, nano.
My position on that hasn't changed in the years that have passed since then.
What's your text editor origin story?1
"We don't need a framework or caching. Performance is our top priority."
Writes bad code without source control and local dev environment. (Production is dev too).
"To start up processes we use CRON jobs. Be sure to make another script that validates the first script though. You can start it up through CRON."
My ears were bleeding when I heard this as a student... (Internship)
"Just write a SQL query to fetch the data and write it to a CSV"
He said this while showing an example query that was over 3500 lines long. The database contained 750 GB of data that needed to be joined, replaced and exported.
Worst internship ever... Good lesson in how to not code.3
You know what's cool working for a company that uses Github for version control? My contributions on my profile are going through the roof and I expect will make me look like an open source hero!1
There should be a "Did you get latest? There have been 'x' commits since you last opened this project" dialog box when opening any team project.3
How I think the process for designing a hardware-driver is like
CEO: "Alright everyone, we have designed and created this great product, now let's write a driver for it!"
PM: "Great then! We just code for Windows, create an eye-catching UI but leave the actual at the worst possible case that could work!"
Dev: "B-But isn't there other OSes, like Linux and Android that people use on their computers too?"
PM: "Shut up! We are going to JUST support Windows and f*** no absolutely other OSes!
Dev: "But what if they are also developers, and want to control and use this great product by programming it themselves? We should make the driver open-source, or at least give them some APIs!"
PM: "Nonsense! They are only going to use this product on M$ Windows, and with the program we provide to them, even if it's crappy and crashes most of the time!"
PM: "No buts! That's our final decision!"
And some other consumer devs are like, "F*** it, we just reverse-engineer the codes and write a new driver ourselves!"
The first project I used Source Control with.
At my university, we were told that it would be a lot easier, and that we were required to use SVN, and not Git. Me not knowing much about either, decided to learn from two people who used Git.
Confused as I was how it all worked at first, we spent a couple hours trying to work out a work flow, and how we wanted to use it.
Eventually, I was like "Guys, I got it!" And explained how we should do it. Then then said
"That's how Git works"
We decided to use Git, and at the last minute shoved everything onto the school's SVN server they had for the team.
Been using Git ever since. Looking back, not sure why it was so hard, but I am glad to have found Git instead.2
rantPercentage := .25 * RANT_AVG
tldr := "Looking for a new project/job/mentor after a problem with my 'job'"
body := `
I've been working for a while now with a smaller minecraft network (hold up now, this is serious, don't walk away yet) for free. It was an amazing opportunity for me. I had the chance to work in a team on a common goal. They had equipment that I otherwise wouldn't have access to, and people who were serious about getting things done, unlike mostly all others. We had almost everything a normal business had- multiple departments, lots of people that sometimes worked through the night, proper version control on software, etc. While others were paid for their work, I chose not to be; I was doing this completely for experience. I want to be ahead for college and for a job as much as possible, so I've dumped most of my free time into this. I was a junior developer, head of security, DBA, and sysadmin. The biggest java and kotlin projects I have ever made, and the ones I was most proud of went to this network. I challenged myself in everything I did, and improved in programming tenfold since I started. I just recently spent three days on their server, setting it up properly, because someone thought managing a control panel was too much work and we need to switch to SSH. So I worked on this server alone for three days, every minute of my free time, setting it all up, and man, I thought it was a thing of beauty. It all made sense and was so simple to manage servers my grandma could do it. Made multiple improvements- iptables was configured, ssh keys were used instead of passwords, ACL was used to manage users' permissions for finer access control to the files, to name a few. I had planned on setting up fail2ban, MySQL and Postgres databases, a website, a couple Go programs to make creating servers even easier, backups to an external server with cron, the works. So after spending in excess of 45 hours on this project (learning tons along the way), I had about 13 servers up and running in an organized fashion, with startup scripts and permissions all done. This was the best setup yet. I went to sleep, got up in the morning, and found out that they had reinstalled everything again without saying anything, wiping out all my work, and had stayed up all night setting up a control panel to get 3 servers running, which they're still working on, and may get it done in a couple more days. So all my work was wasted. A part of me is fine with that I guess, sure it wasted a ton of time on my part but I still learned a lot. But the fact that they just deleted it all without warning and decided to change to another system entirely because it was too much work to learn the new way, after making me set everything up alone without help, having to deal with multiple people breathing down my neck and trying to get people to respond so I could get my work done, annoys the hell out of me. So I decided to take a break from them.
Now I'm looking for a new way to improve in everything I do. I want to get better at java, kotlin, golang, sql, everything related to system administration, database administration, back end, and maybe even a little frontend. I want to be the best developer I can be. The challenge of learning something new is actually fun. I just need a new project, or place to help. Unfortunately, most internships start after college, so that isn't an option, and being a janitor at a small business won't help me much unless I look over other peoples' shoulders when they're working. Open source projects would be interesting, but I don't know if I'd be able to ask anyone for help or opinions on anything. The perfect situation would be working for someone, and having a mentor that really knows their stuff to help me become better. Working on personal projects only gets me so far so fast; it's mostly a cycle of doing something a bunch of different ways because I don't learn about an alternative way to do it until I'm mostly done. Also, if I worked with people in an actual place, I'd get a feel for the environment and for how all the systems worked together. Finally, it'd show me how everything is done properly (hopefully) and how software development in the real world is. A real project, in a real team would be a Godsend for me. I'm not asking for one here, obviously, I just want to know- is this possible for me? I know people my age aren't often hired for this, but I really want to learn and improve. I don't have a degree, I'm self taught in everything. I've been using java for two years, kotlin for a half, golang for less. I know it's unlikely. Just.. how can I try to get this kind of situation, if possible? Thanks.
Why use git, do it simple, send me your changes by email and I will merge it.
Why split split source code (js) into different files, use one so we will no have trouble about load order.
Use the same user account for github/gitlab/bitbucket/etc. So we will no worry to setup access permisions.
Use Dropbox/Drive for version control.
We will test the whole system until the end when all is finish.4
Worst exp. with manager/higher-up?
Too many to pick the worst, but here are a few:
Manager demoted me because he believed I would be a roadblock to his wet dream of re-writing all the business services in WCF
Manager spent years and wasted countless man hours retiring a single ASP.Net web service by converting the individual supporting assemblies into specific WCF services..
Manager once berated me for 'missing' time log entries
Manager scolded me for not fixing a 'bug' while praised another developer who re-wrote a reporting application due to a fixable hardware problem and deleting the source code files from source control.
Manager wanted to rewrite all our code in XML.
Manager wanted integration with a new phone system knowing the hardware+software did not exist yet ..
Manager wanted me to 'take the lead' to speed up a web site in a foreign country we didn't control.
Am I the only one worried with the OS wars lately? Microsoft and Apple trying to gain even more control on everything and Linux remaining at less than 2% on the desktop. People are oblivious to the fact that their personal freedom is at risk, and don't you dare tell me otherwise. Companies knowing what we search or what files we have on our computer, having the ability to control us and force us to follow their rules. We have a choice, and I'm not talking about destroying the economical system a la Mr. Robot, but moving to the Open Source world, not because it's more secure, faster or some such shit, but because it's the only way to ensure freedom on one of the biggest part of our lifes, the digital part. My concerns may be exceeding the normal, and I'll hate it to be right, but I'm afraid that if this goes on, in a few years, we'll understand that we made a big mistake...22
Why is it so hard to convice coworkers (other programmers) to use source control? Yes it's an extra step every day or so but it can be so helpful and save so much more time tracking down versions and when the bug first appeared. Also, piece of mind if your computer every gets hosed.7
my company uses svn for source control. just found out the guy in charge of the repo actually uses git and just has all developers use svn because "there's less of a learning curve". WHY?!?! Git is so much better!4
Last job I was in, dev boss would ask to send him snippets of code through email for review...
...they used no git or source control
I quit after two weeks.1
So I had a piece of software crash on me earlier today...
I think "No problem, this was built internally and I saw the source code somewhere around here. 👍"
Locate source code...6 folders ("Project--v1.0--stable-2012", "Project 1.0", "Project 2.0", and a few others like it). Took me 20 minutes just to figure out which folder was used to build the project/exe. Turns out, none of the above. 👎
Had these people never heard of source control before?! 😣2
We just moved from ClearCase to git and got to deleted all the dead code and unlinked files that have been stuck in the repository for ten years. The most satisfying toilet flush ever.
Okay so i graduated last year and got a job working for a place that sadly disappoints me in their web development practices. This place uses a dead technology(my opinion)called Cold Fusion by Adobe. They do not use any form of version control like Git and their sites are very shitty and the design and development is implemented very poorly honestly. It honestly makes me sad that i feel like im smarter than my department vp. That being said i do not feel challenged here and am looking to collaborate in some open source projects via Github preferably.I dont consider myself an expert in this field but i would say im about intermediate level in web development. Im pretty comfortable with HTML,CSS/SASS,PHP,JS/JQuery, and im pretty comfortable in the PHP framework Laravel. So if anyone is interested in collaborating or starting something up, id be so down for it. :)7
Him: can we build something using which we can ensure that all the code related to all the rally user stories that have been tagged for a release, is part of the build?
Me: stares blankly
Him: you’re looking at me like I’m crazy. I’m looking for automating things to flag human mistakes.
Me (cursing silently): that’s why there are source control softwares and fucking code branches that get deployed and it’s not my problem if some shithead doesn’t merges his code to the central branch.3
I love VSCode Insiders. The daily builds (today there were already 3 of them) are coming fast as hell and always with cool new features. (new workspace handling, multiple source control providers simultaneously, TypeScript 2.5.2,...). Great job, MS.1
Im left speechless today when my boss (a dev for over 10 years) prefers to use WinMerge to manually merge frequent code changes instead of using the GIT source control.3
When a colleague does not understand source control and you stumble across that folder with each file with version numbers in the filenames.... please check in and check out!
Don't commit any sort of credentials into source control. Learn about untracked and ignored files. Additionally, don't hardcode them in your code.
Inspiration: Personal experience and the fact I'm staring at a public GitHub repo right now where a student has committed full MySQL credentials, even server and table names. :\
A few years ago I had a client that wanted a site transfered to their servers before it was complete. They then took over, making changes to their files. Then they would ask me to change some js and css that they couldn't figure out. Since neither them or I were using source control, I had to add my changes to a text doc and send to them with the file names and line numbers. What a pain.
1. Teach DS and Algos. Not basics but advanced data structures and the ones that are recently published.
2. DBMS should show core underlying concepts of how queries are executed. Also, what data structures are used in new tech.
3. Teach linkers, compliers and things like JIT. Parsers and how languages have implemented X features.
4. Focus on concept instead of languages. My school has a grad course for R and Java. (I can get that thing from YouTube !!)
5. Focus a little on software engineering design pattern.
6. It's a crime to let a developer graduate if he doesn't know GIT or any version control. Plus, give extra credits for students contributing to open source. Tell them if they submit a PR you get good grades. If that PR gets merged bonus (straight A may be ?)
7. Teach some design pattern and how industry write code. I am taking up a talk at school to explain SOLID design pattern.
Mostly make them build software!
Make them write code!
Make them automate their homeworks!
Make them an educated and employable student.!1
How isolated do you have to be as a developer to not know why you don't commit compiled files into source control? And then argue about it?2
So made this component that my colleagues also use.
Today i checked source control...
What did they do to my creation?
Lines commented out here and there. Features destroyed by rewriting it, instead of just using it. Related unit tests broken of course. It had everything. And why not ask me?
According to Source control they helped each other. Working together as a team, desecrating my code.2
Tired of chasing an elusive architecture and finding good community that helps promote it. Basically:
- Not CRUD
- Not MVC
- More like CQRS; commands and queries represent use cases
- Event Sourced; event log is source of truth, everything else is a cached projection
- Functional Domain Design; not DDD; focus on immutability and simplicity
- Functional in general; less OO
- More focus on domain concepts rather than tech concepts
- Domain can be used through CLI, API, or SDK
- UI is just another client to the API
- Authorization is ABAC, graph-based access control
I'm looking for a fucking unicorn.10
So I have some XSDs for integrating with a third party supplier, which I need to convert to java classes. Easy, jaxb to the rescue!
Now when it comes to checking into source control, do I either a) check in generated files (bad) , or b) check in the XSDs and have maven generate my classes each time the project is packaged using its jaxb plugin (good).
Of course the senior dev picks option a), purely because some people in charge of support may not understand maven.
Why do I have to do things the wrong way because people don't want to learn/are incompetent? Why are there people in charge of support who don't understand simple tools?3
I used to think that nothing could load faster than the "Thing With 'S' Logo" on a 4 gigs machine. But then Nadella's army updated their "Thing With Blue Logo" to the "Thing With Orange Logo". Plus the extra features, integrated source control, extensions and more.14
Just fixing a broken build due to another bad merge by SVN. There was no reason it should have fucked that merge up but somehow it did.
Of course I didn't double check by building locally so that was my screwup but what I wouldn't give to use a decent source control tool1
For the past 5+ years all I’ve heard from DevA and DevB is what a mess our source control is, we should be using our own custom nuget feeds,..Monday morning quarterback this…Monday morning quarterback that.
This year the department manager gave them the green light to start from scratch. Like ‘green field’ start from scratch. If I were involved, I would have been excited with such an opportunity.
For the past two hours all I’ve heard is ..
DevA: “What should we call this namespace?”
DevB: “I don’t know, I can’t make that decision.”
DevA: “Yea, that’s a business decision. Let’s call it Common for now.”
DevB: “Yea, it’s stupid, but we can change it later.”
DevA: “What about logging project?”
DevB: “Well, how about Core? Every project should have a Core.”
DevA:”Ha ha…like .Net Core. I like it.”
On and on…it’s all I can do from throwing my chair right now.1
I have already started the process of a side project by desiging the software, the architecture, the 3d model, ordered all the electronics of a pet 'smart' stable for my guinea pigs.
Which would automatically feed them and refill their water tanks silently but for me the point on playing around with dozens of sensors for like different water levels, water quality, hay, temperature, water quality (you get the point) ... Building a nice looking web interface or an App to control everything and get a live feed from different angles ( sounds a bit crazy altogether but it looked like a cool project )
I even started a instructable and had a github repo for sharing the source of the app/web interface and the whole micro service based server
I'm still at it and hopefully will start to build the ***ing wood and acrylic parts in the next month's but currently and for the last month's free time ist my archenemy
Keep you posted if you are interested 😀
Here's how to do a few rudimentary things in Java and VB. No QA, no Agile or anything like that, no source control. Public vs private? Static and final? You won't need to learn much of that. (Tech school)
First job out of school was for a company that did Cold Storage as its main gig and custom dev as a minor form of additional income. I worked with one of the owners and another guy as a three man agile team.
Except, the owner didn't trust source control, so we didn't use it. There was no organization, instead the owner would come in every morning, and assign something new. Randomly, the owner would come in and pitch a fit that something he had assigned 3 weeks before, immediately pulled us off of the next day, and ordered us to DELETE the code for, wasn't done. He treated the other guy on our team as his personal whipping boy. He would sometimes go 2 or 3 days without saying a word to me. No project to work, nothing. I would sit there all day with nothing to do. I stayed there a year.
as a seasoned systems eng myself, i had huge mental block of "i am not a programmer" whining when starting to incorperate agile/infrastructure as code for more seasoned syseng staff.
leadership made devops a role and not a practice so lots of growing pains. was finally able to win them over by asking them to look at how many 'scripts' and 'tools' they wrote to make life easier... and how much simpler and sustainable using puppet/ansible/chef/salt... and checking in all our sacred bin files and only approved 'scripts' would be pushed thru automation tool after post review.
we still are not programmers or developers, but using specific practices and source control took some time but saving us loads of time and gives us ability to actually do engineering
but just have 2 groups of younger guys that grew up wanting to be the bofh/crumudgen get off my systems types that are like not even 30... frustrating as they are the ones that should be more familiar with the shift from strictly ops to some overlap. and the devs that ask for root now that they can launch instances on aws or can launch docker containers and microservice..... ugggg. these 2 groups have never had to rack and stack servers, network gear, storage... just all magic to them because they can start 50 servers with a button click.
try to get past the iam roles, acls, facls, selinux and noshell i have been pushing. bitches.
There have been a few :)
If say it's a videos utter project I initially though was good. Apart from loading a view the controllers didn't do anything - my initial thought was some magic was happening behind the scenes.
However, when I opened up the view things changed.
ALL the business logic happened in the view. Everything. Form processing, consuming an app, file uploads, validation, crud ... You name it, it happened in view. The developer created a raw MySQL connection and build his queries by concatenation g strings, the whole system was wide open to sql injection.
Even more annoying was the "source control" he invented. Every file had several copies. I.e. "User(working).php", "user_v3.php" and even "user(working_no_profile_fields_1.php". It wasn't even like there was any consistency in what file was actually used either. A complete mess. The system had around 69 screens too. No idea how the developer got that gig.2
I have a few projects on the go at work at the moment which could be successful, but only time will tell:
1. We have a requirement to monitor or SQL servers for any long running queries (anything that runs longer than 3 minutes). Company didn’t want to pay for enterprise grade solution so as the only SQL Developer I created a small system that involves a database, 2 tables a stored procedure and scheduled job. It goes off every 10 minutes queries some system tables etc and write the results to the tables. Still waiting for it to be deployed to one of the test servers. I have plans for a web front end in the future.
2. My company currently use source safe for version control. They’ve lost the admin password so only 1 person can log in. I’m running he project to plan the migration to GitLab. It’s getting close to completion and soon someone is going to be tasked with creating 100s or projects etc.
3. We use an ERP system which is huge with thousands of tables, but no FKs or anything like that. The current data dictionary is a spreadsheet, as a side project I’m creating a web app so that this information is easily available and searchable.
All 3 projects have the potential to be successful, for my team at least, but stuck waiting for other people to do their stuff first.
That moment when you convince your team's project manager to finally encrypt the config files before comitting them to source control..
All those volume sliders people were posting, some were made, WITH source code provided. Hope your clients enjoy.
Wrote a new feature for our flagship product in C. Worked perfectly, no issues. I was told to wait before submitting to SVN.
Because my company is a little cheap in engineering, they took my Green Hills license for another dev to use. I wasn't using it, and now can't compile.
Then, a month later, I was asked to submit my feature to the repo, they needed it in done version, do I did. Still not able to recompile to see if other changes broke anything...
As you probably guessed, no one's code complied after pulling from the repo! Big embarrassment. Weeks later I was told that it wasn't my fault in the end... I don't remember how my code impacted it, but man, it was a bad day for this dev.
Sure, you *could* set up identical VMs on your server and just have one config file for your java application. But why not just set up lots of users on the server, keep various configs in source control, and have a manual task to change the config you're pointing to when you build?
Fuck when the app builds on everyone else's machine in the company but yours and you have no idea why. I pulled the same branch from the source control, made sure everything was right, even tried just copying it directly from a co-worker's machine but it just won't fucking work. Fuck you extjs for not letting me work for now almost 5 hours. Fuck you.2
- Promote source control usage especially in group projects
- Teach clean code principles
- Push for commented code in exercises
So started my new job this week (first Dev job after 4 years on various support desks) it’s going ok, but for some inexplicable reason they use visual source safe for version control.
I had to google it, i can’t even install it on Windows 10!8
Read everything and by looking at the source code by example, changing stuff and seeing what happens, reading tutorials, books, watching videos. Then coming up with an idea I want to do that doesn't seem too difficult but gradually building up knowledge of commands, memory, input and output, variable types and manipulation of said types, learning program flow and control and making stuff one project at a time.
My work product: Or why I learned to get twitchy around Java...
I maintain a Java based test system, that tests a raster image processor. The client is a Java swing project that contains CORBA bindings to the internal API of the raster image processor. It also has custom written UI elements and duplicated functionality that became available in later versions of Java, but because some of the third party tools we use don't work with later versions of Java for some reason, it's not possible to upgrade Java to gain things as simple as recursive directory deletion, yes the version of Java we have to use does not support something as simple as that and custom code had to be written to support it.
Because of the requirement to build the API bindings along with the client the whole application must be built with the raster image processor build chain, which is a heavily customised jam build system. So an ant task calls out to execute a jam task and jam does about 90% of the heavy lifting.
In addition to the Java code there's code for interpreting PostScript files, as these can be used to alter the behaviour of the raster image processor during testing.
The server isn't much better though. It's a tomcat based application that was written by someone who had never built a tomcat application before, or any web application for that matter and uses raw SQL strings instead of an orm, it doesn't use MVC in any way, and insane amount of functionality is dumped into the jsp files.
It too interacts with a raster image processor to create difference masks of the output, running PostScript as needed. It spawns off multiple threads and can spend days processing hundreds of gigabytes of image output (depending on the size of the tests).
We're stuck on Tomcat seven because we can't upgrade beyond Java 6, which brings a whole manner of security issues, but that eager little Java updated will break the tool chain if it gets its way.
Between these two components we have the Java RMI server (sometimes) working to help generate image data on the client side before all images are pulled across a UNC network path onto the server that processes test jobs (in PDF format), by reading into the xref table of said PDF, finding the embedded image data (for our server consumed test files are just flate encoded TIFF files wrapped around just enough PDF to make them valid) and uses a tool to create a difference mask of two images.
This tool is very error prone, it can't difference images of different sizes, colour spaces, orientations or pixel depths, but it's the best we have.
The tool is installed in both the client and server if the client can generate images it'll query from the server which ones it needs to and if it can't the server will use the tool itself.
Our shells have custom profiles for linking to a whole manner of third party tools and libraries, including a link to visual studio 2005 (more indirectly related build dependencies), the whole profile has to ensure that absolutely no operating system pollution gets into the shell, most of our apps are installed in our home directories and we have to ensure our paths are correct for every single application we add.
And... Fucking and!
Most of the tools are stored as source bundles in a version control system... Not got or mercurial, not perforce or svn, not even CVS... They use a custom built version control system that is built on top of RCS, it keeps a central database of locked files (using soft and hard locks along with write protecting the files in the file system) to ensure users can't get merge conflicts by preventing other users from writing to the files at all.
Branching is heavy weight and can take the best part of a day to create a new branch and populate the history.
Gathering the tools alone to build the Dev environment to build my project takes the best part of a week.
What should be a joy come hardware refresh year becomes a curse ("Well fuck, now I loose a week spending it setting up the Dev environment on ANOTHER machine").
Needless to say, I enjoy NOT working with Java. A lot of this isn't Javas fault, but there's a lot of things that Java (specifically the Java 6 version we're stuck on) does not make easy.
This is why I prefer to build my web apps in python or node, hell, I'd even take Lua... Just... Compiling web pages into executable Java classes, why? I mean I understand the implementation of how this happens, but why did my predecessor have to choose this? Why?2
One responsibility of our team is general code QA for the entire dev department, DevMgr walks in our area yesterday…
DevMgr: “Has anyone reviewed the new WPF threaded model execution code?”
- everyone on the team responds “no”
DevMgr: “Can we get a review on that code ASAP? If it works as well as the developer said, it’s going to solve the lock up problems users are experiencing and automatic logging of errors.”
DevA: “Well, no amount of code is going to stop users from performing bad searches locking up the user-interface. That code is just a band-aid around the real problem. If the developers would write unit tests first …”
- rant about 5 minutes on unit testing that had nothing to do with why the DevMgr was here
DevB: “Yea, the code probably isn’t written to handle threads correctly. All the threading they’ve done so far is –bleep-”
DevMgr: “Oh, I wasn’t aware of that. Get me the results of the code review and if they don’t have unit tests, delete it from source control and let the developer know it’s not up to our standards.”
OMFG!! You have not even seen the code!
OK, DevA ..what the –bleep- does unit testing have anything to do with the user interface! You know the DevMgr is too dim to understand the separation of concerns. Shut your pompous ‘know-it-all’ mouth.
DevB…what the –bleep- have ever done in WPF? You manage the source control and haven’t written any C# in two years and never, ever written code for any significant project. Take that “handle threads correctly” and shove it up your –bleep-. Pompous –bleep-hole. Go back and watch youtube and read your twitter while the grown-ups get the work done.3
On one hand, it would be nice to have someone else help me out. On the other hand, I like having total control and knowledge of the source and I don't like people messing with it.
Comments throughout code with things like "changed to fix bug #". And commented out code all over.
We have source control, why the hell are you doing this?
Rant from the past: when I was 16 I worked for a small company that had about 12 projects they worked on and maintained for local businesses...our svn was Dropbox.
In the process of applying for a job with another company. It all looks fairly promising, but...
... they use SVN for source control 😫2
The sun is glaring on my laptop screen so badly, that I can't see my dark-theme console. I really hope `git add .` does only what I wanted it to today. That's why we have source control, right?
I started playing around with computers when I was about 3 years old, than at 12 my "Technology" teacher showed us a programmer he and his colleagues made, a free and open source version of Logo, logoit. You could control a turtle and make it draw lines on a plan. Than I got into c++ and web development.
It's too early to be asking these questions today:
Are your DB schema changes checked into source control?
What branch are they checked into?
Why are the schema changes checked into one branch, but deployed to a completely different database?
Is my CI pipeline deploying incorrectly? Oh, you manually deployed changes.
Are your DB changes in source control an accurate reflection of what you actually put in the staging database?
Can I just cherry-pick update my schema with your changes from the staging database?
Why is there a typo in your field name?
Oh. Why is there a typo in the customer data set? Don't they know how to spell that word?
Why is the fucking staging database schema missing three critical tables?
Is the coffee ready? I need coffee.
Why is the coffee not ready yet?
What's going on in DevRant this morning?
What project am I working on now anyway?
Did my schema update finish yet?
Yup, it finished. Crap. Where the hell do I keep those backup files?
What's the command line to restore the file again?
Why doesn't our CLI tool support automated database restores?
I can fix that. What branch name should I check the CLI tool into?
What project was I working on this morning again?1
Remembering of when I first learnt about the importance of version control.
There I was, working in Visual Studio, laptop unplugged; the laptop suddenly shuts down - battery dead. Not too worried, might just have to rewrite a few lines I had not saved. Restart the machine, open VS, the file I was working on now contains strange characters - totally damaged.
Google for help, find a question on stackoverflow with the same issue (comforting moment). The answer I get:
"First question, why wasn't your code on source control?"4
Client uses CVS, tells me stories about how awful their new acquisition is because they don't use source control at all, only building off a file share...
Points for trying I guess?
Get told a colleague finished work on a new web service thing on Friday.
So I fire up SOAP UI. Get an error due to problems with a sql statement. Look through code, issues already fixed so I build the project ct add the new dll to the app, another error, this time a column included in a select statement that doesn’t exist in the table being queried.
Colleague is on holiday, there are no comments in the code and there’s no source control.
Boss wants to know if the column needs to be added, or whether colleague added it and then decided not to use it.
I think I have an idea what it is meant to happen, but my only exposure to this project is as a 30 minute intro, and we didn’t look at any of these parts.
And sadly I left my crystal ball at home today fml
If IBM makes a product of something we use, we get it, ClearCase, ClearQuest, message broker, websphere, rational team concert, jazz source control... And a skinned version of eclipse3
I was in my IDE writing up a new program, but my compiler didn't accept the encoding format of the files. Because I used special characters, it flipped a lot of encodings around. Then I changed my projects master encoding, then all of the source files they all messed up. The all the files were composed of "????????" I went to a backup and they were messed up too. I exploded... Control Z couldn't even be my hero this time.3
I can't tell if this is a windows sourcetree problem or mercurial, but trying to do anything on this is a pain. Every action takes 3-4 seconds (including switching between history and working copy).
My project is 10 commits and 50 files, this is a horrible ux. Bazaar never had this many problems.
Finally got my boss to allow us to use git so we have a source control for not just our applications but our websites. He told me he still won't use it. Should I make a copy of the sites then take it down and see how long it takes them to recover?
Also, the only backup of the websites is in the root directory of each website2
Was thinking of some missing features for everyone's favorite source control software:
git blame problems --all
git wtf this_branch
git just_fkin_merge_it branch
git abort --mylife
A friend who studied with me in the software engineering degree, told me that they use source control, but only with commits.
No branches no nothing.
Now, I understand when a company won't work without source control but how can you work with source control without branches? In a start-up? With more than 10 deve?
Nothing quite like having your source control system deciding which files you want, and which should be deleted.
FICK YOU EDMX AND FUCK YOU TFS SOURCE CONTROL! JUST WASTED 2 HOURS OF MY LIFE TO CHANGE A FUCKING COLUMN NAME!
It’s almost 2018 just right fucking SQL and use git.1
Interesting NY Times article today Saturday March 26 2016 by Markoff and Lohr, "A Race to Take Control of Artificial Intelligence And the Future of Tech". Lots of C levels will read this article and ask CIO if AI on radar. Will fan the fire. Also a lot of VC action. Google TensorFlow open source. Microsoft also all in and of course IBM Watson. Google beat Go grandmaster 4-1, which is tougher than chess program. Something to keep on your radar. Have fun!
So a friend of mine is studying delegates for swift right now and he asked me if there was a substantial difference between a data source and a Delegate. A data source is a delegated control of data while a delegate has to do with UI... right? Lol2
I use Apache .htaccess to rewrite requests to .git folder to return 404. Why? Because next web told me I'm using git wrong, that they directory contains source control compromising information but I'm too lazy to figure out what to do and--this is the most important part--I don't know what I'm doing.