Download - DIGITS / Binary Software Helper -MoneyTradeBot ...

External Stepmania Song Management Tool - Feature Requests Appreciated

Overview:
Way back in 2015 I created a really simple utility to manage my StepMania library that I dubbed StepManiaHelper, which I released on this subreddit to seemingly little interest. Given the simplicity and narrow use-case of the tool though, that was perhaps not surprising.
The original idea of the tool was that I had a song library of over 10k songs, and that caused the game to take a long time to startup. Since many of these songs were ones I'd never play (some were too difficult for me, some were slow and boring, and others were made for keyboards while I play with a dance pad), it seemed kind of silly to have them in my song library slowing down my load time. However, separating out these songs was a task I felt was better automated than done manually.
Recently a user of said tool sent me a request for some additional features, and I thought I'd revisit it to see if I could do better. I've uploaded an in-development screenshot here so that you can get an idea of the current state of things, although the GUI is still very much subject to change as features are added and I have to figure out how to make them all play well together.
Current Workflow:
The current functionality is that you run the program, point it to your StepMania "songs" directory (or a specific song pack directory, or a specific song directory) and hit the "Parse" button in the upper right. This will scan the selected folder for song information and create the grid seen on the right. As this scan is going on, the "Parse/Filter Output" section on the bottom left provides feedback on what it's doing and where it is in the process (for instance "song pack 5 of 100" and "song 3 of 12" [of songs in the song pack]). If the scan is taking too long, you can also cancel it by clicking the "Parse" button a second time (it's text will change to "Cancel" while parsing).
When the scan is complete (or cancelled) a binary file is created in the selected directory which houses all of the information found in the scan. The application will use this in future scans, speeding things up. This allows you to resume scans at a later time, or scan for newly added songs, and not have to do a lengthy re-scan every time you want to use the program.
Once songs have been identified you can define filters for moving songs out of the library using the "Filters" and "Filter Options" on the left, and then hitting the "Apply Filters" button. Again, feedback on the progress will appear in the "Parse/Filter Output" section. Songs that are flagged by the filters will be moved out of the "songs" directory (where StepMania will no longer be able to see them) and into a folder with the name shown in the filter ("_DUPLICATE", "_NONPAD", etc.).
The checkboxes on the right under the filter columns indicate whether the song is located in the filtered folder or the regular songs folder. Checking or unchecking this checkbox will move the folder.
The current filters are:
Features I'm currently investigating/implementing:
The following are the things I currently have plans to work on or at least investigate:
What I want from the community:
If any of you feel that this tool, or something that I could conceivably add to it, might be useful to you, I would love to hear your thoughts on what I could do or change to make it more useful to you. I can't guarantee I'll be able to add everything, and I'm not even sure when I'll be able to release it since I don't have a ton of time to work on it, but any and all feedback is welcome.
submitted by echo404 to Stepmania [link] [comments]

./play.it 2.12: API, GUI and video games

./play.it 2.12: API, GUI and video games

./play.it is a free/libre software that builds native packages for several Linux distributions from DRM-free installers for a collection of commercial games. These packages can then be installed using the standard distribution-provided tools (APT, pacman, emerge, etc.).
A more complete description of ./play.it has already been posted in linux_gaming a couple months ago: ./play.it, an easy way to install commercial games on GNU/Linux
It's already been one year since version 2.11 was released, in January 2019. We will only briefly review the changelog of version 2.12 and focus on the different points of ./play.it that kept us busy during all this time, and of which coding was only a small part.

What’s new with 2.12?

Though not the focus of this article, it would be a pity not to present all the added features of this brand new version. ;)
Compared to the usual updates, 2.12 is a major one, especially since for two years, we slowed down the addition of new features. Some patches took dust since the end of 2018 before finally be integrated in this update!
The list of changes for this 2.12 release can be found on our forge. Here is a full copy for convenience:

Development migration

History

As many free/libre projects, ./play.it development started on some random sector of a creaking hard drive, and unsurprisingly, a whole part of its history (everything predating version 1.13.15 released on Mars 30th, 2016) disappeared into the limbs because some unwise operation destroyed the only copy of the repository… Lesson learned, what's not shared don't stay long, and so was born the first public Git repository of the project. The easing of collaborative work was only accidentally achieved by this quest for eternity, but wasn't the original motivation for making the repository publicly available.
Following this decision, ./play.it source code has been hosted successively by many shared forge platforms:

Dedicated forge

As development progressed, ./play.it began to increase its need for resources, dividing its code into several repositories to improve the workflow of the different aspects of the projects, adding continuous integration tests and their constraints, etc. A furious desire to understand the nooks and crannies behind a forge platform was the last deciding factor towards hosting a dedicated forge.
So it happened, we deployed a forge platform on a dedicated server, hugely benefiting from the tremendous work achieved by the GitLab's package Debian Maintainers team. In return, we tried to contribute our findings in improving this software packaging.
That was not expected, but this migration happened just a little time before the announcement “Déframasoftisons Internet !” (French article) about the planned end of Framagit.
This dedicated instance used to be hosted on a VPS rented from Digital Ocean until the second half of July 2020, and since then has been moved to another VPS, rented from Hetzner. The specifications are similar, as well as the service, but thanks to this migration our hosting costs have been cut in half. Keeping in mind that this is paid by a single person, so any little donation helps a lot on this front. ;)
To the surprise of our system administrator, this last migration took only a couple hours with no service interruption reported by our users.

Forge access

This new forge can be found at forge.dotslashplay.it. Registrations are open to the public, but we ask you to not abuse this, the main restriction being that we do not wish to host projects unrelated to ./play.it. Of course exceptions are made for our active contributors, who are allowed to host some personal projects there.
So, if you wish to use this forge to host your own work, you first need to make some significant contributions to ./play.it.

API

The collection of supported games growing endlessly, we have started the development of a public API allowing access to lots of information related to ./play.it.
This API, which is not yet stabilized, is simply an interface to a versioned database containing all the ./play.it scripts, handled archives, games installable through the project. Relations are, of course, handled between those items, enabling its use for requests like : « What packages are required on my system to install Cæsar Ⅲ ? » or « What are the free (as in beer) games handled via DOSBox ? ».
Originally developed as support for the new, in-development, Web site (we'll talk about it later on), this API should facilitate the development of tools around ./play.it. For example, it'll be useful for whomever would like to build a complete video game handling software (downloading, installation, starting, etc.) using ./play.it as one of its building bricks.
For those curious about the technical side, it's an API based on Lumeneffectuant that makes requests on a MariaDB database, all self-hosted on a Debian Sid. Not only is the code of the API versioned on our forge, but also the structure and content of the databases, which will allow those who desired it to install a local version easily.

New website

Based on the aforementioned API, a new website is under development and will replace our current website based on DokuWiki.
Indeed, if the lack of database and the plain text files structure of DokuWiki seemed at first attractive, as ./play.it supported only a handful of games (link in French), this feature became more inconvenient as the library of ./play.it supported games grew.
We shall make an in-depth presentation of this website for the 2.13 release of ./play.it, but a public demo of the development version from our forge is already available.
If you feel like providing an helping hand on this task, some priority tasks have been identified to allow opening a new Web site able to replace the current one. And for those interested in technical details, this web Site was developed in PHP using the framework Laravel. The current in-development version is hosted for now on the same Debian Sid than the API.

GUI

A regular comment that is done about the project is that, if the purpose is to make installing games accessible to everyone without technical skills, having to run scripts in the terminal remains somewhat intimidating. Our answer until now has been that while the project itself doesn't aim to providing a graphical interface (KISS principle "Keep it simple, stupid"), still and always), but that it would be relatively easy to, later on, develop a graphical front-end to it.
Well, it happens that is now reality. Around the time of our latest publication, one of our contributors, using the API we just talked about, developed a small prototype that is usable enough to warrant a little shout out. :-)
In practice, it is some small Python 3 code (an HCI completely in POSIX shell is for a later date :-°), using GTK 3 (and still a VTE terminal to display the commands issued, but the user shouldn't have to input anything in it, except perhaps the root password to install some packages). This allowed to verify that, as we used to say, it would be relatively easy, since a script of less than 500 lines of code (written quickly over a week-end) was enough to do the job !
Of course, this graphical interface project stays independent from the main project, and is maintained in a specific repository. It seems interesting to us to promote it in order to ease the use of ./play.it, but this doesn't prevent any other similar projects to be born, for example using a different language or graphical toolkit (we, globally, don't have any particular affinity towards Python or GTK).
The use of this HCI needs three steps : first, a list of available games is displayed, coming directly from our API. You just need to select in the list (optionally using the search bar) the game you want to install. Then it switches to a second display, which list the required files. If several alternatives are available, the user can select the one he wants to use. All those files must be in the same directory, the address bar on the top enabling to select which one to use (click on the open button on the top opens a filesystem navigation window). Once all those files available (if they can be downloaded, the software will do it automatically), you can move ahead to the third step, which is just watching ./play.it do its job :-) Once done, a simple click on the button on the bottom will run the game (even if, from this step, the game is fully integrated on your system as usual, you no longer need this tool to run it).
To download potentially missing files, the HCI will use, depending on what's available on the system, either wget, curl or aria2c (this last one also handling torrents), of which the output will be displayed in the terminal of the third phase, just before running the scripts. For privilege escalation to install packages, sudo will be used preferentially if available (with the option to use a third-party application for password input, if the corresponding environment variable is set, which is more user-friendly), else su will be used.
Of course, any suggestion for an improvement will be received with pleasure.

New games

Of course, such an announcement would not be complete without a list of the games that got added to our collection since the 2.11 release… So here you go:
If your favourite game is not supported by ./play.it yet, you should ask for it in the dedicated tracker on our forge. The only requirement to be a valid request is that there exists a version of the game that is not burdened by DRM.

What’s next?

Our team being inexhaustible, work on the future 2.13 version has already begun…
A few major objectives of this next version are :
If your desired features aren't on this list, don't hesitate to signal it us, in the comments of this news release. ;)

Links

submitted by vv224 to linux_gaming [link] [comments]

Selenium ERR_TUNNEL_CONNECTION_FAILED when navigating to a different url

Sometimes when I navigate to a different URL with Selenium-Chrome, I'm getting this exception.
org.openqa.selenium.WebDriverException: unknown error: net::ERR_TUNNEL_CONNECTION_FAILED
Below is how I have created my chrome driver.
options = new ChromeOptions(); ((ChromeOptions) options).setBinary("/opt/google/chrome/google-chrome"); ((ChromeOptions) options).setAcceptInsecureCerts(true); ((ChromeOptions) options).addArguments("--no-sandbox", "--disable-dev-shm-usage") ((ChromeOptions) options).addArguments("--disable-extensions"); options.setCapability("browserVersion", "general");

driver = new RemoteWebDriver(url, SeleniumHelper.getCapabilities("chrome",myGrid.getForwardProxy()));
Below is an example line where this error occurs.
driver.navigate().to("https://mywebsite.something/"+ someID);
What am I doing wrong here? How can I debug this issue? The test is running in a docker instance in a remote machine. And this error occurs occasionally and not every single time. Any help would be much appreciated.
submitted by mayooran57 to selenium [link] [comments]

First Time Going Through Coding Interviews?

This post draws on my personal experiences and challenges over the past term at school, which I entered with hardly any knowledge of DSA (data structures and algorithms) and problem-solving strategies. As a self-taught programmer, I was a lot more familiar and comfortable with general programming, such as object-oriented programming, than with the problem-solving skills required in DSA questions.
This post reflects my journey throughout the term and the resources I turned to in order to quickly improve for my coding interview.
Here're some common questions and answers
What's the interview process like at a tech company?
Good question. It's actually pretty different from most other companies.

(What It's Like To Interview For A Coding Job

First time interviewing for a tech job? Not sure what to expect? This article is for you.

Here are the usual steps:

  1. First, you’ll do a non-technical phone screen.
  2. Then, you’ll do one or a few technical phone interviews.
  3. Finally, the last step is an onsite interview.
Some companies also throw in a take-home code test—sometimes before the technical phone interviews, sometimes after.
Let’s walk through each of these steps.

The non-technical phone screen

This first step is a quick call with a recruiter—usually just 10–20 minutes. It's very casual.
Don’t expect technical questions. The recruiter probably won’t be a programmer.
The main goal is to gather info about your job search. Stuff like:

  1. Your timeline. Do you need to sign an offer in the next week? Or are you trying to start your new job in three months?
  2. What’s most important to you in your next job. Great team? Flexible hours? Interesting technical challenges? Room to grow into a more senior role?
  3. What stuff you’re most interested in working on. Front end? Back end? Machine learning?
Be honest about all this stuff—that’ll make it easier for the recruiter to get you what you want.
One exception to that rule: If the recruiter asks you about your salary expectations on this call, best not to answer. Just say you’d rather talk about compensation after figuring out if you and the company are a good fit. This’ll put you in a better negotiating position later on.

The technical phone interview(s)

The next step is usually one or more hour-long technical phone interviews.
Your interviewer will call you on the phone or tell you to join them on Skype or Google Hangouts. Make sure you can take the interview in a quiet place with a great internet connection. Consider grabbing a set of headphones with a good microphone or a bluetooth earpiece. Always test your hardware beforehand!
The interviewer will want to watch you code in real time. Usually that means using a web-based code editor like Coderpad or collabedit. Run some practice problems in these tools ahead of time, to get used to them. Some companies will just ask you to share your screen through Google Hangouts or Skype.
Turn off notifications on your computer before you get started—especially if you’re sharing your screen!
Technical phone interviews usually have three parts:

  1. Beginning chitchat (5–10 minutes)
  2. Technical challenges (30–50 minutes)
  3. Your turn to ask questions (5–10 minutes)
The beginning chitchat is half just to help your relax, and half actually part of the interview. The interviewer might ask some open-ended questions like:

  1. Tell me about yourself.
  2. Tell me about something you’ve built that you’re particularly proud of.
  3. I see this project listed on your resume—tell me more about that.
You should be able to talk at length about the major projects listed on your resume. What went well? What didn’t? How would you do things differently now?
Then come the technical challenges—the real meet of the interview. You’ll spend most of the interview on this. You might get one long question, or several shorter ones.
What kind of questions can you expect? It depends.
Startups tend to ask questions aimed towards building or debugging code. (“Write a function that takes two rectangles and figures out if they overlap.”). They’ll care more about progress than perfection.
Larger companies will want to test your general know-how of data structures and algorithms (“Write a function that checks if a binary tree is ‘balanced’ in O(n)O(n) ↴ time.”). They’ll care more about how you solve and optimize a problem.
With these types of questions, the most important thing is to be communicating with your interviewer throughout. You'll want to "think out loud" as you work through the problem. For more info, check out our more detailed step-by-step tips for coding interviews.
If the role requires specific languages or frameworks, some companies will ask trivia-like questions (“In Python, what’s the ‘global interpreter lock’?”).
After the technical questions, your interviewer will open the floor for you to ask them questions. Take some time before the interview to comb through the company’s website. Think of a few specific questions about the company or the role. This can really make you stand out.
When you’re done, they should give you a timeframe on when you’ll hear about next steps. If all went well, you’ll either get asked to do another phone interview, or you’ll be invited to their offices for an onsite.

The onsite interview

An onsite interview happens in person, at the company’s office. If you’re not local, it’s common for companies to pay for a flight and hotel room for you.
The onsite usually consists of 2–6 individual, one-on-one technical interviews (usually in a small conference room). Each interview will be about an hour and have the same basic form as a phone screen—technical questions, bookended by some chitchat at the beginning and a chance for you to ask questions at the end.
The major difference between onsite technical interviews and phone interviews though: you’ll be coding on a whiteboard.
This is awkward at first. No autocomplete, no debugging tools, no delete button…ugh. The good news is, after some practice you get used to it. Before your onsite, practice writing code on a whiteboard (in a pinch, a pencil and paper are fine). Some tips:

  1. Start in the top-most left corner of the whiteboard. This gives you the most room. You’ll need more space than you think.
  2. Leave a blank line between each line as you write your code. Makes it much easier to add things in later.
  3. Take an extra second to decide on your variable names. Don’t rush this part. It might seem like a waste of time, but using more descriptive variable names ultimately saves you time because it makes you less likely to get confused as you write the rest of your code.
If a technical phone interview is a sprint, an onsite is a marathon. The day can get really long. Best to keep it open—don’t make other plans for the afternoon or evening.
When things go well, you’ wrap-up by chatting with the CEO or some other director. This is half an interview, half the company trying to impress you. They may invite you to get drinks with the team after hours.
All told, a long day of onsite interviews could look something like this:

If they let you go after just a couple interviews, it’s usually a sign that they’re going to pass on you. That’s okay—it happens!
There are are a lot of easy things you can do the day before and morning of your interview to put yourself in the best possible mindset. Check out our piece on what to do in the 24 hours before your onsite coding interview.

The take-home code test

Code tests aren’t ubiquitous, but they seem to be gaining in popularity. They’re far more common at startups, or places where your ability to deliver right away is more important than your ability to grow.
You’ll receive a description of an app or service, a rough time constraint for writing your code, and a deadline for when to turn it in. The deadline is usually negotiable.
Here's an example problem:
Write a basic “To-Do” app. Unit test the core functionality. As a bonus, add a “reminders” feature. Try to spend no more than 8 hours on it, and send in what you have by Friday with a small write-up.
Take a crack at the “bonus” features if they include any. At the very least, write up how you would implement it.
If they’re hiring for people with knowledge of a particular framework, they might tell you what tech to use. Otherwise, it’ll be up to you. Use what you’re most comfortable with. You want this code to show you at your best.
Some places will offer to pay you for your time. It's rare, but some places will even invite you to work with them in their office for a few days, as a "trial.")
Do I need to know this "big O" stuff?
Big O notation is the language we use for talking about the efficiency of data structures and algorithms.
Will it come up in your interviews? Well, it depends. There are different types of interviews.
There’s the classic algorithmic coding interview, sometimes called the “Google-style whiteboard interview.” It’s focused on data structures and algorithms (queues and stacks, binary search, etc).
That’s what our full course prepares you for. It's how the big players interview. Google, Facebook, Amazon, Microsoft, Oracle, LinkedIn, etc.
For startups and smaller shops, it’s a mixed bag. Most will ask at least a few algorithmic questions. But they might also include some role-specific stuff, like Java questions or SQL questions for a backend web engineer. They’ll be especially interested in your ability to ship code without much direction. You might end up doing a code test or pair-programming exercise instead of a whiteboarding session.
To make sure you study for the right stuff, you should ask your recruiter what to expect. Send an email with a question like, “Is this interview going to cover data structures and algorithms? Or will it be more focused around coding in X language.” They’ll be happy to tell you.
If you've never learned about data structures and algorithms, or you're feeling a little rusty, check out our Intuitive Guide to Data Structures and Algorithms.
Which programming language should I use?
Companies usually let you choose, in which case you should use your most comfortable language. If you know a bunch of languages, prefer one that lets you express more with fewer characters and fewer lines of code, like Python or Ruby. It keeps your whiteboard cleaner.
Try to stick with the same language for the whole interview, but sometimes you might want to switch languages for a question. E.g., processing a file line by line will be far easier in Python than in C++.
Sometimes, though, your interviewer will do this thing where they have a pet question that’s, for example, C-specific. If you list C on your resume, they’ll ask it.
So keep that in mind! If you’re not confident with a language, make that clear on your resume. Put your less-strong languages under a header like ‘Working Knowledge.’
What should I wear?
A good rule of thumb is to dress a tiny step above what people normally wear to the office. For most west coast tech companies, the standard digs are just jeans and a t-shirt. Ask your recruiter what the office is like if you’re worried about being too casual.
Should I send a thank-you note?
Thank-you notes are nice, but they aren’t really expected. Be casual if you send one. No need for a hand-calligraphed note on fancy stationery. Opt for a short email to your recruiter or the hiring manager. Thank them for helping you through the process, and ask them to relay your thanks to your interviewers.
1) Coding Interview Tips
How to get better at technical interviews without practicing
Chitchat like a pro.
Before diving into code, most interviewers like to chitchat about your background. They're looking for:

