- TFTP server
- IPXE Make sure ipxe.lkrn is in the TFTP root.
- iSCSI target (Server) Assume we have an iSCSI target "1:net.cszombie.au:windows" that is ready to be connected. 1 is LUN id, "net.cszombie.au:windows" is the target name.
- HTTP server (To speed up loading boot.wim, http is faster than tftp, http is supported by IPXE, however this is optional)
- connect to the OVH/SoYouStart/Kimsufi API and create a ipxe script under https://eu.api.kimsufi.com/console/#/me/ipxeScript#POST or equivalent, see centos8.ipxe below
- boot your server from this netboot, and ping it to follow the process. If you can observe the webserver's logs you will se your server's IP pulling kernel and initrd with "iPXE" user agent, then it will start pinging, and retrieve the kickstart.cfg a bit later (with "curl" user agent). This is the moment when you could set your server back to "Boot from Hard Disk".
- Also at this point you can connect to your server with SSH using the key/password set in the kickstart file. type
tmux a
to attach the install's tmux session and follow the progress. For debugging, check the logs in /tmp and those sent over syslog.
- [kernel/installer boot params in ipxe script](https://access.redhat.com/documentation/en-us/red_hat_enterprise_li
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############################################################################### | |
# Helpful Docker commands and code snippets | |
############################################################################### | |
### CONTAINERS ### | |
docker stop $(docker ps -a -q) #stop ALL containers | |
docker rm -f $(docker ps -a -q) # remove ALL containers | |
docker rm -f $(sudo docker ps --before="container_id_here" -q) # can also filter | |
# exec into container |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
await this._page.evaluateOnNewDocument(() => { | |
let checkWatchTimeFunc = () => { | |
let currElem = document.getElementsByClassName('ytp-time-current'); //grab the element showing current play time | |
let maxElem = document.getElementsByClassName('ytp-time-duration'); //grab the element showing total play time | |
if ( | |
currElem.length > 0 && maxElem.length > 0 //check if there are any such element | |
&& currElem[0].innerText === maxElem[0].innerText //compare the value between the 2 elements | |
) { |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Head on over to your YouTube live Events page (https://www.youtube.com/my_live_events).
Create a new live event that is unlisted (or private) and of Custom type.
Under Basic ingestion choose 1500 Kbps - 4000 kbps (720p).
Check the Enable 60fps box.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import gi | |
gi.require_version("Gtk", "3.0") | |
from gi.repository import Gtk, Gdk | |
class ControlPanel(Gtk.Box): | |
def __init__(self): | |
super().__init__(orientation=Gtk.Orientation.VERTICAL, spacing=5) | |
# Place the control panel in the top right | |
self.set_halign(Gtk.Align.END) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
""" | |
StarHScale a Horizontal slider that uses stars | |
Copyright (C) 2006 Mark Mruss <[email protected]> | |
This library is free software; you can redistribute it and/or | |
modify it under the terms of the GNU Lesser General Public | |
License as published by the Free Software Foundation; either |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding:utf-8 -*- | |
# | |
# Copyright (C) 2013 Carlos Jenkins <[email protected]> | |
# | |
# This program is free software: you can redistribute it and/or modify | |
# it under the terms of the GNU General Public License as published by | |
# the Free Software Foundation, either version 3 of the License, or | |
# (at your option) any later version. | |
# | |
# This program is distributed in the hope that it will be useful, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const puppeteer = require('puppeteer'); | |
(async () => { | |
const browser = await puppeteer.launch({headless:false}); | |
const page = await browser.newPage(); | |
let url = 'youtube url'; | |
await page.goto(url); | |
await page.evaluate(() => { | |
self.moHandler = { | |
changesObserver: function (mutation) { | |
if (mutation.type === 'attributes'){ |