So, I've been sitting here watching the Spam moderations page and the mod-bombs page post-election thinking someone's gonna get butthurt and abuse moderation. It has yet to happen. Kudos to everyone for managing to restrain themselves. You guys make me fucking proud, so I'll leave you with this little bit of humor on an otherwise tense day:
Britain: Brexit is the most shocking thing a country will do this year.
America: Hold my beer...
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
/*
https://technet.microsoft.com/en-us/windows/release-info
This site contains latest version info etc.,
To be compared to CurrentBuild and UBR registry entries contained in:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion
LastAutoAppUpdateSearchSuccessTime in:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate
LastScheduledRetryTime in above.
*/
;Parameters
;MS Win10 release info page https://technet.microsoft.com/en-us/windows/release-info
LatestUpdateURL := "https://winrelinfo.blob.core.windows.net/winrelinfo/en-US.html"
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", LatestUpdateURL, true)
whr.Send()
whr.WaitForResponse()
releaseinfo := whr.ResponseText
RegRead, ReleaseId, HKLM, SOFTWARE\Microsoft\Windows NT\CurrentVersion, ReleaseId
RegRead, CurrentBuild, HKLM, SOFTWARE\Microsoft\Windows NT\CurrentVersion, CurrentBuild
RegRead, UBR, HKLM, SOFTWARE\Microsoft\Windows NT\CurrentVersion, UBR
needle := "\s*" . ReleaseId . "\s*\s*\s*(" . CurrentBuild . "\." . UBR . ")\s*"
found := RegExMatch(releaseinfo, needle)
if (found) {
MsgBox % "Your version of Windows 10: " . ReleaseId . "`nOS Build: " . CurrentBuild . "." . UBR . "`nThis is the latest version."
}
Else {
MsgBox % "There may be updates available! Please turn on Windows Update Service!"
}
;UrlDownloadToFile, %LatestUpdateURL%, %A_ScriptDir%\release-info.html
;FileDelete, %A_ScriptDir%\release-info.html
;First, find CurrentBuild.UBR preceded by ReleaseId, if can't be found alert user!
;Second, check that UBR and CurrentBuild.xxx are the same!
; If same, alert user that they are up to date.
; If different, get KB# (or numbers, this could read the entried until it finds the UBR number) and give user a link so that they may read about the future update. Ask if user would like to update now, remind me later, or not right now
; If user decides to update, turn on windows update service.
; How do we know when to disable that pesky service? After the reboot? Perhaps add a script to the startup folder / registry that will disable windows update on the reboot.
===========================
No, I'm not the script writer. The guy who wrote it gave it to me. Here it is. And, I don't have a Win10 machine to test it on. No attribution - I guess he's AC.
So, my network has done some strange things over the years. We're all familiar with Cat5 cabling. You plug the RJ45 connecter into two machines, and they are supposed to communicate. Way back, you had to have a crossover cable to make some couplings work, but that's pretty much ancient history now. The machines generally sense whether there is a crossover present now, and compensate.
But, recently, a laptop was plugged into the network with some random cable laying around. They all look pretty much the same, and no one can say where any particular cord came from. Most of those six foot yellow cables are relatively new, and come with almost any machine or card you buy nowadays. But, there are the putrid green ones, the gray ones, black, brown. Do the colors mean anything? Hell, I don't know. But, the laptop was plugged into my gigabyte network, and things just crawled.
So, I did some reading. Cat5 has been around for a long time. They predate any effort on my part to do any networking. The Cat5 specification has undergone changes several times now, because the old standards are just not fast enough.
Obviously, we are into the gigabyte range of speeds now. But, take an ancient ethernet cable, plut it into a typical hub, and the hub automatically changes the speed of ALL THE CONNECTIONS to that slower speed.
Thus, plugging the laptop into the hub with that ancient cable dragged my entire network down to less than 10/100 speeds. Files were transferring at about 4 M/s on my gigabyte network.
So, after some (minimal) research, I decided to just upgrade everything. Shopped around a little, and decided on Newegg's lower cost offerings. Ordered a dozen 6 footers, a couple 12, 25, 30, and 50 foot cables, thought a little more, and ordered a couple more. Got a big box of cables in last week, all of them purple.
One cable at a time, I replaced every single Cat5 cable in the house. And, there are some short cables lying near the router and the hub, awaiting the odd people who show up, and want to plug into the network. (of course only odd people show up at my house, what did you expect?)
Now - what to do with that mess of old cables?
I'm thinking about divvying them out among people that I don't like very much. Let one or more of them try to figure out why his/her network is suddenly crawling at less than ten meg. I can tell them that I only upgraded to Cat6 because the cables are a pretty purple color. They'll believe stupid stuff like that.
Underemployment could be a society-side solution to class disparity caused by systemic unemployment. Think about mechanization especially: a single factory may have had 100x as many workers before robots, but all the remaining workers are still working full hours. Perhaps instead of concentrating that wealth in the investors, we could keep more like 1/2 of the workers earning the same wages for fewer hours. That way we could maintain a wider income distribution while improving overall quality of life. But there is a fundamental problem that may be intractable: human greed. The investors want the maximum return on investment for the robots they bought, whether or not that return comes at somebody else's expense. And the individual worker, with the opportunity to work 30 hrs/week for the same wage as their former 40 hrs/week, would usually rather keep their hours and earn 33% more.
While there's a lot more written in this discussion thread, I'll stop with that.
There's this idea that work is broken. We're working too much, paid too little, and employers are fat cats leeching off our work. So we're going to force everyone to work less so that these employers have to pay us more. There's a certain sense to it. Lowering the hours worked per week constrains the supply of labor and hence, in a vacuum would raise to some degree the price of labor.
But then we start getting into the many, many problems. The most obvious is simply that work does things and makes stuff. The less we work, then the less things we do and the less stuff we make. This is a problem in a variety of ways.
It means we're doing considerably less overall - the virtues of that level of underemployment aren't enough to compensate for the drawbacks. And I doubt it's a great idea to slow down the rate of progress just for some labor policy. For example, I'd much rather we at least get the developing world up to developed world status and some major progress on human longevity done before we dial back.
That output of work also pays for our labor. The less we do, then the less output there is to pay for our labor.
We also have large fixed costs per worker in the developed world. The less labor per worker the more these costs dominate. That means yet another way employers end up employing less people.
Moving on, another key observation here is that work (not effort!) and employment are not fixed. We can always find more stuff to do, we can find ways to do that stuff better, we can start new businesses, or change existing ones. This leads to another observation. Why curb supply of labor when we can increase demand for labor? Well, that would require throwing bones to employers such as reduced minimum wage; easier employment termination; lower thresholds to business creation, growth, and shrinkage; lower taxes; and reduced mandatory benefits.
One notices a striking component of these work reduction proposals. The employer is the enemy often labeled as "human greed" (as in meustrus's comment) or as the impersonal "investor". Somehow it's not human greed to pass laws to force employers to pay you the same for less work (on top of all the other wealth extraction ploys out there) even though you're pursuing your own benefit at the expense of the employer and threatening the viability of the whole system. But it is human greed just to be an employer. So of course, throwing bones to employers is unthinkable and we are left with this dysfunctional spiral.
Who's more important? A horde of underemployed workers who can't do stuff for themselves? Or the relatively few employers who keep everything going? Sure, you need workers, but when you're in an underemployed situation, there are too many of them and not enough employers.
And of course, the idea of forcing this change on everyone, the unspoken iron fist in this discussion, is completely ignored. In a free society, we certainly should have the choice to work harder to better ourselves and circumstances.
So here's my take on the whole matter. Breaking work further will not make it better, particularly in a world which already has attractive substitute goods for your labor: developing world labor and automation. The perverse and stilted ideology behind this proposal will not consider the obvious alternative, making employing people more attractive.
The proposed benefits of labor reduction are laughable such as income equality (devaluing labor hurts the poor far more than the rich making income inequality worse), inflation prevention (making stuff that people pay money for is deflationary so forcing people to make less stuff is inflationary), better quality of life (why do I need to work less to make your life better? Perhaps, you ought to unilaterally work less? I'm not holding you back), and of course fighting the good fight against human greed (human greed has always been with us, why is it suddenly more of a problem now than the past?).
So how about we fix what actually is broken or do something positive rather than entertain proposals that aren't even pointed in the right direction to fix anything or help anyone?
The FBI could not review all of the Hillary Clinton emails under investigation because: The Clintons’ Apple personal server used for Hillary Clinton work email could not be located for the FBI to examine.
- An Apple MacBook laptop and thumb drive that contained Hillary Clinton email archives were lost, and the FBI couldn’t examine them.
- 2 BlackBerry devices provided to FBI didn’t have their SIM or SD data cards.
- 13 Hillary Clinton personal mobile devices were lost, discarded or destroyed. Therefore, the FBI couldn’t examine them.
- Various server backups were deleted over time, so the FBI couldn’t examine them.
- After State Dept. notified Hillary Clinton her records would be sought by House Benghazi Committee, copies of her email on the laptops of her attorneys Cheryl Mills and Heather Samuelson were wiped with BleachBit, and the FBI couldn’t review them.
- After her emails were subpoenaed, Hillary Clinton’s email archive was also permanently deleted from her then-server “PRN” with BleachBit, and the FBI couldn’t review it.
- Also after the subpoena, backups of the PRN server were manually deleted.
Notice the "after the subpoena" stuff at the end of the list. That's destruction of evidence which is likely yet another felony for whoever did that. After that, the report lists all classified information that was discovered from what emails the FBI investigators were able to reconstruct; a list of Clinton players involved in the scandal; and a timeline. The timeline repeatedly lists concerns raised about the email setup, security training for Clinton and her staff, events like destruction of evidence, and hacking attempts, some which were successful, into State Department affairs and personal email accounts of State Department officials and Clinton associates.
Thus, we have strong evidence for gross negligence, which is a felony even if it is not intentional, evidence of coverup of something, and a presidential candidate with a remarkable disregard for the responsibilities of her duties.
I've got the article nearly written up (working on the last sections now), and it weighs in close to 3k words. If you're a ham radio operator or have soldering skills, there's also a plea for help as I'm interesting in using AX.25 for future examples but I don't have the necessary equipment or resources to acquire it at this moment.
Feel free to look at the code here: https://github.com/SoylentNews/retromalware
Let me walk you through the basics of Frustration and Mortification, ehem, I mean Fan and Mortar Geysers. These two erupt together and when active, the intervals typically fall every 3-7 days. Here's a labeled photo for reference.
Normally, Fan goes through cycles in which its vents turn on in a certain order. After a quiet period (during which Mortar may splash lightly from Bottom or Lower), River Vent turns on. River actually erupts horizontally, away from your perspective in the photo above - so figuring out when River is on either involves using heavy steam as a proxy or walking 100 meters up the path to the bridge where you can get a clear view of it. High and Gold begin to splash and are considered on when the splashing becomes nearly constant. Finally, Angle turns on with a swishing sound. The cycle ends when River turns off again - a single cycle can be anywhere from 20 to 70 minutes, typically.
Every once and a while, an event cycle occurs, simply meaning something different happens. Here's where things get complicated. Main Vent is not a friend to Fan's other vents, and splashing in Main Vent often leads to pauses in activity from the other event. Here's a timeline for what we might consider an "ideal" event cycle:
Main Vent splashing.....River Vent on.....River Vent pause.....River Vent on.....River Vent pause.....River Vent on.....no more Main Vent splashing.....High/Gold Vents on.....Angle Vent on
The final component needed for an eruption is called lock. In lock, High Vent erupts steadily to a height of 1.5-2 meters (5-6 feet), and Gold/Angle Vents splash continuously. An eruption may be initiated from East or Main Vent, or in Upper Mortar. Soon all the vents take off. Upper Mortar reaches 23 meters (80 feet), Main Vent hits over 30 meters (100 feet), and East Vent shows off an impressive horizontal throw that will absolutely get you wet. The following photos are from a particularly strong eruption on August 12th, 2014. Note the drenched people and the beautiful jets from Upper Mortar.
Anyway, back to my story. I came as an event cycle petered out and say on a bench. About 9am after watching nearby Riverside go off, we noticed a pause with almost all activity, particularly that of the River Vent on Fan Geyser, going quiet. One of my cowatchers stated that the pause was rather long, meaning it might just lead to an eruption later that day. He advised I stick around. Despite getting hungry, I decided to heed his advice. Just before 10am, one of the observers saw a bit of water splash in the Main Vent. I was thinking, dude, it was just a little splash. About 15 minutes later it did it again.
Now, you might ask yourself, what's the draw in watching a pile of rock emit steam and water for three hours? Even when the geysers aren't doing the real thing, there's a lot of interplay and activity. It's always doing something. Fan is the main performer here with six major vents running in a line across its mound. River Vent faces the Firehole River, of course, and provides the main indicator of the "event cycle" described above. The three vents across the top, Top, Gold, and Angle Vent all spurt steaming water and often rob power from one another. Then opposite the river are Main and finally East Vent which are the main soakers of the audience when a major eruption happens.
Meanwhile Mortar Geyser groans and hisses ominously. You could always tell when the Upper Mortar Vent was steaming because of the deep growl it emitted while nearby Bottom Mortar Vent would near continuously hiss even during the quiet periods.
So there was always something going on. After 10am, the Fan Geyser vents on the top (Top, Gold, and Angle) resumed activity and soon, we spotted the second singular splash in Fan's Main. That was faithfully radioed in at 10:15am. By this time, I noticed that we were building up a small crowd. Soon after, Top started erupting continually indicating considerable activity. But the other two by it, Gold and Angle would only erupt fitfully with Angle having very little activity. As noted above, we were now looking for "lock" all three vents going simultaneously and continually. The crowd kept building up to I'd guess around 100 people.
Some point after 10:30am, we got a key escalation with water splashing out of the Upper Mortar cone. Shortly after that, lock happened. That's about when the build up of the video above started. You can see Mortar Geyser on the left side with sporadic splashing and the mound of Fan Geyser behind and to the right with steam shooting into the river from the River Vent and the three vents on top steadily erupting to a few feet (the "lock" of course). Then there are larger spurts from the Upper Mortar Vent which shortly cascade into a full-blown eruption from every vent in the video (at 10:48). I was between the spot of the video and the main brunt of the East Fan Vent so I got wet, but didn't get a face full of water. People cleared out of that space quickly.
In addition to my parka, I also wore a hat. That turned out to be a great idea since I would have gotten completely soaked otherwise. The eruptions are hard to video because they generate a huge cloud of steam (and silica rich spray too, hard on lens!) quickly, hiding the details. But moving around, I could see the vents and where the water eventually fell.
Just as with the build up, there was some weird dynamics with power shifting between the two geysers. One geyser would surge with its vents and the other fade a little, back and forth.
I think the build up and eruptive dynamics make this one of the most spectacular geysers in the world though you have to be very lucky to see it erupt, if you don't have the time to sit around to wait on it. The local Old Faithful Visitors Center would have information on recent Fan and Mortar activity and they would be good to consult, if you're just traveling through.
After about ten minutes, the eruption stopped and the geysers entered a heavy steam phase. At that point, I headed off to bed.
Related: check out this awesome video.
Another day, another 500 miles, and another round of hacking. I'm dedicating an hour to this on and off over the weekend.
Right now, I've got an accurate int to hex function written in assembler for printing values of registers, an interrupt handler + installation, and some test code. Right now, I ran into a snag with calling the TSR function on int 21h, but I think its due to lack of sleep. Last few days has been very very stressful and I'm only picking at this as I go. I think I'm going to have to add a section to the next article talking about position-dependent vs. position-independent code as it will become important when we go to install into RAM.
Wish some of the documentation though on the specifics of how TSRs work internally survived; a lot say you have to use small memory model even though I have example code of tiny model TSRs.