List of Trusted Honest binary options brokers: Regulated ...

What's new in macOS 11, Big Sur!

It's that time of year again, and we've got a new version of macOS on our hands! This year we've finally jumped off the 10.xx naming scheme and now going to 11! And with that, a lot has changed under the hood in macOS.
As with previous years, we'll be going over what's changed in macOS and what you should be aware of as a macOS and Hackintosh enthusiast.

Has Nvidia Support finally arrived?

Sadly every year I have to answer the obligatory question, no there is no new Nvidia support. Currently Nvidia's Kepler line is the only natively supported gen.
However macOS 11 makes some interesting changes to the boot process, specifically moving GPU drivers into stage 2 of booting. Why this is relevant is due to Apple's initial reason for killing off Web Drivers: Secure boot. What I mean is that secure boot cannot work with Nvidia's Web Drivers due to how early Nvidia's drivers have to initialize at, and thus Apple refused to sign the binaries. With Big Sur, there could be 3rd party GPUs however the chances are still super slim but slightly higher than with 10.14 and 10.15.

What has changed on the surface

A whole new iOS-like UI

Love it or hate it, we've got a new UI more reminiscent of iOS 14 with hints of skeuomorphism(A somewhat subtle call back to previous mac UIs which have neat details in the icons)
You can check out Apple's site to get a better idea:

macOS Snapshotting

A feature initially baked into APFS back in 2017 with the release of macOS 10.13, High Sierra, now macOS's main System volume has become both read-only and snapshotted. What this means is:
However there are a few things to note with this new enforcement of snapshotting:

What has changed under the hood

Quite a few things actually! Both in good and bad ways unfortunately.

New Kernel Cache system: KernelCollections!

So for the past 15 years, macOS has been using the Prelinked Kernel as a form of Kernel and Kext caching. And with macOS Big Sur's new Read-only, snapshot based system volume, a new version of caching has be developed: KernelCollections!
How this differs to previous OSes:

Secure Boot Changes

With regards to Secure Boot, now all officially supported Macs will also now support some form of Secure Boot even if there's no T2 present. This is now done in 2 stages:
While technically these security features are optional and can be disabled after installation, many features including OS updates will no longer work reliably once disabled. This is due to the heavy reliance of snapshots for OS updates, as mentioned above and so we highly encourage all users to ensure at minimum SecureBootModel is set to Default or higher.

No more symbols required

This point is the most important part, as this is what we use for kext injection in OpenCore. Currently Apple has left symbols in place seemingly for debugging purposes however this is a bit worrying as Apple could outright remove symbols in later versions of macOS. But for Big Sur's cycle, we'll be good on that end however we'll be keeping an eye on future releases of macOS.

New Kernel Requirements

With this update, the AvoidRuntimeDefrag Booter quirk in OpenCore broke. Because of this, the macOS kernel will fall flat when trying to boot. Reason for this is due to cpu_count_enabled_logical_processors requiring the MADT (APIC) table, and so OpenCore will now ensure this table is made accessible to the kernel. Users will however need a build of OpenCore 0.6.0 with commit bb12f5f or newer to resolve this issue.
Additionally, both Kernel Allocation requirements and Secure Boot have also broken with Big Sur due to the new caching system discussed above. Thankfully these have also been resolved in OpenCore 0.6.3.
To check your OpenCore version, run the following in terminal:
nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version
If you're not up-to-date and running OpenCore 0.6.3+, see here on how to upgrade OpenCore: Updating OpenCore, Kexts and macOS

Broken Kexts in Big Sur

Unfortunately with the aforementioned KernelCollections, some kexts have unfortunately broken or have been hindered in some way. The main kexts that currently have issues are anything relying on Lilu's userspace patching functionality:
Thankfully most important kexts rely on kernelspace patcher which is now in fact working again.

MSI Navi installer Bug Resolved

For those receiving boot failures in the installer due to having an MSI Navi GPU installed, macOS Big Sur has finally resolved this issue!

New AMD OS X Kernel Patches

For those running on AMD-Based CPUs, you'll want to also update your kernel patches as well since patches have been rewritten for macOS Big Sur support:

Other notable Hackintosh issues

Several SMBIOS have been dropped

Big Sur dropped a few Ivy Bridge and Haswell based SMBIOS from macOS, so see below that yours wasn't dropped:
If your SMBIOS was supported in Catalina and isn't included above, you're good to go! We also have a more in-depth page here: Choosing the right SMBIOS
For those wanting a simple translation for their Ivy and Haswell Machines:

Dropped hardware

Currently only certain hardware has been officially dropped:

Extra long install process

Due to the new snapshot-based OS, installation now takes some extra time with sealing. If you get stuck at Forcing CS_RUNTIME for entitlement, do not shutdown. This will corrupt your install and break the sealing process, so please be patient.

X79 and X99 Boot issues

With Big Sur, IOPCIFamily went through a decent rewriting causing many X79 and X99 boards to fail to boot as well as panic on IOPCIFamily. To resolve this issue, you'll need to disable the unused uncore bridge:
You can also find prebuilts here for those who do not wish to compile the file themselves:

New RTC requirements

With macOS Big Sur, AppleRTC has become much more picky on making sure your OEM correctly mapped the RTC regions in your ACPI tables. This is mainly relevant on Intel's HEDT series boards, I documented how to patch said RTC regions in OpenCorePkg:
For those having boot issues on X99 and X299, this section is super important; you'll likely get stuck at PCI Configuration Begin. You can also find prebuilts here for those who do not wish to compile the file themselves:

SATA Issues

For some reason, Apple removed the AppleIntelPchSeriesAHCI class from AppleAHCIPort.kext. Due to the outright removal of the class, trying to spoof to another ID (generally done by SATA-unsupported.kext) can fail for many and create instability for others. * A partial fix is to block Big Sur's AppleAHCIPort.kext and inject Catalina's version with any conflicting symbols being patched. You can find a sample kext here: Catalina's patched AppleAHCIPort.kext * This will work in both Catalina and Big Sur so you can remove SATA-unsupported if you want. However we recommend setting the MinKernel value to 20.0.0 to avoid any potential issues.

Legacy GPU Patches currently unavailable

Due to major changes in many frameworks around GPUs, those using ASentientBot's legacy GPU patches are currently out of luck. We either recommend users with these older GPUs stay on Catalina until further developments arise or buy an officially supported GPU

What’s new in the Hackintosh scene?

Dortania: a new organization has appeared

As many of you have probably noticed, a new organization focusing on documenting the hackintoshing process has appeared. Originally under my alias, Khronokernel, I started to transition my guides over to this new family as a way to concentrate the vast amount of information around Hackintoshes to both ease users and give a single trusted source for information.
We work quite closely with the community and developers to ensure information's correct, up-to-date and of the best standards. While not perfect in every way, we hope to be the go-to resource for reliable Hackintosh information.
And for the times our information is either outdated, missing context or generally needs improving, we have our bug tracker to allow the community to more easily bring attention to issues and speak directly with the authors:

Dortania's Build Repo

For those who either want to run the lastest builds of a kext or need an easy way to test old builds of something, Dortania's Build Repo is for you!
Kexts here are built right after commit, and currently supports most of Acidanthera's kexts and some 3rd party devs as well. If you'd like to add support for more kexts, feel free to PR: Build Repo source

True legacy macOS Support!

As of OpenCore's latest versioning, 0.6.2, you can now boot every version of x86-based builds of OS X/macOS! A huge achievement on @Goldfish64's part, we now support every major version of kernel cache both 32 and 64-bit wise. This means machines like Yonah and newer should work great with OpenCore and you can even relive the old days of OS X like OS X 10.4!
And Dortania guides have been updated accordingly to accommodate for builds of those eras, we hope you get as much enjoyment going back as we did working on this project!

Intel Wireless: More native than ever!

Another amazing step forward in the Hackintosh community, near-native Intel Wifi support! Thanks to the endless work on many contributors of the OpenIntelWireless project, we can now use Apple's built-in IO80211 framework to have near identical support to those of Broadcom wireless cards including features like network access in recovery and control center support.
For more info on the developments, please see the itlwm project on GitHub: itlwm

Clover's revival? A frankestien of a bootloader

As many in the community have seen, a new bootloader popped up back in April of 2019 called OpenCore. This bootloader was made by the same people behind projects such as Lilu, WhateverGreen, AppleALC and many other extremely important utilities for both the Mac and Hackintosh community. OpenCore's design had been properly thought out with security auditing and proper road mapping laid down, it was clear that this was to be the next stage of hackintoshing for the years we have left with x86.
And now lets bring this back to the old crowd favorite, Clover. Clover has been having a rough time of recent both with the community and stability wise, with many devs jumping ship to OpenCore and Clover's stability breaking more and more with C++ rewrites, it was clear Clover was on its last legs. Interestingly enough, the community didn't want Clover to die, similarly to how Chameleon lived on through Enoch. And thus, we now have the Clover OpenCore integration project(Now merged into Master with r5123+).
The goal is to combine OpenCore into Clover allowing the project to live a bit longer, as Clover's current state can no longer boot macOS Big Sur or older versions of OS X such as 10.6. As of writing, this project seems to be a bit confusing as there seems to be little reason to actually support Clover. Many of Clover's properties have feature-parity in OpenCore and trying to combine both C++ and C ruins many of the features and benefits either languages provide. The main feature OpenCore does not support is macOS-only ACPI injection, however the reasoning is covered here: Does OpenCore always inject SMBIOS and ACPI data into other OSes?

Death of x86 and the future of Hackintoshing

With macOS Big Sur, a big turning point is about to happen with Apple and their Macs. As we know it, Apple will be shifting to in-house designed Apple Silicon Macs(Really just ARM) and thus x86 machines will slowly be phased out of their lineup within 2 years.
What does this mean for both x86 based Macs and Hackintoshing in general? Well we can expect about 5 years of proper OS support for the iMac20,x series which released earlier this year with an extra 2 years of security updates. After this, Apple will most likely stop shipping x86 builds of macOS and hackintoshing as we know it will have passed away.
For those still in denial and hope something like ARM Hackintoshes will arrive, please consider the following:
So while we may be heart broken the journey is coming to a stop in the somewhat near future, hackintoshing will still be a time piece in Apple's history. So enjoy it now while we still can, and we here at Dortania will still continue supporting the community with our guides till the very end!

Getting ready for macOS 11, Big Sur

This will be your short run down if you skipped the above:
For the last 2, see here on how to update: Updating OpenCore, Kexts and macOS
In regards to downloading Big Sur, currently gibMacOS in macOS or Apple's own software updater are the most reliable methods for grabbing the installer. Windows and Linux support is still unknown so please stand by as we continue to look into this situation, macrecovery.py may be more reliable if you require the recovery package.
And as with every year, the first few weeks to months of a new OS release are painful in the community. We highly advise users to stay away from Big Sur for first time installers. The reason is that we cannot determine whether issues are Apple related or with your specific machine, so it's best to install and debug a machine on a known working OS before testing out the new and shiny.
For more in-depth troubleshooting with Big Sur, see here: OpenCore and macOS 11: Big Sur
submitted by dracoflar to hackintosh [link] [comments]

Beginner's critiques of Rust

