{"id":5444,"date":"2012-10-23T05:00:00","date_gmt":"2012-10-23T13:00:00","guid":{"rendered":"http:\/\/www.sapien.com\/blog\/?p=5444"},"modified":"2013-06-24T08:15:24","modified_gmt":"2013-06-24T16:15:24","slug":"lost-the-forgotten-features-part-ii","status":"publish","type":"post","link":"https:\/\/dev.sapien.com\/blog\/2012\/10\/23\/lost-the-forgotten-features-part-ii\/","title":{"rendered":"LOST! The forgotten features, Part II"},"content":{"rendered":"<p>Sometimes we get so used to how software works that we just miss if anything works differently. I am amazed to how many users I talk who have never noticed this feature in PrimalScript, even though it has been there since 2.0\u2026<\/p>\n<p>In case you don\u2019t remember, that was in the year 2000. I hope you a appreciate that I had to look for the dates scribbled on backup CDs from 12 years ago to find out when that version was released.<\/p>\n<p>If you feel nostalgic, here are some screenshots from PrimalScript 1.0 (1998) and 2.0 (2000)<\/p>\n<p>&nbsp;<\/p>\n<table cellspacing=\"0\" cellpadding=\"2\" width=\"400\" border=\"1\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"200\"><a href=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2012\/10\/image8.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2012\/10\/image_thumb6.png\" width=\"244\" height=\"139\"><\/a><\/td>\n<td valign=\"top\" width=\"200\"><a href=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2012\/10\/image9.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2012\/10\/image_thumb7.png\" width=\"244\" height=\"139\"><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>And yes, these old versions still install and run on Windows 7. Amazing!<\/p>\n<p>&nbsp;<\/p>\n<p>So what is this feature I am talking about?<\/p>\n<p>Don Jones called it \u201cInfinite Undo\u201d one time or another, we usually refer to it as undo across sessions.<\/p>\n<p>With most software, once your delete something, save and exit there is no way to just simply press Ctrl+Z and undo whatever you messed up the night before.<\/p>\n<p>Not so in PrimalScript.<\/p>\n<p>(NOTE: Don\u2019t try this at home until you read to the end, ALWAYS make a backup of all your files)<\/p>\n<p>We take some bigger script file for our demonstration, for example the spaceinvaders implementation in powershell, psinvaders.ps1<\/p>\n<p><a href=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2012\/10\/image4.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2012\/10\/image_thumb2.png\" width=\"644\" height=\"364\"><\/a><\/p>\n<p>Now we do something really bad and delete a big chunk in the middle:<\/p>\n<p><a href=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2012\/10\/image5.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2012\/10\/image_thumb3.png\" width=\"644\" height=\"364\"><\/a><\/p>\n<p>And save it.<\/p>\n<p>Now we exit PrimalScript.<\/p>\n<p>We open the file in notepad just to show how bad this would be\u2026<\/p>\n<p><a href=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2013\/06\/image.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline\" border=\"0\" alt=\"image\" src=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2013\/06\/image_thumb.png\" width=\"644\" height=\"364\"><\/a> <\/p>\n<p>You notice that there is no PrimalScript in the task bar.<\/p>\n<p>Now start PrimalScript again, press Ctrl+Z and save. All good.<\/p>\n<p><a href=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2012\/10\/image7.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2012\/10\/image_thumb5.png\" width=\"644\" height=\"364\"><\/a><\/p>\n<p>It\u2019s not really a big secret how this is done. PrimalScript stores your undo information in an alternate file stream with your script. Well, if your file is on an NTFS partition, like most Windows machines have. If your files reside on a flash drive, NAS (with Linux) or any other drive that does not have NTFS this won\u2019t work. But if you are your average Windows user, go and undo the stuff you dreamed up last night and that turned out to be not such a good idea. Beats scrambling for a backup file, if you have one.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sometimes we get so used to how software works that we just miss if anything works differently. I am amazed to how many users I talk who have never noticed this feature in PrimalScript, even though it has been there since 2.0\u2026 In case you don\u2019t remember, that was in the year 2000. I hope [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[27,2,410],"tags":[780,37,781],"class_list":["post-5444","post","type-post","status-publish","format-standard","hentry","category-ask-the-experts","category-general","category-primalscript-software-news","tag-lost","tag-primalscript","tag-undo"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/5444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/comments?post=5444"}],"version-history":[{"count":6,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/5444\/revisions"}],"predecessor-version":[{"id":6354,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/5444\/revisions\/6354"}],"wp:attachment":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/media?parent=5444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/categories?post=5444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/tags?post=5444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}