|
The Gripper posted:They do, but then you have to deal with there being no authoritative repository and all the bullshit that comes with that (mostly just verifying that the copy you choose to start from is pristine). Isn't that part of the reason for signing commits, though? Being able to authenticate them? And doesn't git work on the idea that a commit includes all of its history (recursively)? The Gerrit server can sign a commit before pushing it, meaning that you can at least trust from that commit and back if you trust the signature. Edit: it looks like they weren't totally up the creek even if that last mirror failed: quote:Also, one thing I forgot to mention in the original post: we actually had tarballs of all repositories. We create them every few days, but they are not perfect backups. They’re detailed further in the update post. Volmarias fucked around with this message at 12:51 on Mar 25, 2013 |
# ? Mar 25, 2013 12:49 |
|
|
# ? Jun 8, 2024 08:38 |
|
Yeah, the update post is pretty interesting. Apparently normal filesystem backups wouldn't have worked, because you don't know whether the repo is in mid-commit and thus in an invalid state (and they often are, because contributors often upload large commits over slow connections). What they needed to do was just have a server doing git clone, without the --mirror option, and backing that up. But that's really only because the --mirror option was broken and would mirror corrupted repos without checking them. That's actually a little crazy too, so I guess the real issue is they outgrew git by a significant margin.
|
# ? Mar 25, 2013 15:01 |
|
O Tempora! O Mores! posted:At my work, one of the projects I'm on is a J2EE web application where a large portion of the dev team outsourced through an Indian consulting firm. Insofar as I can tell, the servlets they pump out work fine, but I keep running across weird code in the JSPs that makes me think they don't understand how Javascript works: They probably don't. One of the higher-ups at the company I'm at now has shown me in the last couple years that you can do a lot (of damage) without knowing much at all about how anything you're copy+pasting in actually works.
|
# ? Mar 25, 2013 16:43 |
|
The Gripper posted:They do, but then you have to deal with there being no authoritative repository and all the bullshit that comes with that (mostly just verifying that the copy you choose to start from is pristine). I don't understand, why is git bad for large projects?
|
# ? Mar 25, 2013 20:11 |
|
QuarkJets posted:I don't understand, why is git bad for large projects? It isn't that git is bad for large projects, it is that git as a backup plan is a bad idea.
|
# ? Mar 25, 2013 20:23 |
|
Glimm posted:It isn't that git is bad for large projects, it is that git as a backup plan is a bad idea. Git is fine as a last resort backup plan, for the bit after "both our datacenters burn to the ground" on your disaster plan.
|
# ? Mar 25, 2013 20:27 |
|
I've been thinking of throwing away a bunch of code I've been working on for a project. It's basically a prototype that is becoming too convoluted to debug in a language that has lovely debugging (Javascript/Node.JS). Anyway I came upon this article: http://www.joelonsoftware.com/articles/fog0000000069.html And was pretty much dieing at this: quote:Third, the code may be doggone ugly. One project I worked on actually had a data type called a FuckedString. Another project had started out using the convention of starting member variables with an underscore, but later switched to the more standard "m_". So half the functions started with "_" and half with "m_", which looked ugly. Frankly, this is the kind of thing you solve in five minutes with a macro in Emacs, not by starting from scratch.
|
# ? Mar 25, 2013 20:51 |
|
The question of doing a rewrite is always going to be a contextual one. I would certainly lean towards "don't rewrite it" when it comes to professional projects because those costs are tough to defend and you'll need way more justification than OCD / perfectionism / "It's not The Right Way". Though sometimes it happens. We've got a client-facing data integration system that is stone aged and OMG terribly implemented, but it's operational (essentially a client drops a CSV onto our server & we run a process that consumes it and kicks off appropriate post-processing on a per row basis). I just today had to email back a client asking them to change one of the columns from single character codes to numeric values, the mapping of which is so simple it can be expressed in an email and a non-technical person would fully understand. The old and busted system can't accept character codes on that column and is such a rat's next of fragile code (1500 line functions) that it's too dangerous to operations to try and make any change because it's so difficult to predict what other problems that could create that are working right now due to half a dozen staples-and-duct-tape solutions that were tacked on. We're just going to re-write it and salvage maybe 5% of the code because every fiber of that system is terrible. But it only really adds up because the system we need isn't all that complex, whereas the system we have is a monstrosity that sucks many hours out of each week and would be a larger project to fix properly compared to creating that functionality (by people who know what they're doing) in parallel and working on a smooth transition over to the new system. These cases usually only come up when an old technical debt goes toxic and spirals out of control and (to overuse the analogy) you opt to pay it off in full to stop the bleeding. And from the last page, the cargo cult talk reminded me of the following quote, which was making its way around twitter a little while ago: quote:Ruby is a DSL for turning cargo culting into podcasts EDIT: vvvv Yeah, that was the source I have too. I was cleaning out RT tags but probably should have left the origin. Bhaal fucked around with this message at 23:18 on Mar 25, 2013 |
# ? Mar 25, 2013 22:47 |
|
Bhaal posted:Ruby is a DSL for turning cargo culting into podcasts My god. I'm using this, and if I can't find the source after a little googling, I'll just use it as is. e: https://twitter.com/blowmage/status/290879911059652608 No Safe Word fucked around with this message at 23:05 on Mar 25, 2013 |
# ? Mar 25, 2013 23:03 |
|
Crosspost from the ouya thread in games:SoupyTwist posted:http://forums.ouya.tv/discussion/1040/in-app-purchase-testing-change This system launches tomorrow.
|
# ? Mar 27, 2013 17:32 |
|
quote:The problem with that solution (which is still live now btw) is that we cannot currently differentiate between game versions when a purchase is made. Therefore, once you have one version published, if you are developing another version, all purchases will be non-test, even if you have the test flag enabled. Holy gently caress.
|
# ? Mar 27, 2013 18:13 |
|
It seems like there's not a single person working on the Ouya who actually knows what they're doing.
|
# ? Mar 27, 2013 18:33 |
|
Optimus Prime Ribs posted:It seems like there's not a single person working on the Ouya who actually knows what they're doing. I love the comment on that post from one of the Ouya guys, that basically reads "we're too busy prematurely 'unveiling' this console to process a refund on your credit card due to our goof, why don't you wait a few weeks to get money back that we shouldn't have taken from you."
|
# ? Mar 27, 2013 18:50 |
|
I know the "Rails is omakase" stuff was almost twenty pages ago but I wanted somewhere to put this and so here it is https://www.youtube.com/watch?v=E99FnoYqoII (I have mixed feelings about Giles Bowkett himself but it's still kind of funny)
|
# ? Mar 27, 2013 19:10 |
|
bucketmouse posted:
I mean, the lack of testing environment is a horror, but the code as such isn't.
|
# ? Mar 27, 2013 19:25 |
No Safe Word posted:I know the "Rails is omakase" stuff was almost twenty pages ago but I wanted somewhere to put this and so here it is
|
|
# ? Mar 27, 2013 19:30 |
|
pigdog posted:Obviously it's necessary to have a development environment or two, but putting extra operations into live APIs purely for testing is not a bad idea at all.
|
# ? Mar 27, 2013 20:21 |
|
Aleksei Vasiliev posted:The issue is that once any version of the app is published the testing flag has no effect, and the docs don't tell you this. quote:Live and learn ^_^ ! This solution sounds perfect. quote:JonAbramsJonAbrams Posts: 22Member, Administrator, Team OUYA
|
# ? Mar 27, 2013 21:44 |
|
So in my shiny grad job, I've been trained in the latest version of the product which while awkward makes overall sense beyond the choice of programming language. It mostly works and is easy to navigate. Then we started taking a look at the previous version. The program/subroutine naming scheme is two or three initials of the general purpose, then three or four digits. Related subroutines might have a name after them like TEST or MAIN. My training manual has lines saying 'use CB025 to generate these files' and 'LES1200 is the most used program in this section'.
|
# ? Mar 27, 2013 23:42 |
|
I'm sure if I ask there will be a reason. There should be a federal relief fund for anyone who has poo poo like this in the codebase they inherit.php:<? echo htmlspecialchars_decode(htmlspecialchars_decode(htmlspecialchars_decode(( $post['message']) ))); ?>
|
# ? Mar 28, 2013 01:10 |
|
bewilderment posted:So in my shiny grad job, I've been trained in the latest version of the product which while awkward makes overall sense beyond the choice of programming language. It mostly works and is easy to navigate. For some reason that naming convention reminds me of this.
|
# ? Mar 28, 2013 01:15 |
|
Edit: this might have been the wrong thread
Vanadium fucked around with this message at 01:52 on Mar 28, 2013 |
# ? Mar 28, 2013 01:45 |
|
Edit: Integer. Never mind
|
# ? Mar 28, 2013 03:34 |
|
I've inherited a large Ruby project. Naturally the lightweight admin side is a full blown Rails app, and the huge rear end client side is a mess of 3 different Rack apps, which might or might not be using Sinatra depending on a million different parameters in a Model/Presenter pattern. It's a textbook rewrite candidate that would take at minimum one year if a full team was working on just it and the entire business shut down until it was finished, but its just two of us, neither having enough knowledge about it's inner depths to even begin to map it's true complexity. Anyways, I came across this gem in a 1500 line class this afternoon:Ruby code:
|
# ? Mar 28, 2013 06:38 |
|
UxP posted:I'd check git history, except 'rm -rf .git && git init . && git add . && git commit -m "Clean up repo"' seems to have occurred on June 1st, 2011. This project is 6 years old. I'm completely at a lost as to why someone would do that. What happened next? git push --force origin master? Go track down someone's old laptop, merge/rebase the current repo onto an old copy and force push to restore the history!
|
# ? Mar 28, 2013 13:36 |
|
Hughlander posted:I'm completely at a lost as to why someone would do that. What happened next? git push --force origin master? Go track down someone's old laptop, merge/rebase the current repo onto an old copy and force push to restore the history! I think someone was trying to reduce the repo size. Git keeps the full history locally, you see, so this is more efficient! Of course there's repack and prune and compression mechanisms but don't worry your pretty head about that.
|
# ? Mar 28, 2013 14:04 |
|
I thought it was just a weird quirk because it appears across a lot of our files but i finally realized a few days ago that a former coworker did for (int ii = 0; ii < x; ii++) because he was prefixing the variable name 'i' with the hungarian prefix 'i' for integer.
|
# ? Mar 28, 2013 18:57 |
|
Bunny Cuddlin posted:I thought it was just a weird quirk because it appears across a lot of our files but i finally realized a few days ago that a former coworker did for (int ii = 0; ii < x; ii++) because he was prefixing the variable name 'i' with the hungarian prefix 'i' for integer. That's dedication to your convention at least
|
# ? Mar 28, 2013 21:17 |
|
You should ask him to refactor to systems Hungarian so the i stands for iterator and not integer. Or perhaps iii.
|
# ? Mar 28, 2013 21:42 |
|
Bunny Cuddlin posted:I thought it was just a weird quirk because it appears across a lot of our files but i finally realized a few days ago that a former coworker did for (int ii = 0; ii < x; ii++) because he was prefixing the variable name 'i' with the hungarian prefix 'i' for integer. I thought people used ii and jj for loops because it was easier to search for.
|
# ? Mar 28, 2013 21:43 |
|
Jerry SanDisky posted:I thought people used ii and jj for loops because it was easier to search for. Maybe some people do, but guess what the inner loop variables in his code are called.
|
# ? Mar 28, 2013 22:06 |
|
Bunny Cuddlin posted:Maybe some people do, but guess what the inner loop variables in his code are called.
|
# ? Mar 28, 2013 22:12 |
|
Jerry SanDisky posted:I thought people used ii and jj for loops because it was easier to search for. You use ii and jj because you've already used i, j, k, and maybe l, and it's classier than i1,i2,i3,i4,i5.
|
# ? Mar 28, 2013 22:28 |
|
i, ii, iii, iv, v, vi
|
# ? Mar 28, 2013 23:48 |
|
In matlab you use ii because i is sqrt(-1) and "maybe we start elsewhere in the alphabet?" was laughed out of the meeting,
|
# ? Mar 29, 2013 05:59 |
|
in matlab code:
|
# ? Mar 29, 2013 06:04 |
|
evensevenone posted:in matlab Python code:
|
# ? Mar 29, 2013 06:19 |
|
Lisp code:
|
# ? Mar 29, 2013 06:31 |
|
b0lt posted:
I like: Python code:
|
# ? Mar 29, 2013 06:35 |
|
|
# ? Jun 8, 2024 08:38 |
|
b0lt posted:
code:
|
# ? Mar 29, 2013 07:14 |