The Official Status Thread


  • FoxDev

    @hungrier said in The Official Status Thread:

    @RaceProUK

    What about the Tickle Cock Bridge?

    From Wikipedia

    The replacement bridge was initially renamed Tittle Cott. After a protest organised by a local over-50s group, Wakefield Council reversed its decision and a plaque bearing the original name, Tickle Cock, was installed.

    Who says old people don't have a sense of humour? 🙂


  • kills Dumbledore

    Status: management finally listened to our pleas to replace our 128GB C drives with something that doesn't require constant fucking around with to keep more than a few MB free.

    Everyone else got their drives cloned onto the new ones and were able to get straight back to work. I'd tried to be smart by doing things like moving the Windows Update package cache onto a network drive and leaving behind a junction point; so my computer was basically screwed and I asked for a fresh install.

    It's now halfway through the afternoon and I'm almost finished installing the various Visual Studio, SQL Server and other random bits of software that are essential to me getting any work done. The worst bit, as always, was finding the particular version of the SQL Server installer that allowed me to create a local instance, rather than the hundreds that only let you install Management Studio or reporting tools. Eventually, I went for the largest download off MSDN



  • @DogsB said in The Official Status Thread:

    @RaceProUK said in The Official Status Thread:

    Status: Only in Scotland.

    inb4 reference to Gaylord Opryland



  • Status: Just installed Oxygen OS 4(Android Nougat for Oneplus)
    let's see what the changes are...



  • @Jaloopa said in The Official Status Thread:

    I'd tried to be smart by doing things like moving the Windows Update package cache onto a network drive and leaving behind a junction point

    Bit iffy, that approach. Windows often likes to rename stuff into place at boot time, and that doesn't work unless source and destination are in the same filesystem.

    Package cache is probably OK because packages need uncompressing before anything happens to the stuff inside them, but even so, I strongly strongly doubt that MS would ever have done any testing at all against a machine set up that way.

    Edit: here's a little jscript that all my school workstations call from their shutdown scripts, to deal with this exact case. The antivirus whose auto-updates used to trigger it has since been fixed, but I've left the script in place because why not?

    // Windows sometimes needs to defer the replacement of in-use files until the
    // next system start. It does this by keeping a list of (new file, old file)
    // pairs in a REG_MULTI_SZ value at HKLM\SYSTEM\CurrentControlSet\Control\
    // Session Manager\PendingFileRenameOperations, checking that list at startup
    // and moving (renaming) the new files over the old ones. See
    // http://ss64.com/nt/mv.html
    //
    // Unfortunately such moves will fail if the new and old files are not on
    // the same drive, and this can cause some app updaters to break if e.g.
    // %APPDATA% and %ProgramFiles% have been set up on different volumes.
    //
    // This script is designed to be run during system shutdown (e.g. from a
    // Group Policy shutdown script). It scans the pending rename list for doomed
    // cross-drive renames, and attempts to fix those by copying the new files
    // onto the same drives as those they are to replace.
    //
    // Windows Home editions without the ability to use shutdown scripts can run
    // this every few minutes from a scheduled task instead. Provided it gets to
    // run at least once after creation of a broken rename list, it will fix it.
    //
    // Stephen Thomas <flabdablet@gmail.com>
    // Last updated 3-Nov-2010
    //
    // This is free software. Do whatever you like with it except
    // hold me accountable for any grief it causes you.
    
    
    
    
    // Don't issue diagnostic spew when run from wscript
    
    var host = WScript.Fullname;
    var cscript = host.substr(host.length - 12).toLowerCase() == "\\cscript.exe";
    
    // For FileSystemObject documentation, see
    // http://msdn.microsoft.com/en-us/library/6kxy1a51
    
    fso = new ActiveXObject("Scripting.FileSystemObject");
    
    // Getting at the registry from jscript requires bizarre contortions: see
    // http://msdn.microsoft.com/en-us/library/aa392722
    // http://msdn.microsoft.com/en-us/library/aa389294
    // http://msdn.microsoft.com/en-us/library/aa392730
    // http://msdn.microsoft.com/en-us/library/aa394616
    
    var registry = GetObject("winmgmts:{impersonationLevel=impersonate}!root/default:StdRegProv");
    
    var HKCR = 0x80000000;
    var HKCU = 0x80000001;
    var HKLM = 0x80000002;
    var HKU  = 0x80000003;
    var HKCC = 0x80000005;
    
    
    
    function ReadRegMultiSz(address) {
    	var method = registry.Methods_.Item("GetMultiStringValue");
    	var inParam = method.InParameters.SpawnInstance_();
    	inParam.hDefKey = address[0];
    	inParam.sSubKeyName = address[1];
    	inParam.sValueName = address[2];
    	var outParam = registry.ExecMethod_(method.Name, inParam);
    	if (outParam.ReturnValue == 0) {
    		return outParam.sValue.toArray();
    	}
    	else return [];
    }
    
    
    
    function WriteRegMultiSz(address, data) {
    
    	// If the array passed as "data" contains any property other
    	// than the actual array values, jscript will consider it
    	// a sparse array, and passing it directly will make the
    	// SetMultiStringValue method call fail with a Type Mismatch
    	// error. Even reading the data array's length will cause
    	// a .length property to spring into existence and make the
    	// array sparse. Create a pristine fixed-size copy using
    	// only numeric indices to work around this.
    
    	var values = new Array(data.length);
    	for (var i = 0; i < data.length; i++) {
    		values[i] = data[i];
    	}
    
    	var method = registry.Methods_.Item("SetMultiStringValue");
    	var inParam = method.InParameters.SpawnInstance_();
    	inParam.hDefKey = address[0];
    	inParam.sSubKeyName = address[1];
    	inParam.sValueName = address[2];
    	inParam.sValue = values;
    	var outParam = registry.ExecMethod_(method.Name, inParam);
    	return outParam.ReturnValue;
    }
    
    
    
    function Drive(path) {
    	var drive = "";
    	if (path) {
    		drive = fso.GetDriveName(fso.GetAbsolutePathName(path)).toUpperCase();
    	}
    	return drive;
    }
    
    
    
    function RandomHex(bits) {
    	var result = "0x";
    	for (var i = 0; i < bits; i += 4) {
    		result += "0123456789abcdef".charAt(16 * Math.random());
    	}
    	return result;
    }
    
    
    
    function Log(message) {
    	if (cscript) {
    		if (message instanceof Array) {
    			WScript.Echo("[");
    			for (var i = 0; i < message.length; i++) {
    				WScript.Echo(" " + i + ": " + message[i]);
    			}
    			WScript.Echo("]");
    		}
    		else {
    			WScript.Echo(message);
    		}
    	}
    }
    
    
    
    // Get the list of files to be renamed at next startup.
    
    var renameListAddress = [HKLM, "SYSTEM\\CurrentControlSet\\Control\\Session Manager", "PendingFileRenameOperations"];
    var renameList = ReadRegMultiSz(renameListAddress);
    Log(renameList);
    
    var changed = false;
    var copied = new Array;
    var tempFolders = new Array;
    
    // Make a first pass over the rename list to find and fix doomed renames.
    
    for (var i = 0; i < renameList.length; i += 2) {
    	var source = renameList[i];
    	var destn = renameList[i + 1];
    	if (source.substr(0, 4) == "\\??\\" && destn.substr(0, 5) == "!\\??\\") {
    		source = source.substr(4);
    		destn = destn.substr(5);
    		var sourceDrive = Drive(source);
    		var destnDrive = Drive(destn);
    		if (sourceDrive && destnDrive && sourceDrive != destnDrive) {
    
    			// Rename won't work across drives, so the file needs
    			// copying to a temp folder on the destination drive.
    			// First, find or make the temp folder.
    
    			var tempFolder;
    			if (tempFolders[destnDrive]) {
    				tempFolder = tempFolders[destnDrive];
    			}
    			else {
    				// Drive has no existing temp folder, so make a
    				// new one and schedule it for later deletion.
    
    				tempFolder = destnDrive + "\\" + RandomHex(96);
    				tempFolders[destnDrive] = tempFolder;
    				fso.CreateFolder(tempFolder);
    				renameList.push("\\??\\" + tempFolder, "");
    				changed = true;
    			}
    
    			// Copy the file to the destination drive.
    			// If the copy worked, remember it.
    
    			try {
    				newSource = tempFolder + "\\" + RandomHex(96);
    				Log("\r\n" + source + "\r\n -> " + newSource);
    				fso.CopyFile(source, newSource, false);
    				copied["\\??\\" + source] = "\\??\\" + newSource;
    			}
    			catch (ex) {
    				Log(ex.message);
    			}
    		}
    	}
    }
    
    // Second pass edits all references to files that got copied,
    // making them refer to the copies instead of the originals.
    
    for (var i = 0; i < renameList.length; i += 2) {
    	var source = renameList[i];
    	if (copied[source]) {
    		renameList[i] = copied[source];
    	}
    }
    
    // Finish by prepending deletion requests for the originals of all
    // copied files. Originals should't simply be deleted as we go, as
    // app updaters might be testing for their continued existence.
    
    for (var source in copied) {
    	renameList.unshift(source, "");
    }
    
    // If the rename list was changed, write it back.
    
    if (changed) {
    	WriteRegMultiSz(renameListAddress, renameList)
    	Log(renameList);
    }
    

  • kills Dumbledore

    @flabdablet which is why I stopped being able to do Windows Updates properly, couldn't update any installed software, lost application icons in the taskbar and generally figured it would be simpler to reinstall everything on a fresh image than fix the mess I'd made.



  • @DogsB said in The Official Status Thread:

    I was looking for a picture of my passport when I came across my first software development contract. They needed a picture of it being signed.

    You know, printers, scanners and image editing software have been ubiquitous for about 20 years now. At some point we should start accepting that photos of signed documents are completely meaningless.

    Edit: in middle school, I actually scanned the signature of our school principal and removed the background, so that I could simply paste it on any Word document and it would look real. Sadly I was too much of a "good kid" to actually try and prank anyone with it, but it could probably have worked.



  • @anonymous234 said in The Official Status Thread:

    At some point we should start accepting that photos of signed documents are completely meaningless.

    Yup.

    https://what.thedailywtf.com/topic/19728/dude-really-does-almost-ruin-company-who-had-never-heard-of-proper-backups/15


  • Discourse touched me in a no-no place

    @anonymous234 said in The Official Status Thread:

    You know, printers, scanners and image editing software have been ubiquitous for about 20 years now. At some point we should start accepting that photos of signed documents are completely meaningless.

    That depends on whether the photo of the signed document is on a wooden table.


  • ♿ (Parody)

    @Tsaukpaetra said in The Official Status Thread:

    Status: Ugh, you know it's bad when you dream of coding in your sleep so accurately you sleep in. 😵 whoops.

    How I got in the 😵 I'll never know.


  • ♿ (Parody)

    @Lorne-Kates said in The Official Status Thread:

    They want someone who can be more customer facing, to help with support when I'm on paternity leave.

    Way to bury the lede! Fuck you, Congratulations! (I hope)



  • On Saturday, I bought a Sega Mega Drive II at a store near(-ish) from me. It came with an RF splitter.

    Today, the RGB SCART cable that I ordered on the internet arrived.

    It's so much better now, it's like magic!!!


  • ♿ (Parody)

    Status: Annual CyberAwareness Challenge training. 😴


  • BINNED

    @aliceif wait... MD doesn't have composite output?


  • BINNED

    Status: Didn't manage to screenshot it before it fixed itself, but Paladins launcher just said "The game is down".

    I don't know what to think about that phrasing. Well, at least it was honest?


  • ♿ (Parody)

    @boomzilla said in The Official Status Thread:

    Status: Annual CyberAwareness Challenge training. 😴

    Hahaha. One of the "games" you play won't let you submit a correct answer.


  • BINNED

    @boomzilla said in The Official Status Thread:

    Hahaha. One of the "games" you play won't let you submit a correct answer.

    0_1485973122286_upload-4fd2f595-81bf-4438-b4fe-8acc3b27eea2


  • Trolleybus Mechanic

    @RaceProUK said in The Official Status Thread:

    @coldandtired I've always wondered where 'cromulent' came from... and now I know.

    I'd never heard of cromulent before I moved to Springfield.


  • Trolleybus Mechanic

    @boomzilla said in The Official Status Thread:

    @Lorne-Kates said in The Official Status Thread:

    They want someone who can be more customer facing, to help with support when I'm on paternity leave.

    Way to bury the lede! Fuck you, Congratulations! (I hope)

    This is leave for Molly.

    In Ontario, I get 35 weeks, as long as I start any time before the kid is 1 year. I'm starting in April, and going to August. Since it's past the 1 year mark, there's no unemployment payments, but my job is protected.



  • @PleegWat said in The Official Status Thread:

    @HardwareGeek Is the log output still stuck in the output buffer at the time of the crash?

    Apparently somebody managed to configure the logger to log debug and status messages but not error messages. :wtf:

    I'm not sure how they managed to do that. Looking at the logger code, it looks like it should have been logging debug, and only debug, messages, but it's definitely logging status messages, too. Whatever; the code isn't supposed to be manipulating the logging like that anyway, as it interferes with setting the logging level at runtime.


  • Trolleybus Mechanic

    @RaceProUK said in The Official Status Thread:

    Status: Only in Scotland.

    0_1485943089004_upload-120ab72f-388d-4183-a115-c5b7ccb9082d

    If you're getting head from a dyke, either something is very wrong, or this belongs in 🥑


  • Java Dev

    Status: Vital clues in the 'why will this not perform as well as I want it to' problem. I have evidence suggesting threads are not being scheduled when they should be. More is sure to follow tomorrow.

    In other news, I have a new favorite diagnostics tool, but I'm not going to name it because I'm not sure of external release status.



  • @Onyx said in The Official Status Thread:

    @aliceif wait... MD doesn't have composite output?

    It has, if you have a cable for it ...


  • BINNED

    @aliceif oh, it's one of those special ones instead of just 3 regular connectors? Always hated that.



  • @Onyx said in The Official Status Thread:

    @boomzilla said in The Official Status Thread:

    Hahaha. One of the "games" you play won't let you submit a correct answer.

    0_1485973122286_upload-4fd2f595-81bf-4438-b4fe-8acc3b27eea2

    It made me think of Kobayashi-Maru and not the WOPR ...


  • Discourse touched me in a no-no place

    Status: Gradually smashing the stupid python (:giggity:) code into something vaguely sensible. Previous developer is luckily (for him) no longer employed with us. (Damn m****rbel***mer really liked his mocks for testing, but hated dependency injection; it's monkeypatching all the way! Grrr…)

    Also helping sort out a colleague's (proxy for) weather simulation code. It was fast, but very wrong. After much scratching of heads and drawing on a whiteboard, we've fixed the mathematical parts and figured that the communication algorithm was wrong as well (due to the need to share information between cells half way through the processing loop) so we expect some slowdown when we fix it. Still likely to be both incredibly fast and hyper-scalable once we're done. :D



  • @heterodox said in The Official Status Thread:

    @flabdablet said in The Official Status Thread:

    Do you know a domain administrator username and password?

    If I did, I'd be in a rather phenomenal amount of trouble. Also I wouldn't bother calling the Help Desk. :P

    A domain administrator doesn't get to change stuff with the domain. It's a user that the domain gives local administrator privileges to. In other words, when the user logs into a computer, they are an administrator on that computer -- not the domain.

    If the domain gives you administrator rights on the computer, then the easiest solution is to leave the domain and then rejoin it.

    edit: well, I thought this was the case... now I'm not so sure. Maybe the user needs access to the DC to actually administer the domain... but if they're a domain admin, they have admin on all of the computers, so...


  • Notification Spam Recipient

    @anotherusername said in The Official Status Thread:

    A domain administrator doesn't get to change stuff with the domain

    Wat.



  • Status: The new office is still cold.


  • FoxDev

    @Magus You need one of these:
    0_1485990662911_upload-af021003-c33e-41bf-ad2a-1c60ef7020c6

    ;)



  • @Magus said in The Official Status Thread:

    Status: The new office is still cold.

    Because the person controlling the thermostat is the same?


  • :belt_onion:

    @anotherusername said in The Official Status Thread:

    If the domain gives you administrator rights on the computer, then the easiest solution is to leave the domain and then rejoin it.

    As a local administrator, all you can do is leave the domain. The GUI actually won't let you do that but obviously you can force it off the domain by removing all knowledge of the domain and domain credentials if you're a local administrator. What you can't do is rejoin the domain because (by definition) there's no domain account for the computer and you don't have the permissions to create one (you're not a domain admin or someone to whom the permission to create computer accounts has been delegated).


  • :belt_onion:

    @anotherusername said in The Official Status Thread:

    but if they're a domain admin, they have admin on all of the computers, so...

    And that's not even necessarily the case. That's just the result of the default GPOs in AD. On a secure domain, that'll be modified so there's no group that'll give you local admin on all workstations.

    A domain administrator only gets to change stuff with the domain, by definition. TL;DR: Learn your AD, son.


  • Notification Spam Recipient

    Status: Confuzzled.

    Launching a particular program with a very long string (an ASP.Net user token string) works just fine from the command line.
    Launching it from the equivalent of Process.Start() doesn't. But only for a few select people.

    WTF.
    Anyone know a problem with Windows that could explain this?


  • FoxDev

    @Tsaukpaetra said in The Official Status Thread:

    Confuzzled

    Is a furry convention.

    This random fact was brought to you by late-night boredom ;)



  • @heterodox said in The Official Status Thread:

    @anotherusername said in The Official Status Thread:

    If the domain gives you administrator rights on the computer, then the easiest solution is to leave the domain and then rejoin it.

    As a local administrator, all you can do is leave the domain. The GUI actually won't let you do that but obviously you can force it off the domain by removing all knowledge of the domain and domain credentials if you're a local administrator. What you can't do is rejoin the domain because (by definition) there's no domain account for the computer and you don't have the permissions to create one (you're not a domain admin or someone to whom the permission to create computer accounts has been delegated).

    I have a domain administrator account. But that doesn't give me permission to do everything... just gives me local admin on the computers. I can use it to reconnect a computer to the domain. But I can't, for example, change another user's password.


  • :belt_onion:

    @anotherusername said in The Official Status Thread:

    But I can't, for example, change another user's password.

    If "another user's" a domain user, then you don't have a domain administrator account. You have certain delegated permissions but either you're not a member of the Domain Admins builtin or the Domain Admins builtin has been modified (at high risk).


  • :belt_onion:

    @anotherusername said in The Official Status Thread:

    I can use it to reconnect a computer to the domain.

    Note that because you can do this you may believe you have a domain administrator account, but by default any authenticated user can join 10 workstations to the domain. I strongly suspect you just have local admin, but you can confirm with whoami /all to see your domain groups.



  • @anotherusername said in The Official Status Thread:

    If the domain gives you administrator rights on the computer, then the easiest solution is to leave the domain and then rejoin it.

    Correct, and the rejoin step needs to be authorized using credentials for a domain administrator, not a local administrator.


  • I survived the hour long Uno hand

    @flabdablet
    It depends.

    As previously noted, the default configuration of an AD domain will allow any standard user to join 10 computers to the domain, assuming the computers are not named the same as existing domain computers.

    Any well managed domain should have that setting changed, so assuming competent and aware IT staff, you should require delegated permissions (though not necessarily domain admin) to join computers to the domain.

    Also, a computer can be pre-staged in AD to allow for a user to join or disjoin just that computer without giving them generic domain join rights.


  • Notification Spam Recipient

    @RaceProUK said in The Official Status Thread:

    @Tsaukpaetra said in The Official Status Thread:

    Confuzzled

    Is a furry convention.

    This random fact was brought to you by late-night boredom ;)

    Oh, I think you got that backwards, it's Further Confusion. ;p



  • @izzion said in The Official Status Thread:

    assuming the computers are not named the same as existing domain computers.

    ...which, if you're trying to detach and then rejoin a computer to the domain, it will be.


  • I survived the hour long Uno hand

    @flabdablet
    Oh, I've had end users rename the computer to work around the problem. Back in my younger days with a smaller network where standard user join wasn't disabled.



  • Status: Testing some Jefflings:


  • Notification Spam Recipient

    Status: if the sticker was missing, I probably wouldn't know it, would I?

    0_1486008935272_14860089250891572563712.jpg



  • @Magus They solved my problem first shot!

    Someone using Discord did something right!


  • Notification Spam Recipient

    @Magus said in The Official Status Thread:

    They solved my problem first shot!

    0_1486015965404_upload-cee55e2b-5017-44a0-aa49-ebb56342e09a

    :sadface: Well, some of the problem in any case. ;)


  • Notification Spam Recipient

    Status: Installing Windows Server 2016 on a LattePanda device.

    Yes, I'm :doing_it_wrong: , but it's an experiment!


  • Notification Spam Recipient

    @Tsaukpaetra said in The Official Status Thread:

    a LattePanda device.

    Apparently the BIOSUEFI is having trouble initializing the display before Windows gets to it. :wtf: So I'm going to have to trust that the gigantic progress circle is really there...



  • @Tsaukpaetra I can run it locally, but the build server has trouble restoring Nuget packages for it, and I don't know why.


Log in to reply