tag:blogger.com,1999:blog-220937882024-03-27T09:52:18.883-04:00MrLithium's blogComputer Science, Programming, and New Ideas.MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.comBlogger63125tag:blogger.com,1999:blog-22093788.post-79434004033510086122020-02-19T00:21:00.002-05:002020-02-19T00:21:53.460-05:00Netguard 2 Firewall for Android - Unlocking the registration challenge response activation license code to authorize the Pro version<b>NetGuard - Firewall for Android (NetGuard2)</b><br />
<a href="https://github.com/M66B/NetGuard/">https://github.com/M66B/NetGuard/</a><br />
<a href="https://github.com/M66B/NetGuard/releases/download/2.273/NetGuard-v2.273-release.apk">https://github.com/M66B/NetGuard/releases/download/2.273/NetGuard-v2.273-release.apk</a><br />
<br />
<b><u>Successfully Unlocking the registration challenge & response code for NetGuard 2:</u></b><br />
<b><u> (by genBTC)</u> @ February 19, 2020.</b><br />
<b><u>Android <=7.0 CONFIRMED</u> </b>(NOT confirmed on 8.0 Oreo + above, but likely works)<br />
<br />
<b>Background</b><br />
-------------------<br />
<b>NetGuard / NetGuard2 </b>is a great firewall program for Android, and is unique in its functionality.<br />
However, the <b>pro</b> features are all paid addons.<br />
This program is fully open source though, and the .apk can be downloaded from F-Droid or straight from <b>Github</b>. This makes instant in-app payments impossible (as opposed to when from the Google Play Store). Also, there is NO remote server to "call home" to verify the authentication, because it has to work in this standalone mode too. This is even stated in the README by the author.<br />
I have no issue with the developer receiving payment for his efforts, but,<br />
One of the main PRO features is <b>selective blocking/filtering</b>, the main thing a firewall should be able to do, and is the main reason I downloaded and wanted to use this program.<br />
The only other programs for Android I've found were "<b>NoRoot Firewall</b>" which I used previously and <b>does do this</b>, and "AFWall+" which uses linux IPtables internally and as a result won't work if the phone is not rooted.<br />
Without the paid unlock, the program is only able to block whole applications (or system-wide).<br />
For example, if we want to block say Reddit from accessing "facebook.com", that requires the paid version. Unacceptable.<br />
<br />
<b>So I begin the task of reverse engineering the authentication mechanism.</b><br />
---------------------------------------------------------------------------------------------<br />
It starts here: <a href="https://github.com/M66B/NetGuard/search?q=challenge">https://github.com/M66B/NetGuard/search?q=challenge</a><br />
We search the code for "<b>challenge</b>" since that appears in the GUI.<br />
Most of the results are *.xml files which contain strings and do not interest us.<br />
The 2nd result is jackpot. <b>app/src/main/java/eu/faircode/netguard/ActivityPro.java</b><br />
We can see theres actual code calling something called <b>menu_challenge</b>()<br />
<a href="https://github.com/M66B/NetGuard/blob/f408a3140925252742b5ed1e7e60711b87a16b4f/app/src/main/java/eu/faircode/netguard/ActivityPro.java#L273">https://github.com/M66B/NetGuard/blob/f408a3140925252742b5ed1e7e60711b87a16b4f/app/src/main/java/eu/faircode/netguard/ActivityPro.java#L273</a><br />
As it turns out, <b>menu_challenge</b>() is in this same file, right below that. Line <b>288</b>.<br />
Jackpot! This is the entire challenge and response function!<br />
<br />
<b>Long Explanation</b><br />
----------------------<br />
Even without knowing Java, you can read this code. Here I will explain it in English:<br />
A Layout is Inflated (stubbed out) and an Alert Dialog is created. (the GUI)<br />
Now 3 Variables are created. <b>android_id </b>, <b>challenge</b>, <b>seed</b>.<br />
Lets skip android_id for a minute.<br />
Lets explain the code syntax. These are commonly called "Ternary" or conditional if statements. Basically an If/Then/Else command. Imagine the Equal sign being an "if", the ? turns into a "Then", and the : turns into an "Else"<br />
Result = ConditionA ? AnswerA : AnswerB;<br />
These say: If the Android we're on is < less than the version Code for the letter O, aka Android Oreo.<br />
Android Oreo is 8.0 and SDK version 26)<br />
<b>Challenge </b>= (If Android Version < Oreo ), just use the Build.SERIAL number. otherwise use "O3" + android_id. You can view this serial number in Settings.<br />
<b>Seed </b>= (If Android Version < Oreo ), just use the word "NetGuard2" . otherwise use "NetGuard3"<br />
This is both good news, we now know the scheme, but bad news if you are on Android Oreo 8.0 or above.<br />
Continuing on, "<b>display the Challenge in a TextView</b>", and set up a Clipboard Listener to enable a Copy to Clipboard button"<br />
The "//Response" area is next. All handled by the TextChangedListener.<br />
The line of main interest is Line <b>319</b>: final String <b>response = Util.md5(challenge, seed);</b><br />
<b>This is the verification function.</b><br />
A <b>MD5 Hash </b>is generated from the "<b>challenge</b>" and "<b>seed</b>" variables from Android before.<br />
Whatever we type as a response will be compared to this.<br />
What you need to know. MD5 is only considered a hash function, an insecure one at that, and is 100% deterministic. This means that the output is exactly the same every time for a given input. Of note, an MD5 function typically only takes 1 input, but here we have two (the challenge and the seed). A seed is normally used as an additional source of randomness in other crypto algorithms. This term is <b>incorrect </b>here. Here it would be considered a <a href="https://en.wikipedia.org/wiki/Salt_(cryptography)" target="_blank">Salt (cryptography) @ Wikipedia</a><br />
Given that it is a fixed salt, and we can read the value from the source code, it would be trivial to perform an MD5 hash collision brute force attack on the hash, so this "seed" (salt) actually does nothing to protect anything. But <b>a brute-force attack is not even needed</b>.<br />
Not only this, the actual secret input is not even a secret. We fully know the first half too ("challenge"), because the software outright displays it as the "challenge" field.<br />
Also, at least up until Android 8.0, its also viewable from Android system settings.<br />
(Android Settings > General > About this phone > Hardware Info > GOTA Serial number.)<br />
So this function was/is extremely broken and did not serve any technical protection, it only serves as a lesson for what not to do. Which is why I'm making this public. The author must have eventually been told something similar and once he found out, implemented the "NetGuard3"/Oreo 8.0 version to prevent this, but still left the old one in for compatibility, and still implemented it wrong by displaying the "challenge" and having a fixed "salt".<br />
<br />
<b>continued confirmation:</b><br />
We have almost all the information we need now.<br />
We should investigate this Util.md5() function further, just to double-check what its doing with the 2nd parameter ("seed").<br />
Searching for "Util.md5" doesn't lead you to it, because of how Java works, "Util." refers to the "Util.java" file in the same directory as the file we were just in, and inside is a function named simply "md5".<br />
<a href="https://github.com/M66B/NetGuard/blob/f408a3140925252742b5ed1e7e60711b87a16b4f/app/src/main/java/eu/faircode/netguard/Util.java#L636">https://github.com/M66B/NetGuard/blob/f408a3140925252742b5ed1e7e60711b87a16b4f/app/src/main/java/eu/faircode/netguard/Util.java#L636</a><br />
We can see it does: <b>MessageDigest.getInstance("MD5").digest((text + salt)</b><br />
This says, "Create an Instance of the MD5 (message Digest function) and provide it 1 parameter (text + salt)."<br />
In Java (and others), using <b>+</b> on two strings, <b>combines</b> the strings together (aka <b>concatenates</b>).<br />
So <b>"Text"+"Salt" == "TextSalt".</b><br />
The rest of the code just takes the UTF-8 string encoding and outputs it as hex bytes ready to display, standard behavior, and thus is irrelevant to analyze.<br />
So you can see in fact, MD5 DOES only take 1 parameter, and no other functions are being relied on for secret behavior.<br />
<br />
<br />
<b>Putting 2+2 Together (Android < 8.0):</b><br />
-------------------------------------------------<br />
We take "<b>challenge</b>", in this case, "<b>LGLS992</b>" (this is my phone's model number) and combine it with the ID "<b>20d7f703</b>" (<b>Build.SERIAL</b>)<br />
This is available from Android Settings > General > About this phone > Hardware Info > GOTA Serial number.<br />
We take the "<b>seed</b>", in this case, "<b>NetGuard2</b>". (always)<br />
We combine them all together to form "<b>LGLS99220d7f703NetGuard2</b>" (USE YOUR OWN)<br />
We run any <b>MD5 </b>function on it.<br />
It outputs a sequence of 32 hex values. (A-F 0-9) like: <i><b>449d0a063a3cd230e1ffd57759b9852b</b></i><br />
We type that number into the <b>response </b>code box.<br />
It will auto-apply and once the last character is typed, it will <b>auto-activate</b>.<br />
<b>DONE</b>! <b>Activated</b>! That <b>simple</b>! (and obviously just copying my key won't work).<br />
<br />
We didn't even have to run any of his code, or use Java.<br />
I ran my MD5 in Python, in about 5 seconds, like this.<br />
Start up a Python prompt in a terminal, (python.exe or python) - interactive interpreter mode.<br />
<br />
<blockquote class="tr_bq">
resp = "LGLS99220d7f703NetGuard2"<br />import hashlib<br />hashlib.md5(resp).hexdigest()</blockquote>
<br />
OR - You can also use an online MD5 hashing service, such as: www.md5hashgenerator.com , onlinemd5.com etc.<br />
Any data you submit there is not private, but it also is not dangerous in this case.<br />
(and obviously just copying my key won't work).<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://i.imgur.com/jYZPYDA.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://genr8.pw/nextcloud/index.php/s/EqLtk6PDXBCAkaQ/preview" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="255" data-original-width="485" height="168" src="https://genr8.pw/nextcloud/index.php/s/EqLtk6PDXBCAkaQ/preview" width="320" /></a><img border="0" data-original-height="593" data-original-width="515" height="320" src="https://i.imgur.com/jYZPYDA.png" width="277" /></div>
<br />
<b>Android 8.0 > above (unconfirmed Method)</b><br />
---------------------<br />
In the exact same way, we can copy and paste the visible "<b>challenge</b>" plaintext + "<b>NetGuard3</b>" salt combined together, and MD5 hash that to form the key.<br />
<br />
<b>Some thoughts:</b><br />
<i><u>FUTURE THOUGHTS AND NOTES:</u></i><br />
"Challenge" is a result of "O3" + a query to Settings.Secure.ANDROID_ID variable instead.<br />
I'm not an Android dev, so how to query Settings.Secure is new to me, and I'm not sure if this is even accessible outside. We may need code running on the device to query that. Using this makes it way more secure, but the current implementation is still broken regardless. And nothing is impossible.<br />
"On Android 8.0 (API level 26) and higher versions of the platform, a 64-bit number (expressed as a hexadecimal string), unique to each combination of app-signing key, user, and device." from https://developer.android.com/reference/android/provider/Settings.Secure<br />
This seems to indicate that this value is indeed secret and unique to code running specifically in the Netguard application context (based on the authors app-signing source code verification key)... So if we want to crack it, we must use another method, such as recompiling it ourselves.<b> I will revisit this approach at another time, if this MD5 trick gets patched out.</b> I wanted to get this uploaded first.<br />
<i><u>UNRELATED RAMBLINGS:</u></i><br />
This reminds me of a related story recently about Android app-signing keys still using MD5 are becoming deprecated and banned from the Play Store. Keep in mind, that doesnt refer to the MD5 unlock license key we just bypassed, it refers to the entire application .apk. However from the Settings.Secure.ANDROID_ID description, in this program the license key code seems to rely on this app-signing key code. IMO if we can crack the app-signing itself, we can crack the license key too. So I checked this .apk status, its currently signed by "faircode.eu" using a SHA256+RSA2048 algo. Darn, now thats out of the question. Cracking that is above my paygrade, literally, 2048 bit RSA keys - 140.8 CPU years, (the cost of $20,000 - $40,000) as I last checked. Not impossible, but not a trivial thing. BTW, we all should be using 4096 bit RSA keys as of now. I would consider 4096 way more safe from brute force attack, even for a rich person. At least until Quauntum Computers :)MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com15tag:blogger.com,1999:blog-22093788.post-14247462949613012852019-07-26T22:04:00.002-04:002019-07-26T22:04:26.918-04:00new video by Wendell from Level1Techs on Talos II OpenPower Secure Workstation + my original comment<span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;">Wendell's video is located here: <a href="https://www.youtube.com/watch?v=5syd5HmDdGU" target="_blank">https://www.youtube.com/watch?v=5syd5HmDdGU</a> </span><br />
<h1 class="watch-title-container" style="background: rgb(255, 255, 255); border: 0px; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 20px; font-weight: normal; line-height: normal; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 937.5px;">
<span class="watch-title" dir="ltr" id="eow-title" style="background: transparent; border: 0px; margin: 0px; padding: 0px;" title="Forget x86; OpenPower is it! Talos II Secure Workstation!">Forget x86; OpenPower is it! Talos II Secure Workstation!</span></h1>
<span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;">My comment on it:</span><br />
<span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;">
Wendell i've found some alarming stuff in my ASUS decompiled BIOS, namely while searching for strings, I found "BACKDOO" and started digging around that area, and found what essentially amounts to a literal BACKDOOR highway linked to the Windows Drivers, namely started with me investigating my ASiO.sys (which I thought was for my sound card) but its actually for Asus IO (or AsusGIO) aka AISuite aka the new Aura Sync - also linked to ATKEX.dll and PEBIOSINTERFACE32.dll - and tied to windows service atkexComSvc - for control of hardware bus devices like fan control, lighting, USB charging, that kind of thing. It seems to have a deep link straight back to the BIOS and the driver can be exploited and the BIOS seems weak. There were even CVE's posted, CVE-2018-18535 , CVE-2018-18536 and CVE-2018-18537. Now, I havent experienced anything myself but theres been reports of questionable behavior (memory leaks, unwanted internet traffic, etc) indicative of active exploits in the wild surrounding this also. Its very alarming, and I wish I had the ability to do a more complete security dissection and writeup of the decompiled BIOS but honestly I can't read IDA to save my life :) So I am passing this info onwards to you. Please forward this to anyone applicable or if thats you and you see it, please look into this info. </span><br />
<span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;">Sources:</span><br />
<span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;">1: </span><a href="https://packetstormsecurity.com/files/150893/ASUS-Driver-Privilege-Escalation.html">https://packetstormsecurity.com/files/150893/ASUS-Driver-Privilege-Escalation.html</a><br />
2: <a href="https://packetstormsecurity.com/files/cve/CVE-2018-18535">https://packetstormsecurity.com/files/cve/CVE-2018-18535</a><br />
3: <a href="https://packetstormsecurity.com/files/cve/CVE-2018-18536">https://packetstormsecurity.com/files/cve/CVE-2018-18536</a><br />
4: <a href="https://packetstormsecurity.com/files/cve/CVE-2018-18537">https://packetstormsecurity.com/files/cve/CVE-2018-18537</a><br />
5: <a href="https://community.norton.com/en/forums/pebiosinterface32dll-0">https://community.norton.com/en/forums/pebiosinterface32dll-0</a><br />
6: <a href="https://rog.asus.com/forum/archive/index.php/t-11511.html">https://rog.asus.com/forum/archive/index.php/t-11511.html</a><br />
<br />
<span style="background-color: white;">
</span><span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;">On an unrelated note, I also just discovered (maybe its known to everyone) that VMWare put a literal backdoor in for their VMWare Tools for the guest to communicate back out to the host over a high bandwidth IO channel using specific CPU registers and memory addresses. At least they were kind enough to name it <a href="https://github.com/vmware/open-vm-tools/blob/master/open-vm-tools/lib/backdoor/backdoor.c" target="_blank">"open-vm-tools/lib/backdoor/backdoor.c" </a>and open Source it - Also worth looking into.</span><br />
<span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;">
</span><span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;">This is on top of the well known information you mentioned about the <a href="https://blog.trendmicro.com/trendlabs-security-intelligence/mitigating-cve-2017-5689-intel-management-engine-vulnerability/" target="_blank"> vulnerable Intel ME engine </a> and danger of closed source BIOS/UEFI - so I am eagerly following th open source firmware community, like <a href="https://github.com/tianocore/edk2/releases" target="_blank">Tianocore</a>, <a href="https://en.wikipedia.org/wiki/Coreboot" target="_blank">CoreBoot </a>and <a href="https://libreboot.org/" target="_blank">Libreboot </a>for Thinkpads and the like... </span><span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;">But yes I am sortaa? getting into these deep endeavors but its extremely above my head, and I assume for most people its so deep its just off the radar.</span><span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;">
</span><span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;">Thank you for bringing this amazing Talos/Power9 machine to light!</span><br />
<span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;"><br /></span>
<span style="background-color: white; color: #333333; font-family: "YouTube Noto", Roboto, arial, sans-serif; font-size: 13px; white-space: pre-wrap;">I wish I could respond further and in more detail but I wanted to get this posted as is first, with some links.
Disclaimer: I'm not an actual security researcher, I'm just a life long nerd trying to be one.</span>MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com7tag:blogger.com,1999:blog-22093788.post-18926883719485018172019-07-22T01:53:00.002-04:002019-07-22T01:53:49.704-04:00Emmett Brown - VOID (Synthwave album on Bandcamp)<iframe seamless="" src="https://bandcamp.com/EmbeddedPlayer/album=29579356/size=large/bgcol=ffffff/linkcol=7137dc/transparent=true/" style="border: 0; height: 687px; width: 350px;"><a href="http://emmett-brown.bandcamp.com/album/void">VOID by EMMETT BROWN</a></iframe><br />
<br />
Check out <a href="http://emmett-brown.bandcamp.com/" target="_blank">Emmett Brown's music</a>, its Synthwave, and easily some of the best stuff I've heard. <br />One of my favorite songs is Twin Pines Mall. and Hypercolor Tease.<br />
Free to stream!<br />
Right up there with Perturbator, Carpenter Brut, Kavinsky and the like.<br />
Be sure to check out his first album <a href="http://emmett-brown.bandcamp.com/album/manic" target="_blank">MANIC</a> too.<br />
He's also on <a href="https://open.spotify.com/artist/6aLgWfPAqCaJvU0vnm9pWC" target="_blank">Spotify </a>MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com1tag:blogger.com,1999:blog-22093788.post-20341765628148392822018-04-29T18:27:00.000-04:002018-04-29T18:27:20.953-04:00UEFI Booting NVME on x58 Project w/ Tianocore by mrlithium (draft) 4-29-2018 - Round Two<h4>
Using a TianoCore DUET USB stick to Boot Windows 10 in EFI mode from NVME SSDs such as Samsung PM961 on Legacy Platform X58 Chipset.</h4>
Already confirmed working on Asus Sabertooth X58 motherboard and Intel 750 Series SSDs approx 2 years ago.<br />
Since then, a nice person named AudioCricket has developed a cleaner tutorial, (see <a href="https://audiocricket.com/2016/12/31/booting-samsung-sm961-on-asus-p6t-se-mainboard/" target="_blank">AudioCricket blog article on Booting NVME</a> ) which made me want to revise my own process, as he credits me with thanks for knowing it was even possible. You should read his also, its got some good details.<br />
<br />
This tutorial is meant to give you bootability on extremely high speed NVME drives. If you are not using a high speed drive, or its in a wrong slot, you may not see much benefit. The whole boot process workaround itself, from the Tianocore <span style="background-color: white; color: #3a4145; font-family: merriweather, serif; letter-spacing: 0.1px;">DUET</span><span style="background-color: white; color: #3a4145; font-family: merriweather, serif; letter-spacing: 0.1px;"> </span>USB, takes up a valuable 10-15 seconds at bootup. You will pay a longer price on boot, but your Windows OS will be booted onto this faster drive, and there is no substitute for that. You already could use these drives as secondary storage partitions with no configuration, but thats just boring.<br />
<span style="font-size: x-small;">Linux Note: that if you are using Linux, all my info is largely irrelevant. Linux takes entirely another approach to booting.</span><br />
<h4>
My Process involves using the TianoCore DUET<span style="background-color: white; color: #3a4145; font-family: merriweather, serif; letter-spacing: 0.1px;"> software and </span>UEFI bootloader to chain boot load EFI Windows from a MBR USB stick.</h4>
To redirect your BIOS Boot -> MBR of USB stick -> virtual/emulated UEFI environment (Tianocore DUET) -> load open source NVME driver -> NVME GPT / EFI Windows System boot.<br />
1 USB Stick for TianoCore UDK_X64 (USB 3.0 maybe needs an XHCI driver)<br />
1 USB Stick for Windows 10 Setup ISO<br />
Executing a few commands at the shell prompt<br />
Running the Windows Setup Installer off a 2nd USB stick, using that to lay down new partition information and blank your NVME SSD.<br />
Installing a new copy of Windows to the NVME SSD, with its own EFI partition and GPT layout. This is the best way to get the EFI boot working.<br />
Booting NVME cannot be done without UEFI and booting EFI must be done for Windows (winload.efi). You cannot have Windows boot MBR (winload.exe)<br />
At this point you will have two Windows Installs, and able to dual boot to the new NVME OS drive by inserting the Tianocore USB stick and booting<br />
<br />
<h4 style="background-color: white; color: #2e2e2e; font-family: "open sans", sans-serif; font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; letter-spacing: 0.1px; line-height: 1.15em; margin: 0px 0px 0.4em; text-rendering: geometricPrecision;">
Boot process summarized: <span style="font-size: xx-small;">(Thanks to AudioCricket for his excellent description)</span></h4>
<h4>
<ol style="background-color: white; color: #3a4145; font-family: merriweather, serif; font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1; font-weight: 400; letter-spacing: 0.1px; margin: 0px 0px 1.75em; padding-left: 3rem; text-rendering: geometricPrecision;">
<li style="margin: 0.4em 0px;">Computer powers on</li>
<li style="margin: 0.4em 0px;">Legacy BIOS boots / initializes</li>
<li style="margin: 0.4em 0px;"><span style="color: black; font-family: "Times New Roman"; letter-spacing: normal;">Tianocore </span>DUET boots from the USB stick</li>
<li style="margin: 0.4em 0px;"><span style="color: black; font-family: "Times New Roman"; letter-spacing: normal;">Tianocore </span>DUET executes UEFI Shell</li>
<li style="margin: 0.4em 0px;">UEFI Shell loads generic NvmExpressDxe-64.efi driver and remaps system block devices</li>
<li style="margin: 0.4em 0px;">UEFI Shell now sees Windows 10 hidden FAT partition DIRECTLY on the NVMe</li>
<li style="margin: 0.4em 0px;">UEFI Shell executes Windows 10 UEFI bootloader from that hidden NVMe FAT partion directly (\EFI\Boot\Bootx64.efi image)</li>
<li style="margin: 0.4em 0px;">Windows 10 is now booting and is in full control of your computer (under UEFI mode, of course)</li>
</ol>
</h4>
<h4>
Tianocore USB Stick Creation:</h4>
<div>
You will need the <a href="https://gitlab.com/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer" target="_blank">TianoCore DUET download package and stuff</a> </div>
<div>
<br /></div>
<div>
The USB stick needs to be formatted with "HP USB Disk Storage Format Tool" as opposed to Windows, so just download that. There is a reason for needing that stupid program, The MBR and DBR / BPB boot sectors need to be written as if it was a HDD not a removable (floppy) - err don't ask - :) After you reformat it, unplug/replug it.</div>
<div>
<br /></div>
<div>
Start up an administrative command prompt, and cd \tianocore_uefi_duet_installer-master<br />or, go into the location of CreateUSB.cmd </div>
<div>
Replace J: with the appropriate letter for your USB stick. (double check with HP USB Tool).</div>
<div>
.</div>
<span style="font-weight: normal;"><span style="font-family: "courier new" , "courier" , monospace;">CreateUSB.cmd J:</span></span><br />
<span style="font-weight: normal;"><span style="font-family: "courier new" , "courier" , monospace;"><br /></span></span>
Make sure no errors / unsavory messages are shown,<br />
then unplug/replug it, and run this:<br />
<br />
<span style="font-weight: normal;"><span style="font-family: "courier new" , "courier" , monospace;">CreateUSB.cmd J: UDK_X64</span></span><br />
<span style="font-weight: normal;"><span style="font-family: "courier new" , "courier" , monospace;"><br /></span></span>
<span style="font-weight: normal;"><span style="font-family: inherit;">This copies MOST of the files. You still need to manually copy over the file </span></span><span style="font-family: "Courier New", Courier, monospace;">Drivers\NvmExpressDxe-64.efi</span> <a href="https://mega.nz/#!tEkRlTpL!0S8r7s2CfurSG4MrHlj_rN15NrsLSZg-oDC90PP_uy8" target="_blank">this can be obtained here</a>: or you can compile your own (coming soon/later)<br />
<h4>
UEFI Interactive Shell Usage:</h4>
From now on, rebooting from the Tianocore USB will launch into a shell. It acts kind of like DOS or Linux does, a simple command shell. Here you can explore and decide what commands to run:<br />
Hit enter after every command. Theres also tab completion. You can use dir to look around.<br />
Green colored files are executable and just typing their name should run them, for example *.efi<br />
FS1: for drives (like C:) and \ for directories.<br />
<span style="font-family: "courier new" , "courier" , monospace;">FS0:</span> should be your booted Tianocore USB drive<br />
<span style="font-family: "courier new" , "courier" , monospace;">FS1:</span> should be the Windows USB stick<br />
<span style="font-family: "courier new" , "courier" , monospace;">FS2:</span> should be the NVME SSD drive (not visible yet)<br />
<u>Run these two important commands:</u><br />
<span style="font-family: Courier New, Courier, monospace;">load \EFI\Drivers\NvmExpressDxe-64.efi </span> (loads the .efi program for detecting NVME devices - from this root pathname on the current prompts' FS device name)<br />
<span style="font-family: Courier New, Courier, monospace;">map -r </span> (this will make new FS2: alias, etc)<br />
<span style="font-size: x-small;">Theres also "BLK" devices that correspond; you can ignore these besides to make sure they do exist for the right USB SATA or PCIe location.</span><br />
<br />
A "<b>startup.nsh</b>" script can also be created, to AutoRun on boot, to automate the above commands in their final form or for anything else special that you may need or want.<br />
Startup.nsh lives at <span style="font-family: Courier New, Courier, monospace;">\EFI\Boot\</span> directory and should just be auto-executed from there.<br />
<br />
<b>To boot the Windows Installer on the 2nd USB stick:</b><br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">FS1:\bootmgr.efi</span><br />
or<br />
<span style="font-family: "courier new" , "courier" , monospace;">FS1:\efi\boot\bootx64.efi</span><br />
<br />
Follow the Windows Setup, "Install Now" and choose "Custom Upgrade" so you can pick the right drives UnPartitioned Space (If you already attempted this, its best to Delete partition and go back to UnPartitioned Space and then say yes to "Windows may create some additional system Partitions". If it complains they are not in the correct order, "Delete" and hit OK on "UnPartitioned Space" again. The installer's Partitioner should be able to see your NVME drive immediately and without any drivers needing to be loaded. Installation is seamless from here on out, other than a few reboots. Once the Windows Installer accepts your partition layout, it lays down the EFI partition on your NVME drive, and starts "Copying Files...". Meaning, across reboots, you need to reboot it from the NVME drive, not the Windows Install USB stick. While you're still technically doing the Windows Install, everytime the system reboots, this is the command you want to enter at the shell prompt to continue the installation. <br />
<br />
<b>To boot Windows on the NVME drive:</b><br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">FS2:\EFI\Microsoft\Boot\bootmgfw.efi</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
FS2 should be the alias for your NVME PCIe SSD drive device, (if not- double check, find it out).<br />
This Runs the Microsoft EFI boot manager - that supports NVME boot.<br />
Then Microsoft takes over, and the rest is magic. Now your system is fully working.<br />
You would want to put this command in "<b>startup.nsh</b>" so its automatic. Keep in mind the FS drive letters numbers may get shifted, even due to just USB sticks.<br />
<br />
<h4>
Possible Secondary Optional or Advanced Steps:</h4>
<div>
Update Driver ? - replace the Microsoft stornvme.inf driver with a Samsung NVME driver (or whichever one, Intel?).</div>
Using USB 3.0 to boot may require:<span style="font-family: "courier new" , "courier" , monospace;"> \EFI\Drivers\XhciDxe-64.efi</span><br />
Eliminating the need for a permanent USB Stick by copying the partition to any other internal hard drive in your system, and making room for it and also being able to dual boot it.<br />
Not actually installing windows, just laying the boot partition down and then re-copying an Image of windows back over to the new SSD.<br />
Small = ~4 Few megabytes. = Can be downloaded as a Disk Image *.dd, and use RUFUS to restore it back. Should be able to replicate Tianocore USB sticks for backups/disasters.<br />
Editing the Windows BCD to get Dual Boot or Multiple Partitions combined or something else.<br />
Remove un-wanted drive letters of the other system after bootup.<br />
<br />
<h4>
Super Fast NVME PCIe SSD's on Legacy X58 Platform - other Practical Considerations:</h4>
<u>*** PCI-e <b>version</b> revision and link <b>width </b>***</u><br />
PCI-e 2.0 was the max for X58, and as of today we are up to PCI-e 3.0 which doubles bandwidth by 2x.<br />
Theres also certain slots that are PCI-e 1.0 slots (the bottom slot on Asus Sabertooth is 1.0 and the 2nd GPU x16 slot is the only next best highest speed 2.0 x4 slot :/<br />
Benchmark overall speed drastically improved when switching slots, from around 750-770MB/s over PCI-express 1.0 x4 to 1450-1600MB/s on PCI-express 2.0 x4. (With the Samsung PM961 SSD, and tested under CrystalDiskMark and AS-SSD.)<br />
Note this is nowhere near the drives theoretical maximum, that would requires PCI-e 3.0 and should be hitting somewhere over 2-3000 MB/s.<br />
Also note that most slots are only physically, but not electrically, the full width of PCI-e lanes. Make sure your slot is valid.<br />
It is advised to check in a program like <i>HWInfo64 </i>or <i>AIDA64 </i>at your Motherboard slot DMI information and for sure confirm the devices are detecting at proper revision and width. (<i>CrystalDiskMark </i>will say the link speed for PCI-e devices now so thats handy). If not, Power Management settings could be configured to do Link State Power Management or whatever thats called.MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com28tag:blogger.com,1999:blog-22093788.post-4731043819791581242018-04-20T01:12:00.004-04:002018-04-20T01:12:40.178-04:00UltraDefrag Mod 7.0.4 alpha genBTC edition<div class="separator" style="clear: both; text-align: left;">
UltraDefrag 7.04 (UDefrag) - mod by genBTC</div>
<div class="separator" style="clear: both; text-align: left;">
Compiled from C++ source, and edited. Requires WxWidgets.</div>
<div class="separator" style="clear: both; text-align: left;">
Integrated StopGap software - requires Boost libs</div>
<div class="separator" style="clear: both; text-align: left;">
New Build system devised for use in Visual Studio . Supports 2017 and CMAKE on Windows.</div>
<div class="separator" style="clear: both; text-align: left;">
Supports Building with MSVC or MINGW G++.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/A6QUQ/89ff0dd4cf.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="514" data-original-width="800" height="205" src="https://puu.sh/A6QUQ/89ff0dd4cf.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/A6R1R/3eb82d10db.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="516" data-original-width="800" height="206" src="https://puu.sh/A6R1R/3eb82d10db.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/A6QSu/b29080ebe6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="535" data-original-width="800" height="214" src="https://puu.sh/A6QSu/b29080ebe6.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/A6QXX/e887cb0e8c.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="288" data-original-width="426" height="216" src="https://puu.sh/A6QXX/e887cb0e8c.png" width="320" /></a></div>
<br />
Now includes Files List tab.<br />
Also Supports finding files by LCN cluster, finding LCN cluster by filename, right click on file list.<br />
<br />
- Development has been put on hold, and there is a great deal of work involved in this project.MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com2tag:blogger.com,1999:blog-22093788.post-60360957111434216412018-04-19T17:39:00.003-04:002018-04-19T18:56:29.614-04:00Windows 10 SysAdmin : Maintenance Ideas and Tasks for Power Users - edit 1As I write this, I'm thinking of the multiple ways Windows needs to be managed after its installed.<br />
<br />
Lots of people only know 3 steps. #1.Install, #2.Run WindowsUpdates, and #3.Re-Format when its broken. Thats not my style.<br />
<br />
Before we even install we have choices to make: Enterprise LTSB Version of Windows.<br />
The current version is Enterprise LTSB 2016 and this removes all the extraneous Modern Apps and allows the blocking of telemetry easier, and applies some group policy updates.<br />
Regular Windows 10 Pro 1709 has more features tightly integrated that are harder to rip out after installing.<br />
<br />
The Windows 10 OS has many subsystems which need to be understood as seperate parts that are all interconnected. Understanding what to do with them and why is the mission of this blogpost.<br />
<br />
<b>Task Manager: </b><br />
Processes (PID, CPU Time, RAM usage) / Performance Counters, Services<br />
This should be the first place you should start looking.<br />
<br />
<b>Filesystem Permissions / ACLs' / Security Descriptors / SIDs</b><br />
the built-in named Administrator account should be disabled, and a new Administrative one with a new name should be Created, and a strong password that you can remember be given to it. This password should not be something re-used as the local Windows SAM Security database is highly insecure and these credentials can be easily read or reset by anyone with physical access.<br />
Your Daily Driver user account should be a standard user, and only use the new Admin account and password when you need to UAC escalate priveleges. This follows the concept of Principle of Least Priveleges.<br />
<br />
<b>Group Policy / User Accounts / User Groups / Active Directory (Domain)</b><br />
Now that you're a standard user and you can hardly do anything, you may feel tempted to just re-add yourself to the Administrator group or PowerUser group or BackupOperator group. These groups accounts come provided with certain pre-defined rights pre-assigned. Its very hard to tell what does what, and there is some advanced configuration located in GPedit.msc \ \ Computer Configuration \ Windows Settings \ Security Settings \ Local Policies \ User Rights Assignment & Security Options.<br />
This brings us to group policy: Theres a ton of stuff in here that you are free to look through and customize.<br />
The major trick to run is "Windows Restricted Functionality Limited Baseline" profile available from external download from Microsoft. That will run a few scripts and lock the system down, even 1 step too far in fact. It will over-ambitiously enable "Disable Automatic Root Certificate Updates". Reason we need to change this is, you need your OS Certificates stored certs to update or you will be unable to browse most websites (even in Chrome). Go into gpedit.msc and d this and reverse that entry (to "Not configured"). It is under computer configuration, Double-click Administrative Templates, double-click System, double-click Internet Communication Management, and then click Internet Communication settings. Any hyper paranoid person can individually manage their certificate store and this is another topic.<br />
<br />
<br />
<b>Windows Registry </b>- regedit - hives<br />
HKEY_CURRENT_USER = %USERPROFILE%\NTuser.dat (@ C:\Users\Username)<br />
HKEY_LOCAL_MACHINE = %WINDIR%\config\SYSTEM (@ C:\Windows\system32)<br />
<br />
<b>Task Scheduler Service </b>- Automatic (important)<br />
<b>Task Scheduler Engine</b>: C:\Windows\System32\Tasks<br />
Files exist in this directory and can be managed with: taskschd.msc<br />
Security Permissions are required for any Tasks running as NETWORK SERVICE, etc.<br />
Individual Tasks:<br />
My specific Win10.10240 Install has 143 Tasks , about half of which I was able to disable manually.<br />
They have "Description" fields written by Microsoft with actually valid information to decipher what these mystery tasks actually do. Note Some are blank, and Note some tasks being disabled cause Event Log Errors. This leads me to the next point.<br />
<br />
<b>The Event Viewer: eventvwr.msc</b><br />
Application, Security, Setup, System = Default Logfiles<br />
These are useful to skim through on their own. You can diagnose most of your errors this way.<br />
But, Microsoft has also hidden thousands of other logfiles under the \Microsoft directory (a lot of which are useless, blank, disabled) and you can dig down to obtain further info on anything in specific, an example as such is "DeviceSetupManager" - to look at the list of every device that was plugged into your computer.<br />
You can then Filter the list by "Event ID" and there is even a whole .XML <schema> for customizing the filters, saving them as a Custom Log, and referring back to that in the future.</schema><br />
<br />
<br />
<b>"Programs & Features" > "Turn Windows features on or off" (list of toggleboxes)</b><br />
Disabling Internet Explorer 11 will prevent it from being run, however it can never be truly gone, as its provided in DLL form as shdocvw.dll and mshtml.dll. These cannot be force-deleted as the number of programs that used the Windows Shell API (SHLWAPI.dll which indirectly references those IE dlls) to make outgoing internet connections will fail. This is something other people have noticed as having security impacts: https://packetstormsecurity.com/files/136702/Microsoft-Internet-Explorer-11-DLL-Hijacking.html<br />
100% disable the "SMB 1.0/CIFS File Sharing Support" this is a vulnerable component in SMB filesharing (Samba support) for backwards compatible to legacy windows or legacy linux systems. Read: Old. Nothing will be impacted and this was in fact even recommended by Microsoft recently.<br />
You will want to look through the list and Disable Everything EXCEPT the .NET environment, Windows Powershell 2.0 and Windows Process Activation Service.<br />
<br />
<b>"Uninstall or change a program"</b><br />
This list of programs comes directly from the registry. Environment variables are set mapped to the proper directory there also.<br />
Windows Installer Service<br />
C:\Windows\Installer\<br />
C:\ProgramData\ (%ProgramData%)<br />
C:\Program Files\Common Files (%CommonProgramFiles%)<br />
C:\Program Files and C:\Program Files (x86) = Administrator (%ProgramFiles% and %ProgramFiles(x86)%)e<br />
C:\Users\Username\AppData\Local = User Local (%LOCALAPPDATA%)<br />
C:\Users\Username\AppData\Roaming = User Roaming (%APPDATA%)<br />
<br />
<b>Windows Updates:</b><br />
Windows Update Service , Background Intelligent Transfer Service , Device Setup Manager (drivers)<br />
C:\Windows\SoftwareDistribution\ (safe to delete and auto-rebuild, instructions online)<br />
This should be disabled with the settings in the program "O&O Shutup 10" available free.<br />
To install updates, you need to do it manually.<br />
Step 1 - visit the list of updates and find the right version: https://support.microsoft.com/en-us/help/4093112<br />
Step 2 - at the bottom of that, click "Microsoft Update Catalog" and follow the download links.<br />
Windows Update Service needs to be re-enabled for the Cumulative Update .msi Packs to install, or it will say some Error like "Could not run this update" If you see "This was not compatible with your machine, you picked the wrong one"<br />
<br />
<b>Modern / Metro / Tile Apps:</b><br />
C:\Program Files\WindowsApps<br />
C:\ProgramData\Microsoft\Windows\AppRepository<br />
Tile Data Model Server - updates modern start menu's tiles.<br />
<br />
<b>TaskBar</b><br />
Shell Infrastructure Host ( sihost.exe ) - The black GUI overlay of systray and Modern GUI desktop/taskbar app-windows. Disabling this will cause some problems like not being able to start Calculator or Display Settings (desktop ms-settings:display has no assosciated program)<br />
SIH client (server-initiated healing) sihclient.exe - detect and fix system components that are vital to automatic updating of Windows and Microsoft software (Constantly Goes Online) - disable in TaskScheduler<br />
<b>Cortana:</b><br />
This can be slightly disabled with O&O Shutup 10 and thats all you can do. Other ways to force rip Cortana out can result in OS breaking.<br />
Remove-AppxPackage -name *Cortana* (dont do this unless you follow another guide)<br />
<br />
<b>Startup:</b><br />
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run<br />
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run<br />
Win10 Task Manager Startup tab does not show those entries, they are different.<br />
<br />
<b>PowerShell:</b><br />
Remote-Signed Security Policy - necessary to run scripts from the internet, BUT can/should be toggled by admin On/Off as needed instead of leaving it as default on.<br />
All the Internal Components in Windows can be managed by the appropriate PowerShell Cmdlets.<br />
There is Tab Completion, and a Get-Help command which downloads useful help from the web.<br />
<br />
<b>Windows Firewall:</b><br />
Windows Firewall with Advanced Security = On by Default, Leave on, VERY IMPORTANT.<br />
You should be micro-managing this. This is your lifeline to prevent intrusion and exfiltration.<br />
This deserves its own whole topic but I will try to keep it short. The default config comes with hardly anything blocked. The Restricted Traffic Baseline does a better job at it, however most Outbound conections are still Unblocked. Don't trust your Win10 OS. It makes random connections out, and you want to set a default rule of Block ALL Outgoing, Block ALL Incoming. And then set up whitelists for every program you use. Most people hate using Windows Firewall because of the poor GUI, and the tedium of adding a rule for every single program. But new programs have come out called "Windows Firewall Control" and "Windows Firewall Notifier" that pop up Notifications everytime an unknown Outgoing connection is made and you will be prompted (normal windows firewall only prompts you for Incoming). For reference, I have 842 rules and I try to keep them logically organized and up to date. These programs are very powerful and inventing your own system and Getting used to this fully will take several months.<br />
<br />
<b>Windows Defender:</b><br />
Unless you are Admin'ing someone elses computer, I personally see no use for this; definition based scanning has a poor success rate and consistently takes a ton of resources and it bogs down hard drive accesses because its literally scanning every single file you access while Real Time Protection is running. MSMPENG.exe is the process name, and related ones, and you can check to see the resource usage in Task Manager... I just force disable it with "O&O Shutup 10" and disabling the tasks in Task Scheduler - \Microsoft\Windows Defender<br />
Following the rest of my tips will keep you informed of when your system is going wrong, you should be able to prevent yourself from getting virused and malwared, and you dont need this waste of space built-in program and its weak detection heuristics and false positives.<br />
<br />
<b>Drivers:</b><br />
Device Manager : View | Show Hidden Devices<br />
Make sure nothing weird is latent.<br />
You can delete any grayed out devices that you know you don't need.<br />
Device Drivers and System Drivers and System Services<br />
<b>Serviwin.exe </b>from NirSoft: Gives you access to the list of System Drivers and Services.<br />
<div class="" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
System Drivers:<a href="https://puu.sh/A6DRk/b85bc1cd7e.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="373" data-original-width="800" height="149" src="https://puu.sh/A6DRk/b85bc1cd7e.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Services:<a href="https://puu.sh/A6FmT/33575cacbb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="373" data-original-width="800" height="149" src="https://puu.sh/A6FmT/33575cacbb.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Data Backup</b></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Strategy : </b></div>
<div class="separator" style="clear: both; text-align: left;">
1. Onsite Backups: When a server crashes or fails, it is helpful to have data backups on hand for easy restoration. It’s a cliché, but time is indeed money. Onsite backups are often faster to restore than cloud backups and almost always faster than offsite tape backups.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
2. Offsite Backups: Onsite backups are valuable, but they cannot be counted on alone. Should something disastrous happen to the data center, it could also damage any backups you have in the building. For that reason, it is always wise to have copies of your backups offsite where they can be accessed manually or through the cloud.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
3. Optimized Backup Schedule: Backups are not a one and done process. Key data in your data center must be regularly and consistently backed up according to a clear and organized schedule. Check out our blog article on just a few backup rotation schemes for more information.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
4. Backup Testing: Backups need to be tested and need to be tested regularly. In addition, the IT staff must be trained on how to access and restore their data backups as quickly as possible. A backup that fails or a team that is unable to restore the backup quickly undermines the company’s investment in a backup solution in the first place.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
5. Organized Storage System: Mostly applying to tape-based backup solutions, the storage repository for backups and labeling system must be clear and organized. The team cannot commit extra time digging through box after box of tape looking for a specific backup from a specific date several years ago</div>
<div class="separator" style="clear: both;">
<a href="https://www.gomindsight.com/blog/5-must-haves-data-backup-strategy/" target="_blank">https://www.gomindsight.com/blog/5-must-haves-data-backup-strategy/</a></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<b>Practicality (my strategy):</b></div>
<div class="separator" style="clear: both;">
Nightly backup of the entire C drive and boot partition, with Macrium Reflect. To a compressed non-linear Macrium image *.mrimg , for dynamic incremental restore using Volume Shadow Copy . </div>
<div class="separator" style="clear: both;">
However using Macrium seems to cause errors restoring Chrome, it detects a change in the filesystem and corrupts the userprofile unless you use the Account Sync to Cloud UserProfile feature. Restoring sector-by-sector instead is extremely slow, but also more accurate. </div>
<div class="separator" style="clear: both;">
Sector Backups (like with linux dd) also have the benefit of being more robust for data-recovery in disaster situations where part of the image may be unreadable, you may still be able to read parts of the direct disk image. A NTFS FileSystem can even be mounted and manually restored from a linux recovery console.</div>
<div class="separator" style="clear: both;">
Windows Account User Profile is backed up to FreeNAS ZFS + DeDupe and Snapshotted nightly.</div>
<div class="separator" style="clear: both;">
Some Documents and Pictures are backed up too, but not much.</div>
<div class="separator" style="clear: both;">
All the rest of my stuff is stored on FreeNas on a ZFS RAIDZ-1 or ZFS Mirrored SMB share</div>
<div class="separator" style="clear: both;">
Data needs to be categorized into: 3 Copies, 2 Copies, 1 Copy. Anything with 1 copy is accepting the risk of total loss. The 3rd copy is for the most important stuff and should be in a totally different format, and physical location.</div>
<div class="separator" style="clear: both;">
<b>Programs:</b></div>
<div class="separator" style="clear: both;">
Macrium Reflect Pro</div>
<div class="separator" style="clear: both;">
Easeus Todo Backup Home</div>
<div class="separator" style="clear: both;">
Acronis Backup 11.7 Workstation </div>
<div class="separator" style="clear: both;">
Windows Block Level Backup Engine Service</div>
<div class="separator" style="clear: both;">
System Recovery Partition , WinRe.wim</div>
<div class="separator" style="clear: both;">
NextCloud / OwnCloud</div>
<div class="separator" style="clear: both;">
Backblaze / Carbonite / Crashplan / Mozy / etc</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com2tag:blogger.com,1999:blog-22093788.post-64716365017139274892018-01-30T11:01:00.003-05:002018-07-04T11:50:48.353-04:00My Other Redirected Websites<h5>
My Other Redirected Websites</h5>
<a href="http://autotrimps.site/">http://autotrimps.site</a><br />
<a href="http://mrlithium.site/">http://mrlithium.site</a><br />
<h5>
My Actual Other Website</h5>
<div>
<a href="https://genr8.pw/">https://genr8.pw</a></div>
<a href="https://genbtc.github.io/">https://genbtc.github.io (Github Pages)</a><br />
<a href="https://mrlithium.blogspot.com/">https://mrlithium.blogspot.com (this page - Blogger)</a><br />
<br />
I am currently setting up a bunch of servers for all those things, in the meantime they all just link to my resume. More to come.MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com2tag:blogger.com,1999:blog-22093788.post-69842819743430546172018-01-22T03:33:00.003-05:002018-01-22T03:33:38.507-05:00Coursera Courses - Learning<b>Data Science</b><br />
<a href="https://www.coursera.org/specializations/jhu-data-science">10 courses | Johns Hopkins University</a><br />
Build foundational data science skills in this hands-on introduction to R, machine learning, and more.<br />
<br />
<b>Business Analytics</b><br />
<a href="https://www.coursera.org/specializations/business-analytics">5 courses | The Wharton School of the University of Pennsylvania</a><br />
Make data-driven marketing, HR, finance, and operations decisions.<br />
<b><br /></b>
<b>Machine Learning</b><br />
<a href="https://www.coursera.org/specializations/machine-learning">4 courses | University of Washington</a><br />
Fit models, analyze data, and build an end-to-end practical machine learning applications.<br />
<br />
<b>Statistics with R</b><br />
<a href="https://www.coursera.org/specializations/statistics">5 courses | Duke University</a><br />
Perform frequentist and Bayesian statistical inference and modeling in R.<br />
<br />
<b>Business Foundations</b><br />
<a href="https://www.coursera.org/specializations/wharton-business-foundations">6 courses | The Wharton School of the University of Pennsylvania</a><br />
Develop basic literacy and skills in marketing, finance, accounting, and operations.<br />
<b><br /></b>
<b>Introduction to Project Management - Principles and Practices</b><br />
<a href="https://www.coursera.org/specializations/project-management">4 courses | UC Irvine</a><br />
Coordinate and scope complex projects; fufill PMI education requirements.<br />
<b><br /></b>
<b>Digital Marketing</b><br />
<a href="https://www.coursera.org/specializations/digital-marketing">6 courses | University of Illinois at Urbana-Champaign</a><br />
Strategic planning and analytics for digital marketing channels.<br />
<br />
<b>Leading People and Teams</b><br />
<a href="https://www.coursera.org/specializations/leading-teams">5 courses | University of Michigan</a><br />
Inspire, motivate, and influence individuals and groups.<br />
<b><br /></b>
<b>Python - Popular in Computer Science</b><br />
<a href="https://www.coursera.org/specializations/python">5 courses | University of Michigan</a><br />
Get a beginner-friendly introduction to programming and processing data in Python.<br />
<br />
<b>Java Programming and Software Engineering Fundamentals</b><br />
<a href="https://www.coursera.org/specializations/java-programming">5 courses | Duke University</a><br />
Learn how to build scalable products in this introduction to software development.<br />
<br />
<b>Data Engineering on Google Cloud Platform</b><br />
<a href="https://www.coursera.org/specializations/gcp-data-machine-learning">5 courses | Google</a><br />
Gain practical, hands-on machine learning and big data experience.<br />
<b><br /></b>
<b>Full Stack Web and Multiplatform Mobile App Development</b><br />
<a href="https://www.coursera.org/specializations/full-stack-mobile-app-development">5 courses | Hong Kong University of Science and Technology</a><br />
Master frameworks like Bootstrap and Angular to be a versatile web developer.MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com3tag:blogger.com,1999:blog-22093788.post-1052971736230061892018-01-18T05:31:00.000-05:002018-01-18T05:35:39.783-05:00XKCD #386 - Somebody is wrong on the internet.<span style="background-color: white; font-family: "lucida" , "helvetica" , sans-serif; font-size: 16px; text-align: center;">Permanent link to this comic: <a href="https://xkcd.com/386/">https://xkcd.com/386/</a></span><br />
<span style="background-color: white; font-family: "lucida" , "helvetica" , sans-serif; font-size: 16px; text-align: center;"></span><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://imgs.xkcd.com/comics/duty_calls.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="330" data-original-width="300" height="320" src="https://imgs.xkcd.com/comics/duty_calls.png" width="290" /></a></div><div class="separator" style="clear: both; text-align: left;">My Mood Right now</div><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><br />
<ins class="adsbygoogle"
style="display:block"
data-ad-format="fluid"
data-ad-layout-key="-ej+6g-15-c4+qd"
data-ad-client="ca-pub-8337006620088268"
data-ad-slot="3183455368"></ins><br />
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com0tag:blogger.com,1999:blog-22093788.post-12151260324576204252018-01-18T04:27:00.001-05:002018-01-18T05:15:21.259-05:00https://genbtc.github.io/I've set up a private website @ <a href="https://genbtc.github.io/">https://genbtc.github.io/</a><br />
- Right now its hosted on Github Pages using their free domain, but:<br />
- Host it on DigitalOcean for $5/mo - <a href="https://m.do.co/c/712f2fa51673">My Referral Link</a><br />
- or Host it on Vultr for as low as $2.50/mo - <a href="https://www.vultr.com/?ref=7305525">My Referral Link</a><br />
- NameCheap has actually $1 a year domains<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
My Guide to DigitalOcean Products: </div>
<br />
These are the servers I recommend in green, and if you are wondering you can skip the ones in red. <br />
<br />
<a href="https://puu.sh/z4aC9/5a47944536.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="preferred digitalocean droplets" border="0" data-original-height="550" data-original-width="800" height="440" src="https://puu.sh/z4aC9/5a47944536.png" title="digitalocean servers" width="640" /></a><br />
<br />
- Get the products above on DigitalOcean for $5/mo - <a href="https://m.do.co/c/712f2fa51673">My Referral Link</a> <br />
<br />
<i>also</i> <br />
<br />
<b>Vultr </b>Has a special going on right now for Bare Metal Instances that are pretty heavy duty for darn good prices: <br />
<br />
Thats 32GB of ram, 50TB data, an 8 core CPU, 2x 240GB SSD and I can assure you they are fast. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/z4aH2/c27e790991.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="383" data-original-width="391" height="313" src="https://puu.sh/z4aH2/c27e790991.png" width="320" /></a></div>
<br />
Or this is what the regular products are:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/z4aMO/1f661f95fe.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="365" data-original-width="800" height="291" src="https://puu.sh/z4aMO/1f661f95fe.png" width="640" /></a></div>
<br />
And luckily they are in a buncha areas too: <br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/z4aLw/a696939f24.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="306" data-original-width="800" height="244" src="https://puu.sh/z4aLw/a696939f24.png" width="640" /></a></div>
<br />
<div class="" style="clear: both; text-align: center;">
<br />
- or Host it on Vultr for as low as $2.50/mo - <a href="https://www.vultr.com/?ref=7305525">My Referral Link</a><br />
<br /></div>
MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com0tag:blogger.com,1999:blog-22093788.post-82001431440268368512018-01-17T02:59:00.004-05:002018-01-17T02:59:40.687-05:00New PostsI'm going to start posting more, And I need to remember How much fun I have when I write these blog posts.<br />
-Thanks to anyone who reads them!MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com0tag:blogger.com,1999:blog-22093788.post-36874710653546100132017-11-13T03:39:00.004-05:002017-11-13T03:39:46.888-05:00Compiling a Node.JS app into a .EXE using PKG step by step walkthrough and hints about zeit pkg and completing dynamic requires using package.JSONI have a Node.JS app thats very bloated on disk (lot of node.js dependencies) and a huge file tree.<br />
In this guide, we will turn that from:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/ykXIu/120e0d821d.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="509" data-original-width="363" height="320" src="https://puu.sh/ykXIu/120e0d821d.png" width="228" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_mNl1WtZEnUz8HIH-yEl4B1chQoRzQILoMLznMSK0Vx6XquOjLN4SUPApnuorwEIO-68CsHmsHb4fYZYlyeJGfCYhpHz-TcCJKmxAcb1NplAH7fJXpBNOdn0YYV1wBO8tGwUsMA/s1600/6f1f08ab69%255B1%255D.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="481" data-original-width="363" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_mNl1WtZEnUz8HIH-yEl4B1chQoRzQILoMLznMSK0Vx6XquOjLN4SUPApnuorwEIO-68CsHmsHb4fYZYlyeJGfCYhpHz-TcCJKmxAcb1NplAH7fJXpBNOdn0YYV1wBO8tGwUsMA/s320/6f1f08ab69%255B1%255D.png" width="241" /></a><br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_mNl1WtZEnUz8HIH-yEl4B1chQoRzQILoMLznMSK0Vx6XquOjLN4SUPApnuorwEIO-68CsHmsHb4fYZYlyeJGfCYhpHz-TcCJKmxAcb1NplAH7fJXpBNOdn0YYV1wBO8tGwUsMA/s1600/6f1f08ab69%255B1%255D.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><i>Before:</i></a></div>
<br />
<br />
<br />
<div style="text-align: right;">
<a href="https://puu.sh/ykXIu/120e0d821d.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-right: 1em;"><i>After:</i></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div style="text-align: center;">
Using:</div>
<h4 style="text-align: center;">
<a href="https://github.com/zeit/pkg">https://github.com/zeit/pkg</a> - Node.JS Binary Compiler</h4>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/ykXFG/cbc07e38c9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="248" data-original-width="507" height="156" src="https://puu.sh/ykXFG/cbc07e38c9.png" width="320" /></a></div>
<span style="background-color: white; color: #24292e; font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif; font-size: 16px;">"This command line interface enables you to package your Node.js project into an executable that can be run even on devices without Node.js installed."</span><br />
<span style="background-color: white; color: #24292e; font-family: , "blinkmacsystemfont" , "segoe ui" , "helvetica" , "arial" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol"; font-size: 16px;"><br />
</span> <span style="background-color: white; color: #24292e; font-family: , "blinkmacsystemfont" , "segoe ui" , "helvetica" , "arial" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol"; font-size: 16px;">Start up a command prompt with Node installed and run:</span><br />
<div class="highlight highlight-source-shell" style="box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; margin-bottom: 16px;">
<pre style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">npm install -g pkg</pre>
</div>
The actual command to compile is one such as:<br />
<pre style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">pkg discordbot --targets latest-win-x64 --debug</pre>
<br />
Usage:<br />
<b>pkg</b> = this command (npm node command)<br />
<b>entrypoint</b> = the folder of the node.js app, or . for current dir - must find package.json<br />
<b>--targets = </b>nodeRange-platform-arch<br />
<b> nodeRange </b>node${n} or <u>latest</u><br />
<b> -platform</b> freebsd, linux, macos, <u>win</u><br />
<b> -arch </b><u>x64</u>, x86, armv6, armv7<br />
<b>--debug = </b>There is very little output, compilation succeeds but may have omitted resources.<br />
<br />
Now is the fun part, you get to find out which errors you had and how to fix them:<br />
The first problem is:<br />
<pre style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">package.json</pre>
<br />
A) You need to know the basics of JSON. <br />
B) You need additional information in there to make sure it works.<br />
C) Files are going to have to be declared manually, as the tool is not dynamic require aware. This means such things like:<br />
<pre style="background-color: #f6f8fa; border-radius: 2px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 12px; line-height: 1; overflow: auto; padding: 10px; word-break: normal; word-wrap: normal;">const requireStructure = name => require(`../../structures/${name}`);
</pre>
or:<br />
<pre style="background-color: #f6f8fa; border-radius: 2px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 12px; line-height: 1; overflow: auto; padding: 10px; word-break: normal; word-wrap: normal;">function createNpmDependenciesArray (packageFilePath) {
var p = require(packageFilePath);
...
</pre>
<span style="color: #cc0000;"><i><b>Aren't</b></i></span> going to work.<br />
<br />
First step is find package.json in your root tree of your app package dir, and open it in a text editor. Duplicate your "main" line as a "bin" line:<br />
<pre style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"> "main": "discord_bot.js",
"bin": "discord_bot.js"
</pre>
This is a sample config:<br />
<br />
<pre style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span style="font-size: 13.6px;">{
"name": "DiscordBot",
"version": "0.1.2",
"description": "Bot for Discord app modded by genBTC",
"readme": "README.md",
"maintainers": [],
"author": "",
"repository": {
"type": "git",
"url": "git+https://github.com/genBTC/DiscordBot.git"
},
"license": "GPL-2.0",
"dependencies": {
"8ball": "^1.0.6",
...
"youtube-node": "1.2.x"
},
</span><b><span style="font-size: 13.6px;">"pkg": {
"scripts" : ["src/client/websocket/packets/handlers/*.js",
...
"src/client/websocket/packets/handlers/Ready.js",
...
"src/client/actions/*.js",
"src/client/actions/ActionsManager.js"
]
}</span></b><span style="font-size: 13.6px;">
}
</span></pre>
JSON tip: Note the comma seperated [ list ] of files in "quotes", and with FORWARD / slashes as the path seperator. You can also use * wildcards.<br />
<br />
Before we know what files we need to add, we need to compile the program (as shown before with --debug). You can also pipe the output using > result.txt to save it as a text file and look at it later.<br />
<br />
<pre style="border-radius: 3px; box-sizing: border-box; font-size: 13.6px; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span style="background-color: #f6f8fa;">C:\Software>DiscordBot.exe
Starting DiscordBot
Node version: v9.0.0
Discord.js version: 10.0.1
pkg/prelude/bootstrap.js:1172
throw error;
^
</span><span style="background-color: #cc0000;">
</span><span style="background-color: #e06666;">Error: Cannot find module './handlers/Ready'</span><span style="background-color: #f6f8fa;">
1) If you want to compile the package/file into executable, please pay attention to compilation warnings and specify a literal in 'require' call. 2) If you don't want to compile the package/file into executable and want to 'require' it from filesystem (likely plugin), specify an absolute path in 'require' call using process.cwd() or process.execPath.
at Function.Module._resolveFilename (module.js:540:15)
at Function.Module._resolveFilename (pkg/prelude/bootstrap.js:1269:46)
at Function.Module._load (module.js:470:25)
at Module.require (module.js:583:17)
at Module.require (pkg/prelude/bootstrap.js:1153:31)
at require (internal/module.js:11:18)
at WebSocketPacketManager.register (C:\snapshot\discordbot\node_modules\discord.js\src\client\websocket\packets\</span><span style="background-color: cyan;">WebSocketPacketManager.js:54:21</span><span style="background-color: #f6f8fa;">)
at new WebSocketPacketManager (C:\snapshot\discordbot\node_modules\discord.js\src\client\websocket\packets\</span><span style="background-color: cyan;">WebSocketPacketManager.js:18:10</span><span style="background-color: #f6f8fa;">)
at new WebSocketManager (C:\snapshot\discordbot\node_modules\discord.js\src\client\websocket\</span><span style="background-color: cyan;">WebSocketManager.js:24:26</span><span style="background-color: #f6f8fa;">)
at new Client (C:\snapshot\discordbot\node_modules\</span><span style="background-color: orange;">discord.js\src\client\Client.js:63:15)</span><span style="background-color: #f6f8fa;">
</span></pre>
This tells us that it couldnt find "handlers/Ready", and the faulty node_module is "discord.js".<br />
Also, we can open the files indicated in blue and examine the .js scripts for what kind of stuff is being dynamically included, usually we can find a list of stuff such as:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/ykVJX/1267396538.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="668" height="320" src="https://puu.sh/ykVJX/1267396538.png" width="267" /></a></div>
<br />
So, we dig around in that dir, and find handlers/Ready (and all the other ones).<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/ykVxp/456581bea9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="549" data-original-width="800" height="219" src="https://puu.sh/ykVxp/456581bea9.png" width="320" /></a></div>
If you want to be precise you can:<br />
Open up another command prompt to generate a listing of these files by :<br />
<pre style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">dir /b *.js > list.txt
</pre>
Then you can use NotePad++ to manipulate the text (add the rest of the path and " ", and form them into the list of files that needs to be passed to package.json.) Hopefully you are fast at this, because there is going to be a lot of files.<br />
Otherwise you can suffice to say you found out that you want to add the entire<br />
<pre style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"> "pkg": {
"scripts" : ["src/client/websocket/packets/handlers/*.js",
"src/client/actions/*.js"
]
}
</pre>
<h3>
Process Explained:</h3>
You are going to repeat the process of Compiling, Looking at the compiler's debug output, Running the .exe and Looking at the binary's output. Then from that - analyze which files need to be included. You want to predict ahead of time and grab entire directories at once.<br />
<br />
You can compare the results files, of the before and after - they should indicate success in adding.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/ykVmf/4e0322f72e.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="234" data-original-width="800" height="186" src="https://puu.sh/ykVmf/4e0322f72e.png" width="640" /></a></div>
<pre style="border-radius: 3px; box-sizing: border-box; font-size: 13.6px; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span style="background-color: #f6f8fa;">C:\Software>DiscordBot.exe
Starting DiscordBot
Node version: v9.0.0
Discord.js version: 10.0.1
logging in with token
(node:49936) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.
Using gateway wss://gateway.discord.gg/?encoding=json&v=6
Connecting to gateway wss://gateway.discord.gg/?encoding=json&v=6
Connection to gateway opened
</span><span style="background-color: #93c47d;">Identifying as new session
Logged in! Serving in 2 servers</span><span style="background-color: #f6f8fa;">
pkg/prelude/bootstrap.js:1172
throw error;
^
Error: ENOENT: </span><span style="background-color: #ea9999;">no such file or directory</span><span style="background-color: #f6f8fa;">, scandir '</span><span style="background-color: cyan;">C:\Software\resources\default_app\plugins</span><span style="background-color: #f6f8fa;">'
1) If you want to compile the package/file into executable, please pay attention to compilation warnings and specify a literal in 'require' call. 2) If you don't want to compile the package/file into executable and want to 'require' it from filesystem (likely plugin), specify an absolute path in 'require' call using process.cwd() or process.execPath.
at Object.fs.readdirSync (fs.js:924:18)
at Object.fs.readdirSync (pkg/prelude/bootstrap.js:776:35)
at getDirectories (C:\snapshot\discordbot\plugins.js:5:15)
....
</span></pre>
We've gotten further. This tells us we've logged in now, but it can't find the plugins directory. This is a directory right under our main app dir, and includes <a href="https://puu.sh/ykWiA/ac313db19a.png" imageanchor="1"><img border="0" data-original-height="184" data-original-width="253" height="145" src="https://puu.sh/ykWiA/ac313db19a.png" width="200" /></a><br />
some JSON and non-JSON files. <span style="background-color: cyan; font-size: 13.6px;">resources\default_app</span> is the internal name of the .exe's file-structure. So we need to include "plugins" into the exe. For this we can use Assets:<br />
<br />
<pre style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">"assets" : ["plugins/*"]
</pre>
<br />
<br />
If when you try to run the app, you get NPM trying to download and install stuff, its because it wasnt listed in your package.json dependencies. Just go in and manually add it.<a href="https://puu.sh/ykXjD/c865125959.png" imageanchor="1"><img border="0" data-original-height="442" data-original-width="659" height="268" src="https://puu.sh/ykXjD/c865125959.png" width="400" /></a><br />
<br />
<span style="background-color: lime;"><span style="font-family: Georgia, Times New Roman, serif;">After all this, it works!</span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/ykXAD/89ec1d8798.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="337" data-original-width="662" src="https://puu.sh/ykXAD/89ec1d8798.png" /></a></div>
<br />
Thanks for reading. GenBTC here, signing out. Happy Computing. This has been a 2017 genBTC Production.MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com8tag:blogger.com,1999:blog-22093788.post-1567385374921599832017-10-15T02:37:00.002-04:002017-10-15T02:47:48.341-04:00C++ Code Log - activities that I've been learning or doing the past month #1<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<i>Things learned:</i></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
Zenwinx/Udefrag needs only ntdll.lib no semicolon after. W/ NODEFAULTLIB on.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
STUXNET = winapi getprocaddress loadmodule dll on NTDLL kernel WINAPI32 functions.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
Depends.exe dependency walker</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
lib.exe /list:DLL/LIB | findstr strtofind</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
Assembly: WebAssembly + Emscripten</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
Use <a data-saferedirecturl="https://www.google.com/url?hl=en&q=http://godbolt.org&source=gmail&ust=1508135723131000&usg=AFQjCNFpgcg3nmtbyBOwBdMlj9fzjS_aIw" href="http://godbolt.org/" style="color: #1155cc;" target="_blank">godbolt.org</a> for Compiler Explorer to analyse assembly code.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
CPP React</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
CopperStone w/e</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
libfat/reactos</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<i>Things from the past:</i></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<span style="font-size: x-small;">LIB+DLL </span>= Linked Libraries, Shared (<span style="font-size: x-small;">DLLs)</span></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
LIB+EXP = Static Libraries.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
Static Vs Shared. MT vs MD vs Debug ( MTd vs MDd)</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
WXWidgets 3.1 Compilation in 8 configs = 32/64 * Debug/Release * Shared/Static</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
make sure you create the directories right. Its advised to open up the <wxcompilerprefix>vc($<wbr></wbr>PlatformToolsetVersion)</<span style="font-size: x-small;">wxCom<wbr style="font-size: 12px !important;"></wbr>pilerPrefix> which was actually mentioned in the readme.</span></wxcompilerprefix></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
WinDDK/WinSDK/NTNDK</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
MSVC 2010 + SDK 7</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
2013 = C+11</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
2015 = C+14</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
2017 = C+17 </div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
uCRT/uCRTD/MSVCRT/vcruntime.<wbr></wbr>lib</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<i><br /></i></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<i>VC Project Files. </i></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
SLN basically does nothing </div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
VCXPROJ does it all. Edit it carefully, its like XML but less tolerant. </div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
Things have to go in the right order.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
There is also an inheritance system. That is the parent and you can import other .props files in that, based on the order they will inherit in various rates.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
The MSVC dropdowns are finicky and you need to realize theres inheritance there, and clearing is not the same as defaulting.<br />
Also theres multiple configurations, and sometimes brings up the wrong config page.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
You can set up additonal property pages with the "Property Manager" window. </div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<br />
There is a utility called SLN2CMake and now VS2017 supports CMake. That way you can convert over.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
Intricacies:</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
/d2noftol3 on CL.exe Compiler switch to disable remade SSE2 functions. Otherwise Linker issue without the ucrt.<br />
<a href="https://stackoverflow.com/questions/19556103/how-to-get-vs2013-to-stop-generating-calls-to-dtol3-dtoui3-and-other-funct/31691179#31691179">https://stackoverflow.com/questions/19556103/how-to-get-vs2013-to-stop-generating-calls-to-dtol3-dtoui3-and-other-funct/31691179#31691179</a></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
Its a SSE primitive of Cvtds2dsi?</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
Windows uses 16-bit(2 byte) chars. Linux is 32-bit. use w_char or wchar_t</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<i><br /></i></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<i>C++ Frameworks</i></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
Boost165 (Boost Optional. Boost Threading)</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
Nana155 <a data-saferedirecturl="https://www.google.com/url?hl=en&q=http://nanapro.org/en-us/&source=gmail&ust=1508135723131000&usg=AFQjCNEqRja8W-SLhHEn7loRxlrMsK7z4w" href="http://nanapro.org/en-us/" style="color: #1155cc;" target="_blank">http://nanapro.org/en-<wbr></wbr>us/</a></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
Intel Threading Building Blocks <a data-saferedirecturl="https://www.google.com/url?hl=en&q=https://www.threadingbuildingblocks.org/&source=gmail&ust=1508135723131000&usg=AFQjCNEWQ7HC0Oe7BmbIXjmEQz1H1dsxVA" href="https://www.threadingbuildingblocks.org/" style="color: #1155cc;" target="_blank">https://www.<wbr></wbr>threadingbuildingblocks.org/</a></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
QT</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
CopperSpice</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
WX</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<div>
Nana is a library for cross-platform GUI programming in modern C++ style (on Windows/Linux)</div>
<div>
LANGUAGE C++11/14</div>
<div>
COMPILER Any Standard C++ compiler(Visual C++ 2013, GCC/MinGW and Clang)</div>
<div>
<i><br /></i></div>
<div>
<i><br /></i></div>
<i>Github Projects Cloned or Starred</i></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<br /></div>
<div style="background-color: white;">
<div style="color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<i>C++ Videos watched:</i></div>
<div style="color: #222222; font-family: arial, sans-serif; font-size: 12px;">
<br /></div>
<span style="color: #222222; font-family: arial, sans-serif;"><span style="font-size: 12px;">CppCon 2016: Dan Gohman “C++ on the Web: Let's have some serious fun." (WebAssembly)</span></span><br />
<span style="color: #222222; font-family: arial, sans-serif;"><span style="font-size: 12px;"><a href="https://www.youtube.com/watch?v=jXMtQ2fTl4c">https://www.youtube.com/watch?v=jXMtQ2fTl4c</a></span></span><br />
<span style="color: #222222; font-family: arial, sans-serif;"><span style="font-size: 12px;">Unicode Strings: Why the Implementation Matters</span></span><br />
<span style="color: #222222; font-family: arial, sans-serif;"><span style="font-size: 12px;"><a href="https://www.youtube.com/watch?v=ysh2B6ZgNXk">https://www.youtube.com/watch?v=ysh2B6ZgNXk</a></span></span><br />
<span style="color: #222222; font-family: arial, sans-serif;"><span style="font-size: 12px;">CopperSpice - C++ GUI Framework</span></span><br />
<span style="color: #222222; font-family: arial, sans-serif;"><span style="font-size: 12px;"><a href="https://www.youtube.com/watch?v=LIiwBNvTllk">https://www.youtube.com/watch?v=LIiwBNvTllk</a></span></span></div>
MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com0tag:blogger.com,1999:blog-22093788.post-23817104811324007782017-07-21T20:54:00.002-04:002017-07-22T00:55:16.871-04:00Compiling FSV - the Jurassic Park program - on Windows 10 with MSYS2<b>Download the Source Code From </b>: <a href="https://github.com/genbtc/fsv/archive/master.zip">https://github.com/genbtc/fsv/archive/master.zip</a><br />
Github Repository @ <a href="https://github.com/genbtc/fsv">https://github.com/genbtc/fsv</a><br />
If this is what you are going after: <a href="http://fsv.sourceforge.net/screenshots/">http://fsv.sourceforge.net/screenshots/</a><br />
You came to the right place.<br />
<br />
Compiling FSV (File System Visualizer) for Windows takes a bit of effort. This is the tutorial. You need to set up the "MSYS2" development environment, which you can consider similar to Cygwin, if you dont know, it basically sets up a linux environment, and entire filesystem, with windows compatible .exe's compiled of everything, on your Windows machine under a subdirectory like C:\Software\MSYS32<br />
<br />
<b><i><u>INSTRUCTIONS:</u></i></b><br />
<b><i><u>STEP 1 - MSYS</u></i></b><br />
<br />
On my machine, I dont like making too many root folders, so I <b>make a C:\Software</b> or C:\Code or whatever name, to put all my dev environment stuff in. Dont make the name too long and MAKE SURE IT DOESNT HAVE SPACES.<br />
<br />
<b>Download </b>this version of MSYS2: msys2-i686-20161025.exe (its the latest 32 bit version)<br />
It is available from sourceforge. <a href="https://sourceforge.net/projects/msys2/files/Base/i686/msys2-i686-20161025.exe/download">https://sourceforge.net/projects/msys2/files/Base/i686/msys2-i686-20161025.exe/download</a><br />
<br />
<b>Install it</b>, Pointing the installer to your C:\Software\MSYS32 directory.<br />
<br />
We want the "launch after install" button when its done. (otherwise launch it from "C:\Software\msys32\mingw32.exe")<br />
<i>Note: the terminology MSYS, MSYS2, MSYS32 are all the same thing.</i><br />
<i>Note: However, <b>now we want mingw32.exe (gray icon) </b></i><i>don't confuse it with msys2.exe (purple icon)</i><br />
<u><b>You should now have this running:</b></u><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/wPMwT/7872b9428a.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="89" data-original-width="186" src="https://puu.sh/wPMwT/7872b9428a.png" /></a></div>
<i><br />
</i> <i>Note: The following commands start with $ to indicate its a command at a command prompt. Dont retype it...</i><br />
<br />
<code>$ pacman -Syu </code><br />
<br />
Hit enter to install the updates. After its done, it asks you to terminate it but you have to click the X until End Process shows and force end it. Also make sure pacman.exe is not running in task manager. Close it if it is.<br />
<i>Note</i>: This requires internet access. If you are using Windows Firewall, you are going to want to disable it during the process because theres just too many .exe's that needs access to manually allow all of them. Dont get stuck on this step trying to do that...<br />
<br />
Once again, open back up the MINGW32 shell ("C:\Software\msys32\mingw32.exe") and run the same command again:<br />
<br />
<code>$ pacman -Syu</code><br />
<br />
Continue Installing Stuff, these are development packages:<br />
<br />
<code>$ pacman -S base-devel unzip mingw-w64-i686-toolchain mingw-w64-i686-gtk2 mingw-w64-i686-freeglut mingw-w64-i686-gtkglext</code><br />
<br />
It will ask you some things, use the default, just press enter each time. Then it will take a while.<br />
base-devel = provides autoconf/automake/pkg-config/tons of stuff.<br />
toolchain = provides GCC,G++ stuff to compile.<br />
GTK2 = a pre-requisite for the user interface (window dressings, menus etc).<br />
Freeglut = an open source version of GLUT which is an API to OpenGL.<br />
GTKGLext = the OpenGL extensions for GTK which we also need.<br />
<b><i><u><br />
</u></i></b> <b><i><u>INSTRUCTIONS:</u></i></b><br />
<b><i><u>STEP 2 - Source Code</u></i></b><br />
<b><br />
</b> <b>Download the Source Code From </b>: <a href="https://github.com/genbtc/fsv/archive/master.zip">https://github.com/genbtc/fsv/archive/master.zip</a><br />
(It has to be my repository, because that is where the changes for the Win32 port are)<br />
<b>Extract </b>the FSV source code .zip file from github to your Home dir @ C:\Software\msys32\home\...\ so it lives in C:\Software\msys32\home\...\fsv-master\ (where ... is your username) and has the src/ subdirectory underneath.<br />
<i>Note: the screenshots show fsv-orig (but yours can be fsv-master or fsv)</i><br />
<br />
<u><i><b>STEP 2a - Compiling the source code of a gtkglarea-release (pre-req)</b></i></u><br />
Execute the following:<br />
Extract the source of gtkglarea-release-2-0-0.zip to gtkglarea-release-2-0-0 by typing:<br />
<code><br />
$ cd fsv<br />
$ unzip gtkglarea-release-2-0-0.zip<br />
</code><br />
This package provides the required source and the library, and is not available through pacman, so I have provided it in original unmodified form.<br />
<br />
Execute the following:<br />
<code><br />
$ cd gtk[TAB](to tab complete)[ENTER]<br />
$ ./autogen.sh<br />
</code><br />
It will run, auto-generate, and auto-execute the configure script for you.<br />
You should see this now:<br />
<a href="https://puu.sh/wPHKE/ff74df9acf.png" imageanchor="1"><img border="0" data-original-height="370" data-original-width="581" height="204" src="https://puu.sh/wPHKE/ff74df9acf.png" width="320" /></a><br />
<code><br />
$ make<br />
</code><br />
You will see a whole ton of stuff scrolling past, this is the actual compiler GCC being run on all the source files. It shows some errors about libtool, but no problem.<br />
<a href="https://puu.sh/wPHNc/c65deef254.png" imageanchor="1"><img border="0" data-original-height="370" data-original-width="581" height="204" src="https://puu.sh/wPHNc/c65deef254.png" width="320" /></a><br />
<code><br />
$ make install<br />
</code><br />
This will copy the files outputted from "make": libgtkgl-2.0-1.dll and libgtkgl-2.0.a (the linux version of a .dll) to a linux system-wide directory (I could have just provided this file but you wanted to compile stuff)<br />
<a href="https://puu.sh/wPHRj/503177df5e.png" imageanchor="1"><img border="0" data-original-height="370" data-original-width="581" height="204" src="https://puu.sh/wPHRj/503177df5e.png" width="320" /></a><br />
<br />
<code><br />
$ cd ../<br />
$ ./autogen.sh<br />
</code><br />
autogen.sh is the program that checks the autoconf file (configure.ac) and automake file (Makefile.am) input files and parses them into a ./configure script and ./Makefile script<br />
You should see this now:<br />
<a href="https://puu.sh/wPGib/eff40238af.png" imageanchor="1"><img border="0" data-original-height="370" data-original-width="581" height="204" src="https://puu.sh/wPIIA/fb7e0faa36.png" width="320" /></a><br />
<br />
Execute the configure script.<br />
<code><br />
$ ./configure<br />
</code><br />
<a href="https://puu.sh/wPGpd/dcbe1f5f2c.png" imageanchor="1"><img border="0" data-original-height="370" data-original-width="581" height="204" src="https://puu.sh/wPGpd/dcbe1f5f2c.png" width="320" /></a><br />
<a href="https://puu.sh/wPIWC/96ed6b654b.png" imageanchor="1"><img border="0" data-original-height="402" data-original-width="800" height="161" src="https://puu.sh/wPIWC/96ed6b654b.png" width="320" /></a><br />
If this produces some kind of error, instead of ending happily, refer to Troubleshooting Error #1 below.<br />
<br />
<code><br />
$ make<br />
</code><br />
<a href="https://puu.sh/wPJ25/5485538357.png" imageanchor="1"><img border="0" data-original-height="402" data-original-width="800" height="161" src="https://puu.sh/wPJ25/5485538357.png" width="320" /></a><br />
<a href="https://puu.sh/wPJ6e/347ae54b0c.png" imageanchor="1"><img border="0" data-original-height="402" data-original-width="800" height="161" src="https://puu.sh/wPJ6e/347ae54b0c.png" width="320" /></a><br />
It will compile a ton of stuff, and then end unceremoniously.<br />
<b>But its done now! Now you can install the program by typing:</b><br />
<code><br />
</code> <code>$ cp fsv.exe /mingw32/bin/</code><br />
<code><br />
</code> <code><b style="font-family: "Times New Roman";">And run the program by typing:</b><br />
$ fsv<br />
</code><br />
<i><br />
</i> <i><br />
</i> <i><br />
</i> <i><br />
</i> <i><br />
</i> <i><br />
</i> <i>Note:</i> Errors? Read Troubleshooting Below.<br />
<br />
<b>Troubleshooting:</b> <br />
<u>ERROR 1:</u><br />
<a href="https://puu.sh/wPGs9/08a23467c8.png" imageanchor="1"><img border="0" data-original-height="370" data-original-width="581" height="204" src="https://puu.sh/wPGs9/08a23467c8.png" width="320" /></a><br />
You did not compile or install the gtkglarea-release-2-0-0.zip properly. Re-read the instructions.<br />
As a last resort, you can override that check by removing the word gtkgl-2.0 from "C:\Software\fsv\configure.ac" (find and delete only that word) and rerunning ./autogen.sh and rerunning ./configure. HOWEVER since you need this package to continue, I doubt that will help.<br />
<u><br />
</u> <u>ERROR2:</u><br />
<a href="https://puu.sh/wPJOW/535ad8bc10.png" imageanchor="1"><img border="0" data-original-height="165" data-original-width="482" height="110" src="https://puu.sh/wPJOW/535ad8bc10.png" width="320" /></a><br />
<div style="text-align: left;">
OR</div>
<div style="text-align: left;">
<u>ERROR3:</u></div>
<a href="https://puu.sh/wPJqo/4b3facb2b7.png" imageanchor="1"><img border="0" data-original-height="172" data-original-width="461" height="119" src="https://puu.sh/wPJqo/4b3facb2b7.png" width="320" /></a><br />
If it says the libgtkgl-2.0-1.dll is missing or you receive the message: " The procedure entry point g_malloc_n could not be located in the dynamic link library C:\..\libgtkgl-2.0-1.dll "<br />
Make sure you place your fsv.exe INSIDE the MSYS binary dll directory (ex: C:\Software\msys32\mingw32\bin\ )<br />
Then you can just make a shortcut to it, and run that.<br />
Alternatively, you can add this C:\Software\msys32\mingw32\bin\ directory to your system environment PATH variable, in System settings as shown:<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://puu.sh/wPKnx/25c60db03e.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="476" data-original-width="800" height="190" src="https://puu.sh/wPKnx/25c60db03e.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Alternate to this, you can also create a launcher .bat file. such as "LaunchFSV.bat", file as a launcher. This sets the required Windows' System Environment "PATH" variable. When you are inside MSYS, it sets the PATH for you, so you can launch it from there no problem by typing ./fsv or ./fsv.exe , But when you try to launch it from Windows, you get libgtkgl-2.0-1.dll errors because it cannot find the all the .dlls we installed through MSYS (in addition to that specific one).</div>
<b>LaunchFSV.bat</b><br />
<code>PATH=%PATH%;C:/Software/msys32/mingw32/bin;./;<br />
start fsv.exe<br />
</code><br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<u>ERROR 4:</u><br />
<div class="separator" style="clear: both;">
<a href="https://cdn.discordapp.com/attachments/184897935660548096/338176441156108288/screenshot.856.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="165" data-original-width="580" height="91" src="https://cdn.discordapp.com/attachments/184897935660548096/338176441156108288/screenshot.856.png" width="320" /></a></div>
<b>Disregard </b>this error. It has no impact on the final outcome, and can safely be ignored.<br />
<br />
<u>ERROR 5:</u><br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://cdn.discordapp.com/attachments/184897935660548096/338176473829474305/screenshot.858.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="205" data-original-width="393" height="166" src="https://cdn.discordapp.com/attachments/184897935660548096/338176473829474305/screenshot.858.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
You downloaded the source from the <u>wrong repository</u>. You need the <b>genBTC </b>repository (mine), because that is where the win32 fork changes are located. <a href="https://github.com/genbtc/fsv">https://github.com/genbtc/fsv</a> and <a href="https://github.com/genbtc/fsv/archive/master.zip">https://github.com/genbtc/fsv/archive/master.zip</a></div>
<u>OTHER ERRORS NOT LISTED:</u><br />
<a href="https://github.com/genbtc/fsv" target="_blank">Report any bugs on the github repo. Everything will be handled through Github.</a><br />
<br />
<b>Using FSV:</b><br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://puu.sh/wPL4b/cad607028f.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="222" data-original-width="321" height="221" src="https://puu.sh/wPL4b/cad607028f.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
It takes a CONSIDERABLE amount of time for the program to traverse the entire directory structure, (at anywhere from 300-6000 per second) and it does not display much until it does. For your first run, you should point it to a folder with a small amount of files and subdirectories. FSV.exe takes path arguments, and the bat file does too, so you can put the .BAT file in your Windows SendTo folder, and then right click any directory and Send To LaunchFSV.bat, and it will launch starting in that dir.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Theres a bug in the "Change Root" command, </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/wPLih/a363359b50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="356" data-original-width="435" height="261" src="https://puu.sh/wPLih/a363359b50.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
You have to delete everything in the bottom text box, THEN click OK, for it to work. It will open to what it says in: "Selection". If you fail to do this, it will just rescan whatever dir you're in, and that sucks. I will work on fixing this soon.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b><u><i>SCREENSHOTS:</i></u></b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
This is how it looks in Tree View:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/wPLC2/ae992c4beb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="431" data-original-width="800" height="172" src="https://puu.sh/wPLC2/ae992c4beb.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
This is how it looks in Map View:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/wPLJG/fa716cab19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="370" data-original-width="800" height="148" src="https://puu.sh/wPLJG/fa716cab19.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
This is how it looks in Disc View (very experimental):</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/wPMdZ/f3496709ed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="483" data-original-width="800" height="193" src="https://puu.sh/wPMdZ/f3496709ed.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Enjoy. I have not done anything significant enough to claim a copyright on this project, please refer to the original owner's repository and license documentation @ <a href="https://github.com/mcuelenaere/fsv">https://github.com/mcuelenaere/fsv</a></div>
MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com3tag:blogger.com,1999:blog-22093788.post-41293471457806858132017-07-13T22:40:00.003-04:002018-07-04T11:52:40.984-04:00FSV Filesystem Navigator - from Jurassic Park - SGI IRIX Sun Solaris clone - running on Windows Ive been working on porting this 3D Filesystem Viewer or FSV from Linux to Windows. It looks like this and was made by this guy: <a href="https://github.com/jtsiomb/fsnav">https://github.com/jtsiomb/fsnav</a><br />
<br />
(little sample of errors to clear)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1jNWedrxwsKPM5PrcjAq6zEoZ1ooO9Sm7nJPcAfMvuhdHXwcu7jmc_fCFHJNC2VNIugn4syyclbPZpxiYZxnHYxGRuExMeiJKypUPZ_fnYhyfeYzUHl-9Qk7wTvLN-u0M7C5eTg/s1600/FSVerrors_2017-07-13_15-28-09.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1jNWedrxwsKPM5PrcjAq6zEoZ1ooO9Sm7nJPcAfMvuhdHXwcu7jmc_fCFHJNC2VNIugn4syyclbPZpxiYZxnHYxGRuExMeiJKypUPZ_fnYhyfeYzUHl-9Qk7wTvLN-u0M7C5eTg/s640/FSVerrors_2017-07-13_15-28-09.png" width="640" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgurbpXu9NvIndgiIzTub1ad_Qw-QrrsZmvyDgIucGfsPWEzLfJLvowlH5CSWpaL0VfFmPnCllhqXjkCpoZ-OjpdglwOAYry805pYKRIAVcxsBvBSYHiuwYQJRfTcnZWP_OrHO_6w/s1600/FSNavwin_2017-07-11_05-36-39.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="344" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgurbpXu9NvIndgiIzTub1ad_Qw-QrrsZmvyDgIucGfsPWEzLfJLvowlH5CSWpaL0VfFmPnCllhqXjkCpoZ-OjpdglwOAYry805pYKRIAVcxsBvBSYHiuwYQJRfTcnZWP_OrHO_6w/s640/FSNavwin_2017-07-11_05-36-39.png" width="640" /></a><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Bvt6nyEFnHaoWSTscj9YBkhoZpwJqWprZaL-hJhkhvGxUg0mbzV5iGC0Pv9SnAYoEr67ECPTbWzgQLt6L-9PdE4AbnXabhKs3dzQKUkKDGkvBo-Q3cvXEEm86MwKtDJBDOkCAw/s1600/FSNavwin_2017-07-12_19-09-24.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="344" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Bvt6nyEFnHaoWSTscj9YBkhoZpwJqWprZaL-hJhkhvGxUg0mbzV5iGC0Pv9SnAYoEr67ECPTbWzgQLt6L-9PdE4AbnXabhKs3dzQKUkKDGkvBo-Q3cvXEEm86MwKtDJBDOkCAw/s640/FSNavwin_2017-07-12_19-09-24.png" width="640" /></a><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4rAS0xOQD0ESZ5wXzvadshjz6F83zxSaajd2BzFv1EAHkYkI7VNSFcDztcqEy5ndzVBNtMFTRSFHKNi_DyuSnVz7yQVuQj8nxbzqOtTCRgvcU76DrgKR1QoV1cBmgWyqVVA69ZQ/s1600/FSNavwin_2017-07-11_05-30-50.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4rAS0xOQD0ESZ5wXzvadshjz6F83zxSaajd2BzFv1EAHkYkI7VNSFcDztcqEy5ndzVBNtMFTRSFHKNi_DyuSnVz7yQVuQj8nxbzqOtTCRgvcU76DrgKR1QoV1cBmgWyqVVA69ZQ/s640/FSNavwin_2017-07-11_05-30-50.png" width="640" /></a><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_k9QggU_ce4TWnTYOU1Iyib9C5PFhh890FlLxbUJRL2DwpLBb1QLqeXrdR8xOcNFWyLpekQjkUAOkPKf1YIFxlbjU5CgeEIbbq-uES3vKNg0_cbsuub_coq7s04UnOQ7DaiRxRg/s1600/FSNavwin_2017-07-11_05-23-31.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="344" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_k9QggU_ce4TWnTYOU1Iyib9C5PFhh890FlLxbUJRL2DwpLBb1QLqeXrdR8xOcNFWyLpekQjkUAOkPKf1YIFxlbjU5CgeEIbbq-uES3vKNg0_cbsuub_coq7s04UnOQ7DaiRxRg/s640/FSNavwin_2017-07-11_05-23-31.png" style="cursor: move;" width="640" /></a><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhccJBP1va58IoaYlAFb9Ej6az0lZmqG-5AZSc7r77k7z3IdW-UJub3s9wWkiAn4c3fw1zZ_aOxAC8_BeY5rjBRjmG0EO8-3ZVmfLp6UD9PWcU9uawoNcB2Z4GX9n28OnkDdKZCdA/s1600/FSNavwin_2017-07-12_18-56-44.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="344" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhccJBP1va58IoaYlAFb9Ej6az0lZmqG-5AZSc7r77k7z3IdW-UJub3s9wWkiAn4c3fw1zZ_aOxAC8_BeY5rjBRjmG0EO8-3ZVmfLp6UD9PWcU9uawoNcB2Z4GX9n28OnkDdKZCdA/s640/FSNavwin_2017-07-12_18-56-44.png" width="640" /></a><br />
<br />
For some reason i decided to try to download this one <a href="https://github.com/mcuelenaere/fsv">https://github.com/mcuelenaere/fsv</a> because it has a lot more to it, like a whole menu/window/status/UI :) and it was wayyy harder to compile, in fact its not even fully working, theres a few issues preventing me from distributing it. But as you can probably tell, the look is just NOT there, its all wrong, you cant move well. Its a pretty bad program, even if it was for all intents and purposes the most real "clone" of the original SGI code. Which I do have and its from 1992-03-19 which is where the visual aesthetic of the blue Sky, grass, desert, ocean, space, indigo themes come from. Nobody elses code really has that. And it probably has more stuff, but i dont think i have the actual source available, just half of it.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5vgByrI55XiAg2lEPEMR7p4bk6wVtf7pXHdPamEw85tCQ2I447226Ojf-XeB-Eu_Z-HMLHy5a8AGREBYNlDK4rUIud4gDIUbcLW9dsiImN6DFZfngzQp0YBHk5H7GUJh9uX7jLQ/s1600/fsv_2017-07-13_20-32-27.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="406" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5vgByrI55XiAg2lEPEMR7p4bk6wVtf7pXHdPamEw85tCQ2I447226Ojf-XeB-Eu_Z-HMLHy5a8AGREBYNlDK4rUIud4gDIUbcLW9dsiImN6DFZfngzQp0YBHk5H7GUJh9uX7jLQ/s640/fsv_2017-07-13_20-32-27.png" width="640" /></a><br />
<br />
Coded by<br />
-genBTCMrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com0tag:blogger.com,1999:blog-22093788.post-63611000717487530952017-06-20T01:14:00.002-04:002017-06-20T01:14:29.705-04:00Music Production - Best blog posts<a href="https://theproaudiofiles.com/mixing-tutorials-from-summer-2016/">https://theproaudiofiles.com/mixing-tutorials-from-summer-2016/</a><br />
<br />
<a href="https://theproaudiofiles.com/brian-eno-quotes/">https://theproaudiofiles.com/brian-eno-quotes/</a><br />
<br />
<a href="https://theproaudiofiles.com/9-things-that-shouldnt-derail-your-record/">https://theproaudiofiles.com/9-things-that-shouldnt-derail-your-record/</a><br />
<a href="https://www.blogger.com/goog_1277416048"><br /></a>
<a href="https://theproaudiofiles.com/mixing-quality/">https://theproaudiofiles.com/mixing-quality/</a><br />
<br />
<a href="https://theproaudiofiles.com/processing-reverb/">https://theproaudiofiles.com/processing-reverb/</a><br />
<br />
<a href="https://theproaudiofiles.com/6-common-traps-aspiring-audio-engineers-fall-into/">https://theproaudiofiles.com/6-common-traps-aspiring-audio-engineers-fall-into/</a><br />
<br />
<a href="https://theproaudiofiles.com/songwriting-tips-writers-block/">https://theproaudiofiles.com/songwriting-tips-writers-block/</a><br />
<br />
<a href="https://theproaudiofiles.com/free-drum-samples/">https://theproaudiofiles.com/free-drum-samples/</a><br />
<br />
<a href="https://theproaudiofiles.com/mixing-tips/">https://theproaudiofiles.com/mixing-tips/</a><br />
<br />
<a href="https://theproaudiofiles.com/arnolds-six-rules-success-thatll-make-better-producer/">https://theproaudiofiles.com/arnolds-six-rules-success-thatll-make-better-producer/</a><br />
<br />
<a href="https://theproaudiofiles.com/72-tips-i-wish-i-knew-when-i-started-producing-music/">https://theproaudiofiles.com/72-tips-i-wish-i-knew-when-i-started-producing-music/</a><br />
<br />
<a href="https://theproaudiofiles.com/parallel-processing-effects-in-a-mix/">https://theproaudiofiles.com/parallel-processing-effects-in-a-mix/</a><br />
<br />
<a href="https://theproaudiofiles.com/multitracks-for-mixing/">https://theproaudiofiles.com/multitracks-for-mixing/</a><br />
<br />
<a href="https://theproaudiofiles.com/essential-mixing-tutorials-from-2015/">https://theproaudiofiles.com/essential-mixing-tutorials-from-2015/</a>MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com5tag:blogger.com,1999:blog-22093788.post-84414806338664482912017-06-06T01:35:00.002-04:002017-06-06T01:50:16.994-04:00Github, Git, Git Extensions, using Git, Git Tips and Tricks, Git for Windows<h2>
Git Tutorial #1 - Reset current branch to delete local commits with no data loss, and replace with 1 better remote commit</h2>
<div>
When you are working on a project thats undergoing changes so rapidly that you have no chance to do milestones or take breaks to put out stable versions, you should still commit LOCALLY (Commit, not Commit&Push) often to back up your work, and have old code to go back to during troubleshooting. Taking the time is annoying so just write as little description as possible to save time. </div>
<div>
Then after you have gotten to a milestone or a stable point, you can throw all those away, and Commit and Push ONE single solid commit with complete description and thought put into it when you have time.</div>
This is best to do with local commits only, otherwise there can be some weird situations.<br />I mean you can do it, but its bad practice to change the history.<br />
<br />
Step 1 - Highlight the last commit you want to keep.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9aQpJPnMyxMfb9NhgOrr8lcbRV3YSB8D3hqUMPworgwAO2vFngT_kBgaazR-jQM_i6cVQca6llt8qpr1Gwa7B5doqtVldC2bCodulIAFJMPkQ1Jj-wtHFZFfdtJrZODGDFgaGGg/s1600/GitExtensions_2017-06-06_01-01-16.png" imageanchor="1"><img border="0" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9aQpJPnMyxMfb9NhgOrr8lcbRV3YSB8D3hqUMPworgwAO2vFngT_kBgaazR-jQM_i6cVQca6llt8qpr1Gwa7B5doqtVldC2bCodulIAFJMPkQ1Jj-wtHFZFfdtJrZODGDFgaGGg/s320/GitExtensions_2017-06-06_01-01-16.png" width="320" /></a><br />
<br />
<br />
Step 2 - Right click on it and choose Reset current branch to here.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Fj6rHKuqCDYTXLhVoH35UiP_zOi8oGXbhdAwnX-WFhQCXqajRVBMnd_NQ39Pa3eu_cxfPMXcUPZeZvWncICKUYVOZ4pG93hhkP38flsUkVdfZ0z5mhGbG8Uldbhn_fr92-kl6w/s1600/GitExtensions2_2017-06-06_01-02-45.png" imageanchor="1"><img border="0" height="124" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Fj6rHKuqCDYTXLhVoH35UiP_zOi8oGXbhdAwnX-WFhQCXqajRVBMnd_NQ39Pa3eu_cxfPMXcUPZeZvWncICKUYVOZ4pG93hhkP38flsUkVdfZ0z5mhGbG8Uldbhn_fr92-kl6w/s320/GitExtensions2_2017-06-06_01-02-45.png" width="320" /></a><br />
<br />
<br />
Step 3 - This is where you make important decisions. In this tutorial we want to leave our files unchanged, and just delete the commit indexes.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitSQEuma6D5ajO_MqSI4MPCQSHsnOJlkDdKguJtKx96m6pX9eaKhFJGmODRAFm64ATaINfpup-QNiCejxy-DCwiJLbrU7g5K5HasWJyF0CrgR8LFwQRcorQ24Lm8sIzka7RhJ9Gg/s1600/GitExtensions3_2017-06-06_01-03-41.png" imageanchor="1"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitSQEuma6D5ajO_MqSI4MPCQSHsnOJlkDdKguJtKx96m6pX9eaKhFJGmODRAFm64ATaINfpup-QNiCejxy-DCwiJLbrU7g5K5HasWJyF0CrgR8LFwQRcorQ24Lm8sIzka7RhJ9Gg/s320/GitExtensions3_2017-06-06_01-03-41.png" width="320" /></a><br />
<br />
<br />
Step 4 - Now it will show the last commit as the past one you picked, and that "New" files can be committed. Still no file data has changed. At this point you want to the final Commit, and (most likely Push to github too).<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMmrX-uwBv7yNH_A9ZgXHrnjMnWG4J6qdekzEdiTHYL5R7QSazV2iWPUdaFxROG8SxTzfP_bFiHZTRFFdBqA_zOuUkQlkcdk-0Cp6N9mALes4JAZjOVQ5R1Naikoo-0Q6Zip75pQ/s1600/4+2017-06-06_01-04-52.png" imageanchor="1"><img border="0" height="35" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMmrX-uwBv7yNH_A9ZgXHrnjMnWG4J6qdekzEdiTHYL5R7QSazV2iWPUdaFxROG8SxTzfP_bFiHZTRFFdBqA_zOuUkQlkcdk-0Cp6N9mALes4JAZjOVQ5R1Naikoo-0Q6Zip75pQ/s320/4+2017-06-06_01-04-52.png" width="320" /></a><br />
<br />
<br />
Step 5 - You see you've effectively turned all the junk into 1 well formatted commit.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvUoayZivpPsfS-hNS-HVYnqTbsVEUF1tZ1ZvH-oVH8-PScSf63U4u6Uf4i1BFHzCyliYm8AqWIUn-aBPsMiyZ898tvqFoMKeuDH5sD3pyF_QxprSqaIPJwviXu56rrcUo1V8M3w/s1600/5+2017-06-06_01-14-54.png" imageanchor="1"><img border="0" height="51" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvUoayZivpPsfS-hNS-HVYnqTbsVEUF1tZ1ZvH-oVH8-PScSf63U4u6Uf4i1BFHzCyliYm8AqWIUn-aBPsMiyZ898tvqFoMKeuDH5sD3pyF_QxprSqaIPJwviXu56rrcUo1V8M3w/s400/5+2017-06-06_01-14-54.png" width="400" /></a><br />
<br />
Can the text/descriptions for the old ones can be copied to the new text? No. There is no easy way to aggregate them all like some other git merge commands do. This is why I said dont put that much effort into the temp names. You could copy/paste em manually if it was that important.MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com11tag:blogger.com,1999:blog-22093788.post-86577059741679293992017-06-03T09:48:00.002-04:002017-10-15T02:45:30.299-04:00Synergy and Serial Number Activation Key for SSL security - Reverse Engineering the source code (easy)<h3>
<u>Intro:</u></h3>
<a href="https://symless.com/synergy" target="_blank">Synergy</a> is a great program, marketed and sold by a company called Symless. It's like a network KVM w/ drag&drop files and clipboard support so you can use multiple computers at once. Point being, it also supports SSL encryption - but not for free.<br />
Theres a Basic license for $19 (which from what I can tell does exactly nothing extra from what you already get without paying)<br />
And a Pro license for $29. Pro gives full SSL (TLS through OpenSSL) AES-256 bit security for your connections. AES256-GCM-SHA384 TLSv1.2<br />
<br />
You can't even download the free version from their website anymore. But it is <a href="https://github.com/symless/synergy-core" target="_blank">Open Source @ https://github.com/symless/synergy-core</a><br />
EDIT: They have since moved to calling it "Synergy-Core" as Open Source to distinguish from the paid.<br />
<br />
It doesnt matter whether you download binaries somewhere (current version is 1.88 stable as of this writing), or compile it yourself (pretty difficult) - because it ends up installing essentially an <i>unregistered, not activated version without SSL.</i><br />
<br />
But we can fix that.... (without even tampering with the program file)!<br />
<br />
<h3>
<u>Reading the Code:</u></h3>
Since the source code is public, we can reverse engineer their pointless activation scheme. To reverse engineer it, start by heading to the source: <a href="https://github.com/symless/synergy-core/">https://github.com/symless/synergy-core/</a><br />
You can look through the source code and you will find this;<br />
<br />
<a href="https://github.com/symless/synergy-core/blob/master/src/lib/shared/SerialKey.cpp#L126">https://github.com/symless/synergy-core/blob/master/src/lib/shared/SerialKey.cpp#L126</a> = The SerialKey::toString() definition neatly shows us the basic format of the key.<br />
<br />
<a href="https://github.com/symless/synergy-core/blob/master/src/lib/shared/SerialKey.cpp#L226">https://github.com/symless/synergy-core/blob/master/src/lib/shared/SerialKey.cpp#L226</a> = The SerialKey::parse() function actually has an example key in the comments, and is showing the validation routine.<br />
<br />
This is what we can gather: a string needs to begin and end with a { } and has 8 semi-colon ; seperated fields (or 9 but we dont want that one - thats for starting a trial of pro). For the last two fields we put 0 for unlimited.<br />
<br />
Such as :<br />
{v1;pro;YOURNAME;#userLimit#;EMAIL;BUSINESSNAME;0;0}<br />
<br />
However you cant just paste that in, it needs to be encoded into hex....<br />
<br />
<h3>
<u>Cracking the Code:</u></h3>
I've made it easy, automatic, non-intrusive, anonymous, and not sketchy at all. Visit this online C++ compiler and hit the "RUN" button to run the code (in the cloud) that I've created, (based on the source code). The code runs in the cloud not your machine and is totally safe. Feed it any values you want for name/email - they dont even have to be real!:<br />
<a href="http://cpp.sh/3mjw3" target="_blank">Activation Key Number Generator Script Serial for Synergy http://cpp.sh/3mjw3</a><br />
<br />
NOW you can paste that Hex code in. Voila, its activated.<br />
<br />
<h3>
<u>Afterword:</u></h3>
You should still donate the company some money when you get the chance so they can continue to provide this great software AND keep it open source.<br />
<br />
Note= both machines need to have the license key for SSL handshaking to work, and they both need to be on the same version (or close). The OpenSSL accept fingerprint window will pop up, thats how you know its working.<br />
<br />
Proof of Concept Picture:<br />
<a href="https://puu.sh/w9y0h/b67ecae2fb.png" rel="noreferrer" style="background-color: #36393e; border: 0px; color: #0096cf; cursor: pointer; direction: ltr; font-family: Whitney, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; line-height: 16.5px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; transition: 0.05s; unicode-bidi: bidi-override; vertical-align: baseline; white-space: pre-wrap;" target="_blank" title="https://puu.sh/w9y0h/b67ecae2fb.png">https://puu.sh/w9y0h/b67ecae2fb.png</a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/w9y0h/b67ecae2fb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="417" data-original-width="800" height="333" src="https://puu.sh/w9y0h/b67ecae2fb.png" width="640" /></a></div>
<br />
Theres no way they can know, I checked. Unless they read this :) If they do, PM me.MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com197tag:blogger.com,1999:blog-22093788.post-37612634787115474802017-05-31T15:46:00.001-04:002017-05-31T18:03:08.999-04:00Windows 10 Restricted Traffic Limited Functionality Baseline<br />
Theoretically this is what microsoft recommends for businsses to control what data gets out.<br />
And you can do it to protect yourself.<br />
It basically locks windows firewall down to absolute minimum, and turns on a ton of group policy settings to restrict stuff (that may or may not help - given what <a href="https://twitter.com/m8urnett" target="_blank">Mark Burnett </a>has recently posted about)<br />
And also probably disables a lot of excess windows features that you likely dont need.<br />
<br />
Thats what me and burnett do, we also both use a program called Windows Firewall Control.<br />
as a frontend for regular Windows Firewall.<br />
<br />
Download the first link zip file from microsoft and read how to use it and apply it,<br />
(it will kick you offline if you dont have firewall rules whitelist allowed for every program you use)<br />
<br />
<div>
<a href="https://www.google.com/search?q=Restricted+Traffic+Limited+Functionality+Baseline">https://www.google.com/search?q=Restricted+Traffic+Limited+Functionality+Baseline</a><br />
<br />
You also have to download this: <a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/4062/00/00/03/65/94/11/LGPO.zip">https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/4062/00/00/03/65/94/11/LGPO.zip</a><br />
seperately, and extract it to \1607\Tools and \1703\Tools dir. (The script relies on it and without having it you might think it worked if you're not careful, tho it does say one tiny error. )<br />
This page explains LGPO if you're interested in group policy objects <a href="https://blogs.technet.microsoft.com/secguide/2016/01/21/lgpo-exe-local-group-policy-object-utility-v1-0/">https://blogs.technet.microsoft.com/secguide/2016/01/21/lgpo-exe-local-group-policy-object-utility-v1-0/</a></div>
MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com0tag:blogger.com,1999:blog-22093788.post-12570827689423681482017-05-12T18:45:00.000-04:002017-05-12T18:45:00.433-04:00Last Blog Post was too long. TLDR:You can download the Windows 10 Security Updates seperately from the Creator's Update.<br />
And its much less risky.<br />
<br />
To get a history of when you last installed updates,<br />
open a command prompt and run:<br />
C:\Windows\System32\Wbem\wmic.exe qfe list<br />
look for the last one from NT AUTHORITY \ SYSTEM and look at the date. Thats how out of date you are.<br />
<br />
then run:<br />
ver.exe<br />
<br />
Look for the ver and download the right one below:<br />
*Written May 12, 2017. Current until June 13, 2017*<br />
<br />
For ver 10240: download this:<br />
<a href="http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019474-x64_4ed033d1c2af2daea1298d10da1fad15a482f726.msu">http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019474-x64_4ed033d1c2af2daea1298d10da1fad15a482f726.msu</a><br />
For ver 10586: download this:<br />
<a href="http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019473-x64_c23b6f55caf1b9d6c14161b66fe9c9dfb4ad475c.msu">http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019473-x64_c23b6f55caf1b9d6c14161b66fe9c9dfb4ad475c.msu</a><br />
For ver 14393: download this:<br />
<a href="http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019472-x64_dda304140351259fcf15ca7b1f5b51cb60445a0a.msu">http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019472-x64_dda304140351259fcf15ca7b1f5b51cb60445a0a.msu</a><br />
For ver 15063: download this:<br />
<a href="http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4016871-x64_27dfce9dbd92670711822de2f5f5ce0151551b7d.msu">http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4016871-x64_27dfce9dbd92670711822de2f5f5ce0151551b7d.msu</a><br />
<br />
Updates come once a month, on the 2nd tuesday of the month.<br />
<span style="background-color: white; color: #444444;"><span style="font-family: inherit;">When you need to check for updates, bookmark this URL directly: </span></span><br />
<span style="background-color: white; color: #444444;"><span style="font-family: inherit;"><br /></span></span>
<a href="https://support.microsoft.com/help/12387/windows-10-update-history" style="background-color: white; color: #4d469c; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; text-decoration-line: none;" target="_blank"><span style="font-size: large;">Windows 10 Update History List</span></a><br />
<ul class="side-nav" style="background-color: white; box-sizing: border-box; color: #444444; font-family: "Segoe UI", "Segoe UI Web", "Segoe UI Symbol", "Helvetica Neue", "BBAlpha Sans", "S60 Sans", Arial, sans-serif; font-size: 15px; line-height: 1.4; list-style: none; margin: 0px; padding: 8px 0px;">
<li class="ng-scope" ng-repeat="link in nav.navLinks track by $index" style="border: none; box-sizing: border-box; margin: 0px 0px 5px; padding: 0.25em 0px;"><div class="link-level-1 ng-scope nav-link" ng-class="nav.selectedLink.id === link.id ? 'selected-nav' : 'nav-link'" ng-if="!link.parentId" style="box-sizing: border-box; outline: none; padding-left: 2px;">
(direct links to the update lists here:)</div>
</li>
<li class="ng-scope" ng-repeat="link in nav.navLinks track by $index" style="border: none; box-sizing: border-box; margin: 0px 0px 5px; padding: 0.25em 0px;"><div class="link-level-1 ng-scope nav-link" ng-class="nav.selectedLink.id === link.id ? 'selected-nav' : 'nav-link'" ng-if="!link.parentId" style="box-sizing: border-box; outline: none; padding-left: 2px;">
<a class="ng-binding" data-content-id="4018124" data-content-type="article" data-link="en-us/help/4018124" href="https://support.microsoft.com/en-us/help/4018124" id="side-nav-link-54" managed-link="" style="background-color: transparent; box-sizing: border-box; color: #0078d7; cursor: pointer; text-decoration-line: none;">Windows 10 Version 1703</a> - build 15063, <b><u>Creators Update</u></b></div>
</li>
<li class="ng-scope" ng-repeat="link in nav.navLinks track by $index" style="border: none; box-sizing: border-box; margin: 0px 0px 5px; padding: 0.25em 0px;"><div class="link-level-1 ng-scope nav-link" ng-class="nav.selectedLink.id === link.id ? 'selected-nav' : 'nav-link'" ng-if="!link.parentId" style="box-sizing: border-box; outline: none; padding-left: 2px;">
<a class="ng-binding" data-content-id="4000825" data-content-type="article" data-link="en-us/help/4000825" href="https://support.microsoft.com/en-us/help/4000825" id="side-nav-link-2" managed-link="" style="background-color: transparent; box-sizing: border-box; color: #0078d7; cursor: pointer; text-decoration-line: none;">Windows 10 Version 1607 and Windows Server 2016</a> - build 14393, <b><u>Anniversary Update</u></b></div>
</li>
<li class="ng-scope" ng-repeat="link in nav.navLinks track by $index" style="border: none; box-sizing: border-box; margin: 0px 0px 5px; padding: 0.25em 0px;"><div class="link-level-1 ng-scope nav-link" ng-class="nav.selectedLink.id === link.id ? 'selected-nav' : 'nav-link'" ng-if="!link.parentId" style="box-sizing: border-box; outline: none; padding-left: 2px;">
<a class="ng-binding" data-content-id="4000824" data-content-type="article" data-link="en-us/help/4000824" href="https://support.microsoft.com/en-us/help/4000824" id="side-nav-link-6" managed-link="" style="background-color: transparent; box-sizing: border-box; color: #0078d7; cursor: pointer; text-decoration-line: none;">Windows 10 Version 1511</a> - build 10586, <b><u>November Update</u></b></div>
</li>
<li class="ng-scope" ng-repeat="link in nav.navLinks track by $index" style="border: none; box-sizing: border-box; margin: 0px 0px 5px; padding: 0.25em 0px;"><div class="link-level-1 ng-scope nav-link" ng-class="nav.selectedLink.id === link.id ? 'selected-nav' : 'nav-link'" ng-if="!link.parentId" style="box-sizing: border-box; outline: none; padding-left: 2px;">
<a class="ng-binding" data-content-id="4000823" data-content-type="article" data-link="en-us/help/4000823" href="https://support.microsoft.com/en-us/help/4000823" id="side-nav-link-9" managed-link="" style="background-color: transparent; box-sizing: border-box; color: #0078d7; cursor: pointer; text-decoration-line: none;">Windows 10 (initial version</a>) - build 10240, (aka <b><u>RTM</u></b>)</div>
</li>
</ul>
<div>
<span style="color: #444444; font-family: Segoe UI, Segoe UI Web, Segoe UI Symbol, Helvetica Neue, BBAlpha Sans, S60 Sans, Arial, sans-serif;"><span style="font-size: 15px;"><br /></span></span></div>
MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com0tag:blogger.com,1999:blog-22093788.post-66782591177289710652017-05-08T18:18:00.000-04:002017-05-08T18:18:05.584-04:00Windows 10 Build / Version Differences, Security Updates and Windows Update trick ( skip Automatic Updates and patch manually ) Microsoft Retires Support for 10240 RTM May 9th, 2017<u><span style="font-size: large;">THE STORY:</span></u><br />
Microsoft is not to be trusted. The thought of them sending me a new automatic Windows Update overnight and possibly (read likely) breaking my computer, and me waking up to a mini-disaster drives me crazy. Therefore I turn off Automatic Updates, but that created a security concern because the OS stopped getting security patches when I stopped Windows from installing the November Update wayyyy back in 2015 when that was bricking everyone's installs. But I have finally solved the dilemma: <b>the Security Updates themselves can be installed manually, easily, and WAY more safely than you ever believed possible!! - without BRICKING.</b><br />
You can now have complete control over your OS back, without Microsoft meddling from afar.<br />
If you follow this guide, you can always have the latest security updates. You can also wait up to 1 year for the OS build updates to get fully matured into the stable, non-disaster causing, procedure that it <i>should </i>have always been but never was. Then you can install the new build version when the old one gets retired. The first retirement of the initial build 10240-RTM happens tomorrow May 9th, 2017. In my case since I'm still on original 10240, this means I have until the next month's patch, June 13 2017, to install the 14393 anniversary update build without going out of date. What I am doing here is staying on the "LTSB" (Long term Servicing Branch) for as long as safely possible.<br />
<br />
<u><span style="font-size: large;">BACKSTORY:</span></u><br />
Microsoft is calling <a href="https://www.forbes.com/sites/gordonkelly/2015/05/08/microsoft-windows-10-last-windows/" target="_blank">Windows 10 "The Last Version of Windows"</a> because it is providing OS updates as a service, over the internet, almost exactly like what Apple can do with their OSX (which has been to multiple "versions", such as 10.11 (El Capitan) - by now).<br />
<br />
They did a bad job at explaining exactly how all this works, so I am forced to write this blog.<br />
Fortunately the Microsoft.com website has actually become quite helpful in the past few years, if you know where to look, and is where I obtained all this information from. I am just compiling it here for simplicity.<br />
<br />
Each version is a rolling release, built off the last one, leading you to believe Windows 10 is Windows 10 is Windows 10.<br />
<i>THAT IS WRONG!!!1</i><br />
<span style="font-size: x-small;">(not talking about Home/Pro - thats called an Edition -(even <i>those </i>are the same codebase))</span><br />
<br />
<br />
<u><span style="font-size: large;">Versions of Windows 10 so far:</span></u><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/vC0Ic/256aa6be1f.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://puu.sh/vC0Ic/256aa6be1f.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
(sourced from Wikipedia)</div>
This site explains it further: <a href="https://technet.microsoft.com/en-US/windows/release-info" target="_blank">https://technet.microsoft.com/en-US/windows/release-info</a><br />
<b><i><span style="font-size: large;">Find your Version :</span></i></b><br />
Find out which version of Windows 10 you have by doing Start > Run: <span style="font-family: "courier new" , "courier" , monospace;">winver</span><span style="font-family: inherit;"> ,or going to the command prompt and type </span><span style="font-family: "courier new" , "courier" , monospace;">ver</span> and look for the build numbers such as either of 10240, 10586, 14393, 15063, 16184.<br />
<br />
<u><span style="font-size: large;">1. OS App & Feature Updates:</span></u><br />
The chart shows <u>5 versions</u>. Microsoft only releases these about 1 time a year. You can consider each of these a "<b>branch</b>". Think of Microsoft as using Git/Github/TFS (version control). These refer to what I call "<i><b>Feature Updates</b></i>". Every time the OS updates are called stuff like: <u>November Update, Anniversary Update, Creator's Update</u> - they add some new Apps and Features. <br />
You can read about what goes into all the Feature Updates for each of the versions here:<br />
<a href="https://docs.microsoft.com/en-us/windows/whats-new/" target="_blank">What's new in Windows 10 (all versions)</a><br />
<br />
<div>
<u><span style="font-size: large;">2. OS Security Updates:</span></u></div>
<div>
Microsoft releases these exactly once a month (on the 2nd Tuesday of the month - "Patch Tuesday").</div>
<div>
Since each of the <u>5 versions</u> got branched and now have SLIGHTLY different stuff, <i>ideally </i>all need to get patched with the latest security updates, patches, bug fixes, and slight improvements. This is a lot of hard work for Microsoft. Patching 5 branches with the same patch of code is impossible, changes must be made manually to shoehorn the patch into an older OS. This is why, highlighted in blue in the chart above, is May 9th, 2017 - the date they will be "retiring support" for the original build 10240. They will issue the last Security Update (tomorrow), and stop working on it. It has been called the "Long Term Servicing Branch" (a term borrowed from the Linux realm). 2 years. Long Term.</div>
<div>
After May 9th 2017, the NEW recommended older LTSB branch will be 1607 Anniversary Update, which should be good for another year or so.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://puu.sh/vJWgF/08d2d553b9.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://puu.sh/vJWgF/08d2d553b9.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><br /><a href="https://technet.microsoft.com/en-US/windows/release-info" style="font-size: medium; text-align: start;" target="_blank">Service Branch Version list</a><span style="font-size: small; text-align: start;"> (shown)</span></td></tr>
</tbody></table>
<div>
<br /></div>
<div>
<br /></div>
<div>
<u><span style="font-size: large;"><br /></span></u></div>
<span style="font-size: large;"><i><b>Where to Download:</b></i></span><br />
Pick the VERSION that corresponds to your build number:<br />
When you need to check for updates, bookmark this URL directly: <a href="https://support.microsoft.com/help/12387/windows-10-update-history" target="_blank">Windows 10 Update History List</a><br />
<ul class="side-nav" style="background-color: white; box-sizing: border-box; font-family: "Segoe UI", "Segoe UI Web", "Segoe UI Symbol", "Helvetica Neue", "BBAlpha Sans", "S60 Sans", Arial, sans-serif; font-size: 15px; list-style: none; margin: 0px; padding: 8px 0px;">
<li class="ng-scope" ng-repeat="link in nav.navLinks track by $index" style="box-sizing: border-box; margin-bottom: 5px;"><div class="link-level-1 ng-scope nav-link" ng-class="nav.selectedLink.id === link.id ? 'selected-nav' : 'nav-link'" ng-if="!link.parentId" style="box-sizing: border-box; outline: none; padding-left: 2px;">
<a class="ng-binding" data-content-id="4018124" data-content-type="article" data-link="en-us/help/4018124" href="https://support.microsoft.com/en-us/help/4018124" id="side-nav-link-54" managed-link="" style="background-color: transparent; box-sizing: border-box; color: #0078d7; cursor: pointer; text-decoration-line: none;">Windows 10 Version 1703</a> - build 15063, <b><u>Creators Update</u></b></div>
</li>
<li class="ng-scope" ng-repeat="link in nav.navLinks track by $index" style="box-sizing: border-box; margin-bottom: 5px;"><div class="link-level-1 ng-scope nav-link" ng-class="nav.selectedLink.id === link.id ? 'selected-nav' : 'nav-link'" ng-if="!link.parentId" style="box-sizing: border-box; outline: none; padding-left: 2px;">
<a class="ng-binding" data-content-id="4000825" data-content-type="article" data-link="en-us/help/4000825" href="https://support.microsoft.com/en-us/help/4000825" id="side-nav-link-2" managed-link="" style="background-color: transparent; box-sizing: border-box; color: #0078d7; cursor: pointer; text-decoration-line: none;">Windows 10 Version 1607 and Windows Server 2016</a> - build 14393, <b><u>Anniversary Update</u></b></div>
</li>
<li class="ng-scope" ng-repeat="link in nav.navLinks track by $index" style="box-sizing: border-box; margin-bottom: 5px;"><div class="link-level-1 ng-scope nav-link" ng-class="nav.selectedLink.id === link.id ? 'selected-nav' : 'nav-link'" ng-if="!link.parentId" style="box-sizing: border-box; outline: none; padding-left: 2px;">
<a class="ng-binding" data-content-id="4000824" data-content-type="article" data-link="en-us/help/4000824" href="https://support.microsoft.com/en-us/help/4000824" id="side-nav-link-6" managed-link="" style="background-color: transparent; box-sizing: border-box; color: #0078d7; cursor: pointer; text-decoration-line: none;">Windows 10 Version 1511</a> - build 10586, <b><u>November Update</u></b></div>
</li>
<li class="ng-scope" ng-repeat="link in nav.navLinks track by $index" style="box-sizing: border-box; margin-bottom: 5px;"><div class="link-level-1 ng-scope nav-link" ng-class="nav.selectedLink.id === link.id ? 'selected-nav' : 'nav-link'" ng-if="!link.parentId" style="box-sizing: border-box; outline: none; padding-left: 2px;">
<a class="ng-binding" data-content-id="4000823" data-content-type="article" data-link="en-us/help/4000823" href="https://support.microsoft.com/en-us/help/4000823" id="side-nav-link-9" managed-link="" style="background-color: transparent; box-sizing: border-box; color: #0078d7; cursor: pointer; text-decoration-line: none;">Windows 10 (initial version</a>) - build 10240, (aka <b><u>RTM</u></b>)</div>
</li>
</ul>
<span style="background-color: white;"><span style="font-size: large;"><b><i>How to Download:</i></b></span></span><br />
<span style="background-color: white;">When you've clicked on your proper version, you are given a list of updates. Click on the topmost recent one, and it will actually provide a Changelog since the last update, if you want to read through them all. </span><br />
<span style="background-color: white;">At the bottom there is a bunch of links, You want this one in red:</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://puu.sh/vJSWq/36c4de3c9e.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="260" src="https://puu.sh/vJSWq/36c4de3c9e.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">This file size mentioned in blue is supposed to match the following link, but in this case it does not! - k Microsoft.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/vJTel/23812ed782.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://puu.sh/vJTel/23812ed782.png" /></a></div>
<br />
<span style="background-color: white;">Click on the Download button - Make sure you choose x64 for 64-bit OS, or unmarked means 32-bit x86. Then e</span><span style="background-color: white;">xecute the .exe file. </span><span style="background-color: white;">(If you chose wrong one by accident no big deal just get the right one). </span><br />
<span style="background-color: white;">Microsoft has very fast servers for this.</span><br />
<br />
The update process will start immediately and look something like this:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/vC3nn/b41ba2ae45.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://puu.sh/vC3nn/b41ba2ae45.png" /></a></div>
You may recognize this window vaguely from all the way back to Windows XP :)<br />
This is the slim-patcher, not a full "panther Setup". Theres way less chance of killing the operating system, or getting stuck at an Pre-boot Update screen where you can't do your work, however it does still need a reboot.<br />
But for 1 gig of new OS files, this completed relatively fast, in about 5 minutes for me. Now the OS is fully security patched, updated, protected - and not ready to brick itself at the next Windows Update.<br />
They really are cumulative too.<br />
Enjoy!MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com6tag:blogger.com,1999:blog-22093788.post-16085444338609424062017-05-01T07:57:00.000-04:002017-05-01T07:59:44.501-04:00FIXED - 'wmic' is not recognized as an internal or external commandI was getting this error, on a common Windows Management Interface C(?)ommand, wmic, as in wmic.exe.<br />
<br />
Don't get worried the file still exists, you probably just messed your PATH variable up like me.<br />
Execute this command:<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">set PATH=%PATH%;%SystemRoot%\System32\Wbem</span></blockquote>
Then you can execute wmic as per normal. To make this setting persist, you have to add this path:<br />
<span style="font-family: "courier new" , "courier" , monospace;">%SystemRoot%\System32\Wbem (aka C:\Windows\</span><span style="font-family: "courier new" , "courier" , monospace;">System32\Wbem</span><br />
into the Environment Variables section of Windows System / Advanced system settings / Advanced tab / Environment Variables... (button on the bottom). Add the path to the System variables section (bottom half). Just tack it on the end to whatevers there using ; to seperate. (or your user only if you want).<br />
<br />
Anyway for all this typing, the WMIC command is very useful and you can have some fun with all its commands. Its useful for scripting as well. Here is a what I was after:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/vC0ke/70357f7f45.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://puu.sh/vC0ke/70357f7f45.png" width="900" /></a></div>
> qfe list<br />
(wmic qfe list)MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com5tag:blogger.com,1999:blog-22093788.post-66026491196611345852017-03-03T17:15:00.000-05:002017-03-03T17:15:11.635-05:00Nintendo Switch can't see WIFI, no connectionThe Nintendo Switch has a 802.11/ac WIFI chip in it, that runs on 2.4ghz AND 5ghz.<br />
So for people who are getting a problem, where you try to hop onto your wireless network and the switch just doesnt see it. But it can see other people's.<br />
<br />
REASON:<br />
This means that most likely your router is using the wrong security settings.<br />
Log in, and locate: "Security" and search for Authentication Method or something using the words TKIP or AES.<br />
The choices are:<br />
1. TKIP<br />
2. AES<br />
3. TKIP+AES (combined together)<br />
<br />
You want to <u style="font-weight: bold;">select AES</u> and apply settings (possibly reboot) to your router. Then your switch will be able to detect your WIFI again.MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com1tag:blogger.com,1999:blog-22093788.post-51049777698382392312016-11-19T05:32:00.004-05:002016-11-19T05:35:53.983-05:00ChromeCacheViewer "Error 2: The system cannot find the file specified" - REASON / FIX<br />
<br />
<span style="background-color: #f8f8f8; color: #0040ff; font-family: "arial" , "helvetica" , sans-serif; font-size: 17.3333px; font-weight: bold;">ChromeCacheView v1.70 - Cache viewer for Google Chrome Web browser </span><br />
<span style="background-color: #f8f8f8; color: #0040ff; font-family: "arial" , "helvetica" , sans-serif; font-size: 17.3333px; font-weight: bold;">Copyright (c) 2008 - 2016 Nir Sofer</span><a href="http://www.nirsoft.net/utils/chrome_cache_view.html">http://www.nirsoft.net/utils/chrome_cache_view.html</a><br />
<br />
"Error 2: The system cannot find the file specified"<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://puu.sh/snjnU/1fe0704aa3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="241" src="https://puu.sh/snjnU/1fe0704aa3.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
This error was due to #enable-simple-cache-backend being turned on in chrome://flags/<br />
<br />
The "Simple Cache Backend for HTTP" is a new cache. It relies on the filesystem for disk space allocation and it writes your cache in a different format, 1 file per file. It is indeed better, BUT...<br />
<br />
The program relies on using the old format that uses an indexable database of basic cache files needed to get the cache information, and they are missing: data_0, data_1, data_2, data_3 ...<br />
<br />
Bottom line, the new "simple" structure is currently <b>incompatible with the v1.70 of ChromeCacheViewer.</b> (hopefully this will change)<br />
<br />
Toggling the flag will clear your cache, so don't do that if you are struggling to retrieve something from cache. Instead, go to chrome://cache, and <u>follow the instructions in the blog post directly below this one to retrieve the file.</u><br />
<br />
ABOUT the simple-cache-backend (nerdy) : <a href="https://www.chromium.org/developers/design-documents/network-stack/disk-cache/very-simple-backend">https://www.chromium.org/developers/design-documents/network-stack/disk-cache/very-simple-backend</a><br />
<div>
<br /></div>
MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com0tag:blogger.com,1999:blog-22093788.post-37149563273519934952016-11-19T05:24:00.003-05:002016-11-19T05:37:40.061-05:00Senseful Solutions: Viewing Chrome cache (the easy way) UPDATEDSOURCE: The original website is located here:<br />
<a href="http://www.sensefulsolutions.com/2012/01/viewing-chrome-cache-easy-way.html#tabs-3">Senseful Solutions: Viewing Chrome cache (the easy way)</a><br />
<br />
Instructions:<br />
How to view a file from the cache:<br />
<br />
<ol>
<li>COPY the code in the pastebin link at the bottom of this post, including all the ( )</li>
<li>In Chrome, navigate to chrome://cache/</li>
<li>Ctrl+F to find whichever file you want to view, then Click on it.</li>
<li>You should then see a page with a bunch of text and numbers.</li>
<li>In Chrome, Press F12 to open the DevTools Console</li>
<li>Near the bottom, find the > cursor character, click and PASTE the copied code and Press Enter. </li>
<li>Alt-Tab switch back to the main cache contents window.</li>
<li>You should then see a link which says Download cached file on the top. Click to download it obviously.</li>
</ol>
<div>
<ol>
<li>If the resulting downloaded file is a compressed gzip archive (Gzip encoding) (should be a .gz file, or maybe push Ctrl+F and search for: gzip to make sure) :</li>
<li>Use 7-zip or a program that reads these files to open the .gz archive And extract the file inside, giving it the appropriate file extension of what exactly the filename was originally. (viewable on the top line)</li>
<li>There you have your file.</li>
</ol>
</div>
<br />
UPDATED with code from <a href="http://www.sensefulsolutions.com/2012/01/viewing-chrome-cache-easy-way.html?showComment=1455936378837#c8563961447153022200" target="_blank"><span style="color: #6699cc; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif;"><span style="background-color: white; font-size: 10.8px;"><b>Ron Howard</b></span></span> February 29,2016</a>:<br />
<br />
<a href="http://pastebin.com/33XH625e">http://pastebin.com/33XH625e</a>MrLithiumhttp://www.blogger.com/profile/03103332416584764514noreply@blogger.com0