Hey all. I've been a Java/C#/Python dev for a number of years. I noticed Rust topping the StackOverflow most loved language list earlier this year, and I've been hearing good things about Rust's memory model and "free" concurrency for awhile. When it recently came time to rewrite one of my projects as a small webservice, it seemed like the perfect time to learn Rust.
I've been at this for about a month and so far I'm not understanding the love at all. I haven't spent this much time fighting a language in awhile. I'll keep the frustration to myself, but I do have a number of critiques I wouldn't mind discussing. Perhaps my perspective as a beginner will be helpful to someone. Hopefully someone else has faced some of the same issues and can explain why the language is still worthwhile.
Fwiw - I'm going to make a lot of comparisons to the languages I'm comfortable with. I'm not attempting to make a value comparison of the languages themselves, but simply comparing workflows I like with workflows I find frustrating or counterintuitive.
Docs
When I have a question about a language feature in C# or Python, I go look at the official language documentation. Python in particular does a really nice job of breaking down what a class is designed to do and how to do it. Rust's standard docs are little more than Javadocs with extremely minimal examples. There are more examples in the Rust Book, but these too are super simplified. Anything more significant requires research on third-party sites like StackOverflow, and Rust is too new to have a lot of content there yet.
It took me a week and a half of fighting the borrow checker to realize that HashMap.get_mut() was not the correct way to get and modify a map entry whose value was a non-primitive object. Nothing in the official docs suggested this, and I was actually on the verge of quitting the language over this until someone linked Tour of Rust, which did have a useful map example, in a Reddit comment. (If any other poor soul stumbles across this - you need HashMap.entry().or_insert(), and you modify the resulting entry in place using *my_entry.value = whatever. The borrow checker doesn't allow getting the entry, modifying it, and putting it back in the map.)
Pit of Success/Failure
C# has the concept of a pit of success: the most natural thing to do should be the correct thing to do. It should be easy to succeed and hard to fail.
Rust takes the opposite approach: every natural thing to do is a landmine. Option.unwrap() can and will terminate my program. String.len() sets me up for a crash when I try to do character processing because what I actually want is String.chars.count(). HashMap.get_mut() is only viable if I know ahead of time that the entry I want is already in the map, because HashMap.get_mut().unwrap_or() is a snake pit and simply calling get_mut() is apparently enough for the borrow checker to think the map is mutated, so reinserting the map entry afterward causes a borrow error. If-else statements aren't idiomatic. Neither is return.
Language philosophy
Python has the saying "we're all adults here." Nothing is truly private and devs are expected to be competent enough to know what they should and shouldn't modify. It's possible to monkey patch (overwrite) pretty much anything, including standard functions. The sky's the limit.
C# has visibility modifiers and the concept of sealing classes to prevent further extension or modification. You can get away with a lot of stuff using inheritance or even extension methods to tack on functionality to existing classes, but if the original dev wanted something to be private, it's (almost) guaranteed to be. (Reflection is still a thing, it's just understood to be dangerous territory a la Python's monkey patching.) This is pretty much "we're all professionals here"; I'm trusted to do my job but I'm not trusted with the keys to the nukes.
Rust doesn't let me so much as reference a variable twice in the same method. This is the functional equivalent of being put in a straitjacket because I can't be trusted to not hurt myself. It also means I can't do anything.
The borrow checker
This thing is legendary. I don't understand how it's smart enough to theoretically track data usage across threads, yet dumb enough to complain about variables which are only modified inside a single method. Worse still, it likes to complain about variables which aren't even modified.
Here's a fun example. I do the same assignment twice (in a real-world context, there are operations that don't matter in between.) This is apparently illegal unless Rust can move the value on the right-hand side of the assignment, even though the second assignment is technically a no-op.
//let Demo be any struct that doesn't implement Copy. let mut demo_object: Option = None; let demo_object_2: Demo = Demo::new(1, 2, 3); demo_object = Some(demo_object_2); demo_object = Some(demo_object_2); 
Querying an Option's inner value via .unwrap and querying it again via .is_none is also illegal, because .unwrap seems to move the value even if no mutations take place and the variable is immutable:
let demo_collection: Vec = Vec::::new(); let demo_object: Option = None; for collection_item in demo_collection { if demo_object.is_none() { } if collection_item.value1 > demo_object.unwrap().value1 { } } 
And of course, the HashMap example I mentioned earlier, in which calling get_mut apparently counts as mutating the map, regardless of whether the map contains the key being queried or not:
let mut demo_collection: HashMap = HashMap::::new(); demo_collection.insert(1, Demo::new(1, 2, 3)); let mut demo_entry = demo_collection.get_mut(&57); let mut demo_value: &mut Demo; //we can't call .get_mut.unwrap_or, because we can't construct the default //value in-place. We'd have to return a reference to the newly constructed //default value, which would become invalid immediately. Instead we get to //do things the long way. let mut default_value: Demo = Demo::new(2, 4, 6); if demo_entry.is_some() { demo_value = demo_entry.unwrap(); } else { demo_value = &mut default_value; } demo_collection.insert(1, *demo_value); 
None of this code is especially remarkable or dangerous, but the borrow checker seems absolutely determined to save me from myself. In a lot of cases, I end up writing code which is a lot more verbose than the equivalent Python or C# just trying to work around the borrow checker.
This is rather tongue-in-cheek, because I understand the borrow checker is integral to what makes Rust tick, but I think I'd enjoy this language a lot more without it.
Exceptions
I can't emphasize this one enough, because it's terrifying. The language flat up encourages terminating the program in the event of some unexpected error happening, forcing me to predict every possible execution path ahead of time. There is no forgiveness in the form of try-catch. The best I get is Option or Result, and nobody is required to use them. This puts me at the mercy of every single crate developer for every single crate I'm forced to use. If even one of them decides a specific input should cause a panic, I have to sit and watch my program crash.
Something like this came up in a Python program I was working on a few days ago - a web-facing third-party library didn't handle a web-related exception and it bubbled up to my program. I just added another except clause to the try-except I already had wrapped around that library call and that took care of the issue. In Rust, I'd have to find a whole new crate because I have no ability to stop this one from crashing everything around it.
Pushing stuff outside the standard library
Rust deliberately maintains a small standard library. The devs are concerned about the commitment of adding things that "must remain as-is until the end of time."
This basically forces me into a world where I have to get 50 billion crates with different design philosophies and different ways of doing things to play nicely with each other. It forces me into a world where any one of those crates can and will be abandoned at a moment's notice; I'll probably have to find replacements for everything every few years. And it puts me at the mercy of whoever developed those crates, who has the language's blessing to terminate my program if they feel like it.
Making more stuff standard would guarantee a consistent design philosophy, provide stronger assurance that things won't panic every three lines, and mean that yes, I can use that language feature as long as the language itself is around (assuming said feature doesn't get deprecated, but even then I'd have enough notice to find something else.)
Testing is painful
Tests are definitively second class citizens in Rust. Unit tests are expected to sit in the same file as the production code they're testing. What?
There's no way to tag tests to run groups of tests later; tests can be run singly, using a wildcard match on the test function name, or can be ignored entirely using [ignore]. That's it.
Language style
This one's subjective. I expect to take some flak for this and that's okay.
submitted by crab1122334 to rust [link] [comments]

Red Hat OpenShift Container Platform Instruction Manual for Windows Powershell

Introduction to the manual
This manual is made to guide you step by step in setting up an OpenShift cloud environment on your own device. It will tell you what needs to be done, when it needs to be done, what you will be doing and why you will be doing it, all in one convenient manual that is made for Windows users. Although if you'd want to try it on Linux or MacOS we did add the commands necesary to get the CodeReady Containers to run on your operating system. Be warned however there are some system requirements that are necessary to run the CodeReady Containers that we will be using. These requirements are specified within chapter Minimum system requirements.
This manual is written for everyone with an interest in the Red Hat OpenShift Container Platform and has at least a basic understanding of the command line within PowerShell on Windows. Even though it is possible to use most of the manual for Linux or MacOS we will focus on how to do this within Windows.
If you follow this manual you will be able to do the following items by yourself:
● Installing the CodeReady Containers
● Updating OpenShift
● Configuring a CodeReady Container
● Configuring the DNS
● Accessing the OpenShift cluster
● Deploying the Mediawiki application
What is the OpenShift Container platform?
Red Hat OpenShift is a cloud development Platform as a Service (PaaS). It enables developers to develop and deploy their applications on a cloud infrastructure. It is based on the Kubernetes platform and is widely used by developers and IT operations worldwide. The OpenShift Container platform makes use of CodeReady Containers. CodeReady Containers are pre-configured containers that can be used for developing and testing purposes. There are also CodeReady Workspaces, these workspaces are used to provide any member of the development or IT team with a consistent, secure, and zero-configuration development environment.
The OpenShift Container Platform is widely used because it helps the programmers and developers make their application faster because of CodeReady Containers and CodeReady Workspaces and it also allows them to test their application in the same environment. One of the advantages provided by OpenShift is the efficient container orchestration. This allows for faster container provisioning, deploying and management. It does this by streamlining and automating the automation process.
What knowledge is required or recommended to proceed with the installation?
To be able to follow this manual some knowledge is mandatory, because most of the commands are done within the Command Line interface it is necessary to know how it works and how you can browse through files/folders. If you either don’t have this basic knowledge or have trouble with the basic Command Line Interface commands from PowerShell, then a cheat sheet might offer some help. We recommend the following cheat sheet for windows:
Https://www.sans.org/security-resources/sec560/windows\_command\_line\_sheet\_v1.pdf
Another option is to read through the operating system’s documentation or introduction guides. Though the documentation can be overwhelming by the sheer amount of commands.
Microsoft: https://docs.microsoft.com/en-us/windows-serveadministration/windows-commands/windows-commands
MacOS
Https://www.makeuseof.com/tag/mac-terminal-commands-cheat-sheet/
Linux
https://ubuntu.com/tutorials/command-line-for-beginners#2-a-brief-history-lesson https://www.guru99.com/linux-commands-cheat-sheet.html
http://cc.iiti.ac.in/docs/linuxcommands.pdf
Aside from the required knowledge there are also some things that can be helpful to know just to make the use of OpenShift a bit simpler. This consists of some general knowledge on PaaS like Dockers and Kubernetes.
Docker https://www.docker.com/
Kubernetes https://kubernetes.io/

System requirements

Minimum System requirements

The minimum system requirements for the Red Hat OpenShift CodeReady Containers has the following minimum hardware:
Hardware requirements
Code Ready Containers requires the following system resources:
● 4 virtual CPU’s
● 9 GB of free random-access memory
● 35 GB of storage space
● Physical CPU with Hyper-V (intel) or SVM mode (AMD) this has to be enabled in the bios
Software requirements
The minimum system requirements for the Red Hat OpenShift CodeReady Containers has the following minimum operating system requirements:
Microsoft Windows
On Microsoft Windows, the Red Hat OpenShift CodeReady Containers requires the Windows 10 Pro Fall Creators Update (version 1709) or newer. CodeReady Containers does not work on earlier versions or other editions of Microsoft Windows. Microsoft Windows 10 Home Edition is not supported.
macOS
On macOS, the Red Hat OpenShift CodeReady Containers requires macOS 10.12 Sierra or newer.
Linux
On Linux, the Red Hat OpenShift CodeReady Containers is only supported on Red Hat Enterprise Linux/CentOS 7.5 or newer and on the latest two stable Fedora releases.
When using Red Hat Enterprise Linux, the machine running CodeReady Containers must be registered with the Red Hat Customer Portal.
Ubuntu 18.04 LTS or newer and Debian 10 or newer are not officially supported and may require manual set up of the host machine.

Required additional software packages for Linux

The CodeReady Containers on Linux require the libvirt and Network Manager packages to run. Consult the following table to find the command used to install these packages for your Linux distribution:
Table 1.1 Package installation commands by distribution
Linux Distribution Installation command
Fedora Sudo dnf install NetworkManager
Red Hat Enterprise Linux/CentOS Su -c 'yum install NetworkManager'
Debian/Ubuntu Sudo apt install qemu-kvm libvirt-daemonlibvirt-daemon-system network-manage

Installation

Getting started with the installation

To install CodeReady Containers a few steps must be undertaken. Because an OpenShift account is necessary to use the application this will be the first step. An account can be made on “https://www.openshift.com/”, where you need to press login and after that select the option “Create one now”
After making an account the next step is to download the latest release of CodeReady Containers and the pulled secret on “https://cloud.redhat.com/openshift/install/crc/installer-provisioned”. Make sure to download the version corresponding to your platform and/or operating system. After downloading the right version, the contents have to be extracted from the archive to a location in your $PATH. The pulled secret should be saved because it is needed later.
The command line interface has to be opened before we can continue with the installation. For windows we will use PowerShell. All the commands we use during the installation procedure of this guide are going to be done in this command line interface unless stated otherwise. To be able to run the commands within the command line interface, use the command line interface to go to the location in your $PATH where you extracted the CodeReady zip.
If you have installed an outdated version and you wish to update, then you can delete the existing CodeReady Containers virtual machine with the $crc delete command. After deleting the container, you must replace the old crc binary with a newly downloaded binary of the latest release.
C:\Users\[username]\$PATH>crc delete 
When you have done the previous steps please confirm that the correct and up to date crc binary is in use by checking it with the $crc version command, this should provide you with the version that is currently installed.
C:\Users\[username]\$PATH>crc version 
To set up the host operating system for the CodeReady Containers virtual machine you have to run the $crc setup command. After running crc setup, crc start will create a minimal OpenShift 4 cluster in the folder where the executable is located.
C:\Users\[username]>crc setup 

Setting up CodeReady Containers

Now we need to set up the new CodeReady Containers release with the $crc setup command. This command will perform the operations necessary to run the CodeReady Containers and create the ~/.crc directory if it did not previously exist. In the process you have to supply your pulled secret, once this process is completed you have to reboot your system. When the system has restarted you can start the new CodeReady Containers virtual machine with the $crc start command. The $crc start command starts the CodeReady virtual machine and OpenShift cluster.
You cannot change the configuration of an existing CodeReady Containers virtual machine. So if you have a CodeReady Containers virtual machine and you want to make configuration changes you need to delete the virtual machine with the $crc delete command and create a new virtual machine and start that one with the configuration changes. Take note that deleting the virtual machine will also delete the data stored in the CodeReady Containers. So, to prevent data loss we recommend you save the data you wish to keep. Also keep in mind that it is not necessary to change the default configuration to start OpenShift.
C:\Users\[username]\$PATH>crc setup 
Before starting the machine, you need to keep in mind that it is not possible to make any changes to the virtual machine. For this tutorial however it is not necessary to change the configuration, if you don’t want to make any changes please continue by starting the machine with the crc start command.
C:\Users\[username]\$PATH>crc start 
\ it is possible that you will get a Nameserver error later on, if this is the case please start it with* crc start -n 1.1.1.1

Configuration

It is not is not necessary to change the default configuration and continue with this tutorial, this chapter is here for those that wish to do so and know what they are doing. However, for MacOS and Linux it is necessary to change the dns settings.

Configuring the CodeReady Containers

To start the configuration of the CodeReady Containers use the command crc config. This command allows you to configure the crc binary and the CodeReady virtual machine. The command has some requirements before it’s able to configure. This requirement is a subcommand, the available subcommands for this binary and virtual machine are:
get, this command allows you to see the values of a configurable property
set/unset, this command can be used for 2 things. To display the names of, or to set and/or unset values of several options and parameters. These parameters being:
○ Shell options
○ Shell attributes
○ Positional parameters
view, this command starts the configuration in read-only mode.
These commands need to operate on named configurable properties. To list all the available properties, you can run the command $crc config --help.
Throughout this manual we will use the $crc config command a few times to change some properties needed for the configuration.
There is also the possibility to use the crc config command to configure the behavior of the checks that’s done by the $crc start end $crc setup commands. By default, the startup checks will stop with the process if their conditions are not met. To bypass this potential issue, you can set the value of a property that starts with skip-check or warn-check to true to skip the check or warning instead of ending up with an error.
C:\Users\[username]\$PATH>crc config get C:\Users\[username]\$PATH>crc config set C:\Users\[username]\$PATH>crc config unset C:\Users\[username]\$PATH>crc config view C:\Users\[username]\$PATH>crc config --help 

