[{"data":1,"prerenderedAt":1750},["ShallowReactive",2],{"tag-tools":3},{"tag":4,"articles":24},{"id":5,"title":6,"body":7,"description":14,"extension":15,"img":16,"meta":17,"name":18,"navigation":19,"path":20,"seo":21,"stem":22,"__hash__":23},"tags\u002Ftags\u002Ftools.md","Tools",{"type":8,"value":9,"toc":10},"minimark",[],{"title":11,"searchDepth":12,"depth":12,"links":13},"",2,[],"Any sort of tip, script or function to make your job easier","md","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1598313183973-4effcded8d5e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=675&q=80",{},"tools",true,"\u002Ftags\u002Ftools",{"description":14},"tags\u002Ftools","o44aMhD358lxjNB-QBcxIrP7aURCo_L0OIiw3TTU3PY",[25,587,1234,1330,1392,1428,1470,1573,1698],{"id":26,"title":27,"author":28,"body":29,"createdAt":578,"description":579,"extension":15,"img":580,"meta":581,"navigation":19,"path":582,"seo":583,"stem":584,"tags":585,"updatedAt":578,"__hash__":586},"articles\u002Farticles\u002Fgoogletakeout-extract-script.md","Extracting Specific Files from Zip Archives with a Python Script",null,{"type":8,"value":30,"toc":570},[31,35,39,42,48,51,53,57,77,81,84,404,408,485,489,504,533,540,556,559,563,566],[32,33,27],"h3",{"id":34},"extracting-specific-files-from-zip-archives-with-a-python-script",[36,37,38],"p",{},"When managing large amounts of data, especially backups from services like Google Photos, you may find yourself dealing with numerous zip files. Manually extracting specific files from these archives can be tedious. Fortunately, Python offers a powerful way to automate this process.",[36,40,41],{},"In this blog post, I'll show you how to create a Python script that extracts files from zip archives to a specific path on your hard drive. You can specify a particular path within each zip file to extract files from, making it ideal for organizing photos or other data from Google backups.  The script below will iterate over each zip file within\nthe directory and perform the same extraction from within each zip to another target directory.  In our particular case we had 17 - 10 gb zip files and we need to iterate over each to extract the photos.",[43,44],"img",{"style":45,"src":46,"alt":47,"title":47},"display: inline;","\u002Farticles\u002Fimages\u002Fpythonscript.jpg","image",[49,50],"br",{},[49,52],{},[32,54,56],{"id":55},"prerequisites","Prerequisites",[36,58,59,60,67,68,72,73,76],{},"Before we dive into the script, ensure you have Python installed on your machine. You can download it from ",[61,62,66],"a",{"href":63,"rel":64},"https:\u002F\u002Fwww.python.org\u002F",[65],"nofollow","python.org",". You'll also need the ",[69,70,71],"code",{},"zipfile"," and ",[69,74,75],{},"os"," modules, which are part of Python's standard library, so no additional installations are required.",[32,78,80],{"id":79},"the-script","The Script",[36,82,83],{},"Here's the Python script to extract files from zip archives:",[85,86,90],"pre",{"className":87,"code":88,"language":89,"meta":11,"style":11},"language-python shiki shiki-themes github-light github-dark","import os\nimport zipfile\n\ndef extract_specific_path_from_zip(source_dir, dest_dir, specific_path):\n    # Ensure destination directory exists\n    if not os.path.exists(dest_dir):\n        os.makedirs(dest_dir)\n    \n    # Loop through all files in the source directory\n    for item in os.listdir(source_dir):\n        # Construct full file path\n        file_path = os.path.join(source_dir, item)\n        \n        # Check if the file is a ZIP file\n        if zipfile.is_zipfile(file_path):\n            # Open the ZIP file\n            with zipfile.ZipFile(file_path, 'r') as zip_ref:\n                # Get the list of all archived file names from the zip\n                zip_file_names = zip_ref.namelist()\n                \n                # Filter the files that match the specific path\n                files_to_extract = [f for f in zip_file_names if f.startswith(specific_path)]\n                \n                # Extract the filtered files preserving the directory structure below the specific path\n                for file in files_to_extract:\n                    try:\n                        # Determine the relative path within the specific path\n                        relative_path = os.path.relpath(file, specific_path)\n                        \n                        # Determine the output file path\n                        output_file_path = os.path.join(dest_dir, relative_path)\n                        \n                        # Normalize the output file path to handle any issues with invalid characters or spaces\n                        output_file_path = os.path.normpath(output_file_path)\n                        \n                        # Ensure the directory exists\n                        os.makedirs(os.path.dirname(output_file_path), exist_ok=True)\n                        \n                        # Extract the file data and write to the destination directory\n                        with zip_ref.open(file) as source_file:\n                            with open(output_file_path, 'wb') as output_file:\n                                output_file.write(source_file.read())\n                        \n                        print(f\"Extracted: {file} from {file_path} to {output_file_path}\")\n                    except Exception as e:\n                        print(f\"Failed to extract {file} from {file_path}. Error: {e}\")\n\nif __name__ == \"__main__\":\n    source_directory = \"C:\u002FTemp\u002FMay23_BrittmarieGoogleBackup\"  # Replace with the path to the source directory\n    destination_directory = \"G:\u002FHome_PC\u002FPictures\u002F2023-06-23\"  # Replace with the path to the destination directory\n    specific_path_in_zip = \"Takeout\u002FGoogle Photos\"  # Replace with the specific path to extract from each ZIP file\n\n    extract_specific_path_from_zip(source_directory, destination_directory, specific_path_in_zip)\n","python",[69,91,92,100,105,111,117,123,129,135,141,147,153,159,165,171,177,183,189,195,201,207,213,219,225,230,236,242,248,254,260,266,272,278,283,289,295,300,306,312,317,323,329,335,341,346,352,358,364,369,375,381,387,393,398],{"__ignoreMap":11},[93,94,97],"span",{"class":95,"line":96},"line",1,[93,98,99],{},"import os\n",[93,101,102],{"class":95,"line":12},[93,103,104],{},"import zipfile\n",[93,106,108],{"class":95,"line":107},3,[93,109,110],{"emptyLinePlaceholder":19},"\n",[93,112,114],{"class":95,"line":113},4,[93,115,116],{},"def extract_specific_path_from_zip(source_dir, dest_dir, specific_path):\n",[93,118,120],{"class":95,"line":119},5,[93,121,122],{},"    # Ensure destination directory exists\n",[93,124,126],{"class":95,"line":125},6,[93,127,128],{},"    if not os.path.exists(dest_dir):\n",[93,130,132],{"class":95,"line":131},7,[93,133,134],{},"        os.makedirs(dest_dir)\n",[93,136,138],{"class":95,"line":137},8,[93,139,140],{},"    \n",[93,142,144],{"class":95,"line":143},9,[93,145,146],{},"    # Loop through all files in the source directory\n",[93,148,150],{"class":95,"line":149},10,[93,151,152],{},"    for item in os.listdir(source_dir):\n",[93,154,156],{"class":95,"line":155},11,[93,157,158],{},"        # Construct full file path\n",[93,160,162],{"class":95,"line":161},12,[93,163,164],{},"        file_path = os.path.join(source_dir, item)\n",[93,166,168],{"class":95,"line":167},13,[93,169,170],{},"        \n",[93,172,174],{"class":95,"line":173},14,[93,175,176],{},"        # Check if the file is a ZIP file\n",[93,178,180],{"class":95,"line":179},15,[93,181,182],{},"        if zipfile.is_zipfile(file_path):\n",[93,184,186],{"class":95,"line":185},16,[93,187,188],{},"            # Open the ZIP file\n",[93,190,192],{"class":95,"line":191},17,[93,193,194],{},"            with zipfile.ZipFile(file_path, 'r') as zip_ref:\n",[93,196,198],{"class":95,"line":197},18,[93,199,200],{},"                # Get the list of all archived file names from the zip\n",[93,202,204],{"class":95,"line":203},19,[93,205,206],{},"                zip_file_names = zip_ref.namelist()\n",[93,208,210],{"class":95,"line":209},20,[93,211,212],{},"                \n",[93,214,216],{"class":95,"line":215},21,[93,217,218],{},"                # Filter the files that match the specific path\n",[93,220,222],{"class":95,"line":221},22,[93,223,224],{},"                files_to_extract = [f for f in zip_file_names if f.startswith(specific_path)]\n",[93,226,228],{"class":95,"line":227},23,[93,229,212],{},[93,231,233],{"class":95,"line":232},24,[93,234,235],{},"                # Extract the filtered files preserving the directory structure below the specific path\n",[93,237,239],{"class":95,"line":238},25,[93,240,241],{},"                for file in files_to_extract:\n",[93,243,245],{"class":95,"line":244},26,[93,246,247],{},"                    try:\n",[93,249,251],{"class":95,"line":250},27,[93,252,253],{},"                        # Determine the relative path within the specific path\n",[93,255,257],{"class":95,"line":256},28,[93,258,259],{},"                        relative_path = os.path.relpath(file, specific_path)\n",[93,261,263],{"class":95,"line":262},29,[93,264,265],{},"                        \n",[93,267,269],{"class":95,"line":268},30,[93,270,271],{},"                        # Determine the output file path\n",[93,273,275],{"class":95,"line":274},31,[93,276,277],{},"                        output_file_path = os.path.join(dest_dir, relative_path)\n",[93,279,281],{"class":95,"line":280},32,[93,282,265],{},[93,284,286],{"class":95,"line":285},33,[93,287,288],{},"                        # Normalize the output file path to handle any issues with invalid characters or spaces\n",[93,290,292],{"class":95,"line":291},34,[93,293,294],{},"                        output_file_path = os.path.normpath(output_file_path)\n",[93,296,298],{"class":95,"line":297},35,[93,299,265],{},[93,301,303],{"class":95,"line":302},36,[93,304,305],{},"                        # Ensure the directory exists\n",[93,307,309],{"class":95,"line":308},37,[93,310,311],{},"                        os.makedirs(os.path.dirname(output_file_path), exist_ok=True)\n",[93,313,315],{"class":95,"line":314},38,[93,316,265],{},[93,318,320],{"class":95,"line":319},39,[93,321,322],{},"                        # Extract the file data and write to the destination directory\n",[93,324,326],{"class":95,"line":325},40,[93,327,328],{},"                        with zip_ref.open(file) as source_file:\n",[93,330,332],{"class":95,"line":331},41,[93,333,334],{},"                            with open(output_file_path, 'wb') as output_file:\n",[93,336,338],{"class":95,"line":337},42,[93,339,340],{},"                                output_file.write(source_file.read())\n",[93,342,344],{"class":95,"line":343},43,[93,345,265],{},[93,347,349],{"class":95,"line":348},44,[93,350,351],{},"                        print(f\"Extracted: {file} from {file_path} to {output_file_path}\")\n",[93,353,355],{"class":95,"line":354},45,[93,356,357],{},"                    except Exception as e:\n",[93,359,361],{"class":95,"line":360},46,[93,362,363],{},"                        print(f\"Failed to extract {file} from {file_path}. Error: {e}\")\n",[93,365,367],{"class":95,"line":366},47,[93,368,110],{"emptyLinePlaceholder":19},[93,370,372],{"class":95,"line":371},48,[93,373,374],{},"if __name__ == \"__main__\":\n",[93,376,378],{"class":95,"line":377},49,[93,379,380],{},"    source_directory = \"C:\u002FTemp\u002FMay23_BrittmarieGoogleBackup\"  # Replace with the path to the source directory\n",[93,382,384],{"class":95,"line":383},50,[93,385,386],{},"    destination_directory = \"G:\u002FHome_PC\u002FPictures\u002F2023-06-23\"  # Replace with the path to the destination directory\n",[93,388,390],{"class":95,"line":389},51,[93,391,392],{},"    specific_path_in_zip = \"Takeout\u002FGoogle Photos\"  # Replace with the specific path to extract from each ZIP file\n",[93,394,396],{"class":95,"line":395},52,[93,397,110],{"emptyLinePlaceholder":19},[93,399,401],{"class":95,"line":400},53,[93,402,403],{},"    extract_specific_path_from_zip(source_directory, destination_directory, specific_path_in_zip)\n",[32,405,407],{"id":406},"how-it-works","How It Works",[409,410,411,424,455,461,467,473,479],"ol",{},[412,413,414,418,419,72,421,423],"li",{},[415,416,417],"strong",{},"Import Modules",": The script begins by importing the ",[69,420,71],{},[69,422,75],{}," modules.",[412,425,426,429,430,433,434],{},[415,427,428],{},"Function Definition",": The ",[69,431,432],{},"extract_specific_path_from_zip"," function takes three parameters:\n",[435,436,437,443,449],"ul",{},[412,438,439,442],{},[69,440,441],{},"source_dir",": The directory containing the zip files you want to extract files from.",[412,444,445,448],{},[69,446,447],{},"dest_dir",": The directory where you want the extracted files to be saved.",[412,450,451,454],{},[69,452,453],{},"specific_path",": The specific path within each zip file from which you want to extract files.",[412,456,457,460],{},[415,458,459],{},"Ensure Destination Directory Exists",": The script checks if the destination directory exists and creates it if necessary.",[412,462,463,466],{},[415,464,465],{},"Loop Through Source Directory",": It loops through all files in the source directory, checking each one to see if it's a zip file.",[412,468,469,472],{},[415,470,471],{},"Open Zip File",": For each zip file, the script opens it and lists all the files within the zip archive.",[412,474,475,478],{},[415,476,477],{},"Filter Files",": The script filters the files based on the specified path within the zip file.",[412,480,481,484],{},[415,482,483],{},"Extract Files",": For each filtered file, the script constructs the target file path, creates necessary directories, and writes the file to the target path, handling any issues with invalid characters or spaces.",[32,486,488],{"id":487},"usage","Usage",[36,490,491,492,495,496,499,500,503],{},"To use this script, replace the placeholder values for ",[69,493,494],{},"source_directory",", ",[69,497,498],{},"destination_directory",", and ",[69,501,502],{},"specific_path_in_zip"," with your specific paths. For example, if you want to extract all photos from a Google Photos backup, you might have:",[85,505,507],{"className":87,"code":506,"language":89,"meta":11,"style":11},"if __name__ == \"__main__\":\n    source_directory = \"C:\u002FTemp\u002FMay23_BrittmarieGoogleBackup\"  # Replace with the path to the source directory\n    destination_directory = \"G:\u002FHome_PC\u002FPictures\u002F2023-06-23\"  # Replace with the path to the destination directory\n    specific_path_in_zip = \"Takeout\u002FGoogle Photos\"  # Replace with the specific path to extract from each ZIP file\n\n    extract_specific_path_from_zip(source_directory, destination_directory, specific_path_in_zip)\n",[69,508,509,513,517,521,525,529],{"__ignoreMap":11},[93,510,511],{"class":95,"line":96},[93,512,374],{},[93,514,515],{"class":95,"line":12},[93,516,380],{},[93,518,519],{"class":95,"line":107},[93,520,386],{},[93,522,523],{"class":95,"line":113},[93,524,392],{},[93,526,527],{"class":95,"line":119},[93,528,110],{"emptyLinePlaceholder":19},[93,530,531],{"class":95,"line":125},[93,532,403],{},[36,534,535,536,539],{},"Save the script as ",[69,537,538],{},"extract_photos.py"," and run it using:",[85,541,545],{"className":542,"code":543,"language":544,"meta":11,"style":11},"language-bash shiki shiki-themes github-light github-dark","python extract_photos.py\n","bash",[69,546,547],{"__ignoreMap":11},[93,548,549,552],{"class":95,"line":96},[93,550,89],{"class":551},"sScJk",[93,553,555],{"class":554},"sZZnC"," extract_photos.py\n",[36,557,558],{},"This script will extract all files from the specified path within each zip archive and save them to your target directory, maintaining the directory structure.",[32,560,562],{"id":561},"conclusion","Conclusion",[36,564,565],{},"This updated Python script is a handy tool for automating the extraction of specific files from zip archives. Whether you're organizing photos from Google or managing backups, this script can save you time and effort. Happy coding!",[567,568,569],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":11,"searchDepth":12,"depth":12,"links":571},[572,573,574,575,576,577],{"id":34,"depth":107,"text":27},{"id":55,"depth":107,"text":56},{"id":79,"depth":107,"text":80},{"id":406,"depth":107,"text":407},{"id":487,"depth":107,"text":488},{"id":561,"depth":107,"text":562},"2024-06-23T15:44:03.462Z","In this blog post, I'll show you how to create a Python script that extracts files from zip archives to a specific path on your hard drive.  Google Takeout will allow users to extract all of their Google Photos to any number of large zip files.  After downloading, you are still required to extract to your own file system.  This script can help that by iterating over each zip and perform the extraction.","\u002Farticles\u002Fimages\u002Fpythonscript2.jpg",{},"\u002Farticles\u002Fgoogletakeout-extract-script",{"title":27,"description":579},"articles\u002Fgoogletakeout-extract-script",[18],"X2MHVj0WJ__COABevlzA2jaK7l4Y6ysibzyoJIiF5iU",{"id":588,"title":589,"author":590,"body":591,"createdAt":1224,"description":1225,"extension":15,"img":1226,"meta":1227,"navigation":19,"path":1228,"seo":1229,"stem":1230,"tags":1231,"updatedAt":1224,"__hash__":1233},"articles\u002Farticles\u002F2023_vscode_extensions.md","Rev Up Your Coding Game with VS Code - The Must-Have Tool for Developers","[object Object]",{"type":8,"value":592,"toc":1219},[593,597,605,608,611,614,617,619,621,625,628,631,1205,1208,1210,1213,1216],[32,594,596],{"id":595},"vs-code-extensions-for-developers","VS Code Extensions for Developers",[36,598,599,604],{},[61,600,603],{"href":601,"rel":602},"https:\u002F\u002Fcode.visualstudio.com\u002F",[65],"VS Code",", short for Visual Studio Code, is a popular code editor that is widely used by software developers and programmers around the world. It is a free and open-source editor that has gained popularity due to its ease of use, flexibility, and powerful features.",[36,606,607],{},"Developed by Microsoft, VS Code is available on Windows, Linux, and macOS. It provides a range of features that make coding and debugging easier, such as syntax highlighting, code completion, code folding, debugging, and Git integration. These features help developers write code faster and more efficiently, and improve the overall quality of their code.",[36,609,610],{},"One of the key advantages of VS Code is its support for a wide variety of programming languages. It supports popular languages like JavaScript, Python, C++, and many others, making it a versatile tool for developers who work with different languages.",[36,612,613],{},"Moreover, VS Code has a large and active extension marketplace that allows developers to add additional functionality and features to the editor. These extensions can help developers work more efficiently by adding features like linting, testing, and more. This means that developers can customize VS Code to fit their unique needs and workflows.",[43,615],{"style":45,"src":616,"alt":47,"title":47},"\u002Farticles\u002Fimages\u002Fvscode_1.png",[49,618],{},[49,620],{},[32,622,624],{"id":623},"some-of-the-best-vs-code-extensions-for-developers","Some of the Best VS Code Extensions for Developers",[36,626,627],{},"Best of the best VS Code extensions for developers:",[36,629,630],{},"Sure! Here is a list of the requested VS Code extensions along with a brief description, link to the extension page, and the title of the extension:",[409,632,633,645,655,665,675,685,695,705,715,725,735,745,755,765,775,785,795,805,815,825,835,845,855,865,875,885,896,906,916,926,936,946,956,966,976,986,996,1006,1016,1026,1036,1046,1056,1065,1075,1085,1095,1105,1115,1125,1135,1145,1155,1165,1175,1185,1195],{},[412,634,635,638,639,644],{},[415,636,637],{},"Better Comments"," : (",[61,640,643],{"href":641,"rel":642},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=aaron-bond.better-comments",[65],"Link",") - This extension provides a variety of ways to highlight and categorize your code comments to make them more visually distinct and informative.",[412,646,647,638,650,654],{},[415,648,649],{},"Project Manager",[61,651,643],{"href":652,"rel":653},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=alefragnani.project-manager",[65],") - This extension allows you to easily manage and switch between multiple projects within VS Code.",[412,656,657,638,660,664],{},[415,658,659],{},"Flutter Snippets",[61,661,643],{"href":662,"rel":663},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=alexisvt.flutter-snippets",[65],") - This extension provides a collection of snippets for Flutter development to help speed up your coding process.",[412,666,667,638,670,674],{},[415,668,669],{},"Export",[61,671,643],{"href":672,"rel":673},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=aslamanver.vsc-export",[65],") - This extension allows you to export your VS Code settings, keybindings, and extensions to easily transfer them to another machine.",[412,676,677,638,680,684],{},[415,678,679],{},"Theme Hop Light",[61,681,643],{"href":682,"rel":683},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=bubersson.theme-hop-light",[65],") - This extension provides a light theme for VS Code with soft colors that are easy on the eyes.",[412,686,687,638,690,694],{},[415,688,689],{},"Path Intellisense",[61,691,643],{"href":692,"rel":693},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=christian-kohler.path-intellisense",[65],") - This extension provides autocompletion for file paths when you are typing them in your code.",[412,696,697,638,700,704],{},[415,698,699],{},"DS Code GPT",[61,701,643],{"href":702,"rel":703},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=DanielSanMedium.dscodegpt",[65],") - This extension provides a GPT-3 based autocompletion service for coding in various languages.",[412,706,707,638,710,714],{},[415,708,709],{},"Vue Peek",[61,711,643],{"href":712,"rel":713},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=dariofuzinato.vue-peek",[65],") - This extension allows you to easily jump to the definition of Vue components and their templates.",[412,716,717,638,720,724],{},[415,718,719],{},"Dark Theme for Flutter Dev",[61,721,643],{"href":722,"rel":723},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=DarkThemeforFlutterDev.dark",[65],") - This extension provides a dark theme for Flutter development with vibrant colors.",[412,726,727,638,730,734],{},[415,728,729],{},"Dart Code",[61,731,643],{"href":732,"rel":733},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=Dart-Code.dart-code",[65],") - This extension provides language support and tools for Dart development.",[412,736,737,638,740,744],{},[415,738,739],{},"Flutter",[61,741,643],{"href":742,"rel":743},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=Dart-Code.flutter",[65],") - This extension provides additional tools and support for Flutter development on top of the Dart Code extension.",[412,746,747,638,750,754],{},[415,748,749],{},"Markdownlint",[61,751,643],{"href":752,"rel":753},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=DavidAnson.vscode-markdownlint",[65],") - This extension provides linting for Markdown files to ensure that they follow best practices.",[412,756,757,638,760,764],{},[415,758,759],{},"ESLint",[61,761,643],{"href":762,"rel":763},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=dbaeumer.vscode-eslint",[65],") - This extension provides linting for JavaScript and TypeScript files using ESLint.",[412,766,767,638,770,774],{},[415,768,769],{},"XML",[61,771,643],{"href":772,"rel":773},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=DotJoshJohnson.xml",[65],") - This extension provides language support and tools",[412,776,777,638,780,784],{},[415,778,779],{},"auto-rename-tag",[61,781,643],{"href":782,"rel":783},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=formulahendry.auto-rename-tag",[65],") This extension is helpful when working with HTML or XML files in VS Code. It automatically renames a tag whenever you change one of its opening or closing tags, ensuring that your code stays syntactically correct.",[412,786,787,638,790,794],{},[415,788,789],{},"GitHub Copilot",[61,791,643],{"href":792,"rel":793},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=GitHub.copilot",[65],") GitHub Copilot is an AI-powered code completion tool that provides suggestions as you type. It is based on OpenAI's GPT model and can generate code snippets based on the context of your code. This extension is designed to help developers increase their productivity and save time when writing code.",[412,796,797,638,800,804],{},[415,798,799],{},"GitHub Copilot Nightly",[61,801,643],{"href":802,"rel":803},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=GitHub.copilot-nightly",[65],") This extension is the nightly build of GitHub Copilot, which means that it contains the latest features and updates that have not yet been released to the stable version.",[412,806,807,638,810,814],{},[415,808,809],{},"GitHub RemoteHub",[61,811,643],{"href":812,"rel":813},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=GitHub.remotehub",[65],") GitHub RemoteHub is an extension that enables you to connect to your GitHub repositories directly from VS Code. You can use it to clone, pull, push, and view changes in your repositories without leaving the editor.",[412,816,817,638,820,824],{},[415,818,819],{},"GitHub Pull Requests",[61,821,643],{"href":822,"rel":823},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=GitHub.vscode-pull-request-github",[65],") This extension allows you to review and manage pull requests from within VS Code. You can view diffs, add comments, and merge pull requests without switching to a browser.",[412,826,827,638,830,834],{},[415,828,829],{},"JSON to Dart",[61,831,643],{"href":832,"rel":833},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=hirantha.json-to-dart",[65],") JSON to Dart is an extension that converts JSON strings to Dart classes automatically. It saves time and effort when working with Dart and Flutter projects that rely heavily on JSON serialization.",[412,836,837,638,840,844],{},[415,838,839],{},"Auto Open Markdown Preview",[61,841,643],{"href":842,"rel":843},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=hnw.vscode-auto-open-markdown-preview",[65],") This extension automatically opens a live preview of your Markdown files whenever you open them. You can customize the preview layout and choose to open it in a split editor or a separate window.",[412,846,847,638,850,854],{},[415,848,849],{},"Vue Snippets",[61,851,643],{"href":852,"rel":853},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=hollowtree.vue-snippets",[65],") Vue Snippets is an extension that provides a collection of useful code snippets for Vue.js development. It includes snippets for components, directives, lifecycle hooks, and more.",[412,856,857,638,860,864],{},[415,858,859],{},"Output Colorizer",[61,861,643],{"href":862,"rel":863},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=IBM.output-colorizer",[65],") Output Colorizer is an extension that adds color to the output panel in VS Code. It helps you to distinguish between different types of output, such as errors, warnings, and information messages.",[412,866,867,638,870,874],{},[415,868,869],{},"Vue Typescript SFC Snippets",[61,871,643],{"href":872,"rel":873},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=LissetteIbnz.vscode-vue-typescript-sfc-snippets",[65],") Vue Typescript SFC Snippets is an extension that provides a collection of code snippets for Vue.js Single-File Components (SFCs) written in TypeScript. It includes snippets for component templates, props, computed properties, and more.",[412,876,877,638,880,884],{},[415,878,879],{},"Git Graph",[61,881,643],{"href":882,"rel":883},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=mhutchie.git-graph",[65],") Git Graph is an extension that visualizes the Git repository history in a graph. It allows you to see branches, commits, and tags, and provides tools for exploring and comparing different versions of your code.",[412,886,887,890,891,895],{},[415,888,889],{},"mikeburgh.xml-format",": (",[61,892,643],{"href":893,"rel":894},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=mikeburgh.xml-format",[65],") This extension adds XML formatting capabilities to Visual Studio Code, allowing developers to easily format their XML files according to their preferences.",[412,897,898,890,901,905],{},[415,899,900],{},"mohsen1.prettify-json",[61,902,643],{"href":903,"rel":904},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=mohsen1.prettify-json",[65],") This extension helps developers to format JSON files in a way that is easier to read and understand. It can also highlight syntax errors and provide suggestions to fix them.",[412,907,908,890,911,915],{},[415,909,910],{},"mrmlnc.vscode-scss",[61,912,643],{"href":913,"rel":914},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=mrmlnc.vscode-scss",[65],") This extension provides SCSS and Sass syntax highlighting, as well as code completion and linting features. It is ideal for developers who work with CSS preprocessors.",[412,917,918,890,921,925],{},[415,919,920],{},"ms-azuretools.vscode-docker",[61,922,643],{"href":923,"rel":924},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-azuretools.vscode-docker",[65],") This extension is designed for developers who work with Docker containers. It provides a range of features such as Dockerfile editing, container management, and debugging.",[412,927,928,890,931,935],{},[415,929,930],{},"ms-dotnettools.csharp",[61,932,643],{"href":933,"rel":934},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-dotnettools.csharp",[65],") This extension provides C# language support for Visual Studio Code. It includes features such as IntelliSense, debugging, and code navigation.",[412,937,938,890,941,945],{},[415,939,940],{},"ms-mssql.data-workspace-vscode",[61,942,643],{"href":943,"rel":944},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-mssql.data-workspace-vscode",[65],") This extension provides tools for working with SQL databases in Visual Studio Code. It includes features such as IntelliSense, query editing, and database management.",[412,947,948,890,951,955],{},[415,949,950],{},"ms-mssql.mssql",[61,952,643],{"href":953,"rel":954},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-mssql.mssql",[65],") This extension provides SQL Server tools for Visual Studio Code, including IntelliSense, query editing, and database management.",[412,957,958,890,961,965],{},[415,959,960],{},"ms-mssql.sql-bindings-vscode",[61,962,643],{"href":963,"rel":964},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-mssql.sql-bindings-vscode",[65],") This extension provides tools for working with SQL Server bindings in Visual Studio Code. It includes features such as IntelliSense, query editing, and database management.",[412,967,968,890,971,975],{},[415,969,970],{},"ms-mssql.sql-database-projects-vscode",[61,972,643],{"href":973,"rel":974},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-mssql.sql-database-projects-vscode",[65],") This extension provides tools for working with SQL Server database projects in Visual Studio Code. It includes features such as IntelliSense, query editing, and database management.",[412,977,978,890,981,985],{},[415,979,980],{},"ms-vscode-remote.remote-containers",[61,982,643],{"href":983,"rel":984},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-vscode-remote.remote-containers",[65],") This extension allows developers to develop in a container-based environment, directly within Visual Studio Code. It is ideal for developers who need to work with multiple development environments.",[412,987,988,890,991,995],{},[415,989,990],{},"ms-vscode.azure-account",[61,992,643],{"href":993,"rel":994},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-vscode.azure-account",[65],") This extension provides Azure account management capabilities within Visual Studio Code. It allows developers to manage their Azure resources and services directly from the editor.",[412,997,998,890,1001,1005],{},[415,999,1000],{},"ms-vscode.azure-repos",[61,1002,643],{"href":1003,"rel":1004},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-vscode.azure-repos",[65],") This extension provides tools for working with Azure Repos within Visual Studio Code. It includes features such as source control management, code reviews, and pull requests.",[412,1007,1008,890,1011,1015],{},[415,1009,1010],{},"ms-vscode.powershell",[61,1012,643],{"href":1013,"rel":1014},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-vscode.Power",[65],") Powershell  extension",[412,1017,1018,890,1021,1025],{},[415,1019,1020],{},"Remote Repositories",[61,1022,643],{"href":1023,"rel":1024},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-vscode.remote-repositories",[65],") This extension provides a way to clone, search and open repositories from remote sources directly in VS Code. With this extension, you can easily clone repositories from services like GitHub, GitLab, Bitbucket, and Azure DevOps without having to leave the editor.",[412,1027,1028,890,1031,1035],{},[415,1029,1030],{},"Jest",[61,1032,643],{"href":1033,"rel":1034},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=Orta.vscode-jest",[65],") Jest is a popular testing framework for JavaScript applications. This extension provides VS Code integration for Jest, allowing you to run and debug your Jest tests directly from the editor. It also provides syntax highlighting for Jest test files and includes various snippets to speed up test writing.",[412,1037,1038,638,1041,1045],{},[415,1039,1040],{},"VueHelper",[61,1042,643],{"href":1043,"rel":1044},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=oysun.vuehelper",[65],") VueHelper is a collection of snippets and tools to improve the development experience for Vue.js applications in VS Code. It includes snippets for common Vue.js code patterns, as well as commands to generate Vue.js components and templates.",[412,1047,1048,638,1051,1055],{},[415,1049,1050],{},"Material Icon Theme",[61,1052,643],{"href":1053,"rel":1054},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=PKief.material-icon-theme",[65],") Material Icon Theme is a popular icon set for VS Code. It replaces the default file icons with colorful icons that help you quickly identify different file types in your project. It supports a wide range of file types and is highly customizable.",[412,1057,1058,890,1060,1064],{},[415,1059,769],{},[61,1061,643],{"href":1062,"rel":1063},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=redhat.vscode-xml",[65],") XML is a language used for representing data in a structured way. This extension provides syntax highlighting and code completion for XML files in VS Code. It also includes various features for navigating and editing XML files.",[412,1066,1067,638,1070,1074],{},[415,1068,1069],{},"Flutter Riverpod Snippets",[61,1071,643],{"href":1072,"rel":1073},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=robert-brunhage.flutter-riverpod-snippets",[65],") Riverpod is a state management library for Flutter applications. This extension provides snippets for Riverpod code patterns, allowing you to quickly create Riverpod providers and consumers in your Flutter code.",[412,1076,1077,638,1080,1084],{},[415,1078,1079],{},"Markdown Preview Enhanced",[61,1081,643],{"href":1082,"rel":1083},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=shd101wyy.markdown-preview-enhanced",[65],") Markdown Preview Enhanced is a powerful extension for working with Markdown files in VS Code. It provides a live preview of Markdown files, allowing you to see how your Markdown will look as you write it. It also includes features for exporting your Markdown to various formats, including PDF and HTML.",[412,1086,1087,638,1090,1094],{},[415,1088,1089],{},"Code Spell Checker",[61,1091,643],{"href":1092,"rel":1093},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=streetsidesoftware.code-spell-checker",[65],") Code Spell Checker is an extension that checks the spelling of your code as you write it in VS Code. It supports a wide range of programming languages and file types and includes customizable settings for controlling which files and directories to scan.",[412,1096,1097,638,1100,1104],{},[415,1098,1099],{},"Duplicate Finder",[61,1101,643],{"href":1102,"rel":1103},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=tlevesque2.duplicate-finder",[65],") Duplicate Finder is an extension that helps you find and remove duplicate code in your project. It analyzes your code and identifies sections that are repeated in multiple places. It then provides suggestions for how to refactor your code to eliminate the duplication.",[412,1106,1107,638,1110,1114],{},[415,1108,1109],{},"Vue Language Server",[61,1111,643],{"href":1112,"rel":1113},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=vaniship.vue-ls",[65],") Vue Language Server is an extension that provides code completion, diagnostics, and other features for Vue.js applications in VS Code. It relies on the Vue.js Language Server to provide these features, which is built on top of the TypeScript Language Server.",[412,1116,1117,890,1120,1124],{},[415,1118,1119],{},"vinicioslc.adb-interface-vscode",[61,1121,643],{"href":1122,"rel":1123},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=vinicioslc.adb-interface-vscode",[65],") A Visual Studio Code extension that provides an interface for interacting with Android Debug Bridge (ADB) devices directly from the editor.",[412,1126,1127,890,1130,1134],{},[415,1128,1129],{},"VisualStudioExptTeam.intellicode-api-usage-examples",[61,1131,643],{"href":1132,"rel":1133},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=VisualStudioExptTeam.intellicode-api-usage-examples",[65],") This extension provides examples of how to use the IntelliCode API in Visual Studio Code.",[412,1136,1137,890,1140,1144],{},[415,1138,1139],{},"VisualStudioExptTeam.vscodeintellicode",[61,1141,643],{"href":1142,"rel":1143},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=VisualStudioExptTeam.vscodeintellicode",[65],") An extension that provides AI-assisted development features, such as autocompletion and code recommendations, powered by machine learning through the IntelliCode technology.",[412,1146,1147,890,1150,1154],{},[415,1148,1149],{},"vscjava.vscode-gradle",[61,1151,643],{"href":1152,"rel":1153},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=vscjava.vscode-gradle",[65],") This extension provides support for the Gradle build system in Visual Studio Code, allowing users to run and debug Gradle tasks directly from the editor.",[412,1156,1157,890,1160,1164],{},[415,1158,1159],{},"vscode-icons-team.vscode-icons",[61,1161,643],{"href":1162,"rel":1163},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=vscode-icons-team.vscode-icons",[65],") A popular extension that provides icons for files and folders in Visual Studio Code, making it easier to visually distinguish between different types of files.",[412,1166,1167,890,1170,1174],{},[415,1168,1169],{},"Vue.volar",[61,1171,643],{"href":1172,"rel":1173},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=Vue.volar",[65],") An extension that provides support for the Volar language server for Vue.js in Visual Studio Code, offering enhanced features such as improved autocompletion and diagnostics.",[412,1176,1177,890,1180,1184],{},[415,1178,1179],{},"vuetifyjs.vuetify-vscode",[61,1181,643],{"href":1182,"rel":1183},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=vuetifyjs.vuetify-vscode",[65],") An extension that provides support for the Vuetify framework in Visual Studio Code, offering features such as code snippets and autocompletion for Vuetify components.",[412,1186,1187,890,1190,1194],{},[415,1188,1189],{},"wesbos.theme-cobalt2",[61,1191,643],{"href":1192,"rel":1193},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=wesbos.theme-cobalt2",[65],") A popular dark theme for Visual Studio Code, offering an attractive and easy-to-read color scheme for code editing.",[412,1196,1197,890,1200,1204],{},[415,1198,1199],{},"willjleong.nuxt-typescript-snippets",[61,1201,643],{"href":1202,"rel":1203},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=willjleong.nuxt-typescript-snippets",[65],") An extension that provides code snippets for working with Nuxt.js and TypeScript in Visual Studio Code, allowing developers to quickly insert common code patterns.",[36,1206,1207],{},"This was a list of all the extensions that I currently have installed on my VS Code. I hope you found this list useful and that you will find some of these extensions useful for your own projects.",[32,1209,562],{"id":561},[36,1211,1212],{},"With the increasing demand for efficient software development tools and the growing popularity of cloud-based development, VS Code is well-positioned to continue its upward trajectory. As more developers move towards remote work, VS Code's ability to integrate with cloud-based development platforms and its support for remote development workflows will be critical to its continued success.",[36,1214,1215],{},"Additionally, the emergence of artificial intelligence and machine learning has the potential to further enhance the capabilities of VS Code, such as with the recent introduction of GitHub Copilot, an AI-powered coding assistant that suggests code as you type.",[36,1217,1218],{},"Overall, the potential for VS Code is significant, and it is likely to continue to be a popular and valuable tool for developers for years to come.",{"title":11,"searchDepth":12,"depth":12,"links":1220},[1221,1222,1223],{"id":595,"depth":107,"text":596},{"id":623,"depth":107,"text":624},{"id":561,"depth":107,"text":562},"2023-04-23","VS Code is a free and open-source code editor developed by Microsoft for Windows, Linux, and macOS. It is a popular tool among software developers due to its ease of use, powerful features, and flexibility. VS Code provides a range of features such as syntax highlighting, code completion, debugging, and Git integration, making coding and debugging easier for developers.","\u002Farticles\u002Fimages\u002Fvscode.png",{},"\u002Farticles\u002F2023_vscode_extensions",{"title":589,"description":1225},"articles\u002F2023_vscode_extensions",[1232,18],"vscode","Hgh5GVn_QUiZ0cGVL38s4262URFvdFn1drgYnRMzh_w",{"id":1235,"title":1236,"author":590,"body":1237,"createdAt":1321,"description":1322,"extension":15,"img":1323,"meta":1324,"navigation":19,"path":1325,"seo":1326,"stem":1327,"tags":1328,"updatedAt":1321,"__hash__":1329},"articles\u002Farticles\u002Ftool-ditto.md","Tool Tip Ditto Must Have",{"type":8,"value":1238,"toc":1319},[1239,1242,1245,1286,1300,1305,1313,1316],[36,1240,1241],{},"Ditto is an extension to the standard windows clipboard. It saves each item placed on the clipboard allowing you access to any of those items at a later time. Ditto allows you to save any type of information that can be put on the clipboard, text, images, html, custom formats, ..... The features below are simple and just worth repeating within this entry.",[36,1243,1244],{},"Features",[435,1246,1247,1250,1253,1256,1259,1262,1265,1268,1271,1274,1277],{},[412,1248,1249],{},"Easy to use interface",[412,1251,1252],{},"Search and paste previous copy entries",[412,1254,1255],{},"Keep multiple computer's clipboards in sync",[412,1257,1258],{},"Data is encrypted when sent over the network",[412,1260,1261],{},"Accessed from tray icon or global hot key",[412,1263,1264],{},"Select entry by double click, enter key or drag drop",[412,1266,1267],{},"Paste into any window that excepts standard copy\u002Fpaste entries",[412,1269,1270],{},"Display thumbnail of copied images in list",[412,1272,1273],{},"Full Unicode support(display foreign characters)",[412,1275,1276],{},"UTF-8 support for language files(create language files in any language)",[412,1278,1279,1280,1285],{},"Uses sqlite database (",[61,1281,1284],{"href":1282,"rel":1283},"http:\u002F\u002Fwww.sqlite.org",[65],"www.sqlite.org",")",[36,1287,1288,1289,1294,1295,1299],{},"The extension can be found at ",[61,1290,1293],{"href":1291,"target":1292},"https:\u002F\u002Fditto-cp.sourceforge.io\u002F","_blank","Ditto","  Source code and issues are tracked via ",[61,1296,1298],{"href":1297,"target":1292},"https:\u002F\u002Fgithub.com\u002Fsabrogden\u002FDitto","github","  Written in c++",[36,1301,1302],{},[43,1303],{"alt":11,"src":1304},"\u002Farticles\u002Fimages\u002Fditto.png",[36,1306,1307,1308,1310],{},"I use this extension daily on all my workstations.  I am able to Copy (Ctrl-C) anything and then use keyboard shortcut Alt-Z to show the last x number (confiburable) of copies display in a pop-up.",[49,1309],{},[43,1311],{"alt":11,"src":1312},"\u002Farticles\u002Fimages\u002Fditto_screen1.png",[36,1314,1315],{},"Anything in ditto can be found by searching in the open dialog box.  This feature is invaluable when trying to find content from a couple of days ago.  Ditto starts on system startup and is always just available.",[36,1317,1318],{},"I have tried other clipboard manager tools, but this one is just small, easy and allows me copy\u002Fpaste text, code, images from days in the past.",{"title":11,"searchDepth":12,"depth":12,"links":1320},[],"2021-12-05","Clipboard utility that is a must have.  Easy to use interface, search and paste previous copy entries, keep multiple computer's clipboards in sync, accessed from tray icon or global hot key, display a thumbnail of copied images etc.","\u002Farticles\u002Fimages\u002Fditto1.png",{},"\u002Farticles\u002Ftool-ditto",{"title":1236,"description":1322},"articles\u002Ftool-ditto",[18],"ffOa-BrPCpCv3DthBZ8NpYKGXC5GM95KYDG6MZjz1Sw",{"id":1331,"title":1332,"author":590,"body":1333,"createdAt":1385,"description":28,"extension":15,"img":1378,"meta":1386,"navigation":19,"path":1387,"seo":1388,"stem":1389,"tags":1390,"updatedAt":1385,"__hash__":1391},"articles\u002Farticles\u002Fpersonal-pc-backup-strategies-including-redundancy.md","Personal PC Backup–Strategies including redundancy",{"type":8,"value":1334,"toc":1383},[1335,1344,1348,1351,1354,1358,1361,1365,1368,1371],[36,1336,1337,1338,1340],{},"I use the following ‘backup’ tools and products for my personal use.  Yes, I do use 3 approaches as each has different benefits and advantages.",[49,1339],{},[61,1341,1343],{"href":1342,"target":1292},"https:\u002F\u002Ftechnet.microsoft.com\u002Fen-us\u002Flibrary\u002Fcc733145.aspx?f=255&MSPPError=-2147217396","RoboCopy",[1345,1346,1347],"blockquote",{},"  \nThis is a Microsoft product that is already on your system for copying files between 2 locations.  Why use RoboCopy?  If you're conscientious about the safety of your data, chances are good that you are already using Windows 7's Backup and Restore tool to create an image file of your hard disk as well as to back up your data files on a regular schedule. However, you may like to have an additional copy of your data files just to be on the safe side. While you can easily do so by copying your files and folders to an external hard drive via drag and drop, that can be a tedious operation.  \n",[1345,1349,1350],{},"  \nI use this product to backup my local files to an external harddrive.  I have created a batch file which when clicked will execute robocopy commands copying files between my pc and an external hard drive.  The hard drive came from an older pc that i have put in a cheap ($15) enclosure.  I can connect this device to my pc via usb cable.  The batch file resides on the external harddrive called robo_home.bat with the following contents… Below i am showing just 1 line of the file.  It provides the source and destination locations for what is to be copied to the external hard drive.  In fact I have multiple locations that i copy to the hard drive.  The external hard drive is 250gb plenty large enough to backup personal pictures\u002Fvideos etc.  \nrobocopy D:\\_Personal_A_L F:\\Home_PC\\_Personal_A_L   \u002Fmir \u002Fz \u002Fxa:sh \u002Fxjd \u002FR:5 \u002FW:15 \u002FMT:32 \u002Fv \u002Fnp \u002Flog:home_backup1.log  \n",[1345,1352,1353],{},"  \nWhat does this do?  It copies files from the source D:\\_Personal to the destination F:\\Home_PC\\_Personal_A_F with a series of command arguments.  RoboCopy has numerous arguments that can be used to instruct how things will be copied.  The following are what i use.  \n\u002Fmir = I want to back up every folder in the source, even any empty folders, as they may be placeholders for future data. I also don't want to have files on the backup that I deleted from my hard disk  \n\u002FXA: SH = switch to exclude the hidden, system files  \n\u002FXD AppData = to exclude the entire AppData folder  \n\u002FXJD = exclude all the junction points  \n",[61,1355,1357],{"href":1356,"target":1292},"https:\u002F\u002Fwww.dropbox.com\u002Fhome","DropBox",[1345,1359,1360],{},"  \nDropbox is an online backup facility which stores your data on server using Cloud Storage so that you can share the files with other using file synchronization. The concept of Dropbox is that you can simply access your files anywhere and can be shared with others. The best part of Dropbox is its synchronization, Any files you save to Dropbox will also instantly reflect the same in your computers, Phones, iPad and Dropbox Websites.  \nI use a personal account, and the size limit is quite low 8 gb.  You can purchase a license to get more space and often they have promotions to get more space.  I use this product to make some files availalbe cross multiple devices and pcs.  Often I share Application settings files so that a product on one device will run with similar settings on another computer.  In addition, I use the folder share features to share files with friends and family.  \nI have installed this product on my phone which is really nice to access pictures taken on mobile devices.  After installing on a mobile device you will be walked through options to copy pictures automatically to your dropbox account.  So immediately after taking a picture the file(s) are available on my home pc.  Really nice.  For my family (wife and kids) i stress they use this product, for their school assignments\u002Fhome work etc.  If their laptops crash – they are safe.  Often they have used this product to access assignments from libraries or school systems, making their work available to them at all times. Very nice.  \n",[61,1362,1364],{"href":1363,"target":1292},"http:\u002F\u002Fwww.code42.com\u002Fcrashplan\u002F","CrashPlan",[1345,1366,1367],{},"  \nCrashPlan is a utility that allows you to back up your computer to another computer or to an external drive, either manually or on a schedule. If you have multiple computers in your household, you can back them up to one another, or you can back up to a friend's computer and invite them to do the same.  You can configure this app to create automatic backups once a day. And if you're a paid user, you'll benefit from continuous backups, so if something does go wrong, you can quickly pick up right where you left off.  \nThis is my fail safe backup system that is scheduled to run every evening.  Crashplan backups up unlimited amount of data\u002Ffiles to the cloud nightly.  The cost was ~$100 for 5 years which I find very reasonable to know that my home pc is backed in case of fire\u002Ftheft etc.  This is quite affordable in my opinion for the comfort of knowing things are backed up.  You can use this product like DropBox however I find DropBox is cross platform and free\u002Flow cost.  \n",[61,1369],{"href":1370},"\u002Farticles\u002Fimages\u002Fopen-live-writer-backing-up-to_d663-backup_5.jpg",[36,1372,1373],{},[61,1374,1375],{"href":1370},[43,1376],{"style":1377,"src":1378,"border":1379,"alt":1380,"title":1380,"width":1381,"height":1382},"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;","\u002Farticles\u002Fimages\u002Fopen-live-writer-backing-up-to_d663-backup_thumb_1.jpg",0,"backup",148,99,{"title":11,"searchDepth":12,"depth":12,"links":1384},[],"2016-01-17T09:06:13.1300000-05:00",{},"\u002Farticles\u002Fpersonal-pc-backup-strategies-including-redundancy",{"title":1332,"description":28},"articles\u002Fpersonal-pc-backup-strategies-including-redundancy",[18],"bemS4swwtVbF4VqtdcWLrntTQBgmjprqf9NcPo4K-YU",{"id":1393,"title":1394,"author":590,"body":1395,"createdAt":1420,"description":28,"extension":15,"img":1421,"meta":1422,"navigation":19,"path":1423,"seo":1424,"stem":1425,"tags":1426,"updatedAt":1420,"__hash__":1427},"articles\u002Farticles\u002Fwindows-vista-wallpapers-nice-collection.md","Windows Vista Wallpapers - Nice collection",{"type":8,"value":1396,"toc":1418},[1397],[36,1398,1399,1400,1404,1405,1407,1414],{},"I came across this ",[61,1401,1403],{"href":1402,"target":1292},"http:\u002F\u002Fwww.vista4beginners.com\u002FVista-Wallpapers-Collection","site"," this afternoon. \nA number of beautiful photos by Harmad Darwish.  Harmad was hired by Microsoft to work on wallpaper collections for Vista.",[49,1406],{},[61,1408,1409],{"href":1402,"target":1292},[43,1410],{"title":47,"style":1411,"height":1412,"alt":47,"src":1413,"width":1412,"border":1379},"border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px",244,"\u002Fimages\u002FWindowsVistaWallpapersNicecollection_12B96\u002Fimage_3.png",[43,1415],{"src":1416,"alt":11,"style":1417},"\u002Farticles\u002Fimages\u002Fvista.jpg","display:none;",{"title":11,"searchDepth":12,"depth":12,"links":1419},[],"2015-04-20T08:07:19.9500000-04:00","\u002Farticles\u002Fimages\u002Fimage_3.png",{},"\u002Farticles\u002Fwindows-vista-wallpapers-nice-collection",{"title":1394,"description":28},"articles\u002Fwindows-vista-wallpapers-nice-collection",[18],"yMgZ1h8ePVrQxDCz7xeoOynQE98wpvA6j3hLSVSqShw",{"id":1429,"title":1430,"author":590,"body":1431,"createdAt":1462,"description":1463,"extension":15,"img":1457,"meta":1464,"navigation":19,"path":1465,"seo":1466,"stem":1467,"tags":1468,"updatedAt":1462,"__hash__":1469},"articles\u002Farticles\u002Fhow-to-delete-a-file-in-windows-with-a-too-long-filename.md","How to delete a file in Windows with a too long filename?",{"type":8,"value":1432,"toc":1460},[1433,1436,1439,1442,1445,1448],[36,1434,1435],{},"I came across a situation where I had to remove all files at this location C:\\Users{username}\\AppData\\Local\\Temp.",[36,1437,1438],{},"I was able to delete most of the files however I came across a Windows error stating that one or more files had a file name too long to be removed. I tried a number of approaches (not to be stated here) however the resolution was to use RoboCopy.",[36,1440,1441],{},"I created a local directory c:\\temp\\empty_dir with nothing in it.\nI then used the following RoboCopy command to mirror that empty directory with the problematic directory.",[36,1443,1444],{},"robocopy c:\\temp\\empty_dir C:\\Users{username}\\AppData\\Local\\Temp \u002Fs \u002Fmir",[36,1446,1447],{},"This works because robocopy internally uses the Unicode-aware versions of Win32 functions, with the \\?\\ prefix for file paths; those functions have a limit of 2¹⁶-1 (32,767) characters instead of 259",[36,1449,1450],{},[61,1451,1453],{"href":1452},"\u002Farticles\u002Fimages\u002Fwindows-live-writer-1da1028d1d1d_11da4-robo_2.jpg",[43,1454],{"title":1455,"style":1456,"border":1379,"alt":1455,"src":1457,"width":1458,"height":1459},"robo","border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px","\u002Farticles\u002Fimages\u002Fwindows-live-writer-1da1028d1d1d_11da4-robo_thumb.jpg",240,89,{"title":11,"searchDepth":12,"depth":12,"links":1461},[],"2010-01-27T13:25:31.2700000-05:00","Long file names within windows continues to be trouble and difficult to manage.",{},"\u002Farticles\u002Fhow-to-delete-a-file-in-windows-with-a-too-long-filename",{"title":1430,"description":1463},"articles\u002Fhow-to-delete-a-file-in-windows-with-a-too-long-filename",[18],"U1_lv-0K6POEbvXcYmd2Tf8OYYciO6OT3p9TZrcrlQY",{"id":1471,"title":1472,"author":590,"body":1473,"createdAt":1565,"description":1566,"extension":15,"img":1562,"meta":1567,"navigation":19,"path":1568,"seo":1569,"stem":1570,"tags":1571,"updatedAt":1565,"__hash__":1572},"articles\u002Farticles\u002Ftodays-hot-links.md","Nov 2007 Links",{"type":8,"value":1474,"toc":1563},[1475,1478,1488,1491,1523,1526,1542,1545,1560],[36,1476,1477],{},"XAML Power toys - XAML Power Toys is a Visual Studio 2008 SP1 Multi-AppDomain Add-In that empowers WPF & Silverlight developers while working in the XAML editor. Its Line of Business form generation tools, Grid tools, DataGrid and ListView generation really shorten the XAML page layout time.",[435,1479,1480],{},[412,1481,1482,1485],{},[61,1483],{"title":1484,"href":1484},"http:\u002F\u002Fkarlshifflett.wordpress.com\u002Fxaml-power-toys\u002F",[61,1486,1484],{"href":1484,"rel":1487},[65],[36,1489,1490],{},"Microsoft Chart Controls for .NET Framework 3.5 Released! - Microsoft Chart Controls for .NET Framework 3.5 are now publicly available.",[435,1492,1493,1499,1505,1511,1517],{},[412,1494,1495],{},[61,1496,1497],{"title":1497,"href":1498},"Microsoft Chart Controls for Microsoft .NET Framework 3.5","http:\u002F\u002Fwww.microsoft.com\u002Fdownloads\u002Fdetails.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=en",[412,1500,1501],{},[61,1502,1503],{"title":1503,"href":1504},"Microsoft Chart Controls for Microsoft .NET Framework 3.5 Language Pack","http:\u002F\u002Fwww.microsoft.com\u002Fdownloads\u002Fdetails.aspx?FamilyId=581FF4E3-749F-4454-A5E3-DE4C463143BD&displaylang=en",[412,1506,1507],{},[61,1508,1509],{"title":1509,"href":1510},"Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008","http:\u002F\u002Fwww.microsoft.com\u002Fdownloads\u002Fdetails.aspx?FamilyId=1D69CE13-E1E5-4315-825C-F14D33A303E9&displaylang=en",[412,1512,1513],{},[61,1514,1515],{"title":1515,"href":1516},"ASP.NET Samples","http:\u002F\u002Fcode.msdn.microsoft.com\u002Fmschart",[412,1518,1519],{},[61,1520,1521],{"title":1521,"href":1522},"Documentation","http:\u002F\u002Fwww.microsoft.com\u002Fdownloads\u002Fdetails.aspx?FamilyId=EE8F6F35-B087-4324-9DBA-6DD5E844FD9F&displaylang=en",[36,1524,1525],{},"WPF Toolkit – Oct 2008 Release -",[435,1527,1528,1536],{},[412,1529,1530,1533],{},[61,1531],{"title":1532,"href":1532},"http:\u002F\u002Fwww.codeplex.com\u002Fwpf\u002FRelease\u002FProjectReleases.aspx?ReleaseId=15598",[61,1534,1532],{"href":1532,"rel":1535},[65],[412,1537,1538],{},[61,1539,1540],{"title":1540,"href":1541},"Permanent Link- Keep Your Office 2007 Documents Readily Available the Easy Way","http:\u002F\u002Fblogs.howtogeek.com\u002Fmysticgeek\u002F2008\u002F10\u002F27\u002Fkeep-your-office-2007-documents-readily-available-the-easy-way\u002F",[36,1543,1544],{},"CodeRush Xpress for C# - Developer Express and Microsoft are proud to announce a new version of CodeRush licensed exclusively for C# developers working in Visual Studio. The new product is called CodeRush Xpress, and it includes a fresh selection of hand-picked features taken from",[435,1546,1547,1553],{},[412,1548,1549],{},[61,1550,1552],{"href":1551},"http:\u002F\u002Fwww.devexpress.com\u002FCodeRush","CodeRush",[412,1554,1555,1559],{},[61,1556,1558],{"href":1557},"http:\u002F\u002Fwww.devexpress.com\u002FRefactor","Refactor! Pro",".",[43,1561],{"src":1562,"alt":11},"\u002Farticles\u002Fimages\u002Fhotlinks1.jpg",{"title":11,"searchDepth":12,"depth":12,"links":1564},[],"2007-11-19","A collection of links and web resources",{},"\u002Farticles\u002Ftodays-hot-links",{"title":1472,"description":1566},"articles\u002Ftodays-hot-links",[18],"ohcebUt-Qn2aFeT0q0Ef6J5176N63uMrWc6oAyQtFdo",{"id":1574,"title":1575,"author":590,"body":1576,"createdAt":1689,"description":1690,"extension":15,"img":1691,"meta":1692,"navigation":19,"path":1693,"seo":1694,"stem":1695,"tags":1696,"updatedAt":1689,"__hash__":1697},"articles\u002Farticles\u002Frelevant-microsoft-developer-links-good-reading-learning.md","Relevant Microsoft Developer Links (Good Reading\u002FLearning)",{"type":8,"value":1577,"toc":1687},[1578,1586,1594,1602,1610,1618,1631,1639,1647,1655,1663,1671,1679],[36,1579,1580,1581,1585],{},"1.) ",[61,1582,1584],{"href":1583,"target":1292},"http:\u002F\u002Fmsdn.microsoft.com\u002Fen-us\u002Fdata\u002Fdefault.aspx","Microsoft Data Platform Site"," – news and updated releases of their most recent data products",[36,1587,1588,1589,1593],{},"2.) ",[61,1590,1592],{"href":1591,"target":1292},"http:\u002F\u002Fblogs.msdn.com\u002Fadonet\u002F","ADO.NET Team blog"," - With so many new technologies and approaches this seems to be the source of the news with respect to data.     Development ",[36,1595,1596,1597,1601],{},"3.) ",[61,1598,1600],{"href":1599,"target":1292},"http:\u002F\u002Fwww.codeplex.com\u002FExcelPackage","Excel generation on server"," (CodePlex)",[36,1603,1604,1605,1609],{},"4.) James Newton-King ",[61,1606,1608],{"href":1607,"target":1292},"http:\u002F\u002Fjames.newtonking.com\u002Fprojects\u002Fjson-net.aspx","Json.NET"," - The Json.NET library makes working with JavaScript and JSON formatted data in .NET simple. Quickly read and write JSON using the JsonReader and JsonWriter or serialize your .NET objects with a single method call using the JsonSerializer.",[36,1611,1612,1613,1617],{},"5.) ",[61,1614,1616],{"href":1615,"target":1292},"http:\u002F\u002Fsilverlight.net\u002Fblogs\u002Fjesseliberty\u002Farchive\u002F2009\u002F08\u002F16\u002Flinqtosql-a-detailed-review.aspx","LinqToSQL A Detailed Review"," by Jesse Libery",[36,1619,1620,1621,1625,1626,1630],{},"6.) ",[61,1622,1624],{"href":1623,"target":1292},"http:\u002F\u002Fwww.myinkblog.com\u002F2009\u002F08\u002F04\u002F10-tips-for-writing-better-jquery-code\u002F","JQuery – 10 Tips for Better Code"," – check out also Best JQuery Tutorials ",[61,1627,1629],{"href":1628,"target":1292},"http:\u002F\u002Fwww.ajaxline.com\u002Fbest-jquery-tutorials-for-june-2009","here","     Collaboration",[36,1632,1633,1634,1638],{},"7.) ",[61,1635,1637],{"href":1636,"target":1292},"http:\u002F\u002Fetherpad.com\u002F","EtherPad"," – web based word processor that allows people to work together",[36,1640,1641,1642,1646],{},"8.) ",[61,1643,1645],{"href":1644,"target":1292},"https:\u002F\u002Fconnect.microsoft.com\u002Fcontent\u002Fcontent.aspx?ContentID=6415&SiteID=94&wa=wsignin1.0","Microsoft SharedView"," - Connect with up to 15 people in different locations and get your point across by showing them what's on your screen. Share, review, and update documents with multiple people in real time.A Windows Live ID (Passport, Hotmail, or MSN) is required to start sessions, but not to join sessions. New in version 1.0: we have added a web based join experience to make SharedView even easier.     Operating Systems  ",[36,1648,1649,1650,1654],{},"9.)  ",[61,1651,1653],{"href":1652,"target":1292},"http:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWindows_7_editions#Comparison_chart","Windows 7 Edition Comparison Chart"," ",[36,1656,1657,1658,1662],{},"10.)  ",[61,1659,1661],{"href":1660,"target":1292},"http:\u002F\u002Fwww.hanselman.com\u002Fblog\u002FStepByStepHowToUpgradeFromWindowsXPToWindows7.aspx","Windows XP to Windows 7 Upgrade","     Tools",[36,1664,1665,1666,1670],{},"11.)  ",[61,1667,1669],{"href":1668,"target":1292},"http:\u002F\u002Fwww.imgburn.com\u002F","ImgBurn"," – DVD Burner utility (Free)",[36,1672,1673,1674,1678],{},"12.) ",[61,1675,1677],{"href":1676,"target":1292},"http:\u002F\u002Fsourceforge.net\u002Fprojects\u002Fwindirstat\u002F","WinDirStat:Windows Directory Statistics"," (Free)     Fun",[36,1680,1681,1682,1686],{},"13.)  ",[61,1683,1685],{"href":1684,"target":1292},"http:\u002F\u002Fmondays.pwop.com\u002F","Mondays"," – fun (sometimes crude) podcast with Carl Franklin(DotNetRocks), Karen Greenwald, Mark Miller(CodeRush) and Richard Campbell(RunAs Radio)",{"title":11,"searchDepth":12,"depth":12,"links":1688},[],"2007-04-20T08:07:15.9100000-04:00","A set of good links and reference material","\u002Farticles\u002Fimages\u002Flinks.jpg",{},"\u002Farticles\u002Frelevant-microsoft-developer-links-good-reading-learning",{"title":1575,"description":1690},"articles\u002Frelevant-microsoft-developer-links-good-reading-learning",[18],"ixHNPltZPtXjc8aDfNTIHpb19xG9_fj6fWo9fa4HXu8",{"id":1699,"title":1700,"author":590,"body":1701,"createdAt":1743,"description":1744,"extension":15,"img":1740,"meta":1745,"navigation":19,"path":1746,"seo":1747,"stem":1748,"tags":18,"updatedAt":1743,"__hash__":1749},"articles\u002Farticles\u002Finternet-explorer-default-source-editor-view-source.md","Internet Explorer Default Source Editor (View Source)",{"type":8,"value":1702,"toc":1741},[1703,1706,1712,1718,1721,1733],[36,1704,1705],{},"With a new laptop there have been quite a few things I have had to configure again.  One of those is the default source view application related to Internet Explorer.  The following instructions apply to Windows XP (not sure yet on Vista).",[36,1707,1708,1709,1711],{},"I thought by changing the HTML Editor within IE (Tools - Internet Options - Programs) would have fixed the problem.  Nope, that did not work.  The following however does work nicely.",[49,1710],{},"\nRun Regedit",[36,1713,1714,1715,1717],{},"HKEY_LOCAL_MACHINE",[49,1716],{},"\n|- Software\n|-- Microsoft\n|--- Internet Explorer\n|---- View Source Editor\n|----- Editor Name (Default) = \"C:\\Program Files\\TextPad 4\\TextPad.exe\"",[36,1719,1720],{},"If 'View Source Editor' doesn't exist you will need to create then create the key 'Editor Name' and set the value to the path to the editor that you are going to use.",[36,1722,1723,1724,1728,1729],{},"I know other individuals like ",[61,1725,1727],{"href":1726,"target":1292},"http:\u002F\u002Fwww.flos-freeware.ch\u002Fnotepad2.html","Notepad2"," or ",[61,1730,1732],{"href":1731,"target":1292},"http:\u002F\u002Fwww.slickedit.com\u002F","SlickEdit",[36,1734,1735,1736,1738],{},"What editors do you use?",[49,1737],{},[43,1739],{"src":1740,"alt":11,"style":1417},"\u002Farticles\u002Fimages\u002Fie.png",{"title":11,"searchDepth":12,"depth":12,"links":1742},[],"2006-04-20T08:07:19.6300000-04:00","Tip on how to change the default viewsource editor (registry update)",{},"\u002Farticles\u002Finternet-explorer-default-source-editor-view-source",{"title":1700,"description":1744},"articles\u002Finternet-explorer-default-source-editor-view-source","oNJPEHPunm6tqXAGNNuCFnH2zyX6RzrF5-yvdTMEYPc",1781574760577]