I have a Dictionary&lt;string,object&gt; where I save objects to parse to my plugin system, some of these objects need to be a copy not the original so I use this DeepClone method: public static T DeepCloneJSON&lt;T&gt;(this T Obj)         {             var text = JsonSerializer.Serialize(Obj);             return JsonSerializer.Deserialize&lt;T&gt;(text);         }  for example, if I do : var dict = new Dictionary&lt;string,object&gt;(){     {&quot;someKey&quot;,new List&lt;MyClass&gt;(){new MyClass()}} } var copy = dict[&quot;someKey&quot;].DeepCloneJSON(); var cast = (List&lt;MyClass&gt;)copy;  i get a System.InvalidCastException, but if i use a MemoryStream DeepCopy method i don't get this exception, like this one: public static T DeepCloneMemoryStream&lt;T&gt;(this T obj)         {             using (var ms = new MemoryStream())             {                 var formatter = new BinaryFormatter();                 formatter.Serialize(ms, obj);                 ms.Position = 0;                  return (T)formatter.Deserialize(ms);             }         }  so, I would like to know why I get this exception using a System.text.json based DeepClone Method and if it is possible to do this with a System.text.json because in my tests it presents to be faster and use less memory than a MemoryStream based onde.
I want to do something like:  MyObject myObj = GetMyObj(); // Create and fill a new object MyObject newObj = myObj.Clone();   And then make changes to the new object that are not reflected in the original object.  I don't often need this functionality, so when it's been necessary, I've resorted to creating a new object and then copying each property individually, but it always leaves me with the feeling that there is a better or more elegant way of handling the situation.  How can I clone or deep copy an object so that the cloned object can be modified without any changes being reflected in the original object?
How to combine multiple commands in terminal? I have the following commands.  cd import zcat urls1.sql.gz | mysql -u root -p urls cd /var/www/project1/ nano 1.php   As of now I'm executing it one by one.  Is there a way to combine those commands in one line? Allow suppression of automatic linking of web addresses So I get a square matrix $A$ is idempotent when $A^2 = A$.  How can you prove that if $A$ is an $n \times n$ matrix that is idempotent and invertible, then  $A = I$??  I'm quite confused on this.  Any help much appreciated, Thanks. Why is the ##UserID## parameter not populated in Data Explorer anymore? Environment I'm logging in using the OpenID from  and using Chrome 31.0.1650.57 m if that matters. Steps to reproduce: Log in to  and , for example, like: DECLARE @MyUserID INT = ##UserID:int##  SELECT TOP 1     Id AS [Post Link],     Score AS [Score],     CreationDate AS [Creation Date] FROM     Posts WHERE     OwnerUserId = @MyUserID AND     PostTypeId IN (2, 3) ORDER BY     CreationDate DESC  Then press the Run Query button and see if the UserID field is filled with your own user ID like shown in the below screenshot:  Question: Did something changed on the ##UserID## parameter (for example, that it's not supported anymore)?  If so, then there is an outdated  paragraph about it (What's the point of logging in). If not, it is a bug which is there about three days (I've been waiting since I noticed that you were going to do some changes to Data Explorer, but it remains there, hence my question). Array of zero length I am working on refactoring some old code and have found few structs containing zero length arrays (below). Warnings depressed by pragma, of course, but I've failed to create by "new" structures containing such structures (error 2233). Array 'byData' used as pointer, but why not to use pointer instead? or array of length 1? And of course, no comments were added to make me enjoy the process...  Any causes to use such thing? Any advice in refactoring those?  struct someData {    int nData;    BYTE byData[0]; }   NB It's C++, Windows XP, VS 2003 How to repair a corrupted Excel file I'm trying to restore some files for a friend who messed up a USB stick by pulling it out of the computer too soon. By searching invisible partitions I was able to restore the files. All files are intact, except 1 excel file that seems to be corrupted.  I've googled about ways to repair an Excel file, because the default repair options in Excel 2003-2010 do not work for this file. I've came across a numerous  third-party apps, of which the  one seemes to be able to do the job: Recovery Toolbox for Excel.  Of-course, this and all other apps I found require a purchase to actually repair the file. It seems a bit silly to pay 30 dollars for a one time thing, and something that is not for myself. So, I would like to keep that as a last-resort option.  Is there anything I can try to fix this? I've attached a screenshot of how the file looks when I open it on my OSX when converted to a HTML file (to view the code), for  the option that it could be a character set problem. Book about a teenager programmed to be an assassin and trying to get back at the people responsible I read this book a few years back (around 5?). It was part of a multibook series but I have only read one book.  It's about this teenager who I think had been programmed to be an assassin but then somehow retained his conscience and was out to get the people responsible for that.  I briefly remember a girl, and this one part where he realizes he can ride a horse and then there's a chase too. I think the guy's name was Jim or Jimmy, but not quite. I'm also quite sure he was either part computer, or had a chip or something in his brain which had been programmed to give him a host of mental and physical abilities which he retained and used as well as the series progressed. Ubuntu 18.10 gnome extensions stop working after hibernation After upgrading to 18.10 I am experiencing very strange behaviour of gnome extensions. After my laptop goes into hibernation they all switch off and enabling them back on  doesn't help: nothing changes and when I refresh the page they are disabled again.   The only way to turn them back on is to reinstall them. Solder does not stick to tip of soldering iron? Basic question here, but it's driving me insane!  The solder does not seem to stick to the tip of my soldering iron. After the iron heats up, the tip appears black (sometimes on all sides and sometimes on one side), then either it doesn't melt the solder at all, or it I fiddle around with it for a while; it melts the solder, but the solder rolls into itself into a ball and doesn't stick to the tip.  I've seen this many times while soldering before and usually it's solved by cleaning the tip on a soldering sponge or cooling it down and scraping the tip off with a blade, but I have scraped this particular one many times and still it's the same problem: it heats up and gets black, then the solder doesn't stick to it.  It doesn't help that this soldering iron has a very fine tip and I have to use it to solder very tiny chips and wires under a microscope (I'm just starting to learn soldering under microscopes).  Any ideas on what I can do?    PS: Is scraping the tip a bad idea? I have been doing it with my other bigger soldering irons and it seemed to work (at least in most cases) but I am not sure whether it is a good solution or not. Book recommendations Fixed buffers and interior buffers are not working for a polygon that contains a hole I have a dual monitor set-up. When I'm on YouTube, and I click the fullscreen icon, the fullscreen automatically goes to the second monitor. How do I get it to go fullscreen on my main monitor? Let $A$ and $B$ be $n\times n$ matrices. Suppose $A$ is similar to $B$. Prove $\operatorname{trace}(A) = \operatorname{trace}(B)$.  I'm not sure where to go on this. So far I have this:  If $A$ is similar to $B$, then      $B=P^{-1}AP$ and $A=PBP^{-1}$   This implies that:     $\operatorname{trace}(B) = \operatorname{trace}(P^{-1}AP)$ and $\operatorname{trace}(A) = \operatorname{trace}(PBP^{-1})$   Not sure where to go from here Can I use older MySQL workbench with newest MySQL server? MySQL newbie here.  I'm using Ubuntu 16.04 (64-bit). I've successfully installed MySQL Community Server 5.7 and MySQL Community Workbench 6.3.  Unable to find these answers in the MySQL forums. I've asked this on Stack Exchange and it was suggested that I ask here instead. I've searched on Ubuntu Forum and here also but did not find an answer. One would think they are common questions but maybe not. Additionally, I cannot find a way to ask a new question on the MySQL Forum. I've spent a ton of time reading/researching/installing/uninstalling and reinstalling MySQL and community workbench on Linux Ubuntu 16.04 (64-bit) and do not want to lose the momentum I've gained. I'm actually making forward progress after a week or so of trial and error working on this up to a few hours per day. It appears that I cannot load MySQL Community Workbench 8.0 without Linux server installed. That seems to be one of the requirements if I understood correctly.  Can anyone tell me if MySQL Community Workbench 6.3 will work with MySQL Community Server 8.0 on Ubuntu 16.04 (64-bit)? I would still like to upgrade and use MySQL community server 8.0 if I can.  Can I use MySQL Community Server 8.0 on Linux Ubuntu 16.04 32-bit?   I've spent many hours googling it and looking on MySQL Forums but couldn't find the answer. Thanks much. ...Rick Looking for a post-apocalyptic trilogy where pilot is nursed back to health by natives of the land I read a series of books around 2005. I think it might have been a trilogy.  Basic story line is in a post apocalyptic world. The main character is a pilot for the Federation or something similar to that. He crash lands, is nursed back to health by the natives, comes to like and respect them, and does not want to fight against them.  Also in the later book I think it also involves another race who are very Japanese-ish. They drink sake and the "clan" names are things like Fu-Jitsu and Mitsu-Bishi. How do I change the `enumerate` list format to use letters instead of the default Arabic numerals? I've seen documentation whereby an \alph command is put around the \begin{enumerate} somewhere, but I'm not entirely sure how that operates... Twitter Bootstrap - multiple image (thumbnail) carousel - move thumbnails one at a time How to subtract X days from a date using Java calendar? Writing to NTFS drive in Linux I've got an external USB drive that is formatted with NTFS mounted on ~/tmp.  I can read it just fine, but cannot write to it, even as root (temp is a folder on the USB drive):  [root@Plugbox temp]# touch test touch: cannot touch `test': Permission denied [root@Plugbox temp]#   However, if I do a cat /proc/mounts, it looks like I do have NTFS read/write support:  [root@Plugbox temp]# grep /dev/sdb1 /proc/mounts /dev/sdb1 /root/tmp ntfs rw,relatime,uid=0,gid=100,umask=02,nls=utf8,errors=continue,mft_zone_multiplier=1 0 0 [root@Plugbox temp]#   Finally, if I go to the folder above temp, it looks like I should have plenty of permissions to write to the folder:  [root@Plugbox tmp]# ls -al total 61500764 ... drwxrwxr-x 1 root users           0 Apr 19  2010 temp ... [root@Plugbox tmp]#   What am I missing? Can't move files to trash without any permission issues This is not like one of the cases addressed before - I've checked them all.  I've suddenly begun getting that message "... can't be put in the trash. Do you want to delete it immediately?" this morning in my Home directory only.  I have a Home partition (ext4, mounted properly) with symlinks for user folders like Downloads, Documents, etc. to folders with the same names in a Data partition (ntfs, mounted properly).  For example, I cannot move a file in Downloads folder to Trash when I try via Home, but no problem if I try via Data partition, although the file in question has the same ownership and permissions at both locations.  Also no problem at all with files in my Home folder, including sub-folders like Public that are not symlinked to my Data partition.  Interesting puzzle for me...  PS: Just upgraded to 15.04 but I don't think it matters... On second thought, it might perhaps be something to do with upgrading from Nautilus 3.10 to 3.14?  PPS: This bug has been finally resolved some time later in version 16.10, and no longer exists under Ubuntu 17.04.