Configuring the Virtual Machine

You can use the CPUs and memory properties to configure the default number of vCPU’s and amount of memory available for the virtual machine.
To increase the number of vCPU’s available to the virtual machine use the $crc config set CPUs . Keep in mind that the default number for the CPU’s is 4 and the number of vCPU’s you wish to assign must be equal or greater than the default value.
To increase the memory available to the virtual machine, use the $crc config set memory . Keep in mind that the default number for the memory is 9216 Mebibytes and the amount of memory you wish to assign must be equal or greater than the default value.
C:\Users\[username]\$PATH>crc config set CPUs  C:\Users\[username]\$PATH>crc config set memory > 

Configuring the DNS

Window / General DNS setup

There are two domain names used by the OpenShift cluster that are managed by the CodeReady Containers, these are:
crc.testing, this is the domain for the core OpenShift services.
apps-crc.testing, this is the domain used for accessing OpenShift applications that are deployed on the cluster.
Configuring the DNS settings in Windows is done by executing the crc setup. This command automatically adjusts the DNS configuration on the system. When executing crc start additional checks to verify the configuration will be executed.

macOS DNS setup

MacOS expects the following DNS configuration for the CodeReady Containers
● The CodeReady Containers creates a file that instructs the macOS to forward all DNS requests for the testing domain to the CodeReady Containers virtual machine. This file is created at /etc/resolvetesting.
● The oc binary requires the following CodeReady Containers entry to function properly, api.crc.testing adds an entry to /etc/hosts pointing at the VM IPaddress.

Linux DNS setup

CodeReady containers expect a slightly different DNS configuration. CodeReady Container expects the NetworkManager to manage networking. On Linux the NetworkManager uses dnsmasq through a configuration file, namely /etc/NetworkManageconf.d/crc-nm-dnsmasq.conf.
To set it up properly the dnsmasq instance has to forward the requests for crc.testing and apps-crc.testing domains to “192.168.130.11”. In the /etc/NetworkManageconf.d/crc-nm-dnsmasq.conf this will look like the following:
● Server=/crc. Testing/192.168.130.11
● Server=/apps-crc. Testing/192.168.130.11

Accessing the Openshift Cluster

Accessing the Openshift web console

To gain access to the OpenShift cluster running in the CodeReady virtual machine you need to make sure that the virtual machine is running before continuing with this chapter. The OpenShift clusters can be accessed through the OpenShift web console or the client binary(oc).
First you need to execute the $crc console command, this command will open your web browser and direct a tab to the web console. After that, you need to select the htpasswd_provider option in the OpenShift web console and log in as a developer user with the output provided by the crc start command.
It is also possible to view the password for kubeadmin and developer users by running the $crc console --credentials command. While you can access the cluster through the kubeadmin and developer users, it should be noted that the kubeadmin user should only be used for administrative tasks such as user management and the developer user for creating projects or OpenShift applications and the deployment of these applications.
C:\Users\[username]\$PATH>crc console C:\Users\[username]\$PATH>crc console --credentials 

Accessing the OpenShift cluster with oc

To gain access to the OpenShift cluster with the use of the oc command you need to complete several steps.
Step 1.
Execute the $crc oc-env command to print the command needed to add the cached oc binary to your PATH:
C:\Users\[username]\$PATH>crc oc-env 
Step 2.
Execute the printed command. The output will look something like the following:
PS C:\Users\OpenShift> crc oc-env $Env:PATH = "CC:\Users\OpenShift\.crc\bin\oc;$Env:PATH" # Run this command to configure your shell: # & crc oc-env | Invoke-Expression 
This means we have to execute* the command that the output gives us, in this case that is:
C:\Users\[username]\$PATH>crc oc-env | Invoke-Expression 
\this has to be executed every time you start; a solution is to move the oc binary to the same path as the crc binary*
To test if this step went correctly execute the following command, if it returns without errors oc is set up properly
C:\Users\[username]\$PATH>.\oc 
Step 3
Now you need to login as a developer user, this can be done using the following command:
$oc login -u developer https://api.crc.testing:6443
Keep in mind that the $crc start will provide you with the password that is needed to login with the developer user.
C:\Users\[username]\$PATH>oc login -u developer https://api.crc.testing:6443 
Step 4
The oc can now be used to interact with your OpenShift cluster. If you for instance want to verify if the OpenShift cluster Operators are available, you can execute the command
$oc get co 
Keep in mind that by default the CodeReady Containers disables the functions provided by the commands $machine-config and $monitoringOperators.
C:\Users\[username]\$PATH>oc get co 

Demonstration

Now that you are able to access the cluster, we will take you on a tour through some of the possibilities within OpenShift Container Platform.
We will start by creating a project. Within this project we will import an image, and with this image we are going to build an application. After building the application we will explain how upscaling and downscaling can be used within the created application.
As the next step we will show the user how to make changes in the network route. We also show how monitoring can be used within the platform, however within the current version of CodeReady Containers this has been disabled.
Lastly, we will show the user how to use user management within the platform.

Creating a project

To be able to create a project within the console you have to login on the cluster. If you have not yet done this, this can be done by running the command crc console in the command line and logging in with the login data from before.
When you are logged in as admin, switch to Developer. If you're logged in as a developer, you don't have to switch. Switching between users can be done with the dropdown menu top left.
Now that you are properly logged in press the dropdown menu shown in the image below, from there click on create a project.
https://preview.redd.it/ytax8qocitv51.png?width=658&format=png&auto=webp&s=72d143733f545cf8731a3cca7cafa58c6507ace2
When you press the correct button, the following image will pop up. Here you can give your project a name and description. We chose to name it CodeReady with a displayname CodeReady Container.
https://preview.redd.it/vtaxadwditv51.png?width=594&format=png&auto=webp&s=e3b004bab39fb3b732d96198ed55fdd99259f210

Importing image

The Containers in OpenShift Container Platform are based on OCI or Docker formatted images. An image is a binary that contains everything needed to run a container as well as the metadata of the requirements needed for the container.
Within the OpenShift Container Platform it’s possible to obtain images in a number of ways. There is an integrated Docker registry that offers the possibility to download new images “on the fly”. In addition, OpenShift Container Platform can use third party registries such as:
- Https://hub.docker.com/
- Https://catalog.redhat.com/software/containers/search
Within this manual we are going to import an image from the Red Hat container catalog. In this example we’ll be using MediaWiki.
Search for the application in https://catalog.redhat.com/software/containers/search

https://preview.redd.it/c4mrbs0fitv51.png?width=672&format=png&auto=webp&s=f708f0542b53a9abf779be2d91d89cf09e9d2895
Navigate to “Get this image”
Follow the steps to “create a registry service account”, after that you can copy the YAML.
https://preview.redd.it/b4rrklqfitv51.png?width=1323&format=png&auto=webp&s=7a2eb14a3a1ba273b166e03e1410f06fd9ee1968
After the YAML has been copied we will go to the topology view and click on the YAML button
https://preview.redd.it/k3qzu8dgitv51.png?width=869&format=png&auto=webp&s=b1fefec67703d0a905b00765f0047fe7c6c0735b
Then we have to paste in the YAML, put in the name, namespace and your pull secret name (which you created through your registry account) and click on create.
https://preview.redd.it/iz48kltgitv51.png?width=781&format=png&auto=webp&s=4effc12e07bd294f64a326928804d9a931e4d2bd
Run the import command within powershell
$oc import-image openshift4/mediawiki --from=registry.redhat.io/openshift4/mediawiki --confirm imagestream.image.openshift.io/mediawiki imported 

Creating and managing an application

There are a few ways to create and manage applications. Within this demonstration we’ll show how to create an application from the previously imported image.

Creating the application

To create an image with the previously imported image go back to the console and topology. From here on select container image.
https://preview.redd.it/6506ea4iitv51.png?width=869&format=png&auto=webp&s=c0231d70bb16c76cd131e6b71256e93550cc8b37
For the option image you'll want to select the “image stream tag from internal registry” option. Give the application a name and then create the deployment.
https://preview.redd.it/tk72idniitv51.png?width=813&format=png&auto=webp&s=a4e662cf7b96604d84df9d04ab9b90b5436c803c
If everything went right during the creating process you should see the following, this means that the application is successfully running.
https://preview.redd.it/ovv9l85jitv51.png?width=901&format=png&auto=webp&s=f78f350207add0b8a979b6da931ff29ffa30128c

Scaling the application

In OpenShift there is a feature called autoscaling. There are two types of application scaling, namely vertical scaling, and horizontal scaling. Vertical scaling is adding only more CPU and hard disk and is no longer supported by OpenShift. Horizontal scaling is increasing the number of machines.
One of the ways to scale an application is by increasing the number of pods. This can be done by going to a pod within the view as seen in the previous step. By either pressing the up or down arrow more pods of the same application can be added. This is similar to horizontal scaling and can result in better performance when there are a lot of active users at the same time.
https://preview.redd.it/s6i1vbcrltv51.png?width=602&format=png&auto=webp&s=e62cbeeed116ba8c55704d61a990fc0d8f3cfaa1
In the picture above we see the number of nodes and pods and how many resources those nodes and pods are using. This is something to keep in mind if you want to scale up your application, the more you scale it up, the more resources it will take up.

https://preview.redd.it/quh037wmitv51.png?width=194&format=png&auto=webp&s=5e326647b223f3918c259b1602afa1b5fbbeea94

Network

Since OpenShift Container platform is built on Kubernetes it might be interesting to know some theory about its networking. Kubernetes, on which the OpenShift Container platform is built, ensures that the Pods within OpenShift can communicate with each other via the network and assigns them their own IP address. This makes all containers within the Pod behave as if they were on the same host. By giving each pod its own IP address, pods can be treated as physical hosts or virtual machines in terms of port mapping, networking, naming, service discovery, load balancing, application configuration and migration. To run multiple services such as front-end and back-end services, OpenShift Container Platform has a built-in DNS.
One of the changes that can be made to the networking of a Pod is the Route. We’ll show you how this can be done in this demonstration.
The Route is not the only thing that can be changed and or configured. Two other options that might be interesting but will not be demonstrated in this manual are:
- Ingress controller, Within OpenShift it is possible to set your own certificate. A user must have a certificate / key pair in PEM-encoded files, with the certificate signed by a trusted authority.
- Network policies, by default all pods in a project are accessible from other pods and network locations. To isolate one or more pods in a project, it is possible to create Network Policy objects in that project to indicate the allowed incoming connections. Project administrators can create and delete Network Policy objects within their own project.
There is a search function within the Container Platform. We’ll use this to search for the network routes and show how to add a new route.
https://preview.redd.it/8jkyhk8pitv51.png?width=769&format=png&auto=webp&s=9a8762df5bbae3d8a7c92db96b8cb70605a3d6da
You can add items that you use a lot to the navigation
https://preview.redd.it/t32sownqitv51.png?width=1598&format=png&auto=webp&s=6aab6f17bc9f871c591173493722eeae585a9232
For this example, we will add Routes to navigation.
https://preview.redd.it/pm3j7ljritv51.png?width=291&format=png&auto=webp&s=bc6fbda061afdd0780bbc72555d809b84a130b5b
Now that we’ve added Routes to the navigation, we can start the creation of the Route by clicking on “Create route”.
https://preview.redd.it/5lgecq0titv51.png?width=1603&format=png&auto=webp&s=d548789daaa6a8c7312a419393795b52da0e9f75
Fill in the name, select the service and the target port from the drop-down menu and click on Create.
https://preview.redd.it/qczgjc2uitv51.png?width=778&format=png&auto=webp&s=563f73f0dc548e3b5b2319ca97339e8f7b06c9d6
As you can see, we’ve successfully added the new route to our application.
https://preview.redd.it/gxfanp2vitv51.png?width=1588&format=png&auto=webp&s=1aae813d7ad0025f91013d884fcf62c5e7d109f1
Storage
OpenShift makes use of Persistent Storage, this type of storage uses persistent volume claims(PVC). PVC’s allow the developer to make persistent volumes without needing any knowledge about the underlying infrastructure.
Within this storage there are a few configuration options:
It is however important to know how to manually reclaim the persistent volumes, since if you delete PV the associated data will not be automatically deleted with it and therefore you cannot reassign the storage to another PV yet.
To manually reclaim the PV, you need to follow the following steps:
Step 1: Delete the PV, this can be done by executing the following command
$oc delete  
Step 2: Now you need to clean up the data on the associated storage asset
Step 3: Now you can delete the associated storage asset or if you with to reuse the same storage asset you can now create a PV with the storage asset definition.
It is also possible to directly change the reclaim policy within OpenShift, to do this you would need to follow the following steps:
Step 1: Get a list of the PVs in your cluster
$oc get pv 
This will give you a list of all the PV’s in your cluster and will display their following attributes: Name, Capacity, Accesmodes, Reclaimpolicy, Statusclaim, Storageclass, Reason and Age.
Step 2: Now choose the PV you wish to change and execute one of the following command’s, depending on your preferred policy:
$oc patch pv  -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' 
In this example the reclaim policy will be changed to Retain.
$oc patch pv  -p '{"spec":{"persistentVolumeReclaimPolicy":"Recycle"}}' 
In this example the reclaim policy will be changed to Recycle.
$oc patch pv  -p '{"spec":{"persistentVolumeReclaimPolicy":"Delete"}}' 
In this example the reclaim policy will be changed to Delete.