You should have at least one:

Nerd out about stuff. Show you're proud of what you've done, you're amped about what they're doing, and you have opinions about languages and workflows.
Communicate.
Once you get into the coding questions, communication is key. A candidate who needed some help along the way but communicated clearly can be even better than a candidate who breezed through the question.
Understand what kind of problem it is. There are two types of problems:

  1. Coding. The interviewer wants to see you write clean, efficient code for a problem.
  2. Chitchat. The interviewer just wants you to talk about something. These questions are often either (1) high-level system design ("How would you build a Twitter clone?") or (2) trivia ("What is hoisting in Javascript?"). Sometimes the trivia is a lead-in for a "real" question e.g., "How quickly can we sort a list of integers? Good, now suppose instead of integers we had . . ."
If you start writing code and the interviewer just wanted a quick chitchat answer before moving on to the "real" question, they'll get frustrated. Just ask, "Should we write code for this?"
Make it feel like you're on a team. The interviewer wants to know what it feels like to work through a problem with you, so make the interview feel collaborative. Use "we" instead of "I," as in, "If we did a breadth-first search we'd get an answer in O(n)O(n) time." If you get to choose between coding on paper and coding on a whiteboard, always choose the whiteboard. That way you'll be situated next to the interviewer, facing the problem (rather than across from her at a table).
Think out loud. Seriously. Say, "Let's try doing it this way—not sure yet if it'll work." If you're stuck, just say what you're thinking. Say what might work. Say what you thought could work and why it doesn't work. This also goes for trivial chitchat questions. When asked to explain Javascript closures, "It's something to do with scope and putting stuff in a function" will probably get you 90% credit.
Say you don't know. If you're touching on a fact (e.g., language-specific trivia, a hairy bit of runtime analysis), don't try to appear to know something you don't. Instead, say "I'm not sure, but I'd guess $thing, because...". The because can involve ruling out other options by showing they have nonsensical implications, or pulling examples from other languages or other problems.
Slow the eff down. Don't confidently blurt out an answer right away. If it's right you'll still have to explain it, and if it's wrong you'll seem reckless. You don't win anything for speed and you're more likely to annoy your interviewer by cutting her off or appearing to jump to conclusions.
Get unstuck.
Sometimes you'll get stuck. Relax. It doesn't mean you've failed. Keep in mind that the interviewer usually cares more about your ability to cleverly poke the problem from a few different angles than your ability to stumble into the correct answer. When hope seems lost, keep poking.
Draw pictures. Don't waste time trying to think in your head—think on the board. Draw a couple different test inputs. Draw how you would get the desired output by hand. Then think about translating your approach into code.
Solve a simpler version of the problem. Not sure how to find the 4th largest item in the set? Think about how to find the 1st largest item and see if you can adapt that approach.
Write a naive, inefficient solution and optimize it later. Use brute force. Do whatever it takes to get some kind of answer.
Think out loud more. Say what you know. Say what you thought might work and why it won't work. You might realize it actually does work, or a modified version does. Or you might get a hint.
Wait for a hint. Don't stare at your interviewer expectantly, but do take a brief second to "think"—your interviewer might have already decided to give you a hint and is just waiting to avoid interrupting.
Think about the bounds on space and runtime. If you're not sure if you can optimize your solution, think about it out loud. For example:

Get your thoughts down.
It's easy to trip over yourself. Focus on getting your thoughts down first and worry about the details at the end.
Call a helper function and keep moving. If you can't immediately think of how to implement some part of your algorithm, big or small, just skip over it. Write a call to a reasonably-named helper function, say "this will do X" and keep going. If the helper function is trivial, you might even get away with never implementing it.
Don't worry about syntax. Just breeze through it. Revert to English if you have to. Just say you'll get back to it.
Leave yourself plenty of room. You may need to add code or notes in between lines later. Start at the top of the board and leave a blank line between each line.
Save off-by-one checking for the end. Don't worry about whether your for loop should have "<<" or "<=<=." Write a checkmark to remind yourself to check it at the end. Just get the general algorithm down.
Use descriptive variable names. This will take time, but it will prevent you from losing track of what your code is doing. Use names_to_phone_numbers instead of nums. Imply the type in the name. Functions returning booleans should start with "is_*". Vars that hold a list should end with "s." Choose standards that make sense to you and stick with them.
Clean up when you're done.
Walk through your solution by hand, out loud, with an example input. Actually write down what values the variables hold as the program is running—you don't win any brownie points for doing it in your head. This'll help you find bugs and clear up confusion your interviewer might have about what you're doing.
Look for off-by-one errors. Should your for loop use a "<=<=" instead of a "<<"?
Test edge cases. These might include empty sets, single-item sets, or negative numbers. Bonus: mention unit tests!
Don't be boring. Some interviewers won't care about these cleanup steps. If you're unsure, say something like, "Then I'd usually check the code against some edge cases—should we do that next?"
Practice.
In the end, there's no substitute for running practice questions.
Actually write code with pen and paper. Be honest with yourself. It'll probably feel awkward at first. Good. You want to get over that awkwardness now so you're not fumbling when it's time for the real interview.

2) Tricks For Getting Unstuck During a Coding Interview
Getting stuck during a coding interview is rough.
If you weren’t in an interview, you might take a break or ask Google for help. But the clock is ticking, and you don’t have Google.
You just have an empty whiteboard, a smelly marker, and an interviewer who’s looking at you expectantly. And all you can think about is how stuck you are.
You need a lifeline for these moments—like a little box that says “In Case of Emergency, Break Glass.”
Inside that glass box? A list of tricks for getting unstuck. Here’s that list of tricks.
When you’re stuck on getting started
1) Write a sample input on the whiteboard and turn it into the correct output "by hand." Notice the process you use. Look for patterns, and think about how to implement your process in code.
Trying to reverse a string? Write “hello” on the board. Reverse it “by hand”—draw arrows from each character’s current position to its desired position.
Notice the pattern: it looks like we’re swapping pairs of characters, starting from the outside and moving in. Now we’re halfway to an algorithm.
2) Solve a simpler version of the problem. Remove or simplify one of the requirements of the problem. Once you have a solution, see if you can adapt that approach for the original question.
Trying to find the k-largest element in a set? Walk through finding the largest element, then the second largest, then the third largest. Generalizing from there to find the k-largest isn’t so bad.
3) Start with an inefficient solution. Even if it feels stupidly inefficient, it’s often helpful to start with something that’ll return the right answer. From there, you just have to optimize your solution. Explain to your interviewer that this is only your first idea, and that you suspect there are faster solutions.
Suppose you were given two lists of sorted numbers and asked to find the median of both lists combined. It’s messy, but you could simply:

  1. Concatenate the arrays together into a new array.
  2. Sort the new array.
  3. Return the value at the middle index.
Notice that you could’ve also arrived at this algorithm by using trick (2): Solve a simpler version of the problem. “How would I find the median of one sorted list of numbers? Just grab the item at the middle index. Now, can I adapt that approach for getting the median of two sorted lists?”
When you’re stuck on finding optimizations
1) Look for repeat work. If your current solution goes through the same data multiple times, you’re doing unnecessary repeat work. See if you can save time by looking through the data just once.
Say that inside one of your loops, there’s a brute-force operation to find an element in an array. You’re repeatedly looking through items that you don’t have to. Instead, you could convert the array to a lookup table to dramatically improve your runtime.
2) Look for hints in the specifics of the problem. Is the input array sorted? Is the binary tree balanced? Details like this can carry huge hints about the solution. If it didn’t matter, your interviewer wouldn’t have brought it up. It’s a strong sign that the best solution to the problem exploits it.
Suppose you’re asked to find the first occurrence of a number in a sorted array. The fact that the array is sorted is a strong hint—take advantage of that fact by using a binary search.

Sometimes interviewers leave the question deliberately vague because they want you to ask questions to unearth these important tidbits of context. So ask some questions at the beginning of the problem.
3) Throw some data structures at the problem. Can you save time by using the fast lookups of a hash table? Can you express the relationships between data points as a graph? Look at the requirements of the problem and ask yourself if there’s a data structure that has those properties.
4) Establish bounds on space and runtime. Think out loud about the parameters of the problem. Try to get a sense for how fast your algorithm could possibly be:

When All Else Fails
1) Make it clear where you are. State what you know, what you’re trying to do, and highlight the gap between the two. The clearer you are in expressing exactly where you’re stuck, the easier it is for your interviewer to help you.
2) Pay attention to your interviewer. If she asks a question about something you just said, there’s probably a hint buried in there. Don’t worry about losing your train of thought—drop what you’re doing and dig into her question.
Relax. You’re supposed to get stuck.
Interviewers choose hard problems on purpose. They want to see how you poke at a problem you don’t immediately know how to solve.
Seriously. If you don’t get stuck and just breeze through the problem, your interviewer’s evaluation might just say “Didn’t get a good read on candidate’s problem-solving process—maybe she’d already seen this interview question before?”
On the other hand, if you do get stuck, use one of these tricks to get unstuck, and communicate clearly with your interviewer throughout...that’s how you get an evaluation like, “Great problem-solving skills. Hire.”

3) Fixing Impostor Syndrome in Coding Interviews
“It's a fluke that I got this job interview...”
“I studied for weeks, but I’m still not prepared...”
“I’m not actually good at this. They’re going to see right through me...”
If any of these thoughts resonate with you, you're not alone. They are so common they have a name: impostor syndrome.
It’s that feeling like you’re on the verge of being exposed for what you really are—an impostor. A fraud.
Impostor syndrome is like kryptonite to coding interviews. It makes you give up and go silent.
You might stop asking clarifying questions because you’re afraid they’ll sound too basic. Or you might neglect to think out loud at the whiteboard, fearing you’ll say something wrong and sound incompetent.
You know you should speak up, but the fear of looking like an impostor makes that really, really hard.
Here’s the good news: you’re not an impostor. You just feel like an impostor because of some common cognitive biases about learning and knowledge.
Once you understand these cognitive biases—where they come from and how they work—you can slowly fix them. You can quiet your worries about being an impostor and keep those negative thoughts from affecting your interviews.

Everything you could know

Here’s how impostor syndrome works.
Software engineering is a massive field. There’s a huge universe of things you could know. Huge.
In comparison to the vast world of things you could know, the stuff you actually know is just a tiny sliver:
That’s the first problem. It feels like you don’t really know that much, because you only know a tiny sliver of all the stuff there is to know.

The expanding universe

It gets worse: counterintuitively, as you learn more, your sliver of knowledge feels like it's shrinking.
That's because you brush up against more and more things you don’t know yet. Whole disciplines like machine learning, theory of computation, and embedded systems. Things you can't just pick up in an afternoon. Heavy bodies of knowledge that take months to understand.
So the universe of things you could know seems to keep expanding faster and faster—much faster than your tiny sliver of knowledge is growing. It feels like you'll never be able to keep up.

What everyone else knows

Here's another common cognitive bias: we assume that because something is easy for us, it must be easy for everyone else. So when we look at our own skills, we assume they're not unique. But when we look at other people's skills, we notice the skills they have that we don't have.
The result? We think everyone’s knowledge is a superset of our own:
This makes us feel like everyone else is ahead of us. Like we're always a step behind.
But the truth is more like this:
There's a whole area of stuff you know that neither Aysha nor Bruno knows. An area you're probably blind to, because you're so focused on the stuff you don't know.

We’ve all had flashes of realizing this. For me, it was seeing the back end code wizard on my team—the one that always made me feel like an impostor—spend an hour trying to center an image on a webpage.

It's a problem of focus

Focusing on what you don't know causes you to underestimate what you do know. And that's what causes impostor syndrome.
By looking at the vast (and expanding) universe of things you could know, you feel like you hardly know anything.
And by looking at what Aysha and Bruno know that you don't know, you feel like you're a step behind.
And interviews make you really focus on what you don't know. You focus on what could go wrong. The knowledge gaps your interviewers might find. The questions you might not know how to answer.
But remember:
Just because Aysha and Bruno know some things you don't know, doesn't mean you don't also know things Aysha and Bruno don't know.
And more importantly, everyone's body of knowledge is just a teeny-tiny sliver of everything they could learn. We all have gaps in our knowledge. We all have interview questions we won't be able to answer.
You're not a step behind. You just have a lot of stuff you don't know yet. Just like everyone else.

4) The 24 Hours Before Your Interview

Feeling anxious? That’s normal. Your body is telling you you’re about to do something that matters.

The twenty-four hours before your onsite are about finding ways to maximize your performance. Ideally, you wanna be having one of those days, where elegant code flows effortlessly from your fingertips, and bugs dare not speak your name for fear you'll squash them.
You need to get your mind and body in The Zone™ before you interview, and we've got some simple suggestions to help.
5) Why You're Hitting Dead Ends In Whiteboard Interviews

The coding interview is like a maze

Listening vs. holding your train of thought

Finally! After a while of shooting in the dark and frantically fiddling with sample inputs on the whiteboard, you've came up with an algorithm for solving the coding question your interviewer gave you.
Whew. Such a relief to have a clear path forward. To not be flailing anymore.
Now you're cruising, getting ready to code up your solution.
When suddenly, your interviewer throws you a curve ball.
"What if we thought of the problem this way?"
You feel a tension we've all felt during the coding interview:
"Try to listen to what they're saying...but don't lose your train of thought...ugh, I can't do both!"
This is a make-or-break moment in the coding interview. And so many people get it wrong.
Most candidates end up only half understanding what their interviewer is saying. Because they're only half listening. Because they're desperately clinging to their train of thought.
And it's easy to see why. For many of us, completely losing track of what we're doing is one of our biggest coding interview fears. So we devote half of our mental energy to clinging to our train of thought.
To understand why that's so wrong, we need to understand the difference between what we see during the coding interview and what our interviewer sees.

The programming interview maze

Working on a coding interview question is like walking through a giant maze.
You don't know anything about the shape of the maze until you start wandering around it. You might know vaguely where the solution is, but you don't know how to get there.
As you wander through the maze, you might find a promising path (an approach, a way to break down the problem). You might follow that path for a bit.
Suddenly, your interviewer suggests a different path:
But from what you can see so far of the maze, your approach has already gotten you halfway there! Losing your place on your current path would mean a huge step backwards. Or so it seems.
That's why people hold onto their train of thought instead of listening to their interviewer. Because from what they can see, it looks like they're getting somewhere!
But here's the thing: your interviewer knows the whole maze. They've asked this question 100 times.

I'm not exaggerating: if you interview candidates for a year, you can easily end up asking the same question over 100 times.
So if your interviewer is suggesting a certain path, you can bet it leads to an answer.
And your seemingly great path? There's probably a dead end just ahead that you haven't seen yet:
Or it could just be a much longer route to a solution than you think it is. That actually happens pretty often—there's an answer there, but it's more complicated than you think.

Hitting a dead end is okay. Failing to listen is not.

Your interviewer probably won't fault you for going down the wrong path at first. They've seen really smart engineers do the same thing. They understand it's because you only have a partial view of the maze.
They might have let you go down the wrong path for a bit to see if you could keep your thinking organized without help. But now they want to rush you through the part where you discover the dead end and double back. Not because they don't believe you can manage it yourself. But because they want to make sure you have enough time to finish the question.
But here's something they will fault you for: failing to listen to them. Nobody wants to work with an engineer who doesn't listen.
So when you find yourself in that crucial coding interview moment, when you're torn between holding your train of thought and considering the idea your interviewer is suggesting...remember this:
Listening to your interviewer is the most important thing.
Take what they're saying and run with it. Think of the next steps that follow from what they're saying.
Even if it means completely leaving behind the path you were on. Trust the route your interviewer is pointing you down.
Because they can see the whole maze.
6) How To Get The Most Out Of Your Coding Interview Practice Sessions
When you start practicing for coding interviews, there’s a lot to cover. You’ll naturally wanna brush up on technical questions. But how you practice those questions will make a big difference in how well you’re prepared.
Here’re a few tips to make sure you get the most out of your practice sessions.
Track your weak spots
One of the hardest parts of practicing is knowing what to practice. Tracking what you struggle with helps answer that question.
So grab a fresh notebook. After each question, look back and ask yourself, “What did I get wrong about this problem at first?” Take the time to write down one or two things you got stuck on, and what helped you figure them out. Compare these notes to our tips for getting unstuck.
After each full practice session, read through your entire running list. Read it at the beginning of each practice session too. This’ll add a nice layer of rigor to your practice, so you’re really internalizing the lessons you’re learning.
Use an actual whiteboard
Coding on a whiteboard is awkward at first. You have to write out every single character, and you can’t easily insert or delete blocks of code.
Use your practice sessions to iron out that awkwardness. Run a few problems on a piece of paper or, if you can, a real whiteboard. A few helpful tips for handwriting code:

Set a timer
Get a feel for the time pressure of an actual interview. You should be able to finish a problem in 30–45 minutes, including debugging your code at the end.
If you’re just starting out and the timer adds too much stress, put this technique on the shelf. Add it in later as you start to get more comfortable with solving problems.
Think out loud
Like writing code on a whiteboard, this is an acquired skill. It feels awkward at first. But your interviewer will expect you to think out loud during the interview, so you gotta power through that awkwardness.
A good trick to get used to talking out loud: Grab a buddy. Another engineer would be great, but you can also do this with a non-technical friend.
Have your buddy sit in while you talk through a problem. Better yet—try loading up one of our questions on an iPad and giving that to your buddy to use as a script!
Set aside a specific time of day to practice.
Give yourself an hour each day to practice. Commit to practicing around the same time, like after you eat dinner. This helps you form a stickier habit of practicing.
Prefer small, daily doses of practice to doing big cram sessions every once in a while. Distributing your practice sessions helps you learn more with less time and effort in the long run.
part -2 will be upcoming in another post !
submitted by Cyberrockz to u/Cyberrockz [link] [comments]

Is there a short-circuit for Option or Result that doesn't abort the function?

In Python et al, I'm used to doing things like this:
for my_record in my_list: if my_record is None: continue //do things with the confirmed-not-none my_record 
In Rust, the equivalent pattern would be
//my_record is Option, the specifics of Something don't matter for my_record in my_list { if my_record.is_none() { continue; } //my_record is confirmed not None, unwrap it and do things with it let my_unwrapped_record = my_record.unwrap(); } 
Now I understand that unwrap() is strongly frowned on, so I don't see this as a viable workflow here. But what's the idiomatic equivalent?
if let Some(my_unwrapped_record) = my_record { } else { continue; } //do things with my_unwrapped_record 
seems awkward.
match my_record { Some(my_unwrapped_record) => { //process my_unwrapped_record } None => { continue; } } 
produces the exact kind of deeply nested structure I'm trying to avoid (this pattern can repeat 3-4 times if I'm calling functions that all return Option or Result).
let my_escaped_record: Something match my_record { Some(my_unwrapped_record) => { my_escaped_record = my_unwrapped_record; } None => { continue; } } //process my_escaped_record 
does unwrap the value safely and helps it escape the scope of the match block, but that seems ugly too. Roughly 10 lines and a helper variable in Rust for a 2-liner in Python.
The ? operator is almost what I want, but it returns from the entire function, and I just want to skip this one record and keep looping/processing.
for my_record in my_list { let my_unwrapped_record = my_record?; //oops, we just skipped all the rest of our processing because one record was None } 
filter_map() also seems like almost, but not quite, what I'm looking for. It can strip out the None values entirely and unwrap the remaining Options before I ever start looping. The place this really falls through is where indexing matters, like in this database processing code, taken from the mysql QueryResult docs:
let mut results: let mut results: QueryResult = connection.exec_iter(MY_QUERY, params! { "value_1" => 1 })?; let mut set_index: i32 = -1; while let Some(result_set) = results.next_set() { //bump the set index early so we stay synced up even if the ResultSet is garbage and we skip it set_index = set_index + 1; //how to handle result_set here? Its type is Result>. I need to find a short-circuit way to strip the Result off and keep processing if the Result is an Err. //each database table's records are returned in a different result_set, so use the set_index to differentiate them. If we use filter_map to strip invalid result_sets, these set indexes get all out of whack and we'll probably panic when we try to actually use the database rows. match set_index { 0 => { } 1 => { } _ => { unreachable!(); } } } 
There's gotta be some way to do this, right?
submitted by crab1122334 to learnrust [link] [comments]

SCCM WDS/PXE troubleshooting

hello All ,i'm going to strenghten my knowledge (or not) on WDS/PXE Feature on SCCM v2006.
History :
Configuration :
DHCP options 66+67 on DHCP Instance, I know Microsoft doesn't recommand that design for subnet/vlan reaching but who know i don't wanna explain to network engineer what i intent to implement ... waster of time , anyway until now work like a charm .
EG :
https://preview.redd.it/do3v84uyl4n51.png?width=498&format=png&auto=webp&s=7de51b7130f7d8aed656f789edacc7b525d7ba6e
Was implemented on release before v1901 about one year ago (can't recall exactly)
Was updated on v2002 : after that ... broken
Was forced to use Norton ghost as last resort for past two weeks (and it was painfull to .. wait) .. thanks for guyz on reddit (for SCCM client rearm :) )

Problem/Issues related (Testing VM machine) where firewall turned off on OS supervisor .. :

Booting on PXE
After That .
Steps
SMSImages
SMSTemp
BootImage
Logs from SMSPXE.log after last attempt , i read someone Cert chain no validated can be culprit , on log seems ok-ish
I recalled first time i've that worked without the pain , this time wont try to find proper boot file .. (:X) .
If anyone faced same problem ? because now i can say "what the fonk seriously" :D.
With the power of fonk , i going to use IP-Helpers .. not sure if will help ..
And finally logs (SMSPXE.log)
InstallBootFilesForImage failed. 0x80004005 SMSPXE 9/14/2020 4:37:15 PM 13052 (0x32FC)
Warning: Failed to copy the needed boot binaries from the boot image D:\RemoteInstall\SMSImages\034000AC\WinPE.034000AC.wim.
The operation completed successfully. (Error: 00000000; Source: Windows) SMSPXE 9/14/2020 4:37:15 PM 13052 (0x32FC)
Failed adding image D:\RemoteInstall\SMSImages\034000AC\WinPE.034000AC.wim. Will Retry..
Unspecified error (Error: 80004005; Source: Windows) SMSPXE 9/14/2020 4:37:15 PM 13052 (0x32FC)
File D:\RemoteInstall\SMSTemp\2020.09.14.16.37.13.01.{84E47845-E5AB-460E-93B5-9B7F08051E40}.boot.bcd deleted. SMSPXE 9/14/2020 4:37:15 PM 13052 (0x32FC)
File D:\RemoteInstall\SMSTemp\2020.09.14.16.37.13.01.{84E47845-E5AB-460E-93B5-9B7F08051E40}.boot.bcd.log deleted. SMSPXE 9/14/2020 4:37:15 PM 13052 (0x32FC)
Found new image 034000AD SMSPXE 9/14/2020 4:37:15 PM 13052 (0x32FC)
Loaded Windows Imaging API DLL (version '10.0.19041.1') from location 'C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\wimgapi.dll' SMSPXE 9/14/2020 4:37:15 PM 13052 (0x32FC)
Opening image file D:\RemoteInstall\SMSImages\034000AD\WinPE.034000AD.wim SMSPXE 9/14/2020 4:37:15 PM 13052 (0x32FC)
Found Image file: D:\RemoteInstall\SMSImages\034000AD\WinPE.034000AD.wim
PackageID: 034000AD
ProductName: Microsoft® Windows® Operating System
Architecture: 0
Description: Microsoft Windows PE (x86)
Version:
Creator:
SystemDir: WINDOWS
`SMSPXE 9/14/2020 4:37:15 PM 13052 (0x32FC)` 
Closing image file D:\RemoteInstall\SMSImages\034000AD\WinPE.034000AD.wim SMSPXE 9/14/2020 4:37:15 PM 13052 (0x32FC)
InstallBootFilesForImage failed. 0x80004005 SMSPXE 9/14/2020 4:37:16 PM 13052 (0x32FC)
Warning: Failed to copy the needed boot binaries from the boot image D:\RemoteInstall\SMSImages\034000AD\WinPE.034000AD.wim.
The operation completed successfully. (Error: 00000000; Source: Windows) SMSPXE 9/14/2020 4:37:16 PM 13052 (0x32FC)
Failed adding image D:\RemoteInstall\SMSImages\034000AD\WinPE.034000AD.wim. Will Retry..
Unspecified error (Error: 80004005; Source: Windows) SMSPXE 9/14/2020 4:37:16 PM 13052 (0x32FC)
File D:\RemoteInstall\SMSTemp\2020.09.14.16.37.15.02.{75724072-C04C-4BF2-B834-A47B23D7FDF7}.boot.bcd deleted. SMSPXE 9/14/2020 4:37:16 PM 13052 (0x32FC)
File D:\RemoteInstall\SMSTemp\2020.09.14.16.37.15.02.{75724072-C04C-4BF2-B834-A47B23D7FDF7}.boot.bcd.log deleted. SMSPXE 9/14/2020 4:37:16 PM 13052 (0x32FC)
Begin validation of Certificate [Thumbprint 6EF26DCEC790BA64CFD3519502FA750109D455E1] issued to '335523aa-73c7-4343-9fb3-10dea91b547d' SMSPXE 9/14/2020 4:37:16 PM 13052 (0x32FC)
Completed validation of Certificate [Thumbprint 6EF26DCEC790BA64CFD3519502FA750109D455E1] issued to '335523aa-73c7-4343-9fb3-10dea91b547d' SMSPXE 9/14/2020 4:37:16 PM 13052 (0x32FC)
PXE Provider finished loading. SMSPXE 9/14/2020 4:37:16 PM 13052 (0x32FC)
Error opening file: D:\RemoteInstall\SMSImages\034000AC\WinPE.034000AC.wim. Win32=32 SMSPXE 9/14/2020 4:37:18 PM 5632 (0x1600)
Retrying D:\RemoteInstall\SMSImages\034000AC\WinPE.034000AC.wim SMSPXE 9/14/2020 4:37:18 PM 5632 (0x1600)
Found new image 034000AC SMSPXE 9/14/2020 4:37:21 PM 5632 (0x1600)
Loaded Windows Imaging API DLL (version '10.0.19041.1') from location 'C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\wimgapi.dll' SMSPXE 9/14/2020 4:37:21 PM 5632 (0x1600)
Opening image file D:\RemoteInstall\SMSImages\034000AC\WinPE.034000AC.wim SMSPXE 9/14/2020 4:37:21 PM 5632 (0x1600)
Found Image file: D:\RemoteInstall\SMSImages\034000AC\WinPE.034000AC.wim
PackageID: 034000AC
ProductName: Microsoft® Windows® Operating System
Architecture: 9
Description: Microsoft Windows PE (x64)
Version:
Creator:
SystemDir: WINDOWS
`SMSPXE 9/14/2020 4:37:21 PM 5632 (0x1600)` 
Closing image file D:\RemoteInstall\SMSImages\034000AC\WinPE.034000AC.wim SMSPXE 9/14/2020 4:37:21 PM 5632 (0x1600)
Found new image 034000AD SMSPXE 9/14/2020 4:37:23 PM 5632 (0x1600)
Loaded Windows Imaging API DLL (version '10.0.19041.1') from location 'C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\wimgapi.dll' SMSPXE 9/14/2020 4:37:23 PM 5632 (0x1600)
Opening image file D:\RemoteInstall\SMSImages\034000AD\WinPE.034000AD.wim SMSPXE 9/14/2020 4:37:23 PM 5632 (0x1600)
Found Image file: D:\RemoteInstall\SMSImages\034000AD\WinPE.034000AD.wim
PackageID: 034000AD
ProductName: Microsoft® Windows® Operating System
Architecture: 0
Description: Microsoft Windows PE (x86)
Version:
Creator:
SystemDir: WINDOWS
`SMSPXE 9/14/2020 4:37:23 PM 5632 (0x1600)` 
Closing image file D:\RemoteInstall\SMSImages\034000AD\WinPE.034000AD.wim SMSPXE 9/14/2020 4:37:23 PM 5632 (0x1600)
Boot image 034000AC has changed since added SMSPXE 9/14/2020 4:37:28 PM 5632 (0x1600)
Loaded Windows Imaging API DLL (version '10.0.19041.1') from location 'C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\wimgapi.dll' SMSPXE 9/14/2020 4:37:28 PM 5632 (0x1600)
Opening image file D:\RemoteInstall\SMSImages\034000AC\WinPE.034000AC.wim SMSPXE 9/14/2020 4:37:28 PM 5632 (0x1600)
Found Image file: D:\RemoteInstall\SMSImages\034000AC\WinPE.034000AC.wim
PackageID: 034000AC
ProductName: Microsoft® Windows® Operating System
Architecture: 9
Description: Microsoft Windows PE (x64)
Version:
Creator:
SystemDir: WINDOWS
`SMSPXE 9/14/2020 4:37:28 PM 5632 (0x1600)` 
Closing image file D:\RemoteInstall\SMSImages\034000AC\WinPE.034000AC.wim SMSPXE 9/14/2020 4:37:28 PM 5632 (0x1600)
============> Received from client: SMSPXE 9/14/2020 4:38:55 PM 5156 (0x1424)
Operation: BootRequest (1) Addr type: 1 Addr Len: 6 Hop Count: 0 ID: 0001E240
Sec Since Boot: 65535 Client IP: 172.025.168.158 Your IP: 000.000.000.000 Server IP: 172.025.169.187 Relay Agent IP: 000.000.000.000
Addr: 00:15:5d:01:31:08:
Magic Cookie: 63538263
Options:
Type=93 Client Arch: EFI BC
Type=97 UUID: 00832d0a20cbcfa24c9774be443d9fdf64
Type=53 Msg Type: 3=Request
Type=60 ClassId: PXEClient
Type=55 Param Request List: 3c8081828384858687
Type=250 0c01000d020800010200070e0100ff SMSPXE 9/14/2020 4:38:55 PM 5156 (0x1424)
Prioritizing local MP http://CSFOREFRONT03.netia-ad.local. SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
Not in SSL. SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
RequestMPKeyInformation: Send() failed. SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
Unsuccessful in getting MP key information. 80004005. SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
PXE::MP_InitializeTransport failed; 0x80004005 SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
PXE::MP_LookupDevice failed; 0x80070490 SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
Prioritizing local MP http://CSFOREFRONT03.netia-ad.local. SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
Not in SSL. SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
RequestMPKeyInformation: Send() failed. SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
Unsuccessful in getting MP key information. 80004005. SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
PXE::MP_InitializeTransport failed; 0x80004005 SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
PXE::MP_ReportStatus failed; 0x80070490 SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
PXE Provider failed to process message.
Element not found. (Error: 80070490; Source: Windows) SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
00:15:5D:01:31:08, 200A2D83-CFCB-4CA2-9774-BE443D9FDF64: Not serviced. SMSPXE 9/14/2020 4:38:55 PM 9128 (0x23A8)
File D:\RemoteInstall\SMSTemp\2020.09.14.16.37.21.03.{922B1EC8-ECAD-42F6-A001-84177BDD5C13}.boot.bcd deleted. SMSPXE 9/14/2020 4:47:16 PM 3120 (0x0C30)
File D:\RemoteInstall\SMSTemp\2020.09.14.16.37.21.03.{922B1EC8-ECAD-42F6-A001-84177BDD5C13}.boot.bcd.log deleted. SMSPXE 9/14/2020 4:47:16 PM 3120 (0x0C30)
============> Received from client: SMSPXE 9/14/2020 4:53:04 PM 5156 (0x1424)
Operation: BootRequest (1) Addr type: 1 Addr Len: 6 Hop Count: 0 ID: 0001E240
Sec Since Boot: 65535 Client IP: 172.025.168.158 Your IP: 000.000.000.000 Server IP: 172.025.169.187 Relay Agent IP: 000.000.000.000
Addr: 00:15:5d:01:31:08:
Magic Cookie: 63538263
Options:
Type=93 Client Arch: EFI BC
Type=97 UUID: 00832d0a20cbcfa24c9774be443d9fdf64
Type=53 Msg Type: 3=Request
Type=60 ClassId: PXEClient
Type=55 Param Request List: 3c8081828384858687
Type=250 0c01000d020800010200070e0100ff SMSPXE 9/14/2020 4:53:04 PM 5156 (0x1424)
Prioritizing local MP http://CSFOREFRONT03.netia-ad.local. SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
Not in SSL. SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
RequestMPKeyInformation: Send() failed. SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
Unsuccessful in getting MP key information. 80004005. SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
PXE::MP_InitializeTransport failed; 0x80004005 SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
PXE::MP_LookupDevice failed; 0x80070490 SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
Prioritizing local MP http://CSFOREFRONT03.netia-ad.local. SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
Not in SSL. SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
RequestMPKeyInformation: Send() failed. SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
Unsuccessful in getting MP key information. 80004005. SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
PXE::MP_InitializeTransport failed; 0x80004005 SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
PXE::MP_ReportStatus failed; 0x80070490 SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
PXE Provider failed to process message.
Element not found. (Error: 80070490; Source: Windows) SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
00:15:5D:01:31:08, 200A2D83-CFCB-4CA2-9774-BE443D9FDF64: Not serviced. SMSPXE 9/14/2020 4:53:04 PM 9128 (0x23A8)
submitted by OniSen8 to SCCM [link] [comments]

[vstplugin~] v0.4.0 released!

Here's a new release of [vstplugin~] - a Pd external to load VST plugins on Windows, macOS and Linux!
Binaries are available on Deken or can be downloaded here: https://git.iem.at/pd/vstplugin/-/releases
If possible, please report any issues at https://git.iem.at/pd/vstplugin/issues, otherwise leave a comment here: https://forum.pdpatchrepo.info/topic/13013/vstplugin-v0-4-0-released
NOTE: macOS users might consider using my Pd vanilla fork, where the VST GUI doesn't run on the audio thread. You can download binaries here: https://github.com/Spacechild1/pure-data/releases/tag/v0.51.1-eventloop. It is the same as Pd 0.51-1, but it offers the option to run a Cocoa event loop. Maybe this feature will make its way into a future version of Pd vanilla.
---
Here are the major new features:
See the release page for the full change log.
Have fun!
Christof
submitted by spacechild1 to puredata [link] [comments]

Nothing to see here! pls scroll to next post!

debug.cpp TesterHook.cpp entityidxarray.cpp graph.cpp graphnode.cpp modAI_Memory.cpp aAI_CommsInstructions.cpp aAI_EntityInterface.cpp cAI_Action.cpp cAI_AdminManager.cpp cAI_Agent.cpp cAI_CommsModule.cpp cAI_CommsPrefix.cpp cAI_CommsPrep.cpp cAI_EntityGame.cpp cAI_EntityPlayer.cpp cAI_TransitionData.cpp cAI_Variables.cpp modAI_Audio.cpp modAI_Communication.cpp modAI_Identifier.cpp modAI_Interaction.cpp modAI_Interface.cpp modAI_Senses.cpp modAI_Synchronisation.cpp aAI_PerformTask.cpp cAI_ActionManager.cpp cAI_AnimInterface.cpp cAI_LowLevelInterface.cpp cAI_PerformanceManager.cpp cAI_PerformancePhase.cpp cAI_PerformTaskAction.cpp cAI_PerformTaskAnim.cpp cAI_PerformTaskAudio.cpp cAI_SpeechInterface.cpp aAI_Controller.cpp aAI_ControllerCombat.cpp aAI_Coordinator.cpp aAI_EntityIDArray.cpp aAI_Objective.cpp cAI_ControllerBoundary.cpp cAI_ControllerCamp.cpp cAI_ControllerCombatBlind.cpp cAI_ControllerCombatCover.cpp cAI_ControllerCombatMelee.cpp cAI_ControllerCoverSeek.cpp cAI_ControllerFollow.cpp cAI_ControllerFollowThrough.cpp cAI_ControllerGoto.cpp cAI_ControllerGotoGunfire.cpp cAI_ControllerGuard.cpp cAI_ControllerHide.cpp cAI_ControllerIdle.cpp cAI_ControllerOrbit.cpp cAI_ControllerSearch.cpp cAI_ControllerStop.cpp cAI_CoordinateBoundary.cpp cAI_CoordinateGenericAction.cpp cAI_CoordinateGenericCombat.cpp cAI_CoordinateGuard.cpp cAI_CoordinateIdle.cpp cAI_CoordinateInvestigate.cpp cAI_CoordinateKillEnemy.cpp cAI_CoordinateSearch.cpp cAI_Goal.cpp cAI_GoalDefinition.cpp cAI_IdleActions.cpp cAI_ObjectiveBeBuddy.cpp cAI_ObjectiveHuntEnemy.cpp cAI_ObjectiveIdle.cpp cAI_ObjectiveScriptedAction.cpp cAI_Pack.cpp cAI_Subpack.cpp cAI_HearingSense.cpp cAI_SensesData.cpp cAI_SensingPhase.cpp cAI_VisionSense.cpp meleeTraits.cpp traits.cpp acts.cpp atomicActs.cpp combatUtil.cpp coverActs.cpp gunActBase.cpp meleeActs.cpp pedBodyAnimFSM.cpp pedTorsoAnimFSM.cpp compDriver.cpp weaponController.cpp formation.cpp motion.cpp navigation.cpp navPoint.cpp navTactics.cpp pointTracker.cpp squad.cpp pedSpace.cpp gunPerception.cpp itemPerception.cpp meleeCombatPerception.cpp pedRelationshipPerception.cpp selfPerception.cpp Senses.cpp Vision.cpp AnimBlendAssociation.cpp AnimBlendClumpData.cpp AnimBlendHierarchy.cpp AnimBlendNode.cpp AnimBlendSequence.cpp AnimHierarchy.cpp AnimManager.cpp Compressed.cpp EntityAnim.cpp App.cpp GameTime.cpp AmbientTransitionManager.cpp AudioAnim.cpp audiobloodfx.cpp AudioCollision.cpp audiolog.cpp audioman.cpp AudioMisc.cpp AudioScripted.cpp AudioTextMap.cpp CriAdxStream.cpp CriAixStream.cpp CriInterface.cpp dmaudio.cpp music.cpp SampleManagerChannelFunctions.cpp sampman.cpp ScriptedStream.cpp SpeechManager.cpp VolumeFader.cpp AgeSupport.cpp manager.cpp sfx.cpp system_wii.cpp BufferedSoundWii.cpp CRC.cpp SectorReadables.cpp ColAABox.cpp ColArch.cpp ColData.cpp ColFrustum.cpp ColLine.cpp Collision.cpp ColModelLine.cpp ColModelPoint.cpp ColModelSphere.cpp ColModelTri.cpp ColPrim.cpp ColSphere.cpp ColTri.cpp ContactInfo.cpp ColCylinder.cpp ColModelCylinder.cpp console.cpp skel.cpp wiiplatform.cpp CollectableEffect.cpp CreationManager.cpp Entity.cpp EntityManager.cpp OddEntity.cpp TypeData.cpp Character.cpp ped.cpp pedstates.cpp attackdirectiondata.cpp attackdirectionlookup.cpp pedcombatlookups.cpp pedspinecontrol.cpp pushporter.cpp Climb.cpp Crawl.cpp Crouch.cpp Detector.cpp Dive.cpp Jump.cpp JumpPredictor.cpp autoped.cpp Hunter.cpp Leader.cpp PedHead.cpp delayedHunterSpawn.cpp RsvGoreEffectForExecutions.cpp CameraData.cpp collectable.cpp conveyor.cpp door.cpp EntityLight.cpp Lift.cpp mover.cpp ShotEntity.cpp slidedoor.cpp switch.cpp Trigger.cpp Useable.cpp EntitySound.cpp EnvironmentalExecution.cpp Helicopter.cpp ShadowPlane.cpp FileHandler.cpp FileNames.cpp LoadSave.cpp eyelayerinset.cpp Frontend.cpp FrontendMenu.cpp GameInfo.cpp GameInventory.cpp GameMap.cpp randomuvanimator.cpp tvlayerinset.cpp confirmnewgamepage.cpp inventorystatussettings.cpp layeredbackground.cpp layeredpage.cpp pageeffects.cpp randomoverlay.cpp screenanim.cpp screeneffectsmanager.cpp startpage.cpp texanimator.cpp weaponslotcolours.cpp weaponswapper.cpp weaponswappersettings.cpp backgroundPicAnim.cpp bar.cpp confirmingameQuitPage.cpp ContextButtonDisplay.cpp controllerPage.cpp defaultSettingsPage.cpp ExecutionBox.cpp ExecutionFrame.cpp FlexText.cpp GoalFlexText.cpp hud.cpp hudItem.cpp ingameMainPage.cpp InventorySelector.cpp inventoryStatus.cpp item.cpp LevelNameFlexText.cpp LoadProgressScreen.cpp menu.cpp newGameBrightnessPage.cpp page.cpp radar.cpp saveGamesPage.cpp sceneselectionPage.cpp screen.cpp startLanguageSelectionPage.cpp textures.cpp cGEN_String.cpp cGEN_Timer.cpp gGEN_Globals.cpp gGEN_StandardFunctions.cpp modGEN_Housekeeping.cpp modGEN_Memory.cpp stats.cpp aGEN_Array.cpp cGEN_CharArray.cpp cDBG_DebugFile.cpp modDBG_LowLevelDebug.cpp aGEN_Memory.cpp modGEN_MemoryReporting.cpp rwcore.cpp TextUtils.cpp UniCodeUtils.cpp MhGlobalData.cpp MhLoadSave_Wii.cpp MhPeripherals_Wii.cpp Pad_Wii.cpp WiiLoadSave.cpp CheatHandler.cpp InputManager.cpp WiiAccelerometer.cpp WiiGesture.cpp ActionMapping.cpp KeyCode.cpp Inventory.cpp fx.cpp fxEmitter.cpp fxInfo.cpp fxInterp.cpp fxKeyGen.cpp fxList.cpp fxManager.cpp fxPrim.cpp fxSystem.cpp fxUtils.cpp MHtoFXinterface.cpp Maths.cpp Matrix.cpp Quaternion.cpp Vector.cpp MemManager.cpp PoolAllocationManager.cpp PoolAllocator.cpp CutsceneCamera.cpp EntityFadeController.cpp SimpleLinearAllocator.cpp Cylinder.cpp FrisbeeArm.cpp CriAfsPartition.cpp CriDataStream.cpp DataStreamManager.cpp Portal.cpp StreamedLevelSector.cpp StreamedLevelSectorCore.cpp StreamedLevelSectorManager.cpp StreamedAnimation.cpp StreamedAnimationManager.cpp TexturePool.cpp TexturePoolGroup.cpp TexturePoolManager.cpp AiHelpers.cpp EntityAttrReader.cpp EntityAttrWriter.cpp EntityTextureRenderer.cpp EnvironmentID.cpp PathSearch.cpp RsvDebuggingInfoForUseables.cpp RsvTvpChecker.cpp StringHashing.cpp OverlayMgr.cpp RwRGBA_Globals.cpp ScreenStringsOverlay.cpp TextOverlay.cpp Physics.cpp collisionFrame.cpp camglobals.cpp Crosshair.cpp ExecutionTutorial.cpp handicam.cpp ImpactDamageMap.cpp player.cpp playercam.cpp PLayerLimits.cpp playerstates.cpp WiiExecutionMap.cpp WiiQuickTimeMoment.cpp grenade.cpp responder.cpp Atomic.cpp Camera.cpp CharacterDamageManager.cpp CharacterDamageMap.cpp Clump.cpp ClumpDict.cpp clumplist.cpp collisionmaterial.cpp EntityShadow.cpp EntityShadowManager.cpp Frame.cpp Geometry.cpp Light.cpp lights.cpp material.cpp materiallist.cpp scene.cpp sceneData.cpp skin.cpp spline.cpp texdictionary.cpp texture.cpp tvp.cpp utils.cpp uvanimator.cpp World.cpp WorldSector.cpp CutScene.cpp CutScenePlayed.cpp EntityShadowFader.cpp MaterialMapper.cpp lit_environmentmap.cpp lit_singletexture.cpp lit_singletexture_uvanim.cpp lit_texreconfig.cpp unlit_32indtexture.cpp unlit_notexture.cpp unlit_singletexture.cpp entityData.cpp LoadedScript.cpp ScriptCaseFloat.cpp ScriptCaseGame.cpp ScriptCaseGame2.cpp ScriptCaseGame3.cpp ScriptCaseGameRsv.cpp ScriptCaseInternals.cpp ScriptCaseStandard.cpp ScriptCaseStrings.cpp ScriptLoader.cpp ScriptManager.cpp ScriptVM.cpp BreakingGlass.cpp clouds.cpp Decal.cpp dualtexture.cpp fogpatch.cpp FXMode.cpp LightFX.cpp ParticleEffect.cpp ParticleModel.cpp rats.cpp Renderbuffer.cpp rubbish.cpp SFXManager.cpp StreakEffect.cpp TrailEffect.cpp Weather.cpp jitter.cpp lipsync.cpp spotlight.cpp spotlightcone.cpp throwgraphic.cpp OverbrightEffect.cpp VideoScreenEffect.cpp Str.cpp Timer.cpp Shot.cpp Weapon.cpp WeaponManager.cpp colramp.cpp Gu.cpp GuProfiler.cpp main.cpp renderer.cpp rslengine.cpp shadermgr.cpp vectorASM.cpp volatilemem.cpp WiiGeometry.cpp WiiShader.cpp WorldCollision.cpp actor.c control.c displayObject.c dmabuffer.cpp fileCache.c geoPalette.c GQRSetup.c List.c normalTable.c SKNControl.c SKNMath.c string.c texPalette.c Tree.c HomeButtonMenu.cpp display.cpp binkfunctions.cpp binkplayer.cpp wiitextures.c adler32.c infblock.c infcodes.c inffast.c inflate.c inftrees.c infutil.c zutil.c binkwii.c binkread.c wiiax.c wiifile.c binkacd.c radcb.c expand.c popmal.c radmem.c fft.c dct.c bitplane.c ai.c arc.c AX.c AXAlloc.c AXAux.c AXCL.c AXOut.c AXSPB.c AXVPB.c AXProf.c AXComp.c DSPCode.c AXFXReverbHi.c AXFXReverbHiDpl2.c AXFXReverbHiExp.c AXFXReverbHiExpDpl2.c AXFXReverbStd.c AXFXReverbStdExp.c AXFXHooks.c PPCArch.c gki_buffer.c gki_time.c gki_ppc.c hcisu_h2.c uusb_ppc.c bta_dm_cfg.c bta_hh_cfg.c bta_sys_cfg.c bte_hcisu.c bte_init.c bte_logmsg.c bte_main.c btu_task1.c bd.c bta_sys_conn.c bta_sys_main.c ptim.c utl.c bta_dm_act.c bta_dm_api.c bta_dm_main.c bta_dm_pm.c bta_hh_act.c bta_hh_api.c bta_hh_main.c bta_hh_utils.c btm_acl.c btm_dev.c btm_devctl.c btm_discovery.c btm_inq.c btm_main.c btm_pm.c btm_sco.c btm_sec.c btu_hcif.c btu_init.c wbt_ext.c gap_api.c gap_conn.c gap_utils.c hcicmds.c hidd_api.c hidd_conn.c hidd_mgmt.c hidd_pm.c hidh_api.c hidh_conn.c l2c_api.c l2c_csm.c l2c_link.c l2c_main.c l2c_utils.c port_api.c port_rfc.c port_utils.c rfc_l2cap_if.c rfc_mx_fsm.c rfc_port_fsm.c rfc_port_if.c rfc_ts_frames.c rfc_utils.c sdp_api.c sdp_db.c sdp_discovery.c sdp_main.c sdp_server.c sdp_utils.c db.c dsp.c dsp_debug.c dsp_task.c dvdfs.c dvd.c dvdqueue.c dvderror.c dvdidutils.c dvdFatal.c dvd_broadway.c euart.c EXIBios.c EXIUart.c EXICommon.c fs.c GXInit.c GXFifo.c GXAttr.c GXMisc.c GXGeometry.c GXFrameBuf.c GXLight.c GXTexture.c GXBump.c GXTev.c GXPixel.c GXDisplayList.c GXTransform.c GXPerf.c HBMBase.cpp HBMAnmController.cpp HBMFrameController.cpp HBMGUIManager.cpp HBMController.cpp HBMRemoteSpk.cpp db_assert.cpp db_console.cpp db_DbgPrintBase.cpp db_directPrint.cpp db_mapFile.cpp lyt_animation.cpp lyt_arcResourceAccessor.cpp lyt_bounding.cpp lyt_common.cpp lyt_drawInfo.cpp lyt_group.cpp lyt_layout.cpp lyt_material.cpp lyt_pane.cpp lyt_picture.cpp lyt_resourceAccessor.cpp lyt_textBox.cpp lyt_window.cpp math_triangular.cpp snd_AnimSound.cpp snd_AxManager.cpp snd_AxVoice.cpp snd_Bank.cpp snd_BankFile.cpp snd_BasicSound.cpp snd_Channel.cpp snd_DisposeCallbackManager.cpp snd_DvdSoundArchive.cpp snd_EnvGenerator.cpp snd_ExternalSoundPlayer.cpp snd_FrameHeap.cpp snd_InstancePool.cpp snd_Lfo.cpp snd_MemorySoundArchive.cpp snd_MidiSeqPlayer.cpp snd_MidiSeqTrack.cpp snd_MmlParser.cpp snd_MmlSeqTrack.cpp snd_MmlSeqTrackAllocator.cpp snd_NandSoundArchive.cpp snd_PlayerHeap.cpp snd_RemoteSpeaker.cpp snd_RemoteSpeakerManager.cpp snd_SeqFile.cpp snd_SeqPlayer.cpp snd_SeqSound.cpp snd_SeqSoundHandle.cpp snd_SeqTrack.cpp snd_SoundArchive.cpp snd_SoundArchiveFile.cpp snd_SoundArchiveLoader.cpp snd_SoundArchivePlayer.cpp snd_SoundHandle.cpp snd_SoundHeap.cpp snd_SoundPlayer.cpp snd_SoundStartable.cpp snd_SoundSystem.cpp snd_SoundThread.cpp snd_StrmChannel.cpp snd_StrmFile.cpp snd_StrmPlayer.cpp snd_StrmSound.cpp snd_StrmSoundHandle.cpp snd_TaskManager.cpp snd_TaskThread.cpp snd_Util.cpp snd_WaveFile.cpp snd_WavePlayer.cpp snd_WaveSound.cpp snd_WaveSoundHandle.cpp snd_WsdFile.cpp snd_WsdPlayer.cpp snd_WsdTrack.cpp ut_binaryFileFormat.cpp ut_CharStrmReader.cpp ut_CharWriter.cpp ut_DvdFileStream.cpp ut_DvdLockedFileStream.cpp ut_FileStream.cpp ut_Font.cpp ut_IOStream.cpp ut_LinkList.cpp ut_list.cpp ut_ResFont.cpp ut_ResFontBase.cpp ut_TagProcessorBase.cpp ut_TextWriterBase.cpp ipcMain.c ipcclt.c memory.c ipcProfile.c KPAD.c mem_heapCommon.c mem_expHeap.c mem_frameHeap.c mem_unitHeap.c mem_allocator.c mem_list.c mix.c remote.c mtx.c mtxvec.c mtx44.c vec.c psmtx.c nand.c NANDOpenClose.c NANDCore.c NANDCheck.c OS.c OSAlarm.c OSAlloc.c OSArena.c OSAudioSystem.c OSCache.c OSContext.c OSError.c OSExec.c OSFatal.c OSFont.c OSInterrupt.c OSLink.c OSMessage.c OSMemory.c OSMutex.c OSReboot.c OSReset.c OSRtc.c OSSemaphore.c OSSync.c OSThread.c OSTime.c OSUtf.c OSIpc.c OSStateTM.c __start.c OSPlayRecord.c OSStateFlags.c OSNet.c OSNandbootInfo.c __ppc_eabi_init.cpp Pad.c scsystem.c scapi.c scapi_prdinfo.c seq.c SIBios.c SISamplingRate.c syn.c TPL.c usb.c vi.c i2c.c vi3in1.c wenc.c WPAD.c WPADHIDParser.c WPADEncrypt.c WPADMem.c debug_msg.c WUD.c WUDHidHost.c debug_msg.c DebuggerDriver.c exi2.c float.cpp alloc.c ansi_files.c ansi_fp.c arith.c buffer_io.c ctype.c direct_io.c errno.c file_io.c FILE_POS.C locale.c mbstring.c mem.c mem_funcs.c math_api.c misc_io.c printf.c qsort.c rand.c scanf.c signal.c string.c strtold.c strtoul.c wctype.c wstring.c wchar_io.c uart_console_io_gcn.c abort_exit_ppc_eabi.c math_sun.c extras.c e_atan2.c e_exp.c e_fmod.c e_log.c e_log10.c e_pow.c e_rem_pio2.c k_cos.c k_rem_pio2.c k_sin.c k_tan.c s_atan.c s_ceil.c s_copysign.c s_cos.c s_floor.c s_frexp.c s_ldexp.c s_sin.c s_tan.c w_atan2.c w_exp.c w_fmod.c w_log.c w_log10.c w_pow.c e_sqrt.c math_ppc.c w_sqrt.c __mem.c __va_arg.c global_destructor_chain.c NMWException.cp ptmf.c runtime.c __init_cpp_exceptions.cpp Gecko_ExceptionPPC.cp GCN_mem_alloc.c mainloop.c nubevent.c nubinit.c msg.c msgbuf.c serpoll.c usr_put.c dispatch.c msghndlr.c support.c mutex_TRK.c notify.c flush_cache.c mem_TRK.c string_TRK.c __exception.s targimpl.c targsupp.s mpc_7xx_603e.c mslsupp.c dolphin_trk.c main_TRK.c dolphin_trk_glue.c targcont.c target_options.c UDP_Stubs.c main.c CircleBuffer.c MWCriticalSection_gc.cpp HashKeyFunctions.cpp MemMan.cpp Random.cpp RelocatableChunk.cpp fmod_eventi.cpp fmod_eventsystemi.cpp fmod_sounddef.cpp fmod_eventcategoryi.cpp fmod_eventparameteri.cpp fmod_eventprojecti.cpp fmod_eventgroupi.cpp fmod_reverbdef.cpp fmod_channel_revolution.cpp fmod_os_misc.cpp fmod_os_output.cpp fmod_output_revolution.cpp fmod_sample_revolution.cpp fmod_dsp.cpp fmod_dspi.cpp fmod_codec_aiff.cpp fmod_codec_dsp.cpp fmod_codec_fsb.cpp fmod_codec_user.cpp fmod.cpp fmod_async.cpp fmod_channel.cpp fmod_channel_emulated.cpp fmod_channel_real.cpp fmod_channel_realmanual3d.cpp fmod_channel_stream.cpp fmod_channeli.cpp fmod_channelpool.cpp fmod_channelgroup.cpp fmod_channelgroupi.cpp fmod_codec.cpp fmod_debug.cpp fmod_file.cpp fmod_file_disk.cpp fmod_file_memory.cpp fmod_file_null.cpp fmod_file_user.cpp fmod_listener.cpp fmod_memory.cpp fmod_metadata.cpp fmod_output.cpp fmod_output_emulated.cpp fmod_output_polled.cpp fmod_plugin.cpp fmod_pluginfactory.cpp fmod_sound.cpp fmod_sound_sample.cpp fmod_sound_stream.cpp fmod_soundi.cpp fmod_string.cpp fmod_stringw.cpp fmod_system.cpp fmod_systemi.cpp fmod_thread.cpp fmod_time.cpp fmod_globals.cpp fmod_output_nosound.cpp fmod_output_nosound_nrt.cpp fmod_reverbi.cpp fmod_speakerlevels_pool.cpp
submitted by SSor3nt to ManhuntGames [link] [comments]

Error when deploying express + typescript in heroku

First, My current setup works locally. I've been stuck on this problem for days.
Second, I'll describe it by sections * directory structure * typescript setup (tsconfig + path mappings) * setup related to module-alias package + package.json * step how i deploy to heroku * the error log by heroku

Directory structure

├── client/ │ ├── src │ └── package.json ├── serve │ ├── tsconfig.json │ └── package.json └── shared/ ├── helpers/validators.ts ├── constants/tags.ts └── models/bookmark.ts

tsconfig setup

Note: I'm using path mappings/alias set in tsconfig.json. I installed the package module-alias for the compiled files to be able to find the path mappings.
On my tsconfig, i'm importing a file that is outside the typescript project where tsconfig.json is located
As you can see on the directory structure, the tsconfig.json is under server folder and i'm importing files from the shared folder
So here's my tsconfig.json
{ "compilerOptions": { "baseUrl": "./", "paths": { "@models/*": ["../shared/models/*"], "@constants/*": ["../shared/constants/*"], "@helpers/*": ["../shared/helpers/*"] }, "target": "es2018", "module": "commonjs", "moduleResolution": "node", "rootDir": "../", "outDir": "./build", "esModuleInterop": true, "strict": true, "typeRoots": ["node_modules/@types"], "sourceMap": false, "removeComments": true }, "include": ["**/*", "../shared/**/*"] }

package.json + setup related to module alias package

Note: the path for _moduleAliases is based on the path of the compiled javascript file
{ "name": "pocketlite-server", "version": "1.0.0", "engines": { "node": "14.x", "npm": "6.x" }, "description": "", "main": "index.js", "_moduleAliases": { "@models": "build/shared/models", "@constants": "build/shared/constants", "@helpers": "build/shared/helpers" }, "scripts": { "start:prod": "node build/serveindex.js", "start:staging": "export NODE_ENV=staging && nodemon -r tsconfig-paths/register index.ts", "start:dev": "export NODE_ENV=development && nodemon -r tsconfig-paths/register index.ts", "build": "tsc -p .", "heroku-prebuild": "npm i --only=dev", "lint": "eslint . --ext .ts", "csrf": "npx http-server -c-1 -d false -o /csrf-test" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "@types/cookie-parser": "^1.4.2", "@types/cors": "^2.8.7", "@types/express": "^4.17.7", "@types/jsdom": "^16.2.3", "@types/mongoose": "^5.7.36", "@types/mongoose-delete": "^0.5.1", "@types/mozilla-readability": "^0.2.0", "@types/node": "^14.0.27", "@types/passport": "^1.0.4", "@types/passport-google-oauth20": "^2.0.3", "@types/passport-jwt": "^3.0.3", "@types/puppeteer": "^3.0.1", "@types/turndown": "^5.0.0", "@typescript-eslint/eslint-plugin": "^3.8.0", "@typescript-eslint/parser": "^3.8.0", "dotenv": "^8.2.0", "eslint": "^7.6.0", "nodemon": "^2.0.4", "ts-node": "^8.10.2", "tsconfig-paths": "^3.9.0" }, "dependencies": { "@mozilla/readability": "^0.3.0", "@types/cookie-session": "^2.0.41", "@types/csurf": "^1.9.36", "cookie-parser": "^1.4.5", "cookie-session": "^1.4.0", "cors": "^2.8.5", "csurf": "^1.11.0", "express": "^4.17.1", "isomorphic-dompurify": "^0.6.0", "jsdom": "^16.4.0", "jsonwebtoken": "^8.5.1", "module-alias": "^2.2.2", "mongoose": "^5.9.28", "mongoose-delete": "^0.5.2", "passport": "^0.4.1", "passport-google-oauth20": "^2.0.0", "passport-jwt": "^4.0.0", "puppeteer": "^5.2.1", "puppeteer-extra": "^3.1.15", "puppeteer-extra-plugin-adblocker": "^2.11.6", "puppeteer-extra-plugin-stealth": "^2.6.1", "turndown": "^6.0.0", "turndown-plugin-gfm": "^1.0.2", "typescript": "^4.0.3" } }

Steps how I deploy in hero

  1. heroku create pocketlite-server
  2. heroku buildpacks:set heroku/nodejs
  3. heroku git:remote -a pocketlite-server
  4. git subtree push --prefix server heroku master

The error log in heroku

relevent npm scripts for heroku
"scripts": { "start:prod": "node build/serveindex.js", "start:staging": "export NODE_ENV=staging && nodemon -r tsconfig-paths/register index.ts", "start:dev": "export NODE_ENV=development && nodemon -r tsconfig-paths/register index.ts", "build": "tsc -p .", "heroku-prebuild": "npm i --only=dev" }
Error log ``` --- Node.js app detected
--- Creating runtime environment
 NPM_CONFIG_LOGLEVEL=error NPM_CONFIG_PRODUCTION=false NODE_ENV=production NODE_MODULES_CACHE=true NODE_VERBOSE=false 
--- Installing binaries engines.node (package.json): 14.x engines.npm (package.json): 6.x
 Resolving node version 14.x... Downloading and installing node 14.13.0... Bootstrapping npm 6.x (replacing 6.14.8)... npm 6.x installed 
--- Prebuild Running heroku-prebuild
 > [email protected] heroku-prebuild /tmp/build_8e06db38 > npm i --only=dev > [email protected] postinstall /tmp/build_8e06db38/node_modules/nodemon > node bin/postinstall || exit 0 Love nodemon? You can now support the project via the open collective: > https://opencollective.com/nodemon/donate added 194 packages from 194 contributors and audited 665 packages in 7.23s 19 packages are looking for funding run `npm fund` for details found 2 high severity vulnerabilities run `npm audit fix` to fix them, or `npm audit` for details 
--- Installing dependencies Installing node modules
 > [email protected] install /tmp/build_8e06db38/node_modules/puppeteer > node install.js > [email protected] postinstall /tmp/build_8e06db38/node_modules/nodemon > node bin/postinstall || exit 0 Love nodemon? You can now support the project via the open collective: > https://opencollective.com/nodemon/donate added 661 packages in 19.572s 
--- Build Running build
 > [email protected] build /tmp/build_8e06db38 > tsc -p . helpers/link-scraper.ts(12,26): error TS2307: Cannot find module '@models/bookmark.model' or its corresponding type declarations. helpers/validators.ts(1,23): error TS2307: Cannot find module '@constants/patterns' or its corresponding type declarations. models/bookmark-favorite.ts(2,34): error TS2307: Cannot find module '@models/bookmark-favorite.model' or its corresponding type declarations. models/bookmark.ts(7,26): error TS2307: Cannot find module '@models/bookmark.model' or its corresponding type declarations. models/tag.ts(2,21): error TS2307: Cannot find module '@models/tag.model' or its corresponding type declarations. models/user.ts(2,22): error TS2307: Cannot find module '@models/user.model' or its corresponding type declarations. routes/bookmarks.ts(4,32): error TS2307: Cannot find module '@constants/tags' or its corresponding type declarations. 
npm ERR! code ELIFECYCLE npm ERR! errno 2 npm ERR! [email protected] build: tsc -p . npm ERR! Exit status 2 npm ERR! npm ERR! Failed at the [email protected] build script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /tmp/npmcache.tNTfH/_logs/2020-10-04T01_44_27_692Z-debug.log --- Build failed
 We're sorry this build is failing! You can troubleshoot common issues here: https://devcenter.heroku.com/articles/troubleshooting-node-deploys Some possible problems: - A module may be missing from 'dependencies' in package.json https://devcenter.heroku.com/articles/troubleshooting-node-deploys#ensure-you-aren-t-relying-on-untracked-dependencies Love, Heroku 
! Push rejected, failed to compile Node.js app. ! Push failed ```
submitted by theUnknown777 to Heroku [link] [comments]

A Week of Experiencing Rust

I grew up as a C developer, and switched to Java a couple decades ago. A few years ago I decided to retool and chose Go instead of Rust. With my other hobbies on hold, I decided to poke around Rust. Here are 13 things I experienced:
  1. "?". This operator is great. It's just the right amount of syntax to say "I can't deal with this, give it to my caller." This is what I want, not Go's "obj, err := doThing(.." with pages of if statements. The syntax makes much more sense than Java's very verbose try/catch/throw exception handling. Make the syntax for error handling easy and I'll handle errors more often. So easy that:
  2. Option<>, Result<>, and ?. I discovered, like a lot of new people new to Rust, that "?" doesn't work on Option<>'s. I 100% understand why, but that doesn't change my desire that it did. That said, there's an issue to improve the compiler error message to direct people to using ok_or_else. Speaking of error messages:
  3. Result>. I still don't know if this is the correct syntax, but it's what the compiler told me to do. I haven't read about "dyn" yet or why it's important.
  4. io::Error. After figuring out Results and ?, io::Error was really confusing; I think it was this type. There's some type somewhere called Error that is a Result<>.
  5. Ok, Err, Some, None. I discovered when navigating into the code of other crates that these make the flow of code quite readable and I enjoy using and reading them. Seeing "Some" says "it's possible for this function to not return the thing I'm looking for". Seeing "Err" says "this function can fail" - it doesn't matter how far away the function signature is, or how buried in generics-scoping-line noise that I don't understand yet it is.
  6. Cross compiling. In Go, to compile an OSX binary on Linux, I set two environment variables: GOOS=darwin GOARCH=amd64 and I'm set. I can do the same for Windows, and a handful of BSDs. The Rust tooling to cross-compile is still not there yet. If I rustup target add foo, then cargo build --target foo, I expect a binary that runs on foo. Right now I get errors about missing helpers (archivelinkers). I know there are reasons, but I don't want reasons, I just want it to work. Even the cross dropin for Cargo seemed to not work in all cases.
  7. Explicit allocation. I read somewhere that Rust forces the developer to be explicit about when it's allocating memory and passing it around. Of course, this is totally foreign to me. While I don't have an RFC-level detail solution to this, I do wish there was some sort of very shorthand syntax to say "it's okay to do whatever you need to make this work". If my_foo.bar().baz().qux() needs a few interim of allocations, then go for it. If you don't know the size of my type, then go ahead and autobox it for me. Maybe after I've been programming in Rust for a few months, I'll change my mind on this.
  8. Matching variants. I'm using CLion, and I love the "autocomplete missing variants" and the compiler errors when I added new variants to enums. It felt like the tooling was making my life easier.
  9. Lifetimes and ownership. Coming from garbage collected languages, I knew this was going to be tough. Two things I wish I found: 1) a code-free set of examples of different ways that lifetimes show up, maybe with diagrams / pictures and how to handle it. 2) Some sort of linter that would tell me if I'm making bad life choices. Right now I'm wrapping things in Arc<>, and cloning them as I need to give out copies. I have no idea the performance impact of doing this, nor reasonably what my alternatives would be. In fact:
  10. Am I Rust Yet? In general, I'd love something that could check for common bad-practice idioms and suggest alternatives. Even if it was just a book of "if you do pattern X, because you want to do Y, here is the impact, and here is Z which has a similar outcome but isn't bad / is more idiomatic". Is my Optional>> "right" / "fast" - no idea, I kept wrapping it in things until my code worked.
  11. Strings. You probably know what I'm going to say. I've avoided putting references in my structs so far (because I'm not ready to tackle lifetimes). Converting between String, &String, &str, (and then I discovered there's also OsString) is a disappointing experience. I know I'm doing the wrong thing, but I'm not yet ready to invest in really understanding what, so instead I'm wrapping/unwrapping with String::from and as_str.
  12. pub(crate) At one point CLion said "hey, this thing you're trying to access is private, can I make it visible for you?" and this is what it did. This syntax is really nice, it's clear what's going on with the scoping. Conversely:
  13. Imports. It's 2020, and while CLion will reformat my imports, it won't remove unused ones, nor does it try to be helpful in bringing in the imports for traits I'm using. It's a bit disappointing and tedious. I feel like it's so close.
It may not sound this way, but my experience overall pretty positive. Rust's management of transitive dependencies is the perfect tradeoff (Go is still figuring itself out, and Java solved this (differently) a decade ago). Cargo being the defacto build tool is nice. I like that --test and --example are actual concepts. Obviously I wish compiling was faster, but I also think one of my dependencies is doing something clever in its build.rs. I'm also swallowing a two megabyte file with RustEmbed which I'm told stresses things out.
submitted by idcmp_ to rust [link] [comments]

Issue connecting two services with compose

Hoping somebody may have some ideas as I expected this to work and have done similar with other services. I'm trying to run my dotnet core project and mongodb as container services with docker-compose. Both services have a clean start with no errors. When I call an endpoint that interacts with mongo I get a timeout error. Since I'm using docker-compose I expect that I can reference the mongo service by the compose service name in the connection string.
mongo:27017/api?authSource=api with username api and password password123 as seen in the docker-compose file below. Instead I get this error:
System.TimeoutException : A timeout occured after 30000ms selecting a server using CompositeServerSelector{ Selectors = MongoDB.Driver.MongoClient+AreSessionsSupportedServerSelector, LatencyLimitingServerSelector{ AllowedLatencyRange = 00:00:00.0150000 } }. Client view of cluster state is { ClusterId : "1", ConnectionMode : "Automatic", Type : "Unknown", State : "Disconnected", Servers : [{ ServerId: "{ ClusterId : 1, EndPoint : "Unspecified/mongo:27017" }", EndPoint: "Unspecified/mongo:27017", State: "Disconnected", Type: "Unknown", HeartbeatException: "MongoDB.Driver.MongoConnectionException: An exception occurred while opening a connection to the server. - System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (00000005, 0xFFFDFFFF): Name or service not known at System.Net.Dns.InternalGetHostByName(String hostName) at System.Net.Dns.ResolveCallback(Object context) --- End of stack trace from previous location where exception was thrown --- at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at MongoDB.Driver.Core.Connections.TcpStreamFactory.ResolveEndPointsAsync(EndPoint initial) at MongoDB.Driver.Core.Connections.TcpStreamFactory.CreateStreamAsync(EndPoint endPoint, CancellationToken cancellationToken) at MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken cancellationToken) --- End of inner exception stack trace --- at MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken cancellationToken) at MongoDB.Driver.Core.Servers.ServerMonitor.HeartbeatAsync(CancellationToken cancellationToken)", LastUpdateTimestamp: "2020-09-03T21:28:59.1614966Z" }] }. Stack Trace: at MongoDB.Driver.Core.Clusters.Cluster.ThrowTimeoutException(IServerSelector selector, ClusterDescription description) at MongoDB.Driver.Core.Clusters.Cluster.WaitForDescriptionChangedHelper.HandleCompletedTask(Task completedTask) at MongoDB.Driver.Core.Clusters.Cluster.WaitForDescriptionChangedAsync(IServerSelector selector, ClusterDescription description, Task descriptionChangedTask, TimeSpan timeout, CancellationToken cancellationToken) at MongoDB.Driver.Core.Clusters.Cluster.SelectServerAsync(IServerSelector selector, CancellationToken cancellationToken) at MongoDB.Driver.MongoClient.AreSessionsSupportedAfterSeverSelctionAsync(CancellationToken cancellationToken) at MongoDB.Driver.MongoClient.AreSessionsSupportedAsync(CancellationToken cancellationToken) at MongoDB.Driver.MongoClient.StartImplicitSessionAsync(CancellationToken cancellationToken) at MongoDB.Driver.MongoCollectionImpl`1.UsingImplicitSessionAsync[TResult](Func`2 funcAsync, CancellationToken cancellationToken) at MongoDB.Driver.MongoCollectionBase`1.DeleteOneAsync(FilterDefinition`1 filter, DeleteOptions options, Func`2 bulkWriteAsync) at Tests.AssetRespositoryTest.DeleteAsset(String assetId) in /app/Tests/Repository/AssetRepositoryTests.cs:line 140 at Tests.AssetRespositoryTest.TestWithTransaction() in /app/Tests/Repository/AssetRepositoryTests.cs:line 75 at System.Threading.Tasks.Task.<>c.b__139_0(Object state)
I've confirmed my connection string has the usepass set to what's in the compose file below. If I exec into my app container I can ping the mongo container by service name, but I can't use the mongo shell to connect with the root or api user instead I get this error from the mongo shell:
``` docker-compose exec app bash mongo --host mongo --port 27017 -u api -p password123 --authenticationDatabase api
2020-09-03T20:28:37.209+0000 E QUERY [js] Error: couldn't connect to server mongo:27017, connection attempt failed: SocketException: Error connecting to mongo:27017 (23.217.138.110:27017) :: caused by :: Connection refused : [email protected]/mongo/shell/mongo.js:344:17 ```
Interestingly I can connect when running the same mongo shell connect command from my host terminal so this seems to be a container issue.
docker-compose.yml
``` version: '2'
networks: # This special network is configured so that the local metadata # service can bind to the specific IP address that ECS uses # in production credentials_network: driver: bridge ipam: config: - subnet: "169.254.170.0/24" gateway: 169.254.170.1
services: # This container vends credentials to your containers ecs-local-endpoints: # The Amazon ECS Local Container Endpoints Docker Image image: amazon/amazon-ecs-local-container-endpoints volumes: # Mount /varun so we can access docker.sock and talk to Docker - /varun:/varun # Mount the shared configuration directory, used by the AWS CLI and AWS SDKs # On Windows, this directory can be found at "%UserProfile%.aws" - ${USERPROFILE}\.aws:/home/.aws/ environment: # define the home folder; credentials will be read from $HOME/.aws HOME: "/home" # You can change which AWS CLI Profile is used AWS_PROFILE: "default" networks: credentials_network: # This special IP address is recognized by the AWS SDKs and AWS CLI ipv4_address: "169.254.170.2"
app: depends_on: - ecs-local-endpoints - mongo networks: credentials_network: ipv4_address: "169.254.170.3" build: context: . dockerfile: 'Dockerfile.compose' environment: ASPNETCORE_ENVIRONMENT: "local" AWS_DEFAULT_REGION: "us-east-1" AWS_CONTAINER_CREDENTIALS_RELATIVE_URI: "/creds" volumes: - './:/app' links: - mongo:mongo ports: - 9999:9999
mongo: image: 'bitnami/mongodb:4.2' restart: 'always' environment: - MONGODB_ROOT_PASSWORD=iamroot - MONGODB_USERNAME=api - MONGODB_PASSWORD=password123 - MONGODB_DATABASE=api ports: - 27017:27017
mongo-express: image: mongo-express restart: always ports: - 8081:8081 environment: ME_CONFIG_MONGODB_ADMINUSERNAME: root ME_CONFIG_MONGODB_ADMINPASSWORD: iamroot depends_on: - mongo - app ```
Dockerfile
``` FROM mcr.microsoft.com/dotnet/core/sdk:3.1-bionic AS build
WORKDIR /vsdbg RUN apt-get update \ && apt-get install -y --no-install-recommends \ unzip \ && rm -rf /valib/apt/lists/* \ && curl -sSL https://aka.ms/getvsdbgsh \ | bash /dev/stdin -v latest -l /vsdbg

Not copying anything since it's being mounted and managed by docker-compose volumes

WORKDIR /app ENV DOTNET_USE_POLLING_FILE_WATCHER 1 EXPOSE 9999
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \ && echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list \ && apt-get update \ && apt-get install -y iputils-ping mongodb-org-shell
ENTRYPOINT dotnet watch --project /app/API/src/Foo.Api/Foo.Api.csproj run --urls=http://+:9999 ```
I added an xUnit test project to exec in and run in app, but I get the same time out stack trace error seen above.
submitted by Tak_Locke to docker [link] [comments]

Having trouble deploying to netlify

Is there anyway I could get some help with why this will not deploy and is getting an error? I took out personal info obviously.
6:03:21 PM: Build ready to start 6:03:23 PM: build-image version: ca811f47d4c1cbd1812d1eb6ecb0c977e86d1a1d 6:03:23 PM: build-image tag: v3.3.20 6:03:23 PM: buildbot version: be8ecf2af866e16fa4301cc5c14de2ccbbb21cf4 6:03:23 PM: Fetching cached dependencies 6:03:23 PM: Starting to download cache of 254.8KB 6:03:23 PM: Finished downloading cache in 70.698045ms 6:03:23 PM: Starting to extract cache 6:03:23 PM: Failed to fetch cache, continuing with build 6:03:23 PM: Starting to prepare the repo for build 6:03:24 PM: No cached dependencies found. Cloning fresh repo 6:03:24 PM: git clone github user 6:03:25 PM: Preparing Git Reference refs/heads/master 6:03:26 PM: Different publish path detected, going to use the one specified in the Netlify configuration file: 'public' versus 'public/' in the Netlify UI 6:03:26 PM: Starting build script 6:03:26 PM: Installing dependencies 6:03:26 PM: Python version set to 2.7 6:03:27 PM: v12.18.0 is already installed. 6:03:28 PM: Now using node v12.18.0 (npm v6.14.4) 6:03:28 PM: Started restoring cached build plugins 6:03:28 PM: Finished restoring cached build plugins 6:03:28 PM: Attempting ruby version 2.7.1, read from environment 6:03:29 PM: Using ruby version 2.7.1 6:03:29 PM: Using PHP version 5.6 6:03:30 PM: 5.2 is already installed. 6:03:30 PM: Using Swift version 5.2 6:03:30 PM: Started restoring cached node modules 6:03:30 PM: Finished restoring cached node modules 6:03:30 PM: Installing NPM modules using NPM version 6.14.4 6:04:15 PM: > [email protected] install /opt/build/repo/node_modules/sharp 6:04:15 PM: > (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy) 6:04:15 PM: info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.8.1/libvips-8.8.1-linux-x64.tar.gz 6:04:18 PM: > [email protected] install /opt/build/repo/node_modules/node-sass 6:04:18 PM: > node scripts/install.js 6:04:18 PM: Downloading binary from https://github.com/sass/node-sass/releases/download/v4.14.1/linux-x64-72_binding.node 6:04:18 PM: Download complete 6:04:18 PM: Binary saved to /opt/build/repo/node_modules/node-sass/vendolinux-x64-72/binding.node 6:04:19 PM: Caching binary to /opt/buildhome/.npm/node-sass/4.14.1/linux-x64-72_binding.node 6:04:19 PM: > [email protected] postinstall /opt/build/repo/node_modules/@jimp/plugin-circle/node_modules/core-js 6:04:19 PM: > node -e "try{require('./postinstall')}catch(e){}" 6:04:19 PM: > [email protected] postinstall /opt/build/repo/node_modules/@jimp/plugin-fisheye/node_modules/core-js 6:04:19 PM: > node -e "try{require('./postinstall')}catch(e){}" 6:04:19 PM: > [email protected] postinstall /opt/build/repo/node_modules/@jimp/plugin-shadow/node_modules/core-js 6:04:19 PM: > node -e "try{require('./postinstall')}catch(e){}" 6:04:19 PM: > [email protected] postinstall /opt/build/repo/node_modules/@jimp/plugin-threshold/node_modules/core-js 6:04:19 PM: > node -e "try{require('./postinstall')}catch(e){}" 6:04:19 PM: > [email protected] postinstall /opt/build/repo/node_modules/core-js 6:04:19 PM: > node -e "try{require('./postinstall')}catch(e){}" 6:04:19 PM: > [email protected] postinstall /opt/build/repo/node_modules/core-js-pure 6:04:19 PM: > node -e "try{require('./postinstall')}catch(e){}" 6:04:20 PM: > [email protected] postinstall /opt/build/repo/node_modules/potrace/node_modules/core-js 6:04:20 PM: > node -e "try{require('./postinstall')}catch(e){}" 6:04:21 PM: > [email protected] postinstall /opt/build/repo/node_modules/gatsby-recipes/node_modules/gatsby-telemetry 6:04:21 PM: > node src/postinstall.js || true 6:04:21 PM: > [email protected] postinstall /opt/build/repo/node_modules/gatsby-telemetry 6:04:21 PM: > node src/postinstall.js || true 6:04:21 PM: > [email protected] postinstall /opt/build/repo/node_modules/gatsby/node_modules/gatsby-cli/node_modules/gatsby-telemetry 6:04:21 PM: > node src/postinstall.js || true 6:04:21 PM: > [email protected] postinstall /opt/build/repo/node_modules/cwebp-bin 6:04:21 PM: > node lib/install.js 6:04:22 PM: :heavy_check_mark: cwebp pre-build test passed successfully 6:04:22 PM: > [email protected] postinstall /opt/build/repo/node_modules/mozjpeg 6:04:22 PM: > node lib/install.js 6:04:22 PM: :heavy_check_mark: mozjpeg pre-build test passed successfully 6:04:22 PM: > [email protected] postinstall /opt/build/repo/node_modules/pngquant-bin 6:04:22 PM: > node lib/install.js 6:04:23 PM: :heavy_check_mark: pngquant pre-build test passed successfully 6:04:23 PM: > [email protected] postinstall /opt/build/repo/node_modules/gatsby/node_modules/gatsby-cli 6:04:23 PM: > node scripts/postinstall.js 6:04:23 PM: > [email protected] postinstall /opt/build/repo/node_modules/gatsby 6:04:23 PM: > node scripts/postinstall.js 6:04:23 PM: > [email protected] postinstall /opt/build/repo/node_modules/node-sass 6:04:23 PM: > node scripts/build.js 6:04:23 PM: Binary found at /opt/build/repo/node_modules/node-sass/vendolinux-x64-72/binding.node 6:04:23 PM: Testing binary 6:04:23 PM: Binary is fine 6:04:26 PM: npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/watchpack/node_modules/fsevents): 6:04:26 PM: npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) 6:04:26 PM: npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents): 6:04:26 PM: npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) 6:04:26 PM: npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/chokidanode_modules/fsevents): 6:04:26 PM: npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) 6:04:26 PM: added 2415 packages from 1245 contributors and audited 2489 packages in 55.244s 6:04:28 PM: 110 packages are looking for funding 6:04:28 PM: run npm fund for details 6:04:28 PM: found 18 low severity vulnerabilities 6:04:28 PM: run npm audit fix to fix them, or npm audit for details 6:04:28 PM: NPM modules installed 6:04:28 PM: Started restoring cached go cache 6:04:28 PM: Finished restoring cached go cache 6:04:28 PM: go version go1.14.4 linux/amd64 6:04:28 PM: go version go1.14.4 linux/amd64 6:04:28 PM: Installing missing commands 6:04:28 PM: Verify run directory 6:04:29 PM: 6:04:29 PM: ┌─────────────────────────────┐ 6:04:29 PM: │ Netlify Build │ 6:04:29 PM: └─────────────────────────────┘ 6:04:29 PM: 6:04:29 PM: ❯ Version 6:04:29 PM: @netlify/build 3.0.1 6:04:29 PM: 6:04:29 PM: ❯ Flags 6:04:29 PM: deployId: Id 6:04:29 PM: mode: buildbot 6:04:29 PM: 6:04:29 PM: ❯ Current directory 6:04:29 PM: /opt/build/repo 6:04:29 PM: 6:04:29 PM: ❯ Config file 6:04:29 PM: No config file was defined: using default values. 6:04:29 PM: 6:04:29 PM: ❯ Context 6:04:29 PM: production 6:04:29 PM: 6:04:29 PM: ┌───────────────────────────────────┐ 6:04:29 PM: │ 1. Build command from Netlify app │ 6:04:29 PM: └───────────────────────────────────┘ 6:04:29 PM: 6:04:29 PM: $ gatsby build 6:04:30 PM: /opt/build/repo/node_modules/yoga-layout-prebuilt/yoga-layout/build/Release/nbind.js:53 6:04:30 PM: throw ex; 6:04:30 PM: ^ 6:04:30 PM: Error: Cannot find module 'ink' 6:04:30 PM: Require stack: 6:04:30 PM: - /opt/build/repo/node_modules/ink-box/dist.js 6:04:30 PM: - /opt/build/repo/node_modules/gatsby-recipes/dist/cli.js 6:04:30 PM: - /opt/build/repo/node_modules/gatsby-recipes/dist/index.js 6:04:30 PM: - /opt/build/repo/node_modules/gatsby/node_modules/gatsby-cli/lib/recipes.js 6:04:30 PM: - /opt/build/repo/node_modules/gatsby/node_modules/gatsby-cli/lib/create-cli.js 6:04:30 PM: - /opt/build/repo/node_modules/gatsby/node_modules/gatsby-cli/lib/index.js 6:04:30 PM: - /opt/build/repo/node_modules/gatsby/dist/bin/gatsby.js 6:04:30 PM: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15) 6:04:30 PM: at Function.Module._load (internal/modules/cjs/loader.js:842:27) 6:04:30 PM: at Module.require (internal/modules/cjs/loader.js:1026:19) 6:04:30 PM: at require (internal/modules/cjs/helpers.js:72:18) 6:04:30 PM: at Object. (/opt/build/repo/node_modules/ink-box/dist.js:5:12) 6:04:30 PM: at Module._compile (internal/modules/cjs/loader.js:1138:30) 6:04:30 PM: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10) 6:04:30 PM: at Module.load (internal/modules/cjs/loader.js:986:32) 6:04:30 PM: at Function.Module._load (internal/modules/cjs/loader.js:879:14) 6:04:30 PM: at Module.require (internal/modules/cjs/loader.js:1026:19) { 6:04:30 PM: code: 'MODULE_NOT_FOUND', 6:04:30 PM: requireStack: [ 6:04:30 PM: '/opt/build/repo/node_modules/ink-box/dist.js', 6:04:30 PM: '/opt/build/repo/node_modules/gatsby-recipes/dist/cli.js', 6:04:30 PM: '/opt/build/repo/node_modules/gatsby-recipes/dist/index.js', 6:04:30 PM: '/opt/build/repo/node_modules/gatsby/node_modules/gatsby-cli/lib/recipes.js', 6:04:30 PM: '/opt/build/repo/node_modules/gatsby/node_modules/gatsby-cli/lib/create-cli.js', 6:04:30 PM: '/opt/build/repo/node_modules/gatsby/node_modules/gatsby-cli/lib/index.js', 6:04:30 PM: '/opt/build/repo/node_modules/gatsby/dist/bin/gatsby.js' 6:04:30 PM: ] 6:04:30 PM: } 6:04:30 PM: 6:04:30 PM: ┌─────────────────────────────┐ 6:04:30 PM: │ "build.command" failed │ 6:04:30 PM: └─────────────────────────────┘ 6:04:30 PM: 6:04:30 PM: Error message 6:04:30 PM: Command failed with exit code 7: gatsby build 6:04:30 PM: 6:04:30 PM: Error location 6:04:30 PM: In Build command from Netlify app: 6:04:30 PM: gatsby build 6:04:30 PM: 6:04:30 PM: Resolved config 6:04:30 PM: build: 6:04:30 PM: command: gatsby build 6:04:30 PM: commandOrigin: ui 6:04:30 PM: environment: 6:04:30 PM: - ADSENSE_ID 6:04:30 PM: - GATSBY_BUZZSPROUT_API_KEY 6:04:30 PM: - GATSBY_MAILCHIMP_AUDIENCE_ID 6:04:30 PM: - GATSBY_PODCAST_NUMBER 6:04:30 PM: - GATSBY_PROXY 6:04:30 PM: - NODE_ENV 6:04:30 PM: publish: /opt/build/repo/public 6:04:30 PM: Caching artifacts 6:04:30 PM: Started saving node modules 6:04:30 PM: Finished saving node modules 6:04:30 PM: Started saving build plugins 6:04:30 PM: Finished saving build plugins 6:04:30 PM: Started saving pip cache 6:04:30 PM: Finished saving pip cache 6:04:30 PM: Started saving emacs cask dependencies 6:04:30 PM: Finished saving emacs cask dependencies 6:04:30 PM: Started saving maven dependencies 6:04:31 PM: Finished saving maven dependencies 6:04:31 PM: Started saving boot dependencies 6:04:31 PM: Finished saving boot dependencies 6:04:31 PM: Started saving go dependencies 6:04:31 PM: Finished saving go dependencies 6:04:33 PM: Error running command: Build script returned non-zero exit code: 1 6:04:33 PM: Failing build: Failed to build site 6:04:33 PM: Failed during stage 'building site': Build script returned non-zero exit code: 1 6:04:33 PM: Finished processing build request in 1m10.018686427s
submitted by Blabbers01 to gatsbyjs [link] [comments]

OBLIGATORY FILLER MATERIAL – Breaking Bad, Part 3

Continuing
“Hello and good day, gentlemen”, I say. “I am Doctor Rocknocker. You may and will refer to me as ‘Rock’. OK? None of this ‘Doctor’ or ‘Sir’ guff. We green here?”
There was a buzz of voices but no direct answers.
“OK. Let’s get a few things down right here and now.
(1.) Call me Rock.
(b.) Answer me loudly. I will need to hear you loud and clear. Best get used to that now.
(iii.) “We green?” means “Are we in agreement?” It’s a form of shorthand I use here and in the field.
(⍾.) “You diggin’ me, Beaumont? means you’ve really done gone and pissed me off; you’ve done something untoward. Pray you never hear that phrase, and,
(∞.) I’m the boss. The top dog. The hookin’ bull. The Maharaja here. I possess the first, final and only words you’re going to listen to for the next couple of weeks. What I say, goes. Any problem, please let me know now so we can replace you most quickly.”
A gentle buzz, but no replies.
“Gentlemen. Do we agree?” I ask.
“Yes, Rock.” Was the reply.
OK, there might be some form of a societal prohibition against making loud noises. That’s the first thing that has to go.
“Gentlemen, we will be working in the great outdoors where there are wind, rain, waves, and other environmental nonsense making all sorts of unrequited noise. We need clear and proper lines of communication. I need to hear you clearly and vice-versa. When speaking, you will speak slowly, clearly, and loudly. “
DO WE AGREE!?!” I yell, rather deafeningly.
“YES, ROCK!” came the eventual reply.
“Outstanding”. I ponder.
Continuing…
“Mr. Sanjay is my de facto second in command. If I’m out having a smoke, taking a piss, or having a snort, he’s in charge. Listen to him as if I suddenly lost 150 pounds, shaved my beard, and inexplicably become Indian.” I chuckled.
They seemed to enjoy that. I actually elicited a few chuckles.
“Mr. Sanjay will now distribute to you your locker boxes. You will wait until he hands you yours. Do not get up and mill around the room. We green?” I ask.
“Green! Doctor Rock.” Came the noisy reply.
“Progress. Marvelous.”, I reflect.
“I’ll be right back. Mr. Sanjay, the room is yours.” I note. I might need to cut back on the coffee.
I slope off to the loo and it’s just as horrible as you can imagine an outdoor communal shithouse in sunny India attended by 30,000 Indian gentlemen could be.
Fuck COVID-19. I’m thinking hot and cold running dysentery, dengue, and death here. Ick.
Glad I have a highly functioning immune system.
I retrieve a shiny aluminum Halliburton™ case from Headquarters and ease off to an unused office space to change.
I went from my usual field garb to full PPEs. It was quite a sight.
I’ll be telling you about it in mere moments. Contain the excitement.
I’m walking back to Outbuilding #2 and damned if my get-up didn’t elicit a few gasps, shielded guffaws, and a salute or two. I have to admit, to the uninitiated, I was a sight right out of Area 52, the more secret one, west by northeast of Roswell, New Mexico.
I get back to the outbuilding and enter. Everyone was looking through their locker boxes, chuckling about their good fortune and wondering with Joker-like glee what the hell all these wonderful gizmos were and where did I get them? They all stopped dead in their tracks when I walked in.
Their silence was palpable.
“Gentlemen”, I said, “Here’s how you are going to look at work tomorrow. Revel in its utility, comfort, and extreme fashion sense.” I did a quick spin like I used to on the runway.
At O’Hare when we were doing field geostatic tests. Whatever were you thinking?
Anyways…
I was wearing a pair of size 66-XTall NFPA 70E blaze orange Carhartt Nomex coveralls. I had on a Dax carbon-fiber blaze orange “Coal Scuttle” hardhat with swing-away hearing protection keyed into your personal communications module, and a gold-anodized, pull-down full face shield. The helmet was designed to drain away falling water down over one’s back and not down one’s neck.
I had a pair of ‘wet’ gloves under the snap retainer on my left shoulder, a pair of ‘dry’ gloves on my right. I was wearing an orange CMC Safety 9-point safety and rescue harness, good to well over 1,500 pounds. Over both shoulders, around the crotch, up the front, and around the back, X-style. This popular harness features multiple D-ring attachment points and the patented JackBack removable padding with breathable D-3 cloth, which keeps shoulder straps separated and makes donning and doffing a breeze. It had several catch-points where one could easily and readily attach to the snap carabiners and get bodily dragged out of a nasty situation by rope or chain. The front waist D-ring allows a comfortable, stable sitting position for rappels and the sternum D-ring works well for helicopter or crane-assist hoists. Gear loops offer easy access to equipment, and quick-connect-disconnect shoulder straps and leg loops make the harness quick to don or doff. It could be used for impromptu spelunking on days off.
I had on Size 16 EEE Gear Box 8088 Men's 8 inch Black Leather intrinsically-safe hard-toed lace-up black turned-heel leather work boots with the new self-cleaning, oil-and chemical resistant Vibram soles.
They couldn’t see, but I was also wearing a cotton-Nomex blend wifebeater and boxers as well. Nomex tends to chafe. Best be safe.
I had a powerful Maglite flashlight clipped to my rescue harness, as well as my mini Air Horn; a blaster’s must. I also had a mobile VHF-Commslink™ radio in a pocket on the back of my coveralls on the left shoulder. I had the microphone for it Velcro-ed to my rescue harness within easy reach. Very cop like. Very cool. Very necessary.
I had a traditional Zippo and Bic Butane lighters in my right-hand chest pocket and a brace of cigars, though these were optional, in my left pocket. I carried a bespoke constructed Swiss Army Knife on a lanyard in my right front pocket and had a custom Bears Paw Leatherman hanging on the left of my rescue harness.
Also clipped to the harness was a Silva orienteering compass. There was a selection of NASA write anywhere pens, Sharpies, and oil-writing chalk pencils in my other front pockets. I had an oil industry tally book in my other front pocket.
Why blaze orange? Well, Red Adair already co-opted bright red, and fluorescent green wasn’t available in my size.
So, we’re now ready to plant explosives in West India or go deer hunting in the Northwoods of Baja Canada.
“Questions, Gentlemen?” I asked.
I explained that in their locker boxes were purchase orders, POs, for every bit of kit I was wearing. They were to take these POs to the Company Store and get, well, kitted out in their own sizes and preferences. I wanted to see everyone back here tomorrow at 1300 hours looking as I do now. Well, maybe skip the cigar and be not quite so large.
I sat down on the table in front of the crowd and had Sanjay bring over the demo locker box.
“OK, gents,” I said, “This locker box is yours and is numbered as such. They will be stored here in Outbuilding #2. Each of you will receive a key for this building as it is now your headquarters. We’ll get back to locker boxes in a minute. Anyone need a break for a few minutes?” I asked.
No one dared answer at this magical juncture in the narrative.
“Well, I do”, I said, “Meet back here in twenty minutes. Sanjay?”
The class wandered out and I conversed with Sanjay. We found the maps I had ordered.
They were an aerial view of the breaking yard and it was split into 6 zones, all a different color. There was one master for the wall and 28 copies for the guys. I also had a log-in/log-out board made. Vertically numbered 1 to 28. There were also 7 vertical bars labeled Zone 1 through Zone 6, and one for ‘in dispose’; i.e., in Latrin-e Land. This was so I’d know where my guys were at all times.
There was a hook for each one of these areas to log in, and to let anyone know where a certain person was during the day or night. You’re number 10? And you’re going to be wielding a torch over in Zone 5? Your brass tag goes right there. You’re going to skip over to Zone 3? Get your ass back here and swap it over to where you’re going. There is no excuse for being where you haven’t said you were, short of active accident or dismemberment.
Everyone shuffles back in and I explain the tote board.
“Notice there’s no spot to leave your brass chit if you’ve gone off the reservation?” I asked. “Why do you suppose that is?”
Confused looks all around.
“Because you keep that brass token with you when you’re not on the job. Lose it, lose your job. Sounds harsh, but so is getting your fucking hands blown off. Think of it as an exercise in discipline.”
There was a very little rebuttal.
“When you are on location, your brass token will reflect where you are. You are off-site, put the brass token in your wallet next to your lucky ‘circular impression’.
There were several knowing grins in my cadets.
Wear it around your neck on a chain. Keep it on your keyring. You can wrap it up in ribbons, you can slip it in your sock; I don’t care. Thing is, it is your ticket to this job. Hold on to it, there will be no replacements. We green?”
“Green, Doctor!”
“Outstanding.”
“Now, locker boxes. Gentlemen”, I continued. “These are your personal boxes that will be archived here. They will contain everything that you will need to carry out the job initially and help you with training the next crew that comes through after I leave. Keep them neat and tidy. I like to pull unannounced locker box inspections, gentlemen. Be forewarned.”
The sound of active scribbling is music to my tinny ears.
“Now, as such”, I continue, “Each locker box, at this point, is identical. Please follow along with me as we do inventory: Each gets locker box will contain (as I pull out the item for identification):
• 1- set Purchase Orders (POs) for PPEs
• 1- Galvanometer
• 2- Blaster’s pliers
• 1- Custom Leatherman
• 1- Metal clipboard
• Various Pens, pencils, paper, etc.
• 5- Sharpies
• 1 copy: Blasters Protocols Handbook, 15th Edition
• 1 copy: Blasting and explosives safety training manual by the IEE.
• 1 copy: Theory and practice of blasting, by Hino (A classic)
• 1 copy: Blasters Handbook, 17th Edition
• Various Explosives catalogs
• 1- Custom Swiss Army Knife
• Several Butane lighters
“Are we in agreement, gentlemen?” I ask. “Please check to be certain you have what the manifest states.”
“As long as we’re going over locker boxes, let’s look at our set of PPE purchase orders. Each locker box will contain POs for:
• 1 pair Orange Nomex coveralls, in your size
• 1 Dax carbon-fibre blaze orange hardhat with ear protection, gold face shield
• 1- CMC Safety 9-point extraction harness with carabiners
• 2- pairs Safety Glasses
• 2- pairs of gloves –wet & dry
• 1- pair Gear Box 8088 hard-toed intrinsically safe 8” work boots
• 1- Silva Orienteering Compass
• 3- pairs of cotton WaterWick socks
• 1- CommsLink™ VHF radio with microphone
• 1- Maglight power flashlight
• 1- Rain suit – also Nomex, bibs and outer shell
• 1- Mini Air Horn Power Tootler
• 1- Pair cotton/Nomex blende underwear – anti-chafe, wifebeateboxer: 3 sets.
• 1- 16-ounce container ‘Babies Bottom’ Talcum powder. Nomex chafes.
“Well, that’s a lot of gear; you best become real familiar with it as soon as you can. You are responsible for your PPEs. Lose them and replace them at your own cost. Wear them out? No problem. We will replace them. Get caught on location without your proper PPEs? Alavida. Goodbye. There is no second try. Fuck up once, and you’re gone. I am here for a limited time to try and teach you characters how to blast boats. I am not here to be your wet-nurse or mother. We green?” I ask.
“YES! Green! Rock!”
“Outstanding!”
We spend about an hour going over the various contents of the locker boxes and I answer general questions about blasting and explosives.
“We will use Primacord by the mile and tons of C-4 primarily. I might introduce you to binary explosives if there’s time. We might also get into PETN and RDX. Dynamite for training. But that’s about it.”
“We will use demolition wire and electrically fired blasting caps and boosters. We might have some time to look at set-pull-forget mechanicochemical fuses. But you’ll all learn some basic electrical wiring and how to design a circuit.”
“Tomorrow, given it doesn’t rain and the creek don’t rise.”
“Time, gentlemen!” I said. It’s been a long day and I’m a bit jet-lagged knackered. Besides, I wanted to give that Jacuzzi a spin.
“OK, remember: get your PPEs tomorrow morning at the Company Store. I expect to see each and every one of you here tomorrow, kitted out and ready to go, at 1300 sharp. That’s it. See you tomorrow. Susandhya. [Good evening.]” I said.
Locker boxes are locked and stowed in an orderly fashion. Each and everyone one of my 24 acolytes come to me before he leaves work to thank me personally and shake my hand.
“This might just work out”, I say to no one in particular.
Sanjay and I head back to the Raj for the night. I’m really tired, finally feeling the jet travel hit, and not the least bit hungry.
However, I do ring up the 214 cigar dude and relieve him of a selection of fine smokes. I drop by the bar for a couple of barley-pops before I retire to my capacious room for the night.
“Sanjay”, I say, “I’m knackered. If anyone wants me, head them off until tomorrow. It can wait. I’m going to get some kip and don’t want to be disturbed. No maids, no Majordomo, no butler. I just want to get unconscious for a while.”
“No problem, Rock”, Sanjay assures me, “I’ll tell them you’ve gone bush and haven’t left a forwarding address.”
“Good man”, I say, patting him on the shoulder. Hell, I must be getting old. Shit like teaching a band of newbies and whooping a little ass would have never as much as caused me a short breath. Then again, it’s probably not the years, it’s really the mileage…
After a quick light breakfast come morning, Sanjay and I are back on location. I’m being given a tour of the place by the day-shift foreman, one Mr. Vikramaditya Shrivastava.
“Yikes”, I say to Sanjay, “You characters really go for your 11-syllable names.”
“Call him ‘Vik’, Rock”, Sanjay smiles, “Good thing you’ve never asked about my last name.”
“Probably is”, I snicker back. I’m not getting roped into this little tussle.
Vik speaks fairly passable English, but I’m still glad Sanjay is here. The first order of business is to see the explosives bunker I sent plans for and how that’s coming along. They tell me it’s almost finished and ready to be stocked with what I’ve ordered.
“Outstanding, let’s have a look,” I say.
Into the Citation Golf Cart, we go. None of this plebian walking shit. We’re MIPs, Monstrously Important People.
Plebes walk, we ride.
We drive around the piles of rusty scrap, huge hunks of bulkhead, and disconcertingly quickly through polychromatic puddles of who-knows-what to slide to a stop in front of a large canvas tent.
Think M *A *S *H-type mess tent.
“What’s this?” I ask, “Commissary? First Aid?”
“No, Dr. Rock”, Vik explains, “Here are your explosives.”
My eyes grow large.
“What do you mean?” I ask. What the fuck do you mean? I mean.
“Building of your bunker is taking more time than we expected what with your design imperatives. But your order was filled most expediently. We are storing it here until the bunker is complete.” He smiles in that inimitable Indian manner that is so irritating when they don’t realize the major fuck-up they’ve just committed.
“OK. Simmer down, Rock.” I say to myself. “Sanjay, ask him again what’s in that tent. That bottomless tent that’s just a sheet of tarpaulin held up by metal poles.”
“He says that’s your explosives order, Rock,” Sanjay says. His demeanor went from perky and helpful to terrified as he saw me turn several shades of crimson and begin to emit wisps of steam.
“Sanjay”, I said in calm, calculated terms. “You are telling me there are over 9 tons of high explosives, blasting caps, boosters, demo wire, and ANFO sitting on wet sand in this heat under a sheet of fucking tarpaulin?”
“Yes?” he stammered, with a squeak.
“OK.”, I said. “We need to keep very calm and not go completely apeshit; and I’m telling you, right now, that’s taking Augean-level effort. We have a situation here, Mr. Sanjay. A very, very dangerous and very deadly situation. Let’s above all, remain calm.”
“Right, Rock”, he replies.
I turn to Vik and say in a calm and collected tone, “YOU STUPID MOTHERFUCKER! WHAT HAVE YOU DONE?
“Calm and collected, right, Rock?” Sanjay smirks and Mr. Vik withers under my verbal assault.
“Sorry, I had to get that one out.”, I apologized, “Mr. Vik. You have created a real blockbuster here. Quite literally. I figured, erroneously it seems, that you would not take delivery of over 9 TONS of high explosives before you had a very safe and secure place to store such.”
“It arrived sooner than we thought. We got a good price on it,” he explained.
You did? Fucking great! Holy mothering fuck!
Now I was even more worried. One does not get discounts or bargain-basement deals on quality high explosives.
“Pray, Mr. Vik”, I entreated, “From where did you source these detonic components?”
“From Best Blast and Supply Llc of Hong Kong Enterprises.” He replied, “Bulk discount quantities, quick delivery bonus. Saved crore rupee.”
No. I was wrong, it could get worse.
Not only 9 tons of high explosives, 9 tons of counterfeit, knock-off, and non-regulated manufacturer explosives.
“OK”, I said, “Let’s take stock here. My bunker isn’t finished yet? Correct? So you and the company meatheads ordered 9 tons of knock-off explosives from some shady and cheesy Chinese dealer and you stored them on wet beach sand, in this heat, under a tarp? Have I got all that right?”
“Oh, yes Doctor Rock.”, he smiled.
“Sanjay”, I said in a low, firm tone, “We have a…situation. We need to cordon this area off and build an exclusion zone as far as we can around it. No one, and I mean no one, gets within what, 10 kilometers? of the tent. This thing goes off, it’s going to leave a much larger than that cone of devastation. Then we need to visit with the management of this place and have a few thousand well-chosen four-letter words. Then I can think about what the fuck we’re going to do about this situation. I’m struggling to remain calm so everyone else will, but this is just a wee bit tetchy. Find me some red flags and start planting them around the tent, working our way out. Let’s go. Calmly, collectively, and with purpose.”
We find a source of 2-meter poles with red pennants. Sanjay also finds a few miles of yellow “Danger: Stay The Fuck Away” tape. We gather then and head back to the tent. We start to spiral out from it planting flags and running tape.
We did the best we could, but we were disrupting daily business activities. Good. Let the head idiots in charge know they’ve fucked up and grandly.
Back at headquarters, I’m fuming. I’m damn mad. I’m loud and being all extremely American about all this.
“You fucking idiots! 9 tons of cheap-shit high explosives? From China? Stored on wet sand in this heat? Under a benchod tarp? Why the flying fuck do you think I sent such detailed plans for a storage bunker? Do you assholes even think?” I railed on like this for at least half an hour, going all Gene Wilder in ‘Young Frankenstein’.
“Yes, Doctor”, one Mr. Karam Kanungo, the local boss and company president said, “That is all true and steps will be taken to redress the situation. But that doesn’t address the issue at hand. What do you suggest?”
“I suggest you are all taken out and given hot coffee high colonics to clear out your thinking processes”, I spit, “But that still leaves us with a nine-ton headache out there waiting to bloom into something even more aggravating.”
The entire assembled board agreed.
I calm down a bit and have a think. Fuck your boardroom, I’m having a cigar.
“You need a licensed, certified, master blaster to go and sort that out. Do you happen to have one handy?” I asked, sweeter than clover honey.
“Ah, yes, you are…oh.”, was the collective realization.
“Yeah, I know. It’s me. I’m the only one that can sort this shit out. We can’t even wait until we find someone from the world to assist. We are sitting on a literal time bomb, gentlemen.” I reply.
They all agreed and were relieved I was going to take on the challenge.
What else could I do? That stuff lights off and we’re talking easily hundreds if not thousands of fatalities and countless injuries. Fuck that. Not on my watch.
I tells ya’ what. The fucking Karma Fairy better shower me with gifts and accolades, blowjobs and candy corn after all this.
In a metaphorical sense, of course.
“OK, Mr. Sanjay, you’re with me.” I say, “Now look, Herr Macs”, I address the collective board, “Before I had carte blanche. Now, if I even think we might need something, it appears. We’ll sort out our honoraria and bonuses for this after we get back.”
Everyone present agreed most hastily. Handshakes all around and apologies from the board cemented the issue.
“OK, Sanjay. I need a bus. At least 24-seater. With a driver than knows how, when, and where to stop. OK?” I ask.
“24, Rock?”, Sanjay asks, “You’re not thinking of including the recruits now, are you?”
“Yes I am, Mr. Sanjay.”, I replied sternly, “On the job training. Meet me at outbuilding #2 at 1300 as per plan. Order a bus and arrange the largest forklift that can manage beach sand, about 100 wooden pallets, plastic wrap, and sandbags. Lots and lots of sandbags. Have them stockpiled away from the tent in a muster area. OK. You got all that?”
“Yes, Rock”, he said, “I’ll be there in a couple of hours. It will only take a few phone calls.”
“Marvelous.”
Not even 1000 in the fucking morning and I’m facing life and death decisions once again. I dig an emergency flask out of my field vest. If this doesn’t qualify as an emergency, what the fuck does?
A tot or two later, I change into my PPEs, and light a cigar. I catch a tap-tap to the region of the tent. I need to reconnoiter the area and figure out what sort of dragon I have to slay and the best way of going about slaughtering the sumbitch.
I’m standing alone, about 250 meters from the tent of death.
I’m puzzling and puzzling; but I can’t allow for my puzzler to go sore. Not this early, anyway.
“OK, me ol’ mucker”, I sigh, “It’s me or thee. Pucker up, Buckwheat. Here I come.”
A blast suit like the ones bomb disposal dudes wear wouldn’t help in the least. All it would do is hold the mashed body parts together to make for easier disposal. I’m anywhere within a kilometer or so of this pile of Chinese counterfeit boom-makers and it decides to let go; I’m lunchmeat. That’s it. Alive one second; kerpow, splat, instantaneously zonked into component particles the next. That’s the long and short of it. No ‘thank you’s. No ‘good bye’s. Just existing here one minute and in an alternate dimension the next.
Doesn't that just take the biscuit? Funny old thing, life.
I trod onwards.
For a moment, nothing happened. Then, after a second or so, nothing continued to happen.
I was walking up to the tent, clearing a path for the forklift. No fucking way I’m schlepping nine tons of dodgy explosives out of here, over wet beach sand, by hand and hoof.
Sand. I’m with young Anakin on this one. I hate sand. I hate walking in dry sand, hiking in wet sand. It makes for a wonderful oil reservoir and I love its porosity and permeability at depth. But at the surface, forget it. Yow! Let me tell you about the time I was out in the Rub al-Khali desert. The great Sand Erg. Wind blowing a force 9 gale! Seif dunes 1,000 meters high…
Yeah. I know. I’m stalling.
I’m approaching the tent. Carefully. I pause to light a new cigar. You might think that daft, but it’s really not. None of the stuff inside is heat-sensitive; let me clarify. None of the stuff is going to go off if hit by errant ash or even a sustained flame. But sitting out in the 30C+ heat? OK, that makes it twitchier. Cigars do the opposite for me. Give me something to concentrate upon and it calms me down.
I need calm now. By the bucketful. Where’s a monsoon when you really need one?
OK, I made it. I’m at the tent. Got to hand it to the workers around here, they respect authority and don’t come anywhere near the tent. They also don’t apparently give a shit as there no crowd gathered filming me with their iPhones to post to You Tube© if the tent decides to go all detonic.
Good. I couldn’t yell anything at them they’d understand to clear out anyway.
I open the hole in the side of the tent and pause. I’m hit with a wave of hot air. And the heady redolence of onions, sewer gas, and dog farts.
Sorry, that’s just me. Weird midnight snack last night. Frozen durian. What a treat.
Anyways.
I smell kerosene. Old wood pulp, like musty magazines. And an undercurrent of almonds.
“Oh, treble fuck me,” I say to no one within 100 square kilometers.
Kerosene is sweaty C-4. Old wood pulp is dynamite. Almonds? My old friend, nitroglycerine.
Things, if possible, went from real to super-uber major-league holy-fuck real.
“OK”, I say, as I dig out my phone and begin to snap pictures at a frantic rate.
Luckily, all the ordnance was piled like-with-like. Blasting caps? All over here. C-4, all along this ‘wall’. Dynamite? All over here. Non-explosives? Right over here.
I was mentally running like a squadron of overclocked Crays, wondering what I need to do to sort out this little situation. I’m so deep in thought, someone would need to throw me a rope to get my attention.
Or, just tap me on the shoulder.
Once I returned from low earth orbit, I turn to see a little wisp of an Indian feller, who had to be at least 27 years Methuselah’s senior.
“What? THE? Actual? Fuck? Are? You? DOING? Here?” I screamed.
“A thousand pardons, Sahib.”, the ancient one said, “I saw you working alone. Salim wonders if you need some help? Salim is good helper. Salim will help you good.”
“Yes, Salim. Oh, hello by the way.”, I said, calming a bit, forcing myself to smile so I didn’t kill him on the spot, “I do need your help. I need you to go, very slowly, out of this tent and to where the flags begin. Stand there and allow access to no one. OK. We green?”
Salim smiles broadly revealing both teeth. I slowly usher him out and remind myself to order a few new pairs of boxers before the day is out.
Back to the problem at hand. There are some salvageable items here. But the most the C-4, all the dynamite and every sack of ANFO has to go. And by ‘go’, I mean be disposed of. How?
By blowing it up, how else?
An idea creeps into my skull. I puff and puff while it grows and finally, I’ve a plan of attack.
I close the tent and slowly walk away. I hand Salim 1000 rupees and tell him that no one, I don’t care if it was Mahatma Gandhi reincarnate, goes anywhere near that tent.
“You savvy?” I ask.
“Oh, Sahib! I savvy! Thank you! Salaam! I savvy!” he is beside himself with joy, 13 bucks, and a task.
I look at my watch. It’s just gone noon. Good. I need a sandwich, some fluid replacement, as I’ve probably literally sweated off 5 kilos in the last hour and a half, and some time to jot down my plans.
I catch a tap-tap, geez, these things are everywhere around here. They form an unsanctioned, but necessary, sort of intradepartmental transport system here. I tip a couple of hundred rupees for every trip. They see blaze orange and they have this Pavlovian reaction. I sometimes need to break up fist-fights over which driver arrived first.
“Commissary”, I say, sit down, let the tap-tap, which is really nothing more than a glorified golf cart, adjust to my Western bulk and away we zip.
Salim is waving to me as we depart.
I shudder to think if I hadn’t had a tot or two and was a bit jumpier from the morning’s caffeine. Here's to alcohol: the cause of, and solution to, all of life's problems.
At the commissary, I grab a tall iced, fruit cocktail juice; a slurry of mixed dragon fruit, kiwi, carambola, blood orange, green apple, watermelon, bitter melon, sweet melon, & bailan melon fruity essence. I’m incredibly thirsty and I need some calories, but not in bulk and not from onion bhajis, mutton kabobs, or something claiming to be grilled chicken on a stick.
The last thing I need today is a case of the trots or even sharp gas pains in the next few hours. I add about 5 fingers of Old Fornicator Vodka to the juice and sip it slowly as my biometric rhythms return from the ionosphere and back to more normal levels.
Remember, I’m EtOh-based. I need to control my various fluid levels very carefully.
The blasting muse is upon me. In less than 30 minutes, I have a plan. Both a written out procedure and a map of what needs to be done.
I finish off another tall, icy glass of potato and various fruit juices, venture outside feeling almost like I’ve once again regained the illusion of control of the situation and my life.
I fire up a heater and decide to walk the approximately 1100 meters to outbuilding #2. I’m thinking as I sashay along; figuring this and calculating that.
I round the corner and see Outbuilding #2 and a bus parked next to it.
The bus looks like a refugee from Sgt. Pepper’s Lonely Hearts Club Band. The movie and album.
I go into Outbuilding #2 and see about half the class has arrived, and they are all kitted out in their new, stiff, and scratchy PPEs.
I nod hello to all and see Sanjay over across the room.
“Mr. Sanjay”, I say, “Nice bus. What’s the story?”
“Only one I could find that was a 24 seater, not actively falling apart, and with an English speaking driver. Rock. Mr. Maha, owneoperator.” He replied.
“Mr. Maha”, I said, shaking his hand. “Love the bus. Some sort of passion project?”
Mr. Maha laughs. “I was city bus driver for 39 years. I retire and go nuts. I buy old bus and fix up mechanicals. Runs all like excellently. Looks like dung heap. I begin to paint and never quite knew when to stop.”
“I like it. Adds a sense of surrealism to the day, as if it really needs more.” I reply, “However, I do hope you know how to stop. I mean that sincerely. We have a literal bomb to defuse. Does that bother you?”
“No, Doctor”, he says, “Nothing much bothers me anymore. I know. You are here. You are to make safe. I feel safe that you’re here. Let us go to work.”
“Outstanding”. I say.
I tell him that a fat bonus will be his when this is all over if all goes to plan.
“Unnecessary.”, he replies, “Mr. Sanjay has already paid me.”
“Paid? Perhaps”, I reply, “You are going to get danger money whether you like it or not.”
“I guess I will like it, Doctor.” He smiles.
“Marvelous.”
I look at the clock, it’s 1256. Almost showtime.
1300 on the spot. I pick up the microphone and address the assembled 24.
“Gentlemen”, I say, “Very good. You all look like late October in the United States. Very festive.” as all are kitted out in their respective PPEs.
“We have a little matter to handle. One that has just cropped up and one you’re certainly not ready for, but I have no other choice. Does that bother anyone here?” I ask.
Head shakes and questions arise.
“OK, class”, I say, “For your first training exercise, we’re going to defuse a 9-ton bomb. Let’s go.”
The collective gasp drew my cigar smoke in another direction, right towards them.
“Doctor…Ah, Rock. Really?” one brave soul asked for the crowd.
“Yes”, I said, “seems your company officials got a ‘real deal’ on some dodgy Chinese explosives. They didn’t wait until they finished the storage bunker I had designed, so they simply set the stuff on the beach and covered it with a canvas tent.”
There were more gasps.
“Indeed”, I said, “We need to neutralize this threat. Sanjay is passing out copies of my plan and designs on just how to do this. Read them over and let me know what you think. You have 5 minutes. We’re out of here at 1330 on the nose.”
They read quickly, cogitated over the plans and as I had assumed, didn’t find any flaws within.
“OK”, I say after an inch of cigar had passed, “You follow my directions, directly and without question, there’s no reason you can’t come out of this alive and happy, free to pursue a life of religious fulfillment.”
There was a chuckle or two at that last line. ‘Airplane’ is such a classic movie.
“Now I know”, I continued, “That this is pretty scary shit. Especially for you guys, being tossed in the deep end like this. I know because I’m scared to death.”
“Oh, Doctor Rock”, one of my acolytes said, “We do not believe this is so.”
“I stay alive by being scared to death”, I replied. “You will learn this as well.”
Sanjay checks out everyone’s PPE and all appear in good order. They are happy to have such nice, new equipment.
And that’s a problem. People used to ragged and ratty shit with which to work will go to extraordinary lengths to not filthy-up brand new working gear. This is one little bugaboo I’m going to settle here and now.
“One thing, gentlemen”, I note, “You all have nice, clean, and new PPEs. You look great. You come back to Outbuilding #2 looking as pristine, you’re gone. Keeping clean is not a part of your training. You’re going to sweat and stink. You keep to clean and it tells me you’re goldbricking, that is, not doing your job.” I say as I surreptitiously unscrew the top of my travel mug, ‘accidentally’ trip and shower the front row with Greenland coffee, lukewarm.
“See?”, I saw, “They were totally protected. That’s what PPEs are all about. We green?”
“Somewhat brown, Rock”, a couple of the guys in the front row reply without a hint of irony.
“Outstanding.”
“Gentlemen, it is time. Take what you think you’ll need and leave the rest in your locker box. Brass tags to Sector 4. On the bus, we leave in 5 minutes.”
I move my brass marker to Zone 4, puff a blue cloud for all to see, and head out to the bus.
We’re loaded and headed to Sector 4 in less than 5 minutes.
“OK”, I say”, I’m going to break you up into groups of 4. Tags number 1 to 4, you’re group 1. 5-8, group 2, and so on. OK?”
All respond in the affirmative.
OK. Six groups of four, Sanjay and me to lead the pack. We roll up to just outside the exclusion zone. With a squeal of brakes, we grind to a halt.
“Outside”, I command, “Assemble in your groups next to the bus. Go!”.
Like a well-oiled team, they de-bus and stand together in 6 groups. Sanjay and I walk along, inspecting the troops.
“OK”, I say, “This may seem like a shit job, but group 4. Back on the bus. To the commissary. Water, juice, and whatever else you think we’ll need to stay hydrated out there. Don’t worry, we’re going on rotation once you get back. You’ll all get a chance to do the exciting stuff. Now, move it.”
I say something to Sanjay, he jots it down in his book, certain to remind me later.
“OK, let’s see. Group 1. Storage detail. Build the temporary in-ground storage locker like it’s shown in the plan. Get help and have them source the manpower and materials. It needs to be done in the next 2 hours. Go!”
There are some explosives that can be salvaged. I need a place to store them. I’ve scouted and laid out a spot away from prying eyes where they can build an 8x8x8 hole in the ground, line it with marine plywood, and store whatever we can salvage. A plywood roof over the thing, a couple of locks, and well, Robert’s your Mother’s Sister’s Husband.
Next, I send group 3 to build a road from the tent to an area on the beach sourced as Disposal Area #1. They will take flags and tape and run a road, of sorts, from the tent to the beach; cordoning it off so we can take the forklift and its loads of dodgy high explosives to the disposal area.
The other groups are doing needful and necessary things as well. I tell Sanjay to keep a lid on things, I’m going to bring the forklift, a few pallets, sandbags and such in for the first run.
I find the forklift, and it’s a huge old Hyster 52-ton truck.
It’ll do.
The keys are in, so I drop in and fire it up. It catches on the first twirl and I pick up a half-dozen wooden pallets, a bunch of sandbags, and a few huge rolls of plastic wrapping. It’s like driving a tank, but it has plenty of power and just a low gear range.
I drive it back to Sector 4 and almost rum over Salim. He was taking my previous orders very seriously, indeed.
“All cool, Salim”, I say over the roar of the forklift, “It’s just me.”
He waves and lets me pass. He’s serious as a heart attack about keeping people out.
I drive and realize that I can’t drive ‘gingerly’ in a conveyance such as this. I can drive deliberately and with forethought, but it rumbles and shudders the ground. Best to slide in, drop the load, and shut her down while I figure out what’s next.
I do so and drop the pallets, etc., just outside the flap of the tent. I back off a few feet, drop the forks, and shut the noisy machine down for the time being.
Sanjay appears. As does Crew #5. I motion them to come over, slowly and with forethought.
We’re all standing outside the tent flap. I raise an index finger, right, of course, to get their attention.
“Gentlemen, first lesson. What says these explosives have gone bad? Answer:” and I open the tent flap.
“Take a whiff. What do you smell?” I instruct.
“Old paper?” was one answer.
“Oil? Petrol? Something petrochemical?” was the next.
“Almonds?” Sanjay says.
“Highest marks. We’ve old C-4. It sweats and smells like kerosene. Old paper or pulp? Dynamite gone wet and bad. Almonds? Bitter, bitter almonds? Nitroglycerine. Yes, guys. We’ve got rogue nitro inside. Anyone want to quit? Now’s your chance.” I ask, being deadly serious.
One looks to another; then they all look to me…eyes wide…
To be continued…
submitted by Rocknocker to Rocknocker [link] [comments]

Binary Options Trading - YouTube Binary Options Tips / Strategie / Hulp / Help - Start direct met geld verdienen! Binary Options Help - YouTube binary options help - YouTube How Binary Option Signals App Helper - 4 hour binary ... BINARY OPTIONS TRADING STRATEGY - You Can Win Without Any ...

Binary options brokers will generally have their trading platform open when the market of the underlying asset is open. So if trading the NYSE, Nasdaq, DOW or S&P, the assets will be open to trade during the same hours as those markets are open. Any moves by the Federal reserve for example, will feed into binary markets immediately, just as you would expect. Forex trading has no central market ... Our goal at Binary Options Doctor is to guide and teach you; the trader, about the industry. This will enable you to trade smarter and not lose your money. We want you to learn the Forex/Cryptocurrency/Binary Options Trading from the ground up. This will make your trading experience profitable. Because, at the end of each trading day, we at Binary Options Doctor want you to stay IN THE MONEY ... The binary ancillary services have come a long way along with the rise of the binary options trading. One such ancillary service which has taken the binary trading market by storm is the automated software services. This software is programmed to provide you signals (it helps you time the market) regarding which assets to buy, when to buy or when to sell. The growth of signal service provider ... Download Binary Options Robot Echo_Digits V2.01: Trading robots and strategies for binary.com: Sep 2, 2020: Recruitment of participants Last Digits Even/Odd Binary: Binary Options Robot: May 13, 2020: Download DigitsStats Binary.com bot: Trading robots and strategies for binary.com: Jun 4, 2019: Download Binary XML bot for odd digits only For sale Your Freedom Vpn Client Apk Pro And Binary Options Helper You can order Your Freedom Vpn Client Apk Pro And Binary Options Helper after check, compare Binary Option Helper, crude oil calendar spread trading strategies, work at home jobs glendale az, nicholas trading strategy. Post # 1; Quote; First Post: Nov 20, 2010 2:09pm Nov 20, 2010 2:09pm September 22, 2017 at 8:59 am tanley. Charlz. 02/17/2019 10:31. binary trader. High, Low Binary Option Helper and Close. The high is the highest point ever reached by the market during the contract ... Link.start trading binary options for free.binary option black ops 2 0 scam.binary options trading is relatively a new phenomenon which is picking up at a very fast pace.the.stimulation of immune response by activated helper t cells.get 0 bonus and earn in sec.in order to use this new binary to decimal converter tool, type any binary value like into the left field below, and then hit the ... The Binary data type can be up to 510 bytes in length, it can be sorted and indexed. - That is exactly what we need for our binary keys. By default, the Binary data type in Access has variable length. Its name is confusing, as in SQL there is the Varbinary data type for variable length data and the Binary type for fixed length data. The Jet ... Binary Trading Strategy: Using the FX-Helper System. The FX Helper system was designed by Bright Nnanna, and was initially built for trading the forex market. However, we will show how this strategy can be adapted to trade the binary options markets, since the assets traded in the binary options market include currencies and the same basic principles apply across board. >>>Click here to sign ... A Binary-Options strategy has to call a function of the Binary-Options-Strategy-Tester (via Binary-Options-Strategy-Library) to place the virtual trades. Related to the license concept of MQL4 this only works if the product has a working license. Therefore you have to purchase the product to test Binary Options strategies or this example.

[index] [9996] [9505] [6158] [25469] [10116] [21266] [14257] [12672] [17615] [24799]

Binary Options Trading - YouTube

Go To Our Site: https://bit.ly/2DPeWP4 - How Binary Option Signals App Helper - 4 hour binary options can Save You Time, Stress, and Money. You in some cases... Welcome to Binary Helps. We provide binary signal + indicator. Contact me to buy original Binary Robot Or Signal https://t.me/binarypartner Email= binaryboss... สนใจสั่งซื้อ Line : kittiinvestor www.facebook.com/2investrader https://binaryoptionsbeat.com/ #Binaryoptions #Nadex #Nadextutorial You can always contact me via [email protected] In this video I tried to explain ... binary options trading income secrets, Options Strategies (Consumer Product), Binary Options Trading System, How to Profit in the Stock Market, Binary Option... Binary Options Trading is built especially for young professionals to deal with the trading market. Trade a wide range of binary options which have the poten... Direct starten met veel geld verdienen? Bekijk onze strategie en begin meteen! Voor meer tips check onze website www.binaryoptionstips.nl. Beat the binary options without falling in scam! Price action strategy trading and tutorials. Contact me here: [email protected] BINARY OPTIONS TRADING STRATEGY - You Can Win Without Any Help! Binary Options Signals ★ TRY STRATEGY ON DEMO http://iqopts.com/demo ★ WORK ON REAL MONEY ... Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.

https://binary-optiontrade.spunurpe.tk