Step 3: After this you can check the PV to verify the change by executing this command again:
$oc get pv 

Monitoring

Within Red Hat OpenShift there is the possibility to monitor the data that has been created by your containers, applications, and pods. To do so, click on the menu option in the top left corner. Check if you are logged in as Developer and click on “Monitoring”. Normally this function is not activated within the CodeReady containers, because it uses a lot of resources (Ram and CPU) to run.
https://preview.redd.it/an0wvn6zitv51.png?width=228&format=png&auto=webp&s=51abf8cc31bd763deb457d49514f99ee81d610ec
Once you have activated “Monitoring” you can change the “Time Range” and “Refresh Interval” in the top right corner of your screen. This will change the monitoring data on your screen.
https://preview.redd.it/e0yvzsh1jtv51.png?width=493&format=png&auto=webp&s=b2c563635cfa60ea7ce2f9c146aa994df6aa1c34
Within this function you can also monitor “Events”. These events are records of important information and are useful for monitoring and troubleshooting within the OpenShift Container Platform.
https://preview.redd.it/l90vkmp3jtv51.png?width=602&format=png&auto=webp&s=4e97f14bedaec7ededcdcda96e7823f77ced24c2

User management

According to the documentation of OpenShift is a user, an entity that interacts with the OpenShift Container Platform API. These can be a developer for developing applications or an administrator for managing the cluster. Users can be assigned to groups, which set the permissions applied to all the group’s members. For example, you can give API access to a group, which gives all members of the group API access.
There are multiple ways to create a user depending on the configured identity provider. The DenyAll identity provider is the default within OpenShift Container Platform. This default denies access for all the usernames and passwords.
First, we’re going to create a new user, the way this is done depends on the identity provider, this depends on the mapping method used as part of the identity provider configuration.
for more information on what mapping methods are and how they function:
https://docs.openshift.com/enterprise/3.1/install_config/configuring_authentication.html
With the default mapping method, the steps will be as following
$oc create user  
Next up, we’ll create an OpenShift Container Platform Identity. Use the name of the identity provider and the name that uniquely represents this identity in the scope of the identity provider:
$oc create identity : 
The is the name of the identity provider in the master configuration. For example, the following commands create an Identity with identity provider ldap_provider and the identity provider username mediawiki_s.
$oc create identity ldap_provider:mediawiki_s 
Create a useidentity mapping for the created user and identity:
$oc create useridentitymapping :  
For example, the following command maps the identity to the user:
$oc create useridentitymapping ldap_provider:mediawiki_s mediawiki 
Now were going to assign a role to this new user, this can be done by executing the following command:
$oc create clusterrolebinding  \ --clusterrole= --user= 
There is a --clusterrole option that can be used to give the user a specific role, like a cluster user with admin privileges. The cluster admin has access to all files and is able to manage the access level of other users.
Below is an example of the admin clusterrole command:
$oc create clusterrolebinding registry-controller \ --clusterrole=cluster-admin --user=admin 

What did you achieve?

If you followed all the steps within this manual you now should have a functioning Mediawiki Application running on your own CodeReady Containers. During the installation of this application on CodeReady Containers you have learned how to do the following things:
● Installing the CodeReady Containers
● Updating OpenShift
● Configuring a CodeReady Container
● Configuring the DNS
● Accessing the OpenShift cluster
● Deploying an application
● Creating new users
With these skills you’ll be able to set up your own Container Platform environment and host applications of your choosing.

Troubleshooting

Nameserver
There is the possibility that your CodeReady container can't connect to the internet due to a Nameserver error. When this is encountered a working fix for us was to stop the machine and then start the CRC machine with the following command:
C:\Users\[username]\$PATH>crc start -n 1.1.1.1 
Hyper-V admin
Should you run into a problem with Hyper-V it might be because your user is not an admin and therefore can’t access the Hyper-V admin user group.
  1. Click Start > Control Panel > Administration Tools > Computer Management. The Computer Management window opens.
  2. Click System Tools > Local Users and Groups > Groups. The list of groups opens.
  3. Double-click the Hyper-V Administrators group. The Hyper-V Administrators Properties window opens.
  4. Click Add. The Select Users or Groups window opens.
  5. In the Enter the object names to select field, enter the user account name to whom you want to assign permissions, and then click OK.
  6. Click Apply, and then click OK.

Terms and definitions

These terms and definitions will be expanded upon, below you can see an example of how this is going to look like together with a few terms that will require definitions.
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. Openshift is based on Kubernetes.
Clusters are a collection of multiple nodes which communicate with each other to perform a set of operations.
Containers are the basic units of OpenShift applications. These container technologies are lightweight mechanisms for isolating running processes so that they are limited to interacting with only their designated resources.
CodeReady Container is a minimal, preconfigured cluster that is used for development and testing purposes.
CodeReady Workspaces uses Kubernetes and containers to provide any member of the development or IT team with a consistent, secure, and zero-configuration development environment.

Sources

  1. https://www.ibm.com/support/knowledgecenteen/SSMKFH/com.ibm.apmaas.doc/install/hyperv_config_add_nonadmin_user_hyperv_usergroup.html
  2. https://access.redhat.com/documentation/en-us/openshift_container_platform/4.5/
  3. https://docs.openshift.com/container-platform/3.11/admin_guide/manage_users.html
submitted by Groep6HHS to openshift [link] [comments]

The Challenges of Designing a Modern Skill, Part 3

Okay, Wendy’s or Walgreens or whoever, I don’t care who you are, you’re listening to the rest.

Introduction to Part 3

Welcome back one last time to “The Challenges of Designing a Modern Skill,” a series where we discuss all aspects of skill design and development. In Part 1, we talked about OSRS’s history with skills, and started the lengthy conversation on Skill Design Philosophy, including the concepts of Core, Expansion, and Integration. This latter topic consumed the entirety of Part 2 as well, which covered Rewards and Motivations, Progression, Buyables, as well as Unconstructive Arguments.
Which brings us to today, the final part of our discussion. In this Part 3, we’ll finish up Section 3 – Skill Design Philosophy, then move on to chat about the design and blog process. One last time, this discussion was intended to be a single post, but its length outgrew the post character limit twice. Therefore, it may be important to look at the previous two parts for clarity and context with certain terms. The final product, in its purest, aesthetic, and unbroken form, can be found here.

3-C – Skill Design Philosophy, Continued

3-12 - Balancing

What follows from the discussion about XP and costs, of course, is balancing: the bane of every developer. A company like Riot knows better than anyone that having too many factors to account for makes good balance impossible. Balancing new ideas appropriately is extremely challenging and requires a great respect for current content as discussed in Section 3-5 – Integration. Thankfully, in OSRS we only have three major balancing factors: Profit, XP Rate, and Intensity, and two minor factors: Risk and Leniency. These metrics must amount to some sense of balance (besides Leniency, which as we’ll see is the definition of anti-balance) in order for a piece of content to feel like it’s not breaking the system or rendering all your previous efforts meaningless. It’s also worthy to note that there is usually a skill-specific limit to the numerical values of these metrics. For example, Runecrafting will never receive a training method that grants 200k xp/hr, while for Construction that’s easily on the lower end of the scale.
A basic model works better than words to describe these factors, and therefore, being the phenomenal artist that I am, I have constructed one, which I’ve dubbed “The Guthix Scale.” But I’ll be cruel and use words anyway.
  • Profit: how much you gain from a task, or how much you lose. Gain or loss can include resources, cosmetics, specialized currencies, good old gold pieces, or anything on that line.
  • XP Rate: how fast you gain XP.
  • Intensity: how much effort (click intensity), attention (reaction intensity), and thought (planning intensity) you need to put into the activity to perform it well.
  • Risk: how likely is the loss of your revenue and/or resource investment into the activity. Note that one must be careful with risk, as players are very good at abusing systems intended to encourage higher risk levels to minimize how much they’re actually risking.
  • Leniency: a measure for how imbalanced a piece of content can be before the public and/or Jagex nerfs it. Leniency serves as a simple modulator to help comprehend when the model breaks or bends in unnatural ways, and is usually determined by how enjoyable and abusable an activity is, such that players don’t want to cause an outrage over it. For example, Slayer has a high level of Leniency; people don’t mind that some Slayer tasks grant amazing XP Rates, great Profits, have middling Intensity, and low Risk. On the other hand, Runecrafting has low levels of Leniency; despite low Risk, many Runecrafting activities demand high Intensity for poor XP Rates and middling Profits.
In the end, don’t worry about applying specific numbers during the conceptual phase of your skill design. However, when describing an activity to your reader, it’s always useful if you give approximations, such as “high intensity” or “low risk,” so that they get an idea of the activity’s design goals as well as to guide the actual development of that activity. Don’t comment on the activity’s Leniency though, as that would be pretty pretentious and isn’t for you to determine anyway.

3-13 - Skill Bloat

What do the arts of weaving, tanning, sowing, spinning, pottery, glassmaking, jewellery, engraving, carving, chiselling, carpentry, and even painting have in common? In real life, there’s only so much crossover between these arts, but in Runescape they’re all simply Crafting.
The distinction between what deserves to be its own skill or instead tagged along to a current skill is often arbitrary; this is the great challenge of skill bloat. The fundamental question for many skill concepts is: does this skill have enough depth to stand on its own? The developers of 2006 felt that there was sufficient depth in Construction to make it something separate from Crafting, even if the latter could have covered the former. While there’s often no clean cut between these skills (why does making birdhouses use Crafting instead of Construction?), it is easy to see that Construction has found its own solid niche that would’ve been much too big to act as yet another Expansion of Crafting.
On the other hand, a skill with extremely limited scope and value perhaps should be thrown under the umbrella of a larger skill. Take Firemaking: it’s often asked why it deserves to be its own skill given how limited its uses are. This is one of those ideas that probably should have just been thrown under Crafting or even Woodcutting. But again, the developers who made early Runescape did not battle with the same ideas as the modern player; they simply felt like Firemaking was a good idea for a skill. Similarly, the number of topics that the Magic skill covers is so often broken down in other games, like Morrowind’s separation between Illusion, Conjuration, Alteration, Destruction, Mysticism, Restoration, Enchant, Alchemy (closer to Herblore), and Unarmored (closer to Strength and Defense). Why does Runescape not break Magic into more skills? The answer is simple: Magic was created with a much more limited scope in Runescape, and there has not been enough content in any specific magical category to justify another skill being born. But perhaps your skill concept seeks to address this; maybe your Enchantment skill takes the enchanting aspects of Magic away, expands the idea to include current imbues and newer content, and fully fleshes the idea out such that the Magic skill alone cannot contain it. Somewhat ironically, Magic used to be separated into Good and Evil Magic skills in Runescape Classic, but that is another topic.
So instead of arguments about what could be thrown under another skill’s umbrella, perhaps we should be asking: is there enough substance to this skill concept for it to stand on its own, outside of its current skill categorization? Of course, this leads to a whole other debate about how much content is enough for a skill idea to deserve individuality, but that would get too deep into specifics and is outside the scope of this discussion.

3-14 - Skill Endgame

Runescape has always been a sandbox MMO, but the original Runescape experience was built more or less with a specific endgame in mind: killing players and monsters. Take the Runescape Classic of 2001: you had all your regular combat skills, but even every other skill had an endgame whose goal was helping combat out. Fishing, Firemaking, and Cooking would provide necessary healing. Smithing and Crafting, along with their associated Gathering skill partners, served to gear you up. Combat was the simple endgame and most mechanics existed to serve that end.
However, since those first days, the changing endgame goals of players have promoted a vast expansion of the endgame goals of new content. For example, hitting a 99 in any non-combat skill is an endgame goal in itself for many players, completely separate from that skill’s combat relationship (if any). These goals have increased to aspects like cosmetic collections, pets, maxed stats, all quests completed, all diaries completed, all music tracks unlocked, a wealthy bank, the collection log, boss killcounts, and more. Whereas skills used to have a distinct part of a system that ultimately served combat, we now have a vast variety of endgame goals that a skill can be directed towards. You can even see a growth in this perspective as new skills were released up to 2007: Thieving mainly nets you valuable (or once valuable) items which have extremely flexible uses, and Construction has a strong emphasis on cosmetics for your POH.
So when designing your new skill, contemplate what the endgame of your skill looks like. For example, if you are proposing a Gathering skill, what is the Production skill tie-in, and what is the endgame goal of that Production skill? Maybe your new skill Spelunking has an endgame in gathering rare collectibles that can be shown off in your POH. Maybe your new skill Necromancy functions like a Support skill, giving you followers that help speed along resource gathering, and letting you move faster to the endgame goal of the respective Production skill. Whatever it is, a proper, clear, and unified view of an endgame goal helps a skill feel like it serves a distinct and valuable purpose. Note that this could mean that you require multiple skills to be released simultaneously for each to feed into each other and form an appropriate endgame. In that case, go for it – don’t make it a repeat of RS3’s Divination, a Gathering skill left hanging without the appropriate Production skill partner of Invention for over 2 years.
A good example of a skill with a direct endgame is… most of them. Combat is a well-accepted endgame, and traditionally, most skills are intended to lend a hand in combat whether by supplies or gear. A skill with a poor endgame would be Hunter: Hunter is so scattered in its ultimate endgame goals, trying to touch on small aspects of everything like combat gear, weight reduction, production, niche skilling tools, and food. There’s a very poor sense of identity to Hunter’s endgame, and it doesn’t help that very few of these rewards are actually viable or interesting in the current day. Similarly, while Slayer has a strong endgame goal it is terrible in its methodology, overshadowing other Production skills in their explicit purpose. A better design for Slayer’s endgame would have been to treat it as a secondary Gathering skill, to work almost like a catalyst for other Gathering-Production skill relationships. In this mindset, Slayer is where you gather valuable monster drops, combine it with traditional Gathering resources like ores from Mining, then use a Production skill like Smithing to meld them into the powerful gear that is present today. This would have kept other Gathering and Production skills at the forefront of their specialities, in contrast to today’s situation where Slayer will give fully assembled gear that’s better than anything you could receive from the appropriate skills (barring a few items that need a Production skill to piece together).

3-15 - Alternate Goals

From a game design perspective, skills are so far reaching that it can be tempting to use them to shift major game mechanics to a more favourable position. Construction is an example of this idea in action: Construction was very intentionally designed to be a massive gold sink to help a hyperinflating economy. Everything about it takes gold out of the game, whether through using a sawmill, buying expensive supplies from stores, adding rooms, or a shameless piece of furniture costing 100m that is skinned as, well, 100m on a shameless piece of furniture.
If you’re clever about it, skills are a legitimately good opportunity for such change. Sure, the gold sink is definitely a controversial feature of Construction, but for the most part it’s organic and makes sense; fancy houses and fancy cosmetics are justifiably expensive. It is notable that the controversy over Construction’s gold sink mechanism is probably levied more against the cost of training, rather than the cost of all its wonderful aesthetics. Perhaps that should have been better accounted for in its design phase, but now it is quite set in stone.
To emphasize that previous point: making large scale changes to the game through a new skill can work, but it must feel organic and secondary to the skill’s main purpose. Some people really disliked Warding because they felt it tried too hard to fix real, underlying game issues with mechanics that didn’t thematically fit or were overshadowing the skill’s Core. While this may or may not be true, if your new skill can improve the game’s integrity without sacrificing its own identity, you could avoid this argument entirely. If your skill Regency has a Core of managing global politics, but also happens to serve as a resource sink to help your failing citizens, then you’ve created a strong Core design while simultaneously improving the profitability of Gathering skills.

3-16 - The Combat No-Touch Rule

So, let’s take a moment to examine the great benefits and rationale of RS2’s Evolution of Combat:
This space has been reserved for unintelligible squabbling.
With that over, it’s obvious that the OSRS playerbase is not a big fan of making major changes to the combat system. If there’s anything that defines the OSRS experience, it has to be the janky and abusable combat system that we love. So, in the past 7 years of OSRS, how many times have you heard someone pitch a new combat skill? Practically no one ever has; a new combat skill, no matter how miniscule, would feel obtrusive to most players, and likely would not even receive 25% of votes in a poll. This goes right back to Section 3-5 – Integration, and the importance of preserving the fundamentals of OSRS’s design.
I know that my intention with this discussion was to be as definitive about skill design as possible, and in that spirit I should be delving into the design philosophy specifically behind combat skills, but I simply don’t see the benefit of me trying, and the conversation really doesn’t interest me that much. It goes without saying that as expansive as this discussion is, it does not cover every facet of skill design, which is a limitation both of my capabilities and desire to do so.

3-17 - Aesthetics

I don’t do aesthetics well. I like them, I want them, but I do not understand them; there are others much better equipped to discuss this topic than I. Nonetheless, here we go.
Since the dawn of OSRS, debates over art style and aesthetics have raged across Gielinor. After all, the OSRS Team is filled with modern day artists while OSRS is an ancient game. What were they supposed to do? Keep making dated graphics? Make content with a modernized and easily digestible style? Something in-between?
While many players shouted for more dated graphics, they were approached by an interesting predicament: which dated graphics did they want? We had a great selection present right from the start of OSRS: 2002, 2003, 2004, 2005, 2006, and 2007. People hungry for nostalgia chose the era that they grew up in, leading to frequent requests for older models like the dragon or imp, most of which were denied by Jagex (except the old Mining rock models). But which era was OSRS supposed to follow?
Jagex elected to carve their own path, but not without heavy criticism especially closer to OSRS’s conception. However, they adapted to player requests and have since gone back and fixed many of the blatant early offenders (like the Kingdom of Kourend) and adopted a more consistent flavour, one that generally respects the art style of 2007. Even though it doesn’t always hit the mark, one has to appreciate the OSRS artists for making their best attempt and listening to feedback, and here’s to hoping that their art style examination mentioned in June 2020’s Gazette bears fruit.
But what exactly is the old school art style? There are simple systems by which most players judge it in OSRS, usually by asking questions like, “Would you believe if this existed in 2007?” More informed artists will start pointing out distinct features that permeated most content from back in the day, such as low quality textures, low poly models, low FPS animations, a “low fantasy” or grounded profile that appeals somewhat to realism, reducing cartoonish exaggerations, and keeping within the lore. Compiled with this, music and sound design help that art style come to life; it can be very hard on immersion when these don’t fit. An AGS would sound jarring if its special attack sounded like a weak dagger stab, and having to endure Country Jig while roaming Hosidius suddenly sweeps you off into a different universe.
But coming back to skill design, the art, models, and sound design tend to be some of the last features, mostly because the design phase doesn’t demand such a complete picture of a skill. However, simple concept art and models can vastly improve how a skill concept is communicated and comfort players who are concerned about maintaining that “old school feel.” This will be touched on again later in this discussion under Section 5-2 – Presentation and Beta Testing.

3-18 - Afterword

Now we’ve set down the modern standards for a new skill, but the statements that started this section bear repeating: the formula we’ve established does not automatically make a good or interesting skill, as hard as we might have tried. Once again, harken back to the First Great Irony: that we are trying to inject the modern interpretation of what defines a skill upon a game that was not necessarily built to contain it. Therefore, one could just as easily deny each of the components described above, as popular or unpopular as the act might be, and their opinion could be equally valid and all this effort meaningless. Don’t take these guidelines with such stringency as to disregard all other views.

5-0 - The OSRS Team and the Design Process

If you’ve followed me all the way here, you’re likely A) exhausted and fed up of any conversation concerning new skills, or B) excited, because you’ve just struck an incredible skill idea (or perhaps one that’s always hung around your head) that happens to tick off all the above checkboxes. But unfortunately for you B types, it’s about to get pretty grim, because we’re going to go through every aspect of skill design that’s exterior to the game itself. We’ll be touching on larger topics like democracy, presentation, player mindsets, effort, and resource consumption. It’ll induce a fantastic bout of depression, so don’t get left behind.

5-1 - Designing a Skill

Thus far, Jagex has offered three potential skills to OSRS, each of which has been denied. This gives us the advantage of understanding how the skill design process works behind the scenes and lets us examine some of the issues Jagex has faced with presenting a skill to the players.
The first problem is the “one strike and you’re out” phenomenon. Simply put, players don’t like applying much effort into reading and learning. They’ll look at a developer blog highlighting a new skill idea, and if you’re lucky they’ll even read the whole thing, but how about the second developer blog? The third? Fourth? Even I find it hard to get that far. In general, people don’t like long detail-heavy essays or blogs, which is why I can invoke the ancient proverb “Ban Emily” into this post and it’ll go (almost) completely unnoticed. No matter how many improvements you make between developer blogs, you will quickly lose players with each new iteration. Similarly, developer blogs don’t have the time to talk about skill design philosophy or meta-analyse their ideas – players would get lost far too fast. This is the Second Great Irony of skill design: the more iterations you have of a lengthy idea, the less players will keep up with you.
This was particularly prominent with Warding: Battle Wards were offered in an early developer blog but were quickly cut when Jagex realized how bad the idea was. Yet people would still cite Battle Wards as the reason they voted against Warding, despite the idea having been dropped several blogs before. Similarly, people would often comment that they hated that Warding was being polled multiple times; it felt to them like Jagex was trying to brute-force it into the game. But Warding was only ever polled once, and only after the fourth developer blog - the confusion was drawn from how many times the skill was reiterated and from the length of the public design process. Sure, there are people for whom this runs the opposite way; they keep a close eye on updates and judge a piece of content on the merits of the latest iteration, but this is much less common. You could argue that one should simply disregard the ignorant people as blind comments don't contribute to the overall discussion, but you should remember that these players are also the ones voting for the respective piece of content. You could also suggest re-educating them, which is exactly what Jagex attempts with each developer blog, and still people won’t get the memo. And when it comes to the players themselves, can the playerbase really be relied on to re-educate itself?
Overall, the Second Great irony really hurts the development process and is practically an unavoidable issue. What’s the alternative? To remove the developer-player interface that leads to valuable reiterations, or does you simply have to get the skill perfect in the first developer blog?
It’s not an optimal idea, but it could help: have a small team of “delegates” – larger names that players can trust, or player influencers – come in to review a new, unannounced skill idea under NDA. If they like it, chances are that other players will too. If they don’t, reiterate or toss out the skill before it’s public. That way, you’ve had a board of experienced players who are willing to share their opinions to the public helping to determine the meat and potatoes of the skill before it is introduced to the casual eye. Now, a more polished and well-accepted product can be presented on the first run of selling a skill to the public, resulting in less reiterations being required, and demanding less effort from the average player to be fully informed over the skill’s final design.

5-2 - Presentation and Beta Testing

So you’ve got a great idea, but how are you going to sell it to the public? Looking at how the OSRS Team has handled it throughout the years, there’s a very obvious learning curve occurring. Artisan had almost nothing but text blogs being thrown to the players, Sailing started introducing some concept art and even a trailer with terrible audio recording, and Warding had concept art, in game models, gifs, and a much fancier trailer with in-game animations. A picture or video is worth a thousand words, and often the only words that players will take out of a developer blog.
You might say that presentation is everything, and that would be more true in OSRS than most games. Most activities in OSRS are extremely basic, involve minimal thought, and are incredibly grindy. Take Fishing: you click every 20 seconds on a fishing spot that is randomly placed along a section of water, get rid of your fish, then keep clicking those fishing spots. Boiling it down further, you click several arbitrary parts of your computer screen every 20 seconds. It’s hardly considered engaging, so why do some people enjoy it? Simply put: presentation. You’re given a peaceful riverside environment to chill in, you’re collecting a bunch of pixels shaped like fish, and a number tracking your xp keeps ticking up and telling you that it matters.
Now imagine coming to the players with a radical new skill idea: Mining. You describe that Mining is where you gather ores that will feed into Smithing and help create gear for players to use. The audience ponders momentarily, but they’re not quite sure it feels right and ask for a demonstration. You show them some gameplay, but your development resources were thin and instead of rocks, you put trees as placeholders. Instead of ores in your inventory, you put logs as placeholders. Instead of a pickaxe, your character is swinging a woodcutting axe as a placeholder. Sure, the mechanics might act like mining instead of woodcutting, but how well is the skill going to sell if you haven’t presented it correctly or respected it contextually?
Again, presentation is everything. Players need to be able to see the task they are to perform, see the tools they’ll use, and see the expected outcomes; otherwise, whatever you’re trying to sell will feel bland and unoriginal. And this leads to the next level of skill presentation that has yet to be employed: Beta Worlds.
Part of getting the feel of an activity is not just watching, it but acting it out as well - you’ll never understand the thrill of skydiving unless you’ve actually been skydiving. Beta Worlds are that chance for players to act out a concept without risking the real game’s health. A successful Beta can inspire confidence in players that the skill has a solid Core and interesting Expansions, while a failed Beta will make them glad that they got to try it and be fully informed before putting the skill to a poll (although that might be a little too optimistic for rage culture). Unfortunately, Betas are not without major disadvantages, the most prominent of which we shall investigate next.

5-3 - Development Effort

If you thought that the previous section on Skill Design Philosophy was lengthy and exhausting, imagine having to know all that information and then put it into practice. Mentally designing a skill in your head can be fun, but putting all that down on paper and making it actually work together, feel fully fleshed out, and following all the modern standards that players expect is extremely heavy work, especially when it’s not guaranteed to pay off in the polls like Quest or Slayer content. That’s not even taking into account the potentially immense cost of developing a new skill should it pass a poll.
Whenever people complain that Jagex is wasting their resources trying to make that specific skill work, Jagex has been very explicit about the costs to pull together a design blog being pretty minimal. Looking at the previous blogs, Jagex is probably telling the truth. It’s all just a bunch of words, a couple art sketches, and maybe a basic in-game model or gif. Not to downplay the time it takes to write well, design good models, or generate concept art, but it’s nothing like the scale of resources that some players make it out to be. Of course, if a Beta was attempted as suggested last section, this conversation would take a completely new turn, and the level of risk to invested resources would exponentially increase. But this conversation calls to mind an important question: how much effort and resources do skills require to feel complete?
Once upon a time, you could release a skill which was more or less unfinished. Take Slayer: it was released in 2005 with a pretty barebones structure. The fundamentals were all there, but the endgame was essentially a couple cool best-in-slot weapons and that was it. Since then, OSRS has updated the skill to include a huge Reward Shop system, feature 50% more monsters to slay, and to become an extremely competitive money-maker. Skills naturally undergo development over time, but it so often comes up during the designing of an OSRS skill that it "doesn't have enough to justify its existence." This was touched on deeply in Section 3-13 – Skill Bloat, but deserves reiterating here. While people recognize that skills continually evolve, the modern standard expects a new skill, upon release, to be fully preassembled before purchase. Whereas once you could get away with releasing just a skill's Core and working on Expansions down the line, that is no longer the case. But perhaps a skill might stand a better chance now than it did last year, given that the OSRS Team has doubled in number since that time.
However, judging from the skill design phases that have previously been attempted (as we’ve yet to see a skill development phase), the heaviest cost has been paid in developer mentality and motivational loss. When a developer is passionate about an idea, they spend their every waking hour pouring their mind into how that idea is going to function, especially while they’re not at work. And then they’re obligated to take player feedback and adapt their ideas, sometimes starting from scratch, particularly over something as controversial as a skill. Even if they have tough enough skin to take the heavy criticism that comes with skill design, having to write and rewrite repeatedly over the same idea to make it “perfect” is mentally exhausting. Eventually, their motivation drains as their labour bears little fruit with the audience, and they simply want to push it to the poll and be done with it. Even once all their cards are down, there’s still no guarantee that their efforts will be rewarded, even less so when it comes to skills.
With such a high mental cost with a low rate of success, you have to ask, “Was it worth it?” And that’s why new skill proposals are far and few between. A new skill used to be exciting for the development team in the actual days of 2007, as they had the developmental freedom to do whatever they wanted, but in the modern day that is not so much the case.

5-4 - The Problems of Democracy

Ever since the conceptualization of democracy in the real world, people have been very aware of its disadvantages. And while I don’t have the talent, knowledge, or time to discuss every one of these factors, there are a few that are very relevant when it comes to the OSRS Team and the polling process.
But first we should recognize the OSRS Team’s relationship with the players. More and more, the Team acts like a government to its citizens, the players, and although this situation was intentionally instated with OSRS’s release, it’s even more prominent now. The Team decides the type of content that gets to go into a poll, and the players get their input over whether that particular piece makes it in. Similarly, players make suggestions to the Team that, in many cases, the Team hadn’t thought of themselves. This synergy is phenomenal and almost unheard of among video games, but the polling system changes the mechanics of this relationship.
Polls were introduced to the burned and scarred population of players at OSRS’s release in 2013. Many of these players had just freshly come off RS2 after a series of disastrous updates or had quit long before from other controversies. The Squeal of Fortune, the Evolution of Combat, even the original Wilderness Removal had forced numerous players out and murdered their trust in Jagex. To try and get players to recommit to Runescape, Jagex offered OSRS a polling system by which the players would determine what went into the game, where the players got to hold all the cards. They also asked the players what threshold should be required for polled items to pass, and among the odd 50% or 55% being shouted out, the vast majority of players wanted 70%, 75%, 80%, or even 85%. There was a massive population in favour of a conservative game that would mostly remain untouched, and therefore kept pure from the corruption RS2 had previously endured.
Right from the start, players started noticing holes in this system. After all, the OSRS Team was still the sole decider of what would actually be polled in the first place. Long-requested changes took forever to be polled (if ever polled at all) if the OSRS Team didn’t want to deal with that particular problem or didn’t like that idea. Similarly, the Team essentially had desk jobs with a noose kept around their neck – they could perform almost nothing without the players, their slave masters, seeing, criticizing, and tearing out every inch of developmental or visionary freedom they had. Ever hear about the controversy of Erin the duck? Take a look at the wiki or do a search through the subreddit history. It’s pretty fantastic, and a good window into the minds of the early OSRS playerbase.
But as the years have gone on, the perspective of the players has shifted. There is now a much healthier and more trusting relationship between them and the Team, much more flexibility in what the players allow the Team to handle, and a much greater tolerance and even love of change.
But the challenges of democracy haven’t just fallen away. Everyone having the right to vote is a fundamental tenet of the democratic system, but unfortunately that also means that everyone has the right to vote. For OSRS, that means that every member, whether it’s their first day in game, their ten thousandth hour played, those who have no idea about what the poll’s about, those who haven’t read a single quest (the worst group), those who RWT and bot, those who scam and lure, and every professional armchair developer like myself get to vote. In short, no one will ever be perfectly informed on every aspect of the game, or at least know when to skip when they should. Similarly, people will almost never vote in favour of making their game harder, even at the cost of game integrity, or at least not enough people would vote in such a fashion to reach a 75% majority.
These issues are well recognized. The adoption of the controversial “integrity updates” was Jagex’s solution to these problems. In this way, Jagex has become even more like a government to the players. The average citizen of a democratic country cannot and will not make major decisions that favour everyone around themselves if it comes at a personal cost. Rather, that’s one of the major roles of a government: to make decisions for changes for the common good that an individual can’t or won’t make on their own. No one’s going to willingly hand over cash to help repave a road on the opposite side of the city – that’s why taxes are a necessary evil. It’s easy to see that the players don’t always know what’s best for their game and sometimes need to rely on that parent to decide for them, even if it results in some personal loss.
But players still generally like the polls, and Jagex still appears to respect them for the most part. Being the government of the game, Jagex could very well choose to ignore them, but would risk the loss of their citizens to other lands. And there are some very strong reasons to keep them: the players still like having at least one hand on the wheel when it comes to new content or ideas. Also, it acts as a nice veto card should Jagex try to push RS3’s abusive tactics on OSRS and therefore prevent such potential damage.
But now we come to the topic of today: the introduction of a new skill. Essentially, a new skill must pass a poll in order to enter the game. While it’s easy to say, “If a skill idea is good enough, it’ll pass the threshold,” that’s not entirely true. The only skill that could really pass the 75% mark is not necessarily a well-designed skill, but rather a crowd-pleasing skill. While the two aren’t mutually exclusive, the latter is far easier to make than the former. Take Dungeoneering: if you were to poll it today as an exact replica of RS2’s version, it would likely be the highest scoring skill yet, perhaps even passing, despite every criticism that’s been previously emphasized describing why it has no respect for the current definition of “skill.” Furthermore, a crowd-pleasing skill can easily fall prey to deindividualization of vision and result in a bland “studio skill” (in the same vein as a “studio film”), one that feels manufactured by a board of soulless machines rather than a director’s unique creation. This draws straight back to the afore-mentioned issues with democracy: that people A) don’t always understand what they’re voting for or against, and B) people will never vote for something that makes their game tougher or results in no benefit to oneself. Again, these were not issues in the old days of RS2, but are the problems we face with our modern standards and decision making systems.
The reality that must be faced is that the polling system is not an engine of creation nor is it a means of constructive feedback – it’s a system of judgement, binary and oversimplified in its methodology. It’s easy to interact with and requires no more than 10 seconds of a player’s time, a mere mindless moment, to decide the fate of an idea made by an individual or team, regardless of their deep or shallow knowledge of game mechanics, strong or weak vision of design philosophy, great or terrible understanding of the game’s history, and their awareness of blindness towards the modern community. It’s a system which disproportionately boils down the quality of discussion that is necessitated by a skill, which gives it the same significance as the question “Should we allow players to recolour the Rocky pet by feeding it berries?” with the only available answers being a dualistic “This idea is perfect and should be implemented exactly as outlined” or “This idea is terrible and should never be spoken of again.”
So what do you do? Let Jagex throw in whatever they want? Reduce the threshold, or reduce it just for skills? Make a poll that lists a bunch of skills and forces the players to choose one of them to enter the game? Simply poll the question, “Should we have a new skill?” then let Jagex decide what it is? Put more options on the scale of “yes” to “no” and weigh each appropriately? All these options sound distasteful because there are obvious weaknesses to each. But that is the Third Great Irony we face: an immense desire for a new skill, but no realistic means to ever get one.

6-0 - Conclusion

I can only imagine that if you’ve truly read everything up to this point, it’s taken you through quite the rollercoaster. We’ve walked through the history of OSRS skill attempts, unconstructive arguments, various aspects of modern skill design philosophy, and the OSRS Team and skill design process. When you take it all together, it’s easy to get overwhelmed by all the thought that needs to go into a modern skill and all the issues that might prevent its success. Complexity, naming conventions, categorizations, integration, rewards and motivations, bankstanding and buyables, the difficulties of skill bloat, balancing, and skill endgames, aesthetics, the design process, public presentation, development effort, democracy and polling - these are the challenges of designing and introducing modern skills. To have to cope with it all is draining and maybe even impossible, and therefore it begs the question: is trying to get a new skill even worth it?
Maybe.
Thanks for reading.
Tl;dr: Designing a modern skill requires acknowledging the vast history of Runescape, understanding why players make certain criticisms and what exactly they’re saying in terms of game mechanics, before finally developing solutions. Only then can you subject your ideas to a polling system that is built to oversimplify them.
submitted by ScreteMonge to 2007scape [link] [comments]

Seekers Beyond the Shroud -- Review and Thoughts

Seekers Beyond the Shroud is a Solo modern day occult RPG, written by Alex T. for Blackoath Entertainment. I first stumbled upon it on Kickstarter in October of 2019, and immediately backed it. There are few deliberately designed Solo RPG's, and its promise of solo rules, robust system, and setting was irresistible. I received my print copy this summer, but haven't had a chance until recently to play it. Now that I have, I wanted to do a quick review of the game, based on both my reading of it as well as the couple of sessions I've been able to play. While most of the review will be discussing the book itself, I'll include some notes on my play experience in spoilers.
Layout and Design
The book itself is solid. The cover image is cool and evocative--and the art in general is very well done. I only backed at the softcover level, but it's a solid and well designed layout. Actually, better than some of the recent games I've bought from more established companies.
Setting
It's modern day London. Your character has gone through some traumatic and horrifying experience that awakened them to the greater supernatural world. After much searching, you have come to the Omphalos, a secret town populated by mystics, monsters, and other...things. There, you begin your journey of both personal enlightenment and personal power.
Character Creation
Seekers uses the 6 classic attributes--Strength, Dexterity, Constitution, Intelligence, and Charisma, with Will replacing Wisdom. The scale is from 1-20, with all starting at 10. You then get an additional 20 points to further customize your character.
I ended up putting my points into Dexterity, Will, Intelligence, and Charisma. I figured Will and Intelligence are key to any aspiring wizard, and--desiring to do something different than a rogue bad ass--I was hoping that Dexterity and Charisma would give me options to solve issues with something other than direct violence. This would become an issue later on.
Next, you have "Secondary Attributes"--Hit Points (Con x10) or Sanity (Int x10) and the like. Then, you have Skills. They're pretty much what you would expect, a mix of combat and non-combat. You have 250 points to spend on the skills, but are limited to no more than 50 in any skill at creation. Some skills have a base value derived from your attributes (for example, One-Handed Melee starts with a value equal to your Str+Dex, while Persuade starts with a value equal to your Charisma X2), while other skills--the mystical ones--begin at 0 and can only be increased through gameplay. If you use a skill 5 times, you can make a Skill-Up roll. If you roll above the current value (i.e.: fail), you add 1 point to the skill.
Given that I had a decent Dex, my combat skills were decent to begin with. I wanted to play an "ordinary joe" kind of character, so I spend my points on skills like Technology, Linguistics, and Persuade. I finally caved to my min/maxing tendencies though, and ended up boosting Parry and Sneak as high as I could, with a smattering of points in other combat skills. I had quite a few in the mid-40's, so my "mild mannered accountant" was surprisingly dangerous. Or so I thought.
Backgrounds
After the basics are done, you roll a d10 for your Background. Each provides and in-depth backstory for your character, and details the traumatic and often horrific moment that set you on the path of magic. Each also provides various penalties and bonuses that further modify your character.
I rolled the "Near Death Experience"--my PC was a workaholic who almost dies of a heart attack. While "dead," he encounter a horrific spirit that he just barely managed to evade. Upon waking, he through aside his career and sought out some explanation for what he had seen. He has a bonus to Psychic Combat--which is used in the Astral Plane--but a penalty to his Constitution and Charisma. I had left my Con at 10, so it dropped to 9, and my Hit Points also dropped from 100 to 90. I wasn't worried though, as I had intended to be more sneaky and charming than tough.
He said foreshadowingly.
Combat
Combat is relatively simple. As you approach a foe, you make an Initiative roll on a d20. Each foe has a static Initiative value; if you beat it, you go first and if not, then they do. If you beat them on the first turn, you have a chance to surprise or avoid them entirely. All combat rolls are done by the player. If an enemy attacks, you need to make a defensive roll (Parry, Dodge, or Find Cover) to avoid their attack, and you make your offensive roll (like One Handed Melee) to hit them. Certain foes are Veterans, and apply penalties to these rolls. Different types of weapons do different amounts of damage--like 2d10+10 for a pistol. In the intro adventure, the PC gains a "talent" that grants them a flat +25 to their damage from then on. Most foes have roughly 100-130 Hit Points, so even with the player bonus, it can take quite a few rounds to get through even minor enemies.
The Mystical World
The next few sections are some of the most interesting, describing the Astral World, Magic, Summoning and Binding Spirits, and the like. I haven't had a chance to really dig into this aspect of the game, however.
The Omphalos and Scenarios
The core of the game is the Omphalos, a hub of trade, commerce, knowledge and intrigue. Here the PC can buy and sell gear, learn new knowledge, encounter the strange denizens of this world, and get missions for various factions. There are four listed in the book, each with their own agendas and philosophy. Each has constant need for "foot soldiers" to do various unsavory tasks for them, and as you gain Favor with each, they provide various bonuses and spells and other benefits.
>! So, I finished the intro scenario, had some knowledge of the greater world, and had been introduced to the Omphalos. Time for the first "real" adventure! First, I roll on the Emphalos Daily Event table and got "quiet day"--things are calm today, and prices are low. I have only a few obols (the currency of the magical realm), so any discount is nice. Then I roll for Encounters, and get "pickpocket." There's no roll to avoid this, so my PC loses 100 obols. This is more than I have, so I am no broke. Desperate for work, I see who is hiring. There are 4 factions, and each might have a represented in town that day, based on a roll of 7+ on a D10. I roll for each, and only one is present, the Causa Scientiae a particularly rational and Order focused faction. I then roll for the Scenario--I get "recover." One of their artifacts has fallen into mortal hands and is in a museum. They want me to recover it for them. Given the setup, there will only be mortal guards--which is nice--and they don't want me to kill anyone. In fact, each guard I kill will cost me the possible Favor reward with the faction. Works for me--I don't want to kill anyone either.!<
I could refuse job, but risk losing Favor with them. Given that they are the only ones hiring today, I'm loathe to refuse. Plus the job seems up my alley--no magics needed (and I have none), and I should avoid all combat. Since other types of mission are "kill everything on site" or "kill everything and cast a really tough ritual" I figure I'm unlikely to get a better mission.
Next I go to the scenario design. There are a number of possible locations, and each has a unique setup, Events, and Discoveries. This is probably my favorite part of the game. I roll some dice, get a list of rooms and locations, and then create a simple map for my explorations. I know given the setup that the artifact in question will be discovered in the 16th room. But, a roleplayer is gonna roleplay, so I decide my PC will make a beeline for the Archives, assuming that the object surely must be there. And, if not, it will have the necessary paperwork showing where the object is.
Each room has unique odds for three different types of encounters--Enemies, Events, and Discoveries. I begin at the Entrance, and have no enemies but an Event reveals Drug Fueled Goons--apparently the guards here are all high as hell, and have a bonus of 20 to their Hit Points, but a -10 to combat. So, tougher to kill, but easier to hit and avoid.
The next room I enter is the Lobby, and there's a guard present. The guard rules state that they will attack on site. I could use an alternate rule that lets you talk past human-type foes but, well, I am breaking in and they are all drugged the hell up, so I stick with the basic rules. Still, I try to avoid them but fail in my starting initiative roll. The battle begins, and the dice are on my side. It's a running gun battle, but I'm able to kill the guard. When he's wounded, he calls for backup, and the dice gods are still smiling at me, and I make it through that battle without any injuries. I'm upset at my failure to avoid combat--and losing Favor with my client--but after some nasty battles in the intro adventure, I start to think I'm getting things sorted out.
I continue exploring and even manage to successfully sneak past a guard. As I'm exploring one of the administration offices, I run into another one. This time I can't avoid him, and another fight ensues. This time, the dice don't roll so well. He quickly gets the better of me, and I end up taking a lot damage. And with only 90 Hit Points, it's far more than I'm comfortable with. I decide to run.
To run away, you need to roll a D20 and, like initiative, and beat their Dexterity but even still they get a free attack on you. Not that it matters, as I fail to disengage. After two rounds spent trying to run away, my PC is shot dead on some secretaries desk and my game came to a close.
Concluding Thoughts
Seekers Beyond the Shroud is a very interesting game. Obviously, a ton of thought, love, and work has been poured into this game. And there is a lot I love about it--the world, the discussions on magic and spirits, the mission setup system--all top notch. But, there are some things that didn't quite work for me.
I'll probably give the game another shot. But, instead of playing an average guy awakening to a wider world, I'll probably go with a more "badass" character and hope he can survive the first few missions. In Seekers, knowing ancient languages is nice, but real mages know how to use a Glock.
TLDR
Seekers Beyond the Shroud is an interesting Solo RPG of modern occult shenanigans. it has a lot of very interesting and fun mechanics to bring the game to life, but suffers from some bad editing (make sure you play through the intro scenario or you WILL miss a key "PC Bonus") and an unforgiving system. Still, worth checking out for any Solo gamer interested in more contemporary game.
submitted by Talmor to Solo_Roleplaying [link] [comments]

Passed OSCP - My Experience

Originally, I was leaning against doing an obligatory post-OSCP Reddit post because I didn’t want to come across as another “look at me - I passed OSCP!!” cringeworthy OSCP Oscar speech, but I decided to go ahead and do one because my experience was perhaps a little unique and answers the much-asked question “can I do OSCP without experience?”.
A quick background to add context…
I’m 31 years old and my employment history is a mixture of sales, graphics, and media-related job roles. I felt discontented for a long time earning (barely) living wage in job roles I had little passion for. Anyway, to cut a long story short, I decided to quit my latest sales job in November last year (2019) to pursue a career in cybersecurity/infosec. I didn’t know what ‘TCP’ or ‘UDP’ was, and I’d never heard of ‘Kali’ or how to run a VM, but I was convinced that this would be the career path for me.
Anyway, I went through Security+ and C|EH from November to March and, just as I was going to start applying for Security Analyst type job roles, our friendly neighbourhood Coronavirus came along and shut down the economy. Even though I had no intention of doing OSCP for another year or two, I thought it was a better option than twiddling my thumbs for a few months, so I decided to sign up for PWK labs and have a crack at it.
Fast-forwarding to yesterday, after a few brutal months and an incredible experience, I finally got the OSCP “you have successfully completed” email.
Apologies in advance for the essay but I just want to go through my journey for those of you that might be in a similar position to the one I was in - limited/zero IT experience and feeling intimidated by the dreaded OSCP mountain.
My journey…
In the weeks leading up to the wait to start my 60 days PWK material and labs, I went through The Cyber Mentor’s Practical Ethical Hacking Udemy course and then went on a Hack the Box rampage, so, by the time my lab time started, I felt like I was in a pretty decent position.
Unfortunately, because I was a naïve idiot, I tackled the labs straight away and went through the PWK PDF casually on the side. This was a big mistake and something I would definitely change in hindsight because it cost me 5 easy points on the exam (I thought I could smash through the PDF exercises during the last week of labs but this didn’t prove to be enough time).
In 60 days I ended up rooting around 40 machines - I didn’t bother going for the networks because it didn’t apply to the exam and, although valuable real-world experience, I didn’t want to get distracted and flood my brain with even more information when it wasn’t going to be relevant for my mission.
One big thing that I did get right was note-taking. I can’t express enough how valuable it is to take detailed notes and build your own cheat sheet library. After every machine I rooted, I did a walkthrough on OneNote and added any new tools/commands to my cheat sheet library. This not only saves precious time in the exam, but it helps you build your own knowledge instead of relying on other people’s cheat sheets without really understanding what you’re doing.
After my 60 days had finished, I spent 1 month on TJ Null’s OSCP Hack the Box list and IppSec’s video walkthroughs. I also can’t stress enough how valuable this learning methodology is. My only regret is that I rushed through it. I’d already booked my exam 30 days after lab time, so I ended up jumping through walkthroughs when I got stuck on boxes instead of exhausting all options. This was another naïve idiot mistake on my behalf and something I would do differently in hindsight. There’s a difference between “trying harder” and “trying harder, but in a smart way”. I was putting 10+ hours in every day but I wasn’t always being efficient with my time. I’d definitely recommend seeking hints and tips on boxes but only after you’ve exhausted all options first, something which I didn’t always do.
Anyway, my first exam attempt came around towards the end of July. Was I ready? No, but I had delusional confidence in myself that has paid off for me more often than not, so I was hoping it would pay off for me again.
My first exam was brutal. I sat in my chair for a total of 23 hours and 15 minutes, with only 3 short 5-minute breaks to get food to snack on. My VPN was shut down after 24 hours and I had a total of 65 points, which I’d been stuck on for the last 8 hours of my exam. I got the BO, root on one of the 20-point machines, root on the 10-point machine, and user on the other 20-point machine. I just couldn’t get root on that last machine.
I was pretty devastated because I’d put my heart and soul into Sec+, C|EH, and OSCP for 7 straight months and I wanted it bad. But my delusional confidence wasn’t enough.
After listening to depressing Taylor Swift songs for a few days (joke), I decided to book another exam in, 4 weeks after my first attempt.
This time around, I decided to go through Tib3rius’s Linux and Windows Privilege Escalation courses (they were great) and go back over some of the HTB machines. I honestly felt at this point that there wasn’t much more study material that I could go through.
2nd exam came up and it was an almost minute-for-minute repeat of the first exam. BO done, 20 point rooted, 10 point rooted, but could only get user on the other 20 point. 65 points again. This time I ended up listening to Taylor Swift + Lana Del Rey.
I was pretty adamant that I could do this and that I was very close, so I sent Off-Sec an email explaining my situation and they were kind enough to allow me another exam attempt without waiting 8 weeks - I booked another exam in 2 weeks after my second attempt.
This time, my preparation was entirely mental. In both my prior exams, I was sat on my chair for over 23 hours because I was flapping around aimlessly like a headless chicken, desperately firing off exploits that I knew wouldn’t work on the other 20-point machine. So, I went into the 3rd exam determined to go at a slow and steady pace, and not let the 24-hour timeframe pressure me into a wild goose chase.
Miraculously, it seemed to work. After 14 hours, I’d done the BO, rooted both 20-point machines, rooted the 10-point machine, and got user on the 25-point machine. 85-ish points in total.
The point of this story is to get across to people that you need to try simpler, not harder. I perhaps failed my first exam because I’d not gone through Tib3rius’s Priv Esc courses, but I failed on my 2nd 100% due to mentality. There was no skill-level difference between my 2nd exam and 3rd exam.
I’ll finish off with my recommended learning methodology and exam tips (for people with limited/zero IT experience):
. The Cyber Mentor Practical Ethical Hacking Udemy course (usually on offer at $14.99-ish)
. Tib3rius’s Linux and Windows Privilege Escalation course (usually on offer at $12.99 each)
. Try Hack Me OSCP Learning Path (I would recommend doing this before HTB - it is $10 for 30 days)
. PWK labs (I personally don’t feel more than 60 days are required - unless you work full-time)
. TJ Null’s OSCP Hack the Box list ($10 for retired HTB machines - very worth it)
. You should be ready for the exam
Exam tips:
. Become proficient with Nmap but use an enumeration tool like nmapAutomator for the exam
. You will need to understand what bash and Python scripts are doing (you don’t need to be able to write them from scratch)
. Don’t be tempted to use a fancy BO methodology for the exam, stick with PWK’s methodology - it works (some of the others don’t)
. Play around with various reverse shell payloads - sometimes a bash one-liner won’t work so you need to go with Python. Sometimes Bash, Python, and netcat won’t work, so you need to understand what alternatives you can use in that scenario
. Get into the habit of reading service manuals. In all 3 of my exams, I came up against machines that had services I’d never even heard of. Fortunately, I’d got into the habit reading service manuals, otherwise, I would have skipped over the services and got lost down a rabbit hole
. Get into the habit of exploiting conventional services in unconventional ways. Just because an SUID binary isn’t on Gtfobins, it doesn’t mean that you can’t exploit the SUID binary in an unconventional way. Again, get into the habit of reading manuals to understand what services do
. Become familiar with Burp Suite. Many exploits won’t work in the way you might expect them to, but they will work if you run them through Burp. Or, at the very least, you’ll be able to understand why they’re not working. This issue came up in my last exam and I would have been completely lost if it weren’t for Burp
. Take breaks if you get frustrated - this is said over and over again by people on this subreddit and it’s an absolute must. The 20 point machine that I couldn’t root after 8 hours on my 2nd exam was on my 3rd exam (thanks Off-Sec - I know you tried to fu*k me with that), but I was able to root it within 1 hour on my 3rd exam, simply because my mindset was different at the time.
. Trust your gut - by doing PWK and HTB machines, you should develop a gut feeling of when you are in a rabbit hole and when you’re on the right track. I ended up rooting over 100 machines before the exam (albeit with plenty of hints and tips) and it helped me develop a good gut feeling. I can’t explain why but there were times in my last exam where I knew I was in the right area even though I wasn’t able to enumerate the specific service version. This feeling simply came from experience. I’m sure many of you watch IppSec’s videos and wonder “how the hell does he know to do X or Y?”. I used to wonder this all the time but after going through dozens of machines, I finally got it. It comes down to experience. Try to do as many machines as you can before the exam to build that gut feeling, and trust it in the exam.
. Embrace failure - this is perhaps the most important thing that I can say. OSCP is a difficult journey and many people fail multiple times before passing. And you know what? That’s okay. It’s okay to fail. It’s how you react to failure that counts. I’m not particularly smart but I embrace failure and I know deep down that I will keep trying until I pass. I was prepared to take the OSCP exam 1000 times if I had to, I was never going to let the exam beat me. I suggest you approach it with the same mentality and not let silly pride prevent you from having a go at it.
One last thing! Join a solid Discord community. This journey has been amazing since day one and a big reason behind that is the amazing online community. I was very active in an HTB community and ended up talking to several people who were going through OSCP at the same time as me. This was honestly such a massive help to me because I didn’t know what the hell I was doing when I first started!
Sorry for the massive rant - I just see so many people on here treating OSCP like an unsurmountable mountain. It’s not. You can do it!
submitted by TheCrypt0nian to oscp [link] [comments]

Windows file system driver filter driver

I am looking for any info on a feature/regkey/public Microsoft API that will allow me to provide a list of bad filenames that should never be written to storage.
I need a hard-block for specific files that I consider security threat due to their ability to contain arbitrary code (even if executed by trusted system processes), even if the file creation is from an authorized account.
I need a way to prevent the the file-system from creating files with specific names in any location, so that any attempts by windows update, INF copy file, or msi installers (including invocation from privileged Administrator accounts or System's TrustedInstaller) from ever creating a file with specific name.
I am NOT looking for a mechanism to block execution of files already on the system, I need a way to prevent files containing arbitrary code from ever getting to the system in the future as they are coming from a 3rd party that is constantly figuring out some new deployment method to the local system.
At the moment, the only viable solution I have is running such a windows10 environment in a Virtual machine where the hypervisor can scan and roll back the storage image, but its so crude.
Edit: for spelling, and elaboration. The goal is to have a system on the network that does not trust "Domain Administrator" account when it comes to writing those specific files as well, the files should be updated only via physical access to the system to flip the setting/execute a proprietary binary that allows update to the files. Group policy of HVCI based execution does not seem like an option. The security posture of the system and it's network access being permitted is still subject to network admin's NAC
submitted by yourworldisallwrong to Windows10 [link] [comments]

essay tipsssss from a perfect 24 scorer. Also if you have questions I will answer them. GOOD LUCK OCTOBER!!!!!

Hey lovelies, so I made a perfect score on the SAT essay, but I am an embarrassment at everything else, so this is just to say that an essay score doesn’t define you and is overall not as important as it could be. Also this is my own experience, I AM IN NO WAY A WRITING TEACHER, SO PLEASE DON’T COME AT ME IN THE COMMENTS.
My best advice: Write conspiracy theories for every essay
If I had to describe the tone of my writing it would be an academic high on crack.
so buckle up y’all. Also my internationals, I feel ya bc I am not native either- woohoo join the train
Now let’s get down to the actual essay.
My best advice is memorize an essay format because if you are like me and you cry in every section ( I am not even joking) the essay can be a trainwreck of panic, and no one needs that toxic energy in their last section.
So here’s my format:
This is my introduction:
While the narrative of the 21st century human experience has resulted in [problem], the underlying causes are most often unexamined. In the article, “”, the author carefully deals with the underlying reasons for [problem] and overtly advocates for [], and hopes in the end to [ purpose]. While doing so he employs several literary elements, including….
Note about purpose: this is given in the prompt, so all you have to do is reformat it.
Now for the devices and body paragraphs
GO IN CHRONOLOGICAL ORDER!!!!!!
Pick out three devices:
Now here is the format for these devices:
  1. Word choice
    1. evokes emotions or images
    2. characterizes the subject in a particular way
    3. sets the
    4. cultivate émotions
    5. associate positive or negative connotations with something
  2. Statistics/ Data
    1. indicate a problem
      1. point us towards a bigger issue
    2. make something harder to argue because numbers are perceived as facts, not opinions
    3. to effectively ground the authors argument
    4. to surprise readers
    5. to put a quantity in relation to another and effectively contrast
  3. Appeal to Authority
    1. raise credibility by showing that the author is not the only one who believes in this idea
    2. increase trust by showing that the argument is indeed well researched
    3. gain the same acceptance or authority that the authority figure derives from the reader
    4. establish a precedent that pushes people to act in the way that author wants them to behave
  4. Acknowledges the other side/making concessions
    1. address counterarguments, doubts, or fears that the reader may have
    2. establish common ground
    3. pave the way for new arguments to be made
  5. Analogies/ Comparaisons
    1. allow the reader to understand more complex concepts by connecting them to ones that are much simpler
    2. associate new ideas with prior one
    3. which leads the reader into eventual agreement as if he agreed with a prior idea, it is likely he will agree with the new one
  6. Juxtaposition
    1. significant distinction is highlighted
    2. one option seems better than another
    3. create a binary mentality
  7. challenging assumptions
    1. enables this argument to proceed from a clean slate
    2. dismisses any preconceived ideas or biases that may run counter to his or her argument
  8. Anecdotes
    1. form an emotional bond with the reader through establishing a common ground with the reader
  9. Rhetorical questions
    1. gets the reader to imagine a certain scenario
    2. prods the reader into answering a certain way
    3. lays out common ground or assumptions that the author can build upon
    4. describe certain outcomes that may benefit his argument
  10. Appeal to identity
  11. one that takes advantage of the common values and beliefs of a group
  12. human behaviors that seek belonging
  13. gravitate towards an idea that creates a sense of belonging
  14. Strong directives
  15. using we portrays the reader as being on the same side as the reader
  16. stand in unison
  17. and appeals to sense of belonging
Note about this format:
Devices- I WILL TALK ABT IT MORE LATER BUT IT IS GOOD IF THEY MESH IN TOGETHER YOUR ESSAY WILL SEEM ALMOST MORE PUT TOGETHER
ALSO YOU DON’T ALWAYS WANT TO STICK THE FORMAT FOR THE DEVICES- USE THEM TO GROW AN ARGUMENT AND REALLY BUILD A FOUNDATION
THE FORMAT IS NOT A BE- ALL OR END ALL-YOU CAN CHANGE IT UP
Also strong topic sentences:
Author engages the reader’s interest very early in the article. His use of [element] builds a steady foundation from which he launches his discourse
Without the author’s use of persuasive elements , the article would lose….
How to build strong commentary + get yourself the last points
-This is how I build my sentences- they need to be strong and make sense obviously
explain
The implication is that…
The suggestion is that…
… serves to…
The inclusion of… helps…
… elicits …
… grounds her argument in reality so that even skeptical readers won't be
able to dismiss it
… marks the extent of the problem.
By appealing to our sense of…, the author…
The author exploits the fact that… to…
Given that…, …
… proves to the reader that…
By showing that there is…, the author…
… contributes greatly to the argument's persuasive power by…
Analysis point:
So basically the analysis points are legit Satan’s lap dog because they are hard to get
Here are some tips to guarantee you some amazing success
Example of the thing mentioned above:
This is especially resonant as the author writes this in a climate filled with threats of global warming; the author targets the general American public when he writes this as the administration in power is responsible for opting out of Paris Climate Treaty, and the devastating consequences of such an act along with the rise of natural disasters can only make his argument more persuasive
2nd tip: point out flaws in the author’s argument- this is a hidden trick that always works
I am not talking trash and set on fire the author and the College Board, but you should mention some things regarding a weaker arg and how it could have been stronger so that means LIGHT ACADEMIC TRASHING
Here is an example :
Ok on one of the essays that I took. The guy used a statistic to prove that trees did help reduce temperature. However he used a study from his organization that projected increasing temperature Here is what I said about it: The author through his use of statistics aims to establish a logical choice in the reader's mind. By using numbers from the World Health Organization, he tries to usurp the authority that this organization derives and prove that his choice is not only supported by facts but by experts as well. The use of numbers is particularly significant as well since numbers are often regarded as facts, and thus for someone to argue back, a reader would have to either indict or bring up new evidence. While this use of statistics is effective in this context, the author's use of statistics fails due to a misplaced correlation. In this case, a man's passion reveals his weakness, as he uses a study from his own organization to prove his point, which leads us to a possible reevaluation of the purpose not as something to promote the general well being of urban areas, but as a case of self interest and promotion for his organization. Moreover, the basis of his argument rests upon the fact that temperatures decrease based upon the increase of trees. However throughout the argument, the author fails to establish the correlation of this foundation, and by such weakens his argument. He does, in fact, bring up his study, but his study is only in regards to an estimation of the benefice of planting trees and is based on a misplaced correlation where he assumes correlation.
3rd tip: use transitions and nice words
4th tip: Do you have a weaker paragraph?
5th tip: Always read after each paragraph- like reread- prevents mistakes, and if you need to add more you can!
6th tip: paragraph order
-Topic sentence
-Quote- embed it properly
-Explain effect of the quote on the audience
-Add your spices>>> SPACE or ACADEMIC TRASHING
-Finish with a nice little purpose that explains how it strengthens the argument
7th tip: Try to find a second device
How to practice:
Most people don’t have the time or energy to write an essay everyday
Also this didn’t belong anywhere but here it is:
don't skip a line, indent>>>

some people asked for vocab so here it is
https://blog.collegevine.com/the-50-best-vocab-words-for-the-act-essay/-- strong words
https://blog.prepscholar.com/sat-vocabulary-words- good words to know
https://www.oxford-royale.com/articles/words-phrases-good-essays/#aId=b0308864-2c59-4e78-ae70-668f431523a5 for transitions
https://www.oakland.edu/Assets/upload/docs/OUWC/Presentations&Workshops/Rhetorically-Accurate-Verbs.pdf>>>>> this is for your purpose mostly
https://www.sydney.edu.au/content/dam/students/documents/learning-resources/learning-centre/writing/vocabulary-for-essays.pdf >> this is all you really need honestly
Keep in mind, it is very hard to write and use fancy words in a timed write situation. Please learn the context or at least connotation of these words or else they sound forced. You also don't need fancy word for a good score if you use the sentence pattern you will be fine. The readers are looking for deep analysis if your analysis is trash even if you covered it up with fancy words, it is still trash and you won't earn points. Analysis first and vocab last.
submitted by frenchandsarcastic to Sat [link] [comments]

How To Start Investing With $100 best binary options brokers - the best binary brokers in europe  binary brokers 2020 The 10-Minute Rule for Best time day trade binary option ... Binary Trading SCAMS / WARNINGS - YouTube Best Offshore & Australian Regulated Binary Options Brokers for Australians Binary options tutorial for beginners Binary options - Mastering Binary option trading - TRUSTED ... Best Binary Options Trading Software 2017 - Best Binary Options Autotrading Robot for 2017

ExpertOption is a trusted broker that has been around since 2014, offering binary options on over 100+ assets including stocks, cryptocurrency, forex, and commodities. ExpertOption is located in Saint Vincent and the Grenadines and is regulated by the VFSC (Vanuatu Financial Services Commission) and FMRRC (Financial Market Relations Regulation Center). This broker serves clients from over 150 ... Find the best Binary Options Broker 2019 – Conclusion of my review. On this site, I showed you the idea of finding a reliable Binary Options Broker. In the list, you see the best companies in 2019. For successful trading a good broker is necessary. The company should allow you your own strategy of trading and give you good support and service. A list of every binary option broker that there is online with comprehensive reviews and insights. Find out which can be trusted and which are better avoided! Binary options trading may have gotten a bad rap because of its all-or-nothing premise, but the high payouts keep traders coming back for more. This is why binary options markets remain strong in various regions around the world, particularly in Asia. To avoid fraud in binary options trading, choose a trustworthy broker. These brokers can help minimize your losses and provide a measure of ... Trusted Binary Options Brokers. Without doing some research when you are looking to place and trade Binary Options online then you really are at the mercy of some of the poorly run and operated trading sites, with this in mind please do make sure that you have a look around our website for every single site listed has ticked all of the right boxes in regards to what they have to offer their ... List of Trusted And Regulated Broker for 2015 -Bestbinaryoptionssignals Recommended. Apart from the other sites that recommend brokers , what special with my site is i’m a Binary options trader , i have traded with all these brokers which are listed below + i have withdrawn money as a part of Testing broker . Below is the List of my Personally Tested broker 1 – IQ Option – IS the Top ... This binary options robot allows you to trade High/Low, Boundary, One Touch, and Short Term trades with a huge number of brokers. Check out their site for amazing member benefits. Binary Mate: USA traders are allowed. Licensed and regulated by CySEC, license #092/08. Trade High/Low, One Touch and 60 Second options. Their platform also includes ... Trusted Binary Options Brokers. It is imperative to do proper research before settling for an ideal binary options trading site. If you fail to do any research or background check, it is likely that you will settle for a broker that is poorly run and have a fragile trade platform. It will have less number of services to offer, and you will not be able to prosper by trading online. It is ... Trusted Binary Options Brokers List. During the last few years, an increasing number of people are getting involved in binary options trading. Similarly, the number of binary options brokers has increased to cater for this growing interest. Currently, it is estimated that there are more than 450 brokers who are providing these services. The high number of brokers available is good for the ... Binary options demo accounts are the best way to try both binary options trading, and specific brokers’ software and platforms – without needing to risk any money. You can get demo accounts at more than one broker, try them out and only deposit real money at the one you find best. It can also be useful to have accounts at more than one broker. For example, payouts for two different assets ...

[index] [12000] [4452] [25934] [20835] [29771] [11000] [11841] [13317] [8765] [8061]

How To Start Investing With $100

For this reason, our site has put together a list of the best binary options signal services available on the web, which actually have great customer service satisfaction and have shown a proven ... List of the 8 best Binary Options Brokers 2019 - Trading Review - Duration: 12:55. Trusted Broker Reviews 5,284 views. 12:55. Stock Market Order Types (Market Order, Limit Order, ... Best binary options brokers vs scam brokers - incl.Best binary options brokers in india 2020 (beginners guide) - fxbeginner. We've listed the best binary options trading sites that would let you ... topic: in this video i am going to tell you what are the top 5 most trusted and legit brokers in binary options trading . brokers list iq options : http://bi... The Full Report: https://bit.ly/2PHr7Ah - The 10-Minute Rule for Best time day trade binary option login - top 10 list of trusted Binary choices. Even if an ... Here is the list of TRUSTED BROKERS YOU CAN USE for manual trading, either Binary Options, Forex or CFD: IQ Option (Binary, CFD, Forex): http://www.cryptobin... Binary options tutorial for beginners Please subscribe to the channel for daily binary options content : https://www.youtube.com/channel/UCD4i... Playlist of... Binary options.Binary Options Strategy 2020: My New Method For Trading Forex Million Pound Review - Exposing 'Million Pound Robot' SCAM! Tesler 2 Review - Dangerous Tesler App SCAM Returns! (WARNING) Bitcoin Code Review - DONT Join Dangerous Trading SCAM! Direct ... BINARY OPTIONS PRODUCT REVIEW TRUSTED BINARY REVIEWS BO GORILLA BETOROPTION BINARY OPTIONS PATROL PRESTIGE BINARY OPTIONS SCAM REVIEWS There are many others, so please use your intelligence and if ...

http://binary-optiontrade.datingtrus.cf