|
MINI58_BSP V3.01.004
The Board Support Package for Mini58 Series MCU
|
Modules | |
| Mini58 Peripherals | |
Data Structures | |
| struct | ADC_T |
Macros | |
| #define | __CM0_REV 0x0201 |
| #define | __NVIC_PRIO_BITS 2 |
| #define | __Vendor_SysTickConfig 0 |
| #define | __MPU_PRESENT 0 |
| #define | __FPU_PRESENT 0 |
Typedefs | |
| typedef enum IRQn | IRQn_Type |
Configuration of the Cortex-M0 Processor and Core Peripherals
| #define __CM0_REV 0x0201 |
Core Revision r2p1
Definition at line 125 of file Mini58Series.h.
| #define __FPU_PRESENT 0 |
FPU present or not
Definition at line 129 of file Mini58Series.h.
| #define __MPU_PRESENT 0 |
MPU present or not
Definition at line 128 of file Mini58Series.h.
| #define __NVIC_PRIO_BITS 2 |
Number of Bits used for Priority Levels
Definition at line 126 of file Mini58Series.h.
| #define __Vendor_SysTickConfig 0 |
Set to 1 if different SysTick Config is used
Definition at line 127 of file Mini58Series.h.
| #define ADC_CHEN_CH7SEL_Msk (0x1ul << ADC_CHEN_CH7SEL_Pos) |
ADC_T::CHEN: CH7SEL Mask
Definition at line 716 of file Mini58Series.h.
| #define ADC_CHEN_CH7SEL_Pos (8) |
ADC_T::CHEN: CH7SEL Position
Definition at line 715 of file Mini58Series.h.
| #define ADC_CHEN_CHEN0_Msk (0x1ul << ADC_CHEN_CHEN0_Pos) |
ADC_T::CHEN: CHEN0 Mask
Definition at line 692 of file Mini58Series.h.
| #define ADC_CHEN_CHEN0_Pos (0) |
ADC_T::CHEN: CHEN0 Position
Definition at line 691 of file Mini58Series.h.
| #define ADC_CHEN_CHEN1_Msk (0x1ul << ADC_CHEN_CHEN1_Pos) |
ADC_T::CHEN: CHEN1 Mask
Definition at line 695 of file Mini58Series.h.
| #define ADC_CHEN_CHEN1_Pos (1) |
ADC_T::CHEN: CHEN1 Position
Definition at line 694 of file Mini58Series.h.
| #define ADC_CHEN_CHEN2_Msk (0x1ul << ADC_CHEN_CHEN2_Pos) |
ADC_T::CHEN: CHEN2 Mask
Definition at line 698 of file Mini58Series.h.
| #define ADC_CHEN_CHEN2_Pos (2) |
ADC_T::CHEN: CHEN2 Position
Definition at line 697 of file Mini58Series.h.
| #define ADC_CHEN_CHEN3_Msk (0x1ul << ADC_CHEN_CHEN3_Pos) |
ADC_T::CHEN: CHEN3 Mask
Definition at line 701 of file Mini58Series.h.
| #define ADC_CHEN_CHEN3_Pos (3) |
ADC_T::CHEN: CHEN3 Position
Definition at line 700 of file Mini58Series.h.
| #define ADC_CHEN_CHEN4_Msk (0x1ul << ADC_CHEN_CHEN4_Pos) |
ADC_T::CHEN: CHEN4 Mask
Definition at line 704 of file Mini58Series.h.
| #define ADC_CHEN_CHEN4_Pos (4) |
ADC_T::CHEN: CHEN4 Position
Definition at line 703 of file Mini58Series.h.
| #define ADC_CHEN_CHEN5_Msk (0x1ul << ADC_CHEN_CHEN5_Pos) |
ADC_T::CHEN: CHEN5 Mask
Definition at line 707 of file Mini58Series.h.
| #define ADC_CHEN_CHEN5_Pos (5) |
ADC_T::CHEN: CHEN5 Position
Definition at line 706 of file Mini58Series.h.
| #define ADC_CHEN_CHEN6_Msk (0x1ul << ADC_CHEN_CHEN6_Pos) |
ADC_T::CHEN: CHEN6 Mask
Definition at line 710 of file Mini58Series.h.
| #define ADC_CHEN_CHEN6_Pos (6) |
ADC_T::CHEN: CHEN6 Position
Definition at line 709 of file Mini58Series.h.
| #define ADC_CHEN_CHEN7_Msk (0x1ul << ADC_CHEN_CHEN7_Pos) |
ADC_T::CHEN: CHEN7 Mask
Definition at line 713 of file Mini58Series.h.
| #define ADC_CHEN_CHEN7_Pos (7) |
ADC_T::CHEN: CHEN7 Position
Definition at line 712 of file Mini58Series.h.
| #define ADC_CMP0_ADCMPEN_Msk (0x1ul << ADC_CMP0_ADCMPEN_Pos) |
ADC_T::CMP0: ADCMPEN Mask
Definition at line 719 of file Mini58Series.h.
| #define ADC_CMP0_ADCMPEN_Pos (0) |
ADC_T::CMP0: ADCMPEN Position
Definition at line 718 of file Mini58Series.h.
| #define ADC_CMP0_ADCMPIE_Msk (0x1ul << ADC_CMP0_ADCMPIE_Pos) |
ADC_T::CMP0: ADCMPIE Mask
Definition at line 722 of file Mini58Series.h.
| #define ADC_CMP0_ADCMPIE_Pos (1) |
ADC_T::CMP0: ADCMPIE Position
Definition at line 721 of file Mini58Series.h.
| #define ADC_CMP0_CMPCH_Msk (0x7ul << ADC_CMP0_CMPCH_Pos) |
ADC_T::CMP0: CMPCH Mask
Definition at line 728 of file Mini58Series.h.
| #define ADC_CMP0_CMPCH_Pos (3) |
ADC_T::CMP0: CMPCH Position
Definition at line 727 of file Mini58Series.h.
| #define ADC_CMP0_CMPCOND_Msk (0x1ul << ADC_CMP0_CMPCOND_Pos) |
ADC_T::CMP0: CMPCOND Mask
Definition at line 725 of file Mini58Series.h.
| #define ADC_CMP0_CMPCOND_Pos (2) |
ADC_T::CMP0: CMPCOND Position
Definition at line 724 of file Mini58Series.h.
| #define ADC_CMP0_CMPDAT_Msk (0x3fful << ADC_CMP0_CMPDAT_Pos) |
ADC_T::CMP0: CMPDAT Mask
Definition at line 734 of file Mini58Series.h.
| #define ADC_CMP0_CMPDAT_Pos (16) |
ADC_T::CMP0: CMPDAT Position
Definition at line 733 of file Mini58Series.h.
| #define ADC_CMP0_CMPMCNT_Msk (0xful << ADC_CMP0_CMPMCNT_Pos) |
ADC_T::CMP0: CMPMCNT Mask
Definition at line 731 of file Mini58Series.h.
| #define ADC_CMP0_CMPMCNT_Pos (8) |
ADC_T::CMP0: CMPMCNT Position
Definition at line 730 of file Mini58Series.h.
| #define ADC_CMP1_ADCMPEN_Msk (0x1ul << ADC_CMP1_ADCMPEN_Pos) |
ADC_T::CMP1: ADCMPEN Mask
Definition at line 737 of file Mini58Series.h.
| #define ADC_CMP1_ADCMPEN_Pos (0) |
ADC_T::CMP1: ADCMPEN Position
Definition at line 736 of file Mini58Series.h.
| #define ADC_CMP1_ADCMPIE_Msk (0x1ul << ADC_CMP1_ADCMPIE_Pos) |
ADC_T::CMP1: ADCMPIE Mask
Definition at line 740 of file Mini58Series.h.
| #define ADC_CMP1_ADCMPIE_Pos (1) |
ADC_T::CMP1: ADCMPIE Position
Definition at line 739 of file Mini58Series.h.
| #define ADC_CMP1_CMPCH_Msk (0x7ul << ADC_CMP1_CMPCH_Pos) |
ADC_T::CMP1: CMPCH Mask
Definition at line 746 of file Mini58Series.h.
| #define ADC_CMP1_CMPCH_Pos (3) |
ADC_T::CMP1: CMPCH Position
Definition at line 745 of file Mini58Series.h.
| #define ADC_CMP1_CMPCOND_Msk (0x1ul << ADC_CMP1_CMPCOND_Pos) |
ADC_T::CMP1: CMPCOND Mask
Definition at line 743 of file Mini58Series.h.
| #define ADC_CMP1_CMPCOND_Pos (2) |
ADC_T::CMP1: CMPCOND Position
Definition at line 742 of file Mini58Series.h.
| #define ADC_CMP1_CMPDAT_Msk (0x3fful << ADC_CMP1_CMPDAT_Pos) |
ADC_T::CMP1: CMPDAT Mask
Definition at line 752 of file Mini58Series.h.
| #define ADC_CMP1_CMPDAT_Pos (16) |
ADC_T::CMP1: CMPDAT Position
Definition at line 751 of file Mini58Series.h.
| #define ADC_CMP1_CMPMCNT_Msk (0xful << ADC_CMP1_CMPMCNT_Pos) |
ADC_T::CMP1: CMPMCNT Mask
Definition at line 749 of file Mini58Series.h.
| #define ADC_CMP1_CMPMCNT_Pos (8) |
ADC_T::CMP1: CMPMCNT Position
Definition at line 748 of file Mini58Series.h.
| #define ADC_CTL_ADCEN_Msk (0x1ul << ADC_CTL_ADCEN_Pos) |
ADC_T::CTL: ADCEN Mask
Definition at line 674 of file Mini58Series.h.
| #define ADC_CTL_ADCEN_Pos (0) |
ADC_T::CTL: ADCEN Position
Definition at line 673 of file Mini58Series.h.
| #define ADC_CTL_ADCIEN_Msk (0x1ul << ADC_CTL_ADCIEN_Pos) |
ADC_T::CTL: ADCIEN Mask
Definition at line 677 of file Mini58Series.h.
| #define ADC_CTL_ADCIEN_Pos (1) |
ADC_T::CTL: ADCIEN Position
Definition at line 676 of file Mini58Series.h.
| #define ADC_CTL_HWTRGCOND_Msk (0x1ul << ADC_CTL_HWTRGCOND_Pos) |
ADC_T::CTL: HWTRGCOND Mask
Definition at line 683 of file Mini58Series.h.
| #define ADC_CTL_HWTRGCOND_Pos (6) |
ADC_T::CTL: HWTRGCOND Position
Definition at line 682 of file Mini58Series.h.
| #define ADC_CTL_HWTRGEN_Msk (0x1ul << ADC_CTL_HWTRGEN_Pos) |
ADC_T::CTL: HWTRGEN Mask
Definition at line 686 of file Mini58Series.h.
| #define ADC_CTL_HWTRGEN_Pos (8) |
ADC_T::CTL: HWTRGEN Position
Definition at line 685 of file Mini58Series.h.
| #define ADC_CTL_HWTRGSEL_Msk (0x3ul << ADC_CTL_HWTRGSEL_Pos) |
ADC_T::CTL: HWTRGSEL Mask
Definition at line 680 of file Mini58Series.h.
| #define ADC_CTL_HWTRGSEL_Pos (4) |
ADC_T::CTL: HWTRGSEL Position
Definition at line 679 of file Mini58Series.h.
| #define ADC_CTL_SWTRG_Msk (0x1ul << ADC_CTL_SWTRG_Pos) |
ADC_T::CTL: SWTRG Mask
Definition at line 689 of file Mini58Series.h.
| #define ADC_CTL_SWTRG_Pos (11) |
ADC_T::CTL: SWTRG Position
Definition at line 688 of file Mini58Series.h.
| #define ADC_DAT_OV_Msk (0x1ul << ADC_DAT_OV_Pos) |
ADC_T::DAT: OV Mask
Definition at line 668 of file Mini58Series.h.
| #define ADC_DAT_OV_Pos (16) |
ADC_T::DAT: OV Position
Definition at line 667 of file Mini58Series.h.
| #define ADC_DAT_RESULT_Msk (0x3fful << ADC_DAT_RESULT_Pos) |
ADC_T::DAT: RESULT Mask
Definition at line 665 of file Mini58Series.h.
| #define ADC_DAT_RESULT_Pos (0) |
@addtogroup ADC_CONST ADC Bit Field Definition Constant Definitions for ADC Controller
ADC_T::DAT: RESULT Position
Definition at line 664 of file Mini58Series.h.
| #define ADC_DAT_VALID_Msk (0x1ul << ADC_DAT_VALID_Pos) |
ADC_T::DAT: VALID Mask
Definition at line 671 of file Mini58Series.h.
| #define ADC_DAT_VALID_Pos (17) |
ADC_T::DAT: VALID Position
Definition at line 670 of file Mini58Series.h.
| #define ADC_EXTSMPT_EXTSMPT_Msk (0xful << ADC_EXTSMPT_EXTSMPT_Pos) |
ADC_T::EXTSMPT: EXTSMPT Mask
Definition at line 779 of file Mini58Series.h.
| #define ADC_EXTSMPT_EXTSMPT_Pos (0) |
ADC_T::EXTSMPT: EXTSMPT Position
Definition at line 778 of file Mini58Series.h.
| #define ADC_SEQCTL_MODESEL_Msk (0x3ul << ADC_SEQCTL_MODESEL_Pos) |
ADC_T::SEQCTL: MODESEL Mask
Definition at line 788 of file Mini58Series.h.
| #define ADC_SEQCTL_MODESEL_Pos (2) |
ADC_T::SEQCTL: MODESEL Position
Definition at line 787 of file Mini58Series.h.
| #define ADC_SEQCTL_SEQEN_Msk (0x1ul << ADC_SEQCTL_SEQEN_Pos) |
ADC_T::SEQCTL: SEQEN Mask
Definition at line 782 of file Mini58Series.h.
| #define ADC_SEQCTL_SEQEN_Pos (0) |
ADC_T::SEQCTL: SEQEN Position
Definition at line 781 of file Mini58Series.h.
| #define ADC_SEQCTL_SEQTYPE_Msk (0x1ul << ADC_SEQCTL_SEQTYPE_Pos) |
ADC_T::SEQCTL: SEQTYPE Mask
Definition at line 785 of file Mini58Series.h.
| #define ADC_SEQCTL_SEQTYPE_Pos (1) |
ADC_T::SEQCTL: SEQTYPE Position
Definition at line 784 of file Mini58Series.h.
| #define ADC_SEQCTL_TRG1CTL_Msk (0xful << ADC_SEQCTL_TRG1CTL_Pos) |
ADC_T::SEQCTL: TRG1CTL Mask
Definition at line 791 of file Mini58Series.h.
| #define ADC_SEQCTL_TRG1CTL_Pos (8) |
ADC_T::SEQCTL: TRG1CTL Position
Definition at line 790 of file Mini58Series.h.
| #define ADC_SEQCTL_TRG2CTL_Msk (0xful << ADC_SEQCTL_TRG2CTL_Pos) |
ADC_T::SEQCTL: TRG2CTL Mask
Definition at line 794 of file Mini58Series.h.
| #define ADC_SEQCTL_TRG2CTL_Pos (16) |
ADC_T::SEQCTL: TRG2CTL Position
Definition at line 793 of file Mini58Series.h.
| #define ADC_SEQDAT1_OV_Msk (0x1ul << ADC_SEQDAT1_OV_Pos) |
ADC_T::SEQDAT1: OV Mask
Definition at line 800 of file Mini58Series.h.
| #define ADC_SEQDAT1_OV_Pos (16) |
ADC_T::SEQDAT1: OV Position
Definition at line 799 of file Mini58Series.h.
| #define ADC_SEQDAT1_RESULT_Msk (0x3fful << ADC_SEQDAT1_RESULT_Pos) |
ADC_T::SEQDAT1: RESULT Mask
Definition at line 797 of file Mini58Series.h.
| #define ADC_SEQDAT1_RESULT_Pos (0) |
ADC_T::SEQDAT1: RESULT Position
Definition at line 796 of file Mini58Series.h.
| #define ADC_SEQDAT1_VALID_Msk (0x1ul << ADC_SEQDAT1_VALID_Pos) |
ADC_T::SEQDAT1: VALID Mask
Definition at line 803 of file Mini58Series.h.
| #define ADC_SEQDAT1_VALID_Pos (17) |
ADC_T::SEQDAT1: VALID Position
Definition at line 802 of file Mini58Series.h.
| #define ADC_SEQDAT2_OV_Msk (0x1ul << ADC_SEQDAT2_OV_Pos) |
ADC_T::SEQDAT2: OV Mask
Definition at line 809 of file Mini58Series.h.
| #define ADC_SEQDAT2_OV_Pos (16) |
ADC_T::SEQDAT2: OV Position
Definition at line 808 of file Mini58Series.h.
| #define ADC_SEQDAT2_RESULT_Msk (0x3fful << ADC_SEQDAT2_RESULT_Pos) |
ADC_T::SEQDAT2: RESULT Mask
Definition at line 806 of file Mini58Series.h.
| #define ADC_SEQDAT2_RESULT_Pos (0) |
ADC_T::SEQDAT2: RESULT Position
Definition at line 805 of file Mini58Series.h.
| #define ADC_SEQDAT2_VALID_Msk (0x1ul << ADC_SEQDAT2_VALID_Pos) |
ADC_T::SEQDAT2: VALID Mask
Definition at line 812 of file Mini58Series.h.
| #define ADC_SEQDAT2_VALID_Pos (17) |
ADC_T::SEQDAT2: VALID Position
Definition at line 811 of file Mini58Series.h.
| #define ADC_STATUS_ADCMPF0_Msk (0x1ul << ADC_STATUS_ADCMPF0_Pos) |
ADC_T::STATUS: ADCMPF0 Mask
Definition at line 758 of file Mini58Series.h.
| #define ADC_STATUS_ADCMPF0_Pos (1) |
ADC_T::STATUS: ADCMPF0 Position
Definition at line 757 of file Mini58Series.h.
| #define ADC_STATUS_ADCMPF1_Msk (0x1ul << ADC_STATUS_ADCMPF1_Pos) |
ADC_T::STATUS: ADCMPF1 Mask
Definition at line 761 of file Mini58Series.h.
| #define ADC_STATUS_ADCMPF1_Pos (2) |
ADC_T::STATUS: ADCMPF1 Position
Definition at line 760 of file Mini58Series.h.
| #define ADC_STATUS_ADIF_Msk (0x1ul << ADC_STATUS_ADIF_Pos) |
ADC_T::STATUS: ADIF Mask
Definition at line 755 of file Mini58Series.h.
| #define ADC_STATUS_ADIF_Pos (0) |
ADC_T::STATUS: ADIF Position
Definition at line 754 of file Mini58Series.h.
| #define ADC_STATUS_BUSY_Msk (0x1ul << ADC_STATUS_BUSY_Pos) |
ADC_T::STATUS: BUSY Mask
Definition at line 764 of file Mini58Series.h.
| #define ADC_STATUS_BUSY_Pos (3) |
ADC_T::STATUS: BUSY Position
Definition at line 763 of file Mini58Series.h.
| #define ADC_STATUS_CHANNEL_Msk (0x7ul << ADC_STATUS_CHANNEL_Pos) |
ADC_T::STATUS: CHANNEL Mask
Definition at line 767 of file Mini58Series.h.
| #define ADC_STATUS_CHANNEL_Pos (4) |
ADC_T::STATUS: CHANNEL Position
Definition at line 766 of file Mini58Series.h.
| #define ADC_STATUS_OV_Msk (0x1ul << ADC_STATUS_OV_Pos) |
ADC_T::STATUS: OV Mask
Definition at line 773 of file Mini58Series.h.
| #define ADC_STATUS_OV_Pos (16) |
ADC_T::STATUS: OV Position
Definition at line 772 of file Mini58Series.h.
| #define ADC_STATUS_VALID_Msk (0x1ul << ADC_STATUS_VALID_Pos) |
ADC_T::STATUS: VALID Mask
Definition at line 770 of file Mini58Series.h.
| #define ADC_STATUS_VALID_Pos (8) |
ADC_T::STATUS: VALID Position
Definition at line 769 of file Mini58Series.h.
| #define ADC_TRGDLY_DELAY_Msk (0xfful << ADC_TRGDLY_DELAY_Pos) |
ADC_T::TRGDLY: DELAY Mask
Definition at line 776 of file Mini58Series.h.
| #define ADC_TRGDLY_DELAY_Pos (0) |
ADC_T::TRGDLY: DELAY Position
Definition at line 775 of file Mini58Series.h.
Interrupt Number Definition. The maximum of 32 Specific Interrupts are possible.
| enum IRQn |
Interrupt Number Definition. The maximum of 32 Specific Interrupts are possible.
Definition at line 81 of file Mini58Series.h.


Recipe 11.13. Implementing a Tabbed Notebook for TkinterCredit: Iuri Wickert ProblemYou have some Tkinter applications, each with a single top-level window, and want to organize them as panels in a tabbed notebook with minimal changes to your original applications' source code. SolutionA simple widget class can implement a notebook with all the features we need, including all possible orientations and the ability to add and switch frames (panels) at will: from Tkinter import * class notebook(object): def _ _init_ _(self, master, side=LEFT): self.active_fr = None self.count = 0 self.choice = IntVar(0) if side in (TOP, BOTTOM): self.side = LEFT else: self.side = TOP self.rb_fr = Frame(master, borderwidth=2, relief=RIDGE) self.rb_fr.pack(side=side, fill=BOTH) self.screen_fr = Frame(master, borderwidth=2, relief=RIDGE) self.screen_fr.pack(fill=BOTH) def _ _call_ _(self): return self.screen_fr def add_screen(self, fr, title): b = Radiobutton(self.rb_fr, text=title, indicatoron=0, variable=self.choice, value=self.count, command=lambda: self.display(fr)) b.pack(fill=BOTH, side=self.side) if not self.active_fr: fr.pack(fill=BOTH, expand=1) self.active_fr = fr self.count += 1 def display(self, fr): self.active_fr.forget( ) fr.pack(fill=BOTH, expand=1) self.active_fr = fr Just save this code as a notebook.py module, somewhere on your Python sys.path, and you can import and use it in your apps. DiscussionThe simplest way to show how this notebook class works is with a simple demonstration program: from Tkinter import * from notebook import * # make a toplevel with a notebook in it, with tabs on the left: root = Tk( ) nb = notebook(root, LEFT) # make a few diverse frames (panels), each using the NB as 'master': f1 = Frame(nb( )) b1 = Button(f1, text="Button 1") e1 = Entry(f1) # pack your widgets in the frame before adding the frame to the # notebook, do NOT pack the frame itself! b1.pack(fill=BOTH, expand=1) e1.pack(fill=BOTH, expand=1) f2 = Frame(nb( )) b2 = Button(f2, text='Button 2') b3 = Button(f2, text='Beep 2', command=Tk.bell) b2.pack(fill=BOTH, expand=1) b3.pack(fill=BOTH, expand=1) f3 = Frame(nb( )) # add the frames as notebook 'screens' and run this GUI app nb.add_screen(f1, "Screen 1") nb.add_screen(f2, "Screen 2") nb.add_screen(f3, "dummy") root.mainloop( ) Tkinter is a simple GUI toolkit, easy to use but notoriously feature-poor when compared to more advanced toolkits. And yet, sometimes advanced features are not all that difficult to add! I wondered how I could use a tabbed appearance, also known as a notebook, to organize various pages of an application, or various related applications, simply and elegantly. I discovered that simulating a notebook widget by using standard Tkinter frames and radio buttons was not only possible, but also quite simple and effective. Tk has some "odd", and somewhat unknown, corners, which make the whole task a snap. The indicatoron option on a radio button reverts the radio button default appearance back to the normal button looka rectangle, which may not be a perfect-looking tab but is plenty good enough for me. Each Tkinter frame has a forget method, which allows easy and fast swapping of "screens" (notebook panels, application frames) within the single "screen frame" of the notebook object. To convert any existing Tkinter app, based on a single top-level window, to run inside a notebook panel, all you need to do is to change the application master frame's root, which is generally a top-level widget (an instance of Tkinter's Tk class), to the one provided by the notebook object when you call it. (The three occurrences of nb( ) in the example code show how to go about it.) The notebook implementations in other toolkits often have advanced features such as the ability to exclude (remove) some frames as well as adding others. I have not found this kind of thing to be necessary, and so I have taken no trouble in this recipe to make it possible: all references to the external frames are kept implicitly in lambda closures, without any obvious way to remove them. If you think you need the ability to remove frames, you might consider an alternative architecture: keep the frames' references in a list, indexed by the binding variable of the radio buttons (i.e., the choice attribute of each radio button). Doing so lets you destroy a "frame" and its associated radio button in a reasonably clean way. See AlsoInformation about Tkinter can be obtained from a variety of sources, such as Fredrik Lundh, An Introduction to Tkinter (PythonWare: http://www.pythonware.com/library), New Mexico Tech's Tkinter Reference (http://www.nmt.edu/tcc/help/lang/python/docs.html), Python in a Nutshell, and various other books. |


RESEARCH
Introduction
Web & Web security
- Semantic web
- Effective Access Control for Web Data
- Vulnerability Analysis and Detection for HTML5
- JavaScript and Hybrid Application
Web & Web security
- Semantic web
- Effective Access Control for Web Data
- Vulnerability Analysis and Detection for HTML5
- JavaScript and Hybrid Application
Web & Web security
- Semantic web
- Effective Access Control for Web Data
- Vulnerability Analysis and Detection for HTML5
- JavaScript and Hybrid Application
Web & Web security
- Semantic web
- Effective Access Control for Web Data
- Vulnerability Analysis and Detection for HTML5
- JavaScript and Hybrid Application
Formal Engineering Methods
- Formal Specification, Validation, and Verification
- Model checking, Theorem Proving
- Ontology Reasoning, Constraing Solving


Hi, In this post we will see how to get started with Apache Kafka C#. In this article I’ll be using Kafka as Message Broker. So basically I’ll have 2 different systems. One is Producer and the Other is Consumer. Basically a producer pushes message to Kafka Queue as a topic and it is consumed by my consumer.
Here I’ll basically focus on Installation and a sample C# console applications. One acts as a consumer and the other as a Producer.
Installing Kafka on Windows:
Download from this url http://kafka.apache.org/downloads
Now download Kafka from this http url
After downloading the file, unzip into a location on your machine. Now navigate to ** your_location\kafka_2.11-2.1.1\bin\windows**
/bin directory represents all the binary files which are helpful to start Kafka server different operating systems. As we are working with the windows machine, there will be a folder named windows under /bin directory, which has all the windows related stuff.
/config directory contains all configuration details about Kafka server, zookeeper, and logs. All configurations have their default values if you wanted to change any config details like port you can freely go an change accordingly.
Start the Zookeeper:
We can start the server with default configuration
Use the command “zookeeper-server-start.bat ../../config/zookeeper.properties”
C:\Pavan\Softwares\kafka_2.11-2.1.1\bin\windows>zookeeper-server-start.bat ../../config/zookeeper.properties
[2019-02-26 15:03:16,587] INFO Reading configuration from: ..\..\config\zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2019-02-26 15:03:16,592] INFO autopurge.snapRetainCount set to 3 (org.apache.zookeeper.server.DatadirCleanupManager)
[2019-02-26 15:03:16,593] INFO autopurge.purgeInterval set to 0 (org.apache.zookeeper.server.DatadirCleanupManager)
[2019-02-26 15:03:16,593] INFO Purge task is not scheduled. (org.apache.zookeeper.server.DatadirCleanupManager)
[2019-02-26 15:03:16,594] WARN Either no config or no quorum defined in config, running in standalone mode (org.apache.zookeeper.server.quorum.QuorumPeerMain)
[2019-02-26 15:03:16,617] INFO Reading configuration from: ..\..\config\zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
Start Apache Kafka:
Use the command “kafka-server-start.bat ../../config/server.properties”
C:\Pavan\Softwares\kafka_2.11-2.1.1\bin\windows>kafka-server-start.bat ../../config/server.properties
[2019-02-26 15:08:42,212] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
[2019-02-26 15:08:42,694] INFO starting (kafka.server.KafkaServer)
[2019-02-26 15:08:42,695] INFO Connecting to zookeeper on localhost:2181 (kafka.server.KafkaServer)
[2019-02-26 15:08:42,720] INFO [ZooKeeperClient] Initializing a new session to localhost:2181. (kafka.zookeeper.ZooKeeperClient)
Now we can see that both Zookeeper and Kafka servers are running successfully.
Understanding Basics Of Kafka:
Before actually going into programming. First of all let us try to understand some of the basic terminologies involved in Kafka.
As per the official site
Apache Kafka® is a distributed streaming platform. What exactly does that mean? A streaming platform has three key capabilities:
- Publish and subscribe to streams of records, similar to a message queue or enterprise messaging system.
- Store streams of records in a fault-tolerant durable way.
- Process streams of records as they occur.
Lets try to decode above statements.
Process_A(Publisher) sends data( can be multiple messages) under a common name which can be called as topic name. Now Process_B(Consumer) subscribes to the same topic and whenever there is a message or record sent by Process_A (Publisher), it is recieved and processed by Process_B(Consumer).
In this case there are chances of Process_B(consumer) down. So Process_A sends a message but Process_B is down.
What is going to happen in this case?
Are we going to loose the message sent by Process_A?
No, we are not going to loose the message, Kafka takes care of this and it stores this message internally untill the message is consumed by the consumer.
Publisher:
Publishers are applications which send messages to a Topic. For example, I have a topic called “ResumeProcessor” and an application which extracts raw resumes by scrapping. So my application it scrapes resumes from internet and then it posts that data to my “ResumeProcessor” topic.
Topic:
A topic is like a place where a publisher writes all message and a consumer picks from it. In my above example “ ResumeProcessor” is my topic to which different scrapped resumes content is written and from there subscribers pick.
Structure of a Topic:
- Each topic is divided into configured number of partitions. By default it is based on the number of consumers ina group.
- Whenever a new message is sent, it is appended to the partition and it is immutable.
- Data in a topic is persisted for a configurable amount of time ( in .properties file). For example if the retension period is set to 1 day, then the record will be stored for the next one day.
Consumers:
Consumers are applications which listen to a topic and when ever a publisher sends a message, it is picked up by the consumer.
C# code for consumer and Producers:
Now as we have kafka environment ready, lets try to publish some data and consume it using C# clients for Kafka.
There are many clients available in the market( Nuget Packages) lets see which one to use.
By querying Nuget site as following https://www.nuget.org/packages?q=kafka&prerel=false I see that there are many packages available.
But among those, I see 2 predominent ones and I am planning to use “Confluent.Kafka” as this seems to be promising and microsft acknowledged it.
https://www.nuget.org/packages/Confluent.Kafka/0.11.6
Note: When Installing this package, make sure that we have include pre-release selected. Because of the classes which I am using in my example are present in the pre-release version or else you’ll be see a message ** “There is no ProducerConfig in Confluent.Kafka dll”**
Producer sample:
using System;
using System.Threading.Tasks;
using Confluent.Kafka;
namespace Kafka_Producer
{
class Program
{
public static async Task Main(string[] args)
{
var config = new ProducerConfig { BootstrapServers = "localhost:9092" };
using (var p = new ProducerBuilder<Null, string>(config).Build())
{
try
{
var dr = await p.ProduceAsync("resume-processor", new Message<Null, string> { Value = DateTime.Now.ToShortDateString() });
Console.WriteLine($"Delivered '{dr.Value}' to '{dr.TopicPartitionOffset}'");
}
catch (ProduceException<Null, string> e)
{
Console.WriteLine($"Delivery failed: {e.Error.Reason}");
}
}
Console.ReadLine();
}
}
}
- Initially we are initializing a config which specifies details of the Kafka server
- Then we are actually building the Producer by passing above config data
- Now we are actually trying to produce a message to the topic “resume-processor” with a message
- Once the message is written to the topic, we are getting details(DeliveryResults) related to message , this will have information related to the partition and the offset where the record is stored.
Here we can see that the message is stored in the topic “resume-processor” and we have only 1 partition ( with index 0) and the message is stored in the offset 0.
Now when I tried to run the same application again with a different message, we can see that it is stored in the same partition 0 but in a different offset.
Subscriber sample:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Confluent.Kafka;
namespace ConsoleApp6
{
class Program
{
public static void Main(string[] args)
{
var conf = new ConsumerConfig
{
GroupId = "test-consumer-group",
BootstrapServers = "localhost:9092"
};
using (var c = new ConsumerBuilder<Ignore, string>(conf).Build())
{
c.Subscribe("resume-processor");
try
{
while (true)
{
try
{
var cr = c.Consume();
Console.WriteLine($"Consumed message '{cr.Value}' at: '{cr.TopicPartitionOffset}'.");
}
catch (ConsumeException e)
{
Console.WriteLine($"Error occured: {e.Error.Reason}");
}
}
}
catch (OperationCanceledException)
{
// Ensure the consumer leaves the group cleanly and final offsets are committed.
c.Close();
}
}
}
}
}
- Initially we are creating a config object with server and consumer group name
- Now we are actually creating a consumer and then subscribe to the same topic to which messages were sent in the Producer application
- Finally we are consuming data when ever we have some data in topic.
Keywords: kafka c#, apache kafka, kafka producer, kafka consumer, kafka server
Thanks,
Pavan


PUL GitHub Issues
2020-07-24
#35 remove ptr from names
Creator:
regineheberlein
Created:
2020-07-24 15:06:21
Status:
Open
Events:
assigned
by None at 2020-07-24 15:06:32.
labeled
by None at 2020-07-24 15:07:11.
#22 ASpace import fails for unittitles and digital object titles that are too long
Creator:
regineheberlein
Created:
2020-06-17 00:49:57
Status:
Open
Events:
labeled
by None at 2020-07-24 15:08:00.
#10 string "item" in extent causes an import error
Creator:
regineheberlein
Created:
2020-06-16 16:39:52
Status:
Open
Events:
labeled
by None at 2020-07-24 15:07:59.
#32 remove physloc from current ASpace transformation
Creator:
regineheberlein
Created:
2020-07-23 15:14:27
Status:
Open
Events:
labeled
by None at 2020-07-24 15:08:01.
#31 normalize extent prior to ASpace import
Creator:
regineheberlein
Created:
2020-07-23 15:13:17
Status:
Open
Events:
labeled
by None at 2020-07-24 15:08:01.
#30 normalize name strings in EADs for ASpace import based on CPF entities
Creator:
regineheberlein
Created:
2020-07-23 15:08:09
Status:
Open
Events:
labeled
by None at 2020-07-24 15:08:00.
#24 We need a validation tool to check for things the ASpace importer will reject or ignore
Creator:
regineheberlein
Created:
2020-06-18 13:21:59
Status:
Open
Events:
labeled
by None at 2020-07-24 15:08:00.
#34 add default container profiles prior to import
Creator:
regineheberlein
Created:
2020-07-24 14:42:44
Status:
Open
Events:
assigned
by None at 2020-07-24 14:42:44.
labeled
by None at 2020-07-24 15:08:02.
#33 Normalized date tag appearing alongside title in Finding Aid Data
Creator:
Will-Clements
Created:
2020-07-23 15:27:04
Status:
Open
Comments:
Events:
assigned
by None at 2020-07-24 15:04:38.
labeled
by None at 2020-07-24 15:08:01.
#13 reconcile ASpace name records with EAD name records
Creator:
regineheberlein
Created:
2020-06-17 00:27:42
Status:
Closed
Events:
closed
by None at 2020-07-24 15:08:47.
#25 Update IMPORT.md
Creator:
Kevin McElwee
Created:
2020-07-24 12:47:09
Status:
Closed
(pull request )
Events:
review_requested
by Kevin McElwee at 2020-07-24 12:48:06.
referenced
by James R. Griffin III at 2020-07-24 12:59:41.
merged
by James R. Griffin III at 2020-07-24 12:59:41.
closed
by James R. Griffin III at 2020-07-24 12:59:41.
head_ref_deleted
by James R. Griffin III at 2020-07-24 12:59:45.
#26 Introduces documentation and improves support for Thesis Central (Vireo) thesis submission imports
Creator:
James R. Griffin III
Created:
2020-07-24 13:40:40
Status:
Open
(pull request )
Comments:
Events:
head_ref_force_pushed
by James R. Griffin III at 2020-07-24 14:10:57.
head_ref_force_pushed
by James R. Griffin III at 2020-07-24 15:06:54.
#27 Request updates for the Restrictions Spreadsheet export
Creator:
James R. Griffin III
Created:
2020-07-24 15:25:13
Status:
Open
#28 Introduce pandas, update CLI wrapper, and provide documentation
Creator:
Kevin McElwee
Created:
2020-07-24 20:29:30
Status:
Open
(pull request )
Comments:
Events:
mentioned
by Kevin McElwee at 2020-07-24 20:37:17.
subscribed
by Kevin McElwee at 2020-07-24 20:37:17.
review_requested
by James R. Griffin III at 2020-07-24 20:37:24.
ready_for_review
by Kevin McElwee at 2020-07-24 20:53:10.
#4093 Run a cron job every 10 minutes which runs `ChargeManager#activate_holds` for every ResourceChargeList
Creator:
Trey Pendragon
Created:
2020-07-13 18:07:33
Status:
Closed
Comments:
Events:
closed
by Trey Pendragon at 2020-07-23 22:01:20.
#4122 WIP pdf derivative service
Creator:
hackmastera
Created:
2020-07-22 20:46:04
Status:
Open
(pull request )
#4092 Add optimistic locking to CDL::ResourceChargeList
Creator:
Trey Pendragon
Created:
2020-07-13 18:03:42
Status:
Closed
Events:
closed
by None at 2020-07-24 18:45:09.
#4129 Enable and test optimistic locking for ResourceChargeList.
Creator:
Trey Pendragon
Created:
2020-07-23 22:10:37
Status:
Closed
(pull request )
Events:
referenced
by None at 2020-07-24 18:45:09.
merged
by None at 2020-07-24 18:45:09.
closed
by None at 2020-07-24 18:45:09.
head_ref_deleted
by None at 2020-07-24 18:45:12.
#4128 Track events in google analytics for the CDL Hold Queue
Creator:
Trey Pendragon
Created:
2020-07-23 22:00:22
Status:
Open
(pull request )
#329 Change Heading for "Consultation and WorkShops"
Creator:
carolyncole
Created:
2020-07-24 17:19:39
Status:
Closed
Events:
closed
by None at 2020-07-24 17:20:13.
#330 Move the stages of research to Knowledge Base
Creator:
carolyncole
Created:
2020-07-24 17:46:08
Status:
Closed
Events:
closed
by None at 2020-07-24 17:46:39.
#709 Get a bib record from ALMA
Creator:
Kate Lynch
Created:
2020-07-17 19:23:23
Status:
Open
Comments:
#721 List pieces of information from the alma record that we want to include in the bibdata call
Creator:
Christina Chortaria
Created:
2020-07-24 15:45:37
Status:
Open
Events:
labeled
by Christina Chortaria at 2020-07-24 15:45:37.
renamed
by Christina Chortaria at 2020-07-24 15:57:39.
#722 Checkout a CDL item in the voyager test database
Creator:
Christina Chortaria
Created:
2020-07-24 16:23:29
Status:
Open
Events:
labeled
by Christina Chortaria at 2020-07-24 16:25:47.
#717 Alma-implementation -starting alma adapter,
Creator:
Christina Chortaria
Created:
2020-07-23 14:05:22
Status:
Open
(pull request )
Comments:
Events:
head_ref_force_pushed
by Christina Chortaria at 2020-07-24 03:22:56.
head_ref_force_pushed
by Christina Chortaria at 2020-07-24 03:25:11.
head_ref_force_pushed
by Christina Chortaria at 2020-07-24 12:54:26.
head_ref_force_pushed
by Christina Chortaria at 2020-07-24 22:06:17.
head_ref_force_pushed
by Christina Chortaria at 2020-07-25 01:01:09.
head_ref_force_pushed
by Christina Chortaria at 2020-07-25 01:17:25.
#1624 1621 create oar role
Creator:
Francis Kayiwa
Created:
2020-07-08 21:41:31
Status:
Open
(pull request )
#1645 Adding drupal 9 role and rearch data (PRDS) role
Creator:
carolyncole
Created:
2020-07-22 15:11:33
Status:
Open
(pull request )
Events:
head_ref_force_pushed
by None at 2020-07-24 01:11:06.
head_ref_force_pushed
by None at 2020-07-24 12:05:30.
head_ref_force_pushed
by None at 2020-07-24 12:19:13.
head_ref_force_pushed
by None at 2020-07-24 12:37:35.
head_ref_force_pushed
by None at 2020-07-24 15:32:11.
head_ref_force_pushed
by None at 2020-07-24 16:55:48.
#325 Introduces support for Aeon form API integration
Creator:
James R. Griffin III
Created:
2020-07-24 17:31:35
Status:
Open
(pull request )
Events:
head_ref_force_pushed
by James R. Griffin III at 2020-07-24 20:25:21.
#8 Change Heading for "Consultation and WorkShops"
Creator:
carolyncole
Created:
2020-07-24 17:20:52
Status:
Open
#9 Add RSS Feed Import from Lib Cal
Creator:
carolyncole
Created:
2020-07-24 17:22:27
Status:
Open
#11 Copy About Page Content
Creator:
carolyncole
Created:
2020-07-24 17:27:41
Status:
Open
#12 Configure Drupal Image Styles (Reponsive Images)
Creator:
carolyncole
Created:
2020-07-24 17:35:10
Status:
Open
#14 Create content type
Creator:
carolyncole
Created:
2020-07-24 17:40:06
Status:
Open
#10 Need Chat Widget
Creator:
carolyncole
Created:
2020-07-24 17:24:09
Status:
Open
#15 Move Stages of Research from existing page to Knowledge Base in new system
Creator:
carolyncole
Created:
2020-07-24 17:47:10
Status:
Open
#16 LibCal Appointment Widget
Creator:
carolyncole
Created:
2020-07-24 17:53:12
Status:
Open
Comments:
#17 Search bar with auto complete
Creator:
carolyncole
Created:
2020-07-24 18:01:59
Status:
Open
#7 Add Drupal 9 and Lando for local development
Creator:
Axa Mei Liauw
Created:
2020-07-17 19:12:53
Status:
Closed
(pull request )
Events:
head_ref_force_pushed
by Axa Mei Liauw at 2020-07-24 17:00:37.
ready_for_review
by None at 2020-07-24 19:25:38.
referenced
by None at 2020-07-24 19:25:46.
merged
by None at 2020-07-24 19:25:46.
closed
by None at 2020-07-24 19:25:46.
head_ref_deleted
by None at 2020-07-24 19:25:49.
#13 Add content from existing site to home page
Creator:
carolyncole
Created:
2020-07-24 17:36:54
Status:
Open


Class that generates pseudo random numbers. See Prng_Class for more information on how to use this class.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=i64), | public | :: | seed(0:15) | = | 0 | ||
| integer(kind=i32), | public | :: | ptr | ||||
| logical, | public | :: | big |
Overloaded Initializer for a Prng - Pseudo random number generator. Thread safe, xorshift1024* or xorshift128+ generator than can draw from different distributions. See Prng_Class for more information on how to use this class.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=i64), | intent(in) | :: | seed(:) | Fixed seeds of 64 bit integers. If big == true, must be length 16 else must be length 2. |
||
| logical, | intent(in), | optional | :: | big | Use the high period xorshift1024* (true) or xorshift128+ (false). Default is false. |
Prng Class
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in), | optional | :: | big | Use the high period xorshift1024* (true) or xorshift128+ (false). Default is false. |
|
| logical, | intent(in), | optional | :: | display | Display the randomly generated seed to the screen for reproducibility |
Prng Class
Jumps the Prng by \(2^{64}\) numbers if the Prng was instantiated with big = .false. or \(2^{512}\) if big = .true. This allows the Prng to be used correctly in parallel on multiple threads for OpenMP, or ranks for MPI.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Prng), | intent(inout) | :: | this | Prng Class |
||
| integer(kind=i32) | :: | nJumps | Number of times to skip \(2^{64}\) numbers if the Prng was initialized with big = .false. or $2^{512}$ numbers if big was .true. |
Prng%rngExponential() - Draw from an exponential distribution $$y = \frac{-ln(\tilde{u})}{\lambda}$$ where \(\tilde{u}\) is a sample from a uniform distribution
Prng%rngInteger() - Draw a random integer in the interval \(x_{0} <= \tilde{u} <= x_{1}\) $$y = x_{0} + (\tilde{u} * x_{1})$$ where \(\tilde{u}\) is a sample from a uniform distribution, and integers are generated such that \(x_{0} <= \tilde{u} <= x_{1}\).
Prng%rngNormal() - Draw from a normal distribution.
Prng%rngUniform() - Draw from a uniform distribution Draws uniform random numbers on (0, 1) using either the xorshift1024* or xorshift128+ algorithms.
Prng%rngWeibull() - Draw from a Weibull distribution $$y = \left[ \frac{-1}{\lambda} ln(\tilde{u}) \right]^{\frac{1}{k}}$$ where \(\tilde{u}\) is a sample from a uniform distribution and \(\frac{-1}{\lambda} ln(\tilde{u})\) is a draw from an exponential distribution.


| 1.Date of Survey |
|
| 2.Name of Surveyors with Designations |
|
| 3.Name of buildings |
|
| 4.Classification Of Buildings |
|
| Module Name |
Weight |
Module Name |
Weight |
| A1 |
| C3 |
|
| A2 |
| C4 |
|
| A3 |
| C |
|
| A |
| D1 |
|
| B1 |
| D2 |
|
| B2 |
| D3 |
|
| B3 |
| D4 |
|
| B4 |
| D5 |
|
| B5 |
| D |
|
| B6 |
| E1 |
|
| B |
| E2 |
|
| C1 |
| E3 |
|
| C2 |
| E |
|
| Please click on your observation about the availability of mesaurable items in the following questions in column as Yes/No. |
| Fire Safety Stratergy A : Mean of Access |
| The following measurable items (A11 to A14) of criteria "A1: Open space around building" are available in the building. |
Yes |
No |
Weight |
| Sufficient parking free open space with minimum required hard drive width available: |
|
|
|
| A11 |
In front of building (including street width) |
|
|
|
| A12 |
On left side of building |
|
|
|
| A13 |
On right side of building |
|
|
|
| A14 |
On rear side of building |
|
|
|
| The following measurable items (A21 to A25) of criteria "A2: Open space around building" are available in the building. |
Yes |
No |
Weight |
| A21 |
Height of building is restricted for main road width requirement |
|
|
|
| A22 |
Minimum width of main road in front of building is more than requirement |
|
|
|
| A23 |
Main road in front of building meets the other road of equal or more width, without a dead end |
|
|
|
| A24 |
Sufficient clear distance(minimum 6 meter) of road from main road to building available |
|
|
|
| A25 |
Minimum clear height and width of main gate of the buiding are 4.5 and 6/0 meters respectively |
|
|
|
| The following measurable items (A31 to A34) of criteria "A3: Access inside building i.e. Fire Shaft/Lift" are available in the building. |
Yes |
No |
Weight |
| A31 |
Fire Fighting shaft with fire protected lobby, fire lift anf staircase provided |
|
|
|
| A32 |
Firefighting shaft is either a pressuirized 120 minutes fire rated enclosure with 120 minutes fire rated door or open naturally ventilated |
|
|
|
| A33 |
Firefighting shaft is equipped with floor plan,firemen talk back, wet riser and landing valve in its lobby |
|
|
|
| A34 |
The words 'Fire Lift' is clearly displayed in fluoroscent paint on each lift landing door. |
|
|
|
| Fire Safety Stratergy B : Means of Egress |
| The following measurable items (B11 to B14) of criteria "B1: Vertical Movement Routes" are available in the building. |
Yes |
No |
Weight |
| B11 |
The minimum two number of exit routes (means of escape as staircaswe, ramps, horizontal exits, fire shaft) from every point of a floor or a compartment to an exit route/safe place available |
|
|
|
| B12 |
The minimum two number of exit routes (means of escape) from every point of basement compartment to an exit route/safe place available |
|
|
|
| B13 |
Sufficient exit capacity for occupancy load on floors provided |
|
|
|
| B14 |
Sufficient exit capacity for occupancy load from basement provided |
|
|
|
| The following measurable items (B21 to B26) of criteria "B2: Exit features" are available in the building. |
Yes |
No |
Weight |
| B21 |
Main inteval staircase is located along external wall of building and away from lift well |
|
|
|
| B22 |
All staircases are continuous from terrace to exit discharge level or ground floor |
|
|
|
| B23 |
Seperate staircase for basement away from main staircase protected with fire rated door |
|
|
|
| B24 |
At least 50% of exit routes are directly discharging to the exterior of building or to exit passageway |
|
|
|
| B25 |
The minimum width for exit doors provided |
|
|
|
| B26 |
Sufficient width and minimum 2.4m height of exit corridors in the directions of travel to exit routes provided |
|
|
|
| The following measurable items (B31 to B36) of criteria "B3: Travel Distances" are available in the building. |
Yes |
No |
Weight |
| B31 |
Maximum Travel Distance (MTD) is restricted on floors as per requirements |
|
|
|
| B32 |
Maximum Travel Distance (MTD) restricted in basement as per requirements |
|
|
|
| B33 |
The maximum dead-end distance on a floor is less than 15m |
|
|
|
| B34 |
The exit routes are located far way from each other |
|
|
|
| The following measurable items (B41 to B43) of criteria "B4: Horizontal exit and refuge area" are available in the building. |
Yes |
No |
Weight |
| B41 |
Horizontal exits provided as per requirements |
|
|
|
| B42 |
Sufficient refuge area is provided as per requirements |
|
|
|
| B43 |
Refuge area is open ventilated, sprinkled and provided with fireman talkback or public-address system |
|
|
|
| The following measurable items (B51 to B54) of criteria "B5: Emergency Power and escape lighting" are available in the building. |
Yes |
No |
Weight |
| B51 |
Emergency power other than main supply, supported by standby diesel generator is available |
|
|
|
| B52 |
Emergency power is supporting all critical life safety systems like; emergency lighting, fire man's lift, fire pump, pressuriztion, smoke ventilation, fire alarm etc |
|
|
|
| B53 |
Emergency light provide adequate illumination along exit routes and corridors |
|
|
|
| B54 |
Escape light luminaries are located at all intersection of corridors, change of direction, exit doors, near each fire alarm call points and firefighting installations |
|
|
|
| The following measurable items (B61 to B64) of criteria "B6: Exit Signs" are available in the building. |
Yes |
No |
Weight |
| B61 |
Exit signs are well illuminated adn wired on an independent power supply other than main circuit |
|
|
|
| B62 |
Exit signs are damage proof and flushed inside the wall |
|
|
|
| B63 |
Exit signs are clearly visible with indicating arrows to escape routes (Exits) |
|
|
|
| B64 |
Individual floors are prominently indicated on the wall facing the staircase |
|
|
|
| Fire Safety Stratergy C : Passive Fire Safety |
| The following measurable items (C11 to C14) of criteria "C1: Type of construction" are available in the building. |
Yes |
No |
Weight |
| C11 |
All structural laod bearing members (beam, column, floor, roof) are of type 1 or 2 constructions |
|
|
|
| C12 |
All interior surface material of the building is of class 1 or 2 fire spread rating |
|
|
|
| C13 |
All exterior surface material of the building is of class 1 or 2 fire spread rating |
|
|
|
| C14 |
Exterior/Interior surface material of building do not generate toxic frames |
|
|
|
| The following measurable items (C21 to C24) of criteria "C2: Compartmentalization" are available in the building. |
Yes |
No |
Weight |
| C21 |
On floor compartment size is restricted as per requirements2 |
|
|
|
| C22 |
In basements compartment size is restricted as per requirements |
|
|
|
| C23 |
Compartment barrier walls are 120 minutes fire rated |
|
|
|
| C24 |
Openings size in compartment barrier are restricted as per requirements |
|
|
|
| The following measurable items (C31 to C34) of criteria "C3: Fire and smoke protection of openings" are available in the building. |
Yes |
No |
Weight |
| C31 |
All cable ducts and sealing fire stops are of 120 minutes fire rated material |
|
|
|
| C32 |
All vertical and staircase openings between floors are enclosed or protected by 120 minutes fire rated enclosure and naturally ventilated |
|
|
|
| C33 |
All wall openings and service ducts closed with 120 minutes fire rated doors |
|
|
|
| The following measurable items (C41 to C43) of criteria "C4: Fire protection of service installions" are available in the building. |
Yes |
No |
Weight |
| C41 |
Seperate ducts for electrical cables and other services provided |
|
|
|
| C42 |
Gas supply pipe lines are laid in seperate duct located at external wall of the building |
|
|
|
| C43 |
All rooms containing high pressure boilers, refrigerating machinery, transformers located away from exits, and protected with fire rated walls with adequate vents |
|
|
|
| Fire Safety Stratergy D : Active Fire Safety |
| The following measurable items (D11 to D12) of criteria "D1: Fire and smoke detection" are available in the building. |
Yes |
No |
Weight |
| D11 |
A fire detection and alarm system installed in the building |
|
|
|
| D12 |
Fire detection and alarm system is automatic and connected to sprinklers |
|
|
|
| The following measurable items (D21 to D25) of criteria "D2: Smoke venting and control" are available in the building. |
Yes |
No |
Weight |
| D21 |
All exit passages and corridor are either pressurized or have mechanical smoke exhaust system or naturally ventilated |
|
|
|
| D22 |
Sufficient power operated or natural smoke venting (more than 2.5% of floor area) provided in the basements |
|
|
|
| D23 |
Staircase enclosures are either pressurized or naturally ventilated |
|
|
|
| D24 |
In AC buildings, independent Air Handling Unit (AHU) for each floor with automatic fire dampers provided in ducts |
|
|
|
| D25 |
In AC buildings, the corridors and exit routes have no air-conditioning(AC) vents, return air passage or any duct openings |
|
|
|
| The following measurable items (D31 to D34) of criteria "D3: Firefighting installations (FI)" are available in the building. |
Yes |
No |
Weight |
| D31 |
Sufficient portable fire extinguishersper floor or compartment provided |
|
|
|
| D32 |
Hose reel of sufficient length to cover all places on floors provided |
|
|
|
| D33 |
Wet Riser or Down Comer provided as per requirement |
|
|
|
| D34 |
Yard hydrant provided |
|
|
|
| The following measurable items (D41 to D43) of criteria "D4: Sprinklers" are available in the building. |
Yes |
No |
Weight |
| D41 |
Sprinklers provided on the floor |
|
|
|
| D42 |
Sprinklers provided in the exit ways and lobbies |
|
|
|
| D43 |
Sprinklers provided in the basement |
|
|
|
| The following measurable items (D51 to D53) of criteria "D5: Water Supply" are available in the building. |
Yes |
No |
Weight |
| D51 |
Underground water tank of sufficient capacity provided |
|
|
|
| D52 |
Terrace water tank of sufficient capacity is provided |
|
|
|
| D53 |
A pump house is 120 minutes fire rated enclosure with standby diesel generator provided |
|
|
|
| Fire Safety Stratergy E : Fire Safety Management (FSM) |
| The following measurable items (E11 to E14) of criteria "E1: Fire Control Room" are available in the building. |
Yes |
No |
Weight |
| E11 |
A fire control (FCR) in 120 minutes fire rated enclosure is located at entrance floor with direct access |
|
|
|
| E12 |
Detailed floor plan of building with details of all firefighting systems on floors is available in FCR |
|
|
|
| E13 |
Main fire alarm panel with public address system to all floors and message receiving facility available in FCR |
|
|
|
| E14 |
A full time qualified fire officer employed in building as per requirements |
|
|
|
| The following measurable items (E21 to E24) of criteria "E2: Fire Control Room" are available in the building. |
Yes |
No |
Weight |
| E21 |
All exits, corridors and staircases maintained in obstruction free, sound operable and easy to access conditions |
|
|
|
| E22 |
All fixed firefighting and smoke controlling installations maintained in sound operable conditions and checked regularly |
|
|
|
| E23 |
Regular trained housekeeping staff provided to maintain building garbage free |
|
|
|
| E24 |
Open naked fire, flames and storage of inflammable material is prohibited inthe permises |
|
|
|
| The following measurable items (E31 to E35) of criteria "E3: Fire drills, fire Orders and user guide manual" are available in the building. |
Yes |
No |
Weight |
| E31 |
Fire Safety Plan of entire building is ready and has been distributed and explained to the occupants |
|
|
|
| E32 |
Fire Drills are conducted regularly as per schedule and record of past drills available |
|
|
|
| E33 |
Fire Notices are displayed at vantage points and occupants made thoroughly conversant with regular training |
|
|
|
| E34 |
A Personal Fire Instruction card with details of floor plan, exit route and instructions to followed in case of fire given to all occupants |
|
|
|
| E35 |
Safe Practice Manual about storage of inflammable material and use of gas and electrical appliances given to occupants
|
|
|
|


Constructor
new PluginContainer(stateFile)
Parameters:
| Name | Type | Description |
|---|---|---|
stateFile |
String | location where the state file should be saved |
- Source:
Members
persistentStates :object.<String, Boolean>
object containing [String, Boolean] pairs to store which plugins are persistently enabled
Type:
- object.<String, Boolean>
- Source:
Methods
add(plugin)
Add a plugin to the container.
Parameters:
| Name | Type | Description |
|---|---|---|
plugin |
Plugin | the plugin to add |
- Source:
startPlugin(identifier, persistent)
Start a plugin by a given plugin identifier.
Parameters:
| Name | Type | Description |
|---|---|---|
identifier |
String | the plugin's identifier |
persistent |
Boolean | true if the plugin should run after a bot restart |
- Source:
startPlugins()
Start all plugins besides those that were disabled by an entry in the
persistentStates object.
- Source:
stopPlugin(identifier, persistent)
Stop a plugin by a given plugin identifier.
Parameters:
| Name | Type | Description |
|---|---|---|
identifier |
String | the plugin's identifier |
persistent |
Boolean | true if the plugin shouldn't run after a bot restart |
- Source:
stopPlugins()
Stop all currently running plugins.
- Source:


Report: Caoimhin Kelleher Could Leave Liverpool On Loan In January
by Gary ConnaughtonCaoimhin Kelleher is an exciting prospect, with the 21-year old highly thought of by those at Liverpool. He has made two appearances for the first team this season, coming in the League Cup wins over MK Dons and Arsenal.
While Klopp's side did concede five in that game against The Gunners, it was Kelleher's heroics in the penalty shootout that ensured their passage into the quarter finals.
The Cork native has also been very impressive at international level, establishing himself as a key member of Stephen Kenny's U21 side. He is incredibly comfortable with the ball at his feet, something that has proven crucial in implementing Kenny's attacking style of play.
While the League Cup appearances were a big moment in his career, you suspect that some consistent first team football will be the next step in his development.
The Liverpool Echo are reporting that Jurgen Klopp would be willing to let the player leave on loan in January, with a move to the Championship most likely. Preston are believed to be keen on the goalkeeper, with other clubs would no doubt show an interest were he to become available.
Kelleher is third in the pecking order at Liverpool, sitting well behind Alisson Becker and Adrian. He is likely to feature in the Carabao Cup quarter final against Aston Villa next month, with the majority of the first team squad missing that game due to the Club World Cup in Qatar.
While half a season of regular football would be huge for his development and Liverpool would likely seek assurances about regular playing time in any potential deal.
Stephen Kenny would be also be keen to see the player improve with first team football, as Ireland attempt to qualify for a first U21 European Championships.


BOOGIE NIGHTS (R)
Directed by Paul Thomas Anderson Running Time: 152 minutes Originally Released: October 10, 1997
Reviewed by E. Benjamin Kelsey
* * * ½ (out of four)
Let's get one thing straight . . . BOOGIE NIGHTS is *not* a sensationalistic peak at the world of pornography, nor does it try to glamorize the porn star image. In fact, it does quite the opposite, showing us how dreamy-eyed youngsters can end up on a lonely, dark, dead-end street. We begin in 1977 with Eddie Adams (Mark Whalberg), a 17-year-old nightclub busboy who dreams of making a name for himself. With not a lot going for him, aside from a 13-inch reproductive organ (hey, who'd complain?), Eddie is quickly befriended by Jack Horner (Burt Reynolds), a charming porn director who has taken notice of Eddie's "abundance". It seems Jack sees real potential in Eddie's "excessiveness", and plans to turn Eddie into the next big *adult* movie star.
Eddie is easily seduced into the adult film-making industry with a lot of help coming from Amber Waves (Julianne Moore), Jack's main starlet. Amber and Eddie's lives seem to parallel each other's, even if in a mirror-image way. Eddie's home-life was anything but desirable. His mother was distant, cold, harsh, and totally unsupportive. Amber, on the other hand, has a son whom she never sees due to her debauched lifestyle. The two, whether consciously or sub-consciously, use each other to fill these vacant roles.

The first half of the movie shows the non-stop party lifestyle that soon envelopes young Eddie as he rises to pornographic fame. He has indeed made a name for himself - and the name is Dirk Diggler. Under the name Dirk Diggler, Eddie stars in a series of Jack Horner directed films while Horner tries endlessly to create the ultimate "artistic" adult flick. When the 1980's arrive, however, things take a drastic turn for the worse as we watch each and every character fall into a downward spiral of drugs, lost hope, and jealousy.
Many people have complained about the sudden dark turn that BOOGIE NIGHTS takes upon itself. I didn't find it as annoying or jarring as most people seemed to, and I thought it flowed quite smoothly. I'm a sucker for character studies, and BOOGIE NIGHTS is a captivating one. The acting, by absolutely everyone, is phenomenal! Who would have thought that Mark Whalberg, who we first came to know as rapping Marky Mark and by his Calvin Klein underwear ads, could be such a fantastic actor? I've said it before about other movies, but when a movie can use the words "um" and "like" in the dialogue without ever sounding staged, you know it's good acting!
Burt Reynolds is terrific, Julianne Moore is impeccable, and Graham, Reilly, Macy, and Cheadle all turn in such fine performances that it would be difficult knowing where to start the Oscar nominations. Writer/director Paul Thomas Anderson handles this film with ease and substance, never once wavering into mediocre film-making. As we watch the characters' declining lifestyles, Anderson allows us to peak into each - a deep, heart-felt peak that makes you genuinely feel for each and every character.
BOOGIE NIGHTS is a prime example of excellent film-making. We laugh, and then we want to cry. We are smiling one moment, and the next, we are sadly contemplating life. One thing that character studies seem to enable us to do is simultaneously be intrigued, entertained, and inwardly philosophical, and BOOGIE NIGHTS stimulates all three senses quite well. Lavish and exquisite, BOOGIE NIGHTS is one to be seen . . . and don't let the subject matter frighten you away!
December 9, 1997
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


The top part of the main page under the Managed Servers heading lists other Webmin servers whose modules and users are being managed by this module. To add a server to this list, you must first add it to the Webmin Servers module, with a username and password specified to login to Webmin on that server. You can then select the server from the list next to the Add Server button.
When a server is added, it will be checked to make sure it is running a supported version of Webmin (0.985 or later) and that it has the necessary modules installed. Lists of all modules, themes, users and groups from the server will then be downloaded and cached locally.
Once there is at least once icon under Managed Servers, you can use the buttons under Webmin Users and Groups to edit, create or set ACLs on users and groups on any server. Users and groups that you create will be created on all managed servers, but those that already exist that are edited or deleted will only be changed on the servers they already exist on.
At the bottom of the page under Modules and Themes are buttons for editing modules and themes installed on any managed server, and a form for installing a new module or theme on all servers.


{% extends "registration/base.html" %} {% load i18n %} {% block registration_content %}{{ block.super }}
{% blocktrans %}An activation email has been sent to your email account, you must use the activation link in this email to finally activate your account.{% endblocktrans %}
{% endblock %}


There are a variety of options available for an UG and PG Courses.
Admissions for 2020-2021 has started Now. Click below for apply.
A major Administrative division of this college.


1961-The Jobs family moves to Mountain View, California, presently known as Silicon Valley.
1970-Meets future Apple co-founder Steve Wozniak through a friend.
1972-Graduates from Homestead High School in Cupertino, Calif., and enrolls at Reed College in Portland, Ore., only to drop out a semester later.
1974-Begins a brief stint as an engineer at Atari. Working the night shift, he employs Wozniak to help whittle down the hardware required for a prototype of a single-player version of Pong, the game that would go on to become Breakout. Jobs leaves Atari in the summer to travel through India, only to return to California to live in a commune.
1976-Co-founds Apple Computer with Wozniak and Ronald Wayne. That same year, the company sells the Apple I in the form of a kit that sells for $666.66.
1977-Releases the Apple II, the first commercially available personal computer in a plastic case with color graphics--and Apple's first successful personal computer.
1980-Apple goes public, putting Jobs' net worth north of $200 million.
1984-Two days after the $1.5 million Ridley Scott-directed "1984" Super Bowl commercial airs, introduces the Macintosh to much fanfare during Apple's shareholder meeting. "For the first time ever, I'd like to let Macintosh speak for itself." The computer's voice then says, "Never trust a computer you can't lift." Macintosh becomes the first commercially successful small computer with a graphical user interface.
1985-Jobs resigns as Apple chairman, saying in a board meeting, "I've been thinking a lot, and it's time for me to get on with my life. It's obvious that I've got to do something. I'm 30 years old." Soon thereafter, Jobs starts NeXT Computer (which later becomes NeXT Software), funded by selling $70 million of his Apple stock. An "interpersonal" NeXT workstation, sporting a built-in Ethernet port, is used by Tim Berners-Lee at CERN to become the first server of the World Wide Web.
1986-purchase Lucasfilm that becomes Pixar Animation Studios.
1988-NeXT Computer releases its first computer.
1995-Becomes Pixar's president and CEO. Later in the year, Jobs brings Pixar pubic one week after the release of "Toy Story," with Tom Hanks doing the voice of Woody and Tim Allen as Buzz Lightyear. The film earns $192 million at the box office. Its success helps make it quite attractive for celebrities to lend their voices to animated characters.
1996-Returns to Apple, as an adviser, after it buys NeXT for $429 million.
1997-Announces a $150 million investment from Microsoft, coupled with a partnership on Microsoft Office and Internet Explorer for the Mac.
1998-Apple returns to profitability and introduces the iMac.
2001-Introduces the iPod.
2003-Opens the iTunes Music Store in the United States. Apple sold 10 billion songs via iTunes as of February 24, 2010, and it counted 225 million iTunes accounts with credit cards as of June 2011.
2004-Jobs undergoes surgery to remove a cancerous tumor in his pancreas.
2005-Apple introduces an iPod Shuffle, iPod Nano,iPod MacBook Pro, and iMac.
2006-Disney buys Pixar for $7.4 billion; Jobs joins Disney's board as its top shareholder. Apple's market capitalization surpasses Dell's.iTunes sells its billionth song.
2007-Introduces iPhone and iPod Touch. Inducted in the California Hall of Fame by Gov. Arnold Schwartzenegger.
2009-Jobs takes a 6-month leave of absence for medical reasons.
2010-Introduces the iPad.
2011-Goes on medical leave of absence from CEO post nearly two years after the six-month break he took to undergo a liver transplant.
2011-Apple starts selling iPhones via Verizon Wireless, officially ending AT&T's exclusive U.S. contract.Jobs makes a surprise appearance to take the wraps off the iPad 2 at an invite-only event in downtown San Francisco. It's his first public appearance at a company event since announcing his third medical leave from the company in January.Apple shares edge past those of Exxon Mobil to become the most valuable U.S. company, in terms of market capitalization, at $337.17 billion.Resigns from Apple CEO post; becomes chairman.
October 5, 2011-Jobs died in Palo Alto, after battling pancreatic cancer, at age 56.
"Steve Jobs' ability to focus in on a few things that count, get people who get user interface right, and market things as revolutionary are amazing things.",
-- Bill Gates
If you have time, you should read more about this incredible human being
on his Wikipedia entry.


EBI Cloud Portal Community
settings_system_daydream
Application Repository
group
Teams
My Cloud
cloud_done
Cloud Deployments
storage
Data Volumes
My Profile
face
Profile
vpn_key
Logout
vpn_key
Sign On
help
Documentation
How to use the EBI Cloud Portal
info
About
Information about the EBI Cloud Portal
{{ breadcrumb.label }}


U.S. Unemployment Rates
Select a color theme:
Green Yellow Red
Yellow Green Blue
Yellow Green
Oranges
Purples
Reds


SDO server object. More...
#include <CO_SDOserver.h>
Data Fields | |
| CO_CANmodule_t * | CANdevTx |
| From CO_SDOserver_init() | |
| CO_CANtx_t * | CANtxBuff |
| CAN transmit buffer inside CANdevTx for CAN tx message. | |
| const OD_t * | OD |
| From CO_SDOserver_init() | |
| uint8_t | nodeId |
| From CO_SDOserver_init() | |
| volatile CO_SDO_state_t | state |
| Internal state of the SDO server. | |
| OD_IO_t | OD_IO |
| Object dictionary interface for current object. | |
| uint16_t | index |
| Index of the current object in Object Dictionary. | |
| uint8_t | subIndex |
| Subindex of the current object in Object Dictionary. | |
| OD_attr_t | attribute |
| Attribute bit-field of the current OD sub-object, see OD_attributes_t. | |
| volatile void * | CANrxNew |
| Indicates, if new SDO message received from CAN bus. More... | |
| uint8_t | CANrxData [8] |
| 8 data bytes of the received message | |
| CO_CANmodule_t * | CANdevRx |
| From CO_SDOserver_init() | |
| uint16_t | CANdevRxIdx |
| From CO_SDOserver_init() | |
| uint16_t | CANdevTxIdx |
| From CO_SDOserver_init() | |
| uint32_t | COB_IDClientToServer |
| Copy of CANopen COB_ID Client -> Server, meaning of the specific bits: More... | |
| uint32_t | COB_IDServerToClient |
| Copy of CANopen COB_ID Server -> Client, similar as above. | |
| OD_size_t | sizeInd |
| Size of data, which will be transferred. More... | |
| OD_size_t | sizeTran |
| Size of data which is actually transferred. | |
| uint8_t | toggle |
| Toggle bit toggled in each segment in segmented transfer. | |
| bool_t | finished |
| If true, then: data transfer is finished (by download) or read from OD variable is finished (by upload) | |
| uint32_t | SDOtimeoutTime_us |
| Maximum timeout time between request and response in microseconds. | |
| uint32_t | timeoutTimer |
| Timeout timer for SDO communication. | |
| char | buf [CO_CONFIG_SDO_SRV_BUFFER_SIZE+1] |
| Interim data buffer for segmented or block transfer + byte for '\0'. | |
| OD_size_t | bufOffsetWr |
| Offset of next free data byte available for write in the buffer. | |
| OD_size_t | bufOffsetRd |
| Offset of first data available for read in the buffer. | |
| uint32_t | block_SDOtimeoutTime_us |
| Timeout time for SDO sub-block download, half of SDOtimeoutTime_us. | |
| uint32_t | block_timeoutTimer |
| Timeout timer for SDO sub-block download. | |
| uint8_t | block_seqno |
| Sequence number of segment in block, 1..127. | |
| uint8_t | block_blksize |
| Number of segments per block, 1..127. | |
| uint8_t | block_noData |
| Number of bytes in last segment that do not contain data. | |
| bool_t | block_crcEnabled |
| Client CRC support in block transfer. | |
| uint16_t | block_crc |
| Calculated CRC checksum. | |
| void(* | pFunctSignalPre )(void *object) |
| From CO_SDOserver_initCallbackPre() or NULL. | |
| void * | functSignalObjectPre |
| From CO_SDOserver_initCallbackPre() or NULL. | |
SDO server object.
| volatile void* CO_SDOserver_t::CANrxNew |
Indicates, if new SDO message received from CAN bus.
It is not cleared, until received message is completely processed.
| uint32_t CO_SDOserver_t::COB_IDClientToServer |
Copy of CANopen COB_ID Client -> Server, meaning of the specific bits:
| OD_size_t CO_SDOserver_t::sizeInd |
Size of data, which will be transferred.
It is optionally indicated by client in case of download or by server in case of upload.


Project information
- Category: Coding Exercise
- Institute: MIT xPRO
- Project date: JUN, 2021
- Project Repository: Real Time Bus Tracker on GitHub
Real Time Bus Tracker
The goal of this exercise is to fetch data from an API and use it to animate a map.
I implemented a function to update MBTA Route 1 buses geolocation in real time every 15 seconds, and I attached to them their own markers with the bus number to identify them. I added the buses' geolocation to an array and create markers with their positions. I also wrote a function to get rid of previous markers.


COMMAND-LINE in ASTROLOG
A field, for codes to be inserted; a bit simpler than DOS; and [Run], the command-line window, is separate from the results. (See Command Switch, which you type into it.)
COMMAND SWITCH
Very short codes, bashed into Astrolog's command-line. A list of many is linked into this Companion: see "Command Switches & Obscure". Several can be typed in a sequence, and then executed all at once.
CONFIG.FILE
It's like the old Windows registry, in that 1: it gets read by Astrolog every launch; and 2: you can edit it, so Astrolog performs differently for you. Because of that, it opens in Notepad although its name is Astrolog32.DAT! (See ".atl & .dat files"). Most tweaks you can now do through the menus, but before, this file had to be opened, editted by hand, then saved.
Still, if you make menu changes at each session, and want them to stick, the Config.file must be re-written with your current choices, and you can do this most simply by going [File] > [Save current settings], and going 'OK'.
Lines in the Config.file rely on code, because the program has to read it, but the codes are explained, in helpfile.txt and in Config.file itself.
CUSPS
In Astrolog, cusp refers only to the angle where one house ends, and the next starts.
DAYLIGHT-SAVING TIME
This is not a particular world-time but any government's annual change on their nation's base-time, of 1 hour forward (usually to make people work more, or use less energy). Made and un-made on a yearly basis, DST can run spring to autumn or exceptionally, all-year-round, as in wars.
DECANS
The zodiacal circle is divided not into twelve, but into thirty-six parts, of 10 degrees, each called a decan. (This equivalates to the Third Harmonic.)
DEFAULT
How a thing is set-up at first, before you customise it.
DE-RESTRICTION - Allowing to be calculated- and-shown.
see RESTRICTION, below.
DIRECTORIES
These are the sub-folders within the 'Astrolog32' wrapper-folder.
In the Astrolog32 Config.file, it refers to the address-paths - from root folder to the relevant Astrolog subfolder - that enable Astrolog32 to find its sub-folders, such as \Ephemeris or \Atlases, \Interpretations or \Miscellaneous.
Astrolog32 has a default expectation of where they are, but if they are unzipped elsewhere, you will get dialogs warning "Cannot find..." such and such.
You can edit the Config.file, though, to tell Astrolog32 where to find them: sample lines are at the end of the "CUSTOMISING DEFAULTS via CONFIG. FILE" section of the Companion.
DISPOSITORS
These are the planets 'ruling' each sign, and as a result, they 'disposit' any planets in the signs they 'rule', as a result limiting those 'ruled' planets' aim and reach, in other words, their 'disposition' and mode of action.
EASTING
'Easting' is shifting a chart's location by degrees, minutes and seconds of arc, to a more easterly zone or longitude.
'Westing' is shifting to a more westerly one.
FIXED STARS
traditional name for the stars, as distinct from the planets (Errant Stars), and Shooting Stars: fixed stars don't have apparent motion.
FLAG PARAMETER
Lofty scientific term for a number used as a signal of a value, not of 'number'. A parameter is a particular quality or quantity of an object, as with The Beatles' Submarine: colour parameter = Yellow. A flag parameter is a number, perhaps in a series, or chain, of numbers, where the program reads a value for a number: a 4="green", or a 1="OFF", an 0="ON".
The spaces between flag parameters are important, to define to you, and to the pc, the order and so the particular function of each flag.
See also RANGE parameters below
GAUQUELIN SECTORS
The 36 sequential sectors of decans, anti-clockwise from the Ascendant, are used in charts with good time datum,comparatively to establish statistical trends in life. After the work of M Gauquelin, - his institute has more.
HARMONIC
Setting charts to their harmonic versions works like a microscope, magnifying minor aspects and a chart's overarching latent character: where one zodiac is in the real, we overlay two (or 3, 4..) within the one zodiac, and then compound them: oppositions are resolved as conjunctions; the signs alter (for the planets), but still carry weight!
INFLUENCE
In Astrolog, " Influence" is the quantum of power allocated to a planet or aspect, such as will feed into the algorithms that make up Pullen's calculations for relative power.
LUMINARIES
The Moon and the Sun are the two Luminaries, to differentiate them from planets.
MACRO
A chain of commands in a command-line, which are remembered by an operating system or program, and can be set in train by a single switch. In Astrolog32 as in other programs, they first have to be put together, (and tested!), then 'defined', i.e. saved.. as, Macro 1, Macro 2, and so on.
MAINCHART
This chart-thread, as opposed to charts #2, #3 etc, is the one where most of your work is done. It is the one chart-thread that is capable of saving to the \Charts folder, and the only chart that will be seen when you have "Relationship mode OFF", (which is the normal state of affairs).
MISCELLANEOUS
A sub-folder within the 'Astrolog32' wrapper-folder; when you install, it is empty, but images and texts created by Astrolog32 for you end up in it by default.
MODULE
One separate part of a greater whole, which can be dealt with on its own.
OBJECT
A generic name that Astrolog uses for a planet, or Luminary, or fixed star, which plays any role in the weighing of a chart.
See also POINTS below.
OBJNUM
A 'signifier' of the kind of thing that should be inserted in a command line, - 'objnum' is found between two tag-brackets in the helpfile.. but you include neither the word 'objnum' nor the brackets when you replace it with an 'object-number'. You'll notice all the Objects listed in the [Settings] menus have numbers alongside them, so that you can tell Astrolog32 what Object you mean.
So OBJNUM is a proxy for some ObjectNumber to be inserted there.
POINT
As distinct from Objects, Points are immaterial loci, of significance in evaluating charts, like the house-cusps, the nodes, East Point, Vertex, Midheaven and Imum Coeli.
PTOLEMAIC
Describing the more obvious Aspects, and the veteran planets known before Herschel found Uranus; these were at the core of astrological workings for over 2000 years, and Ptolemaic still defines aspects that can disqualify a Void-of-Course Moon.
RADICAL
A Radical is the chart exactly representing the spread of planets and points by degree, around the sky: that is, 'a typical birthchart', as compared to harmonic or progressed charts.
RANGE
A scientific term used often in the Helpfile, and in science, having a special meaning: instead of describing things that may differ, it describes one particular bunch of similar things, to mark them out from another bunch of things of a rather different type.
(range), in the old Helpfile, is asking you for code, describing either for instance: the Major planets (their range code= 1 10); or another instance: the Minor planets (their range code= 11 21); or it may some other code that defines one group of objects or of aspects, as distinct from another; in different contexts, different ranges are applicable; and a knowledge of the Config.file helps to make this clear.
Range parameters are fixed: not there to be editted.
RECTIFICATION
Adjustment, in the main, of the time of a chart, from the given time-datum. Usually done in the light of manifest characteristics of a person or event, and where th given datum is questionable.
RELATIONSHIP MODE ON
When Astrolog32 is in this state, the data for chart-threads other than Mainchart, are added to the charts or text-lists.
When it's OFF, only the Mainchart data will be seen onscreen.
RESTRICTION
What Astrolog calls the shutting-off of any object, or range of objects, any calculation or range of calculations, or of any view, of the many options it can do.
SIDEREAL
The kind of chart-making that is much in use in countries east of the Ganges, calculating the divisions of a Zodiac from constellations' positions, or consideration of ayanamsa. Differences arise over adopting antique start-points or modern, and so, "Fagan-Bradley", "Sassanian 1", & the other options available each have their followers.
SPECULUM
A list of angles in a chart, of use in Directional Astrology.
SWITCH
Either, a keyboard-combination or single key, that you press to make a quick change - (these are keyboard switches); or, letters typed in to the command-line window, to make more profound alterations - (these are command-switches).

TROPICAL
The kind of chart-making that is the most in use in the countries west of the Ganges, calculating the divisions of a Zodiac from the Earth's orientation at Vernal Equinox.
URANIANS
Describes 40 or so speculative objects orbitting the Sun; see "seorbel.txt", in \main folder, to know more.
WESTING
See 'EASTING', above.


I love challenges, puzzles, and games!
I'm a junior developer with the Difference Engine Chicago and recent graduate of Actualize's Chicago Full Stack Development Bootcamp
By nature I'm a people person and have worked successfully in retail and sales for years
But I definitely value my personal time to code, read, play video games and hang out with my two beautiful dogs (They even have an instagram: )
BG Trckr is a Ruby on Rails app this I created from the ground up.
It works in tandem with a diabetic’s Dexcom Continuous Glucose Monitor (CGM), importing and converting a data file to track their daily blood sugars and reward users for their daily results that remain within healthy limits. It presents the user with multiple visual representations of their data as well as rewarding them with points and increasing levels to acknowledge their improving blood glucose results.


Image file: C64 by Wikipedia user Evan-Amos; source: https://en.wikipedia.org/wiki/Commodore_64#/media/File:Commodore-64-Computer-FL.jpg.


ComposedNodeCollection
Schema Definition
Properties
| Property | Type | Nullable | Required | Permission | Description |
|---|---|---|---|---|---|
| @odata.context | String | read-only | The OData description of a payload. Format: uri | ||
| @odata.id | String | read-only | The unique identifier for a resource. Format: uri | ||
| @odata.type | String | read-only | The type of a resource. | ||
| Actions { | Object | read-write | The available actions for this resource. | ||
| #ComposedNodeCollection.Allocate { | Object | read-write | This action is used to allocate a composed node. | ||
| target | String | read-write | Link to invoke action Format: uri | ||
| title | String | read-write | Friendly action name | ||
| } | |||||
| Oem { } | Object | read-write | |||
| } | |||||
| Description | String | Yes | read-only | Provides a description of this resource and is used for commonality in the schema definitions. | |
| Members [ { | Array[Reference(ComposedNode)] | read-only | Contains the members of this collection. | ||
| @odata.id | String | read-only | The unique identifier for a resource. Format: uri | ||
| } ] | |||||
|<EMAIL_ADDRESS>| Int32 | read-only | The number of items in a collection. | ||
| Name | String | read-only | The name of the resource or array element. | ||
| Oem { } | Object | read-write | This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections. |
Actions
#ComposedNodeCollection.Allocate
Parameters
| Property | Type | Nullable | Required | Permission | Description |
|---|---|---|---|---|---|
| ComposedNodes [ { | Array[Object] | Yes | read-write | The requirements for a ComposedNode | |
| Resource { | Reference(ComposedNode) | Yes | read-write | The URI of a ComposedNode resource. If this property is set, all other ComposedNode requirements are ignored. | |
| @odata.id | String | read-only | The unique identifier for a resource. Format: uri | ||
| } | |||||
| } ] | |||||
| Description | String | POST | read-write | The description of the ComposedNode | |
| Devices [ { | Array[Object] | Yes | read-write | The requirements for a PCIe device | |
| Baseboard { | Reference(Baseboard) | Yes | read-write | The Baseboard where applicable resources are located | |
| @odata.id | String | read-only | The unique identifier for a resource. Format: uri | ||
| } | |||||
| HSLLInterface { | Object | Yes | read-write | The requirements for a HSLL interface | |
| AvailableWidth | Int32 | Yes | read-write | The number of unused lanes of the HSLL interface | |
| MaxSpeedGbps | Int32 | Yes | read-write | The minimal value of the maximum speed of the HSLL interface Unit: GBytes/s | |
| MaxWidth | Int32 | Yes | read-write | The minimal value of the maximum lanes of the HSLL interface | |
| Resource { | Reference(HSLLInterface) | Yes | read-write | The URI of a HSLLInterface resource. If this property is set, all other HSLL interface requirements are ignored. | |
| @odata.id | String | read-only | The unique identifier for a resource. Format: uri | ||
| } | |||||
| } | |||||
| PCIeFunctions [ { | Array[Object] | read-write | The minimal required set of PCIe functions exposed by the PCIe device | ||
| ClassCode | String | Yes | read-write | The Class Code of this PCIe function. Pattern: ^0[xX](([a-fA-F]|[0-9]){2}){3}$ | |
| DeviceClass | String | Yes | read-write | The class for this PCIe Function Possible Values:
| |
| DeviceId | String | Yes | read-write | The Device ID of this PCIe function. Pattern: ^0[xX](([a-fA-F]|[0-9]){2}){2}$ | |
| FunctionType | String | Yes | read-write | The type of the PCIe Function Possible Values:
| |
| RevisionId | String | Yes | read-write | The Revision ID of this PCIe function. Pattern: ^0[xX](([a-fA-F]|[0-9]){2}){1}$ | |
| SubsystemId | String | Yes | read-write | The Subsystem ID of this PCIe function. Pattern: ^0[xX](([a-fA-F]|[0-9]){2}){2}$ | |
| SubsystemVendorId | String | Yes | read-write | The Subsystem Vendor ID of this PCIe function. Pattern: ^0[xX](([a-fA-F]|[0-9]){2}){2}$ | |
| VendorId | String | Yes | read-write | The Vendor ID of this PCIe function. Pattern: ^0[xX](([a-fA-F]|[0-9]){2}){2}$ | |
| } ] | |||||
| Resource { | Reference(PCIeDevice) | Yes | read-write | The URI of a PCIeDevice resource. If this property is set, all other PCIe device requirements are ignored. | |
| @odata.id | String | read-only | The unique identifier for a resource. Format: uri | ||
| } | |||||
| SerialNumber | String | Yes | read-write | The exact serial number of the PCIe device | |
| Type | String | Yes | read-write | The exact type of the PCIe device Possible Values:
| |
| } ] | |||||
| Name | String | POST | read-write | The name of the ComposedNode | |
| Ports [ { | Array[Object] | Yes | read-write | The requirements for a port of a PCIeSwitch or a ComposedNode | |
| DeviceIndex | Int32 | Yes | read-write | The zero-based index of the device in the devices array, whose PCIe Port is required. SystemIndex and DeviceIndex cannot be used together. Minimum: 0 | |
| SystemIndex | Int32 | Yes | read-write | The zero-based index of the system in the systems array, whose PCIe Port is required. SystemIndex and DeviceIndex cannot be used together. Minimum: 0 | |
| } ] | |||||
| Systems [ { | Array[Object] | Yes | read-write | The requirements for a system | |
| Baseboard { | Reference(Baseboard) | Yes | read-write | The Baseboard where applicable resources are located | |
| @odata.id | String | read-only | The unique identifier for a resource. Format: uri | ||
| } | |||||
| EthernetInterfaces [ { | Array[Object] | read-write | The requirements for one or more ethernet interfaces | ||
| Resource { | Reference(EthernetInterface) | Yes | read-write | The URI of a EthernetInterface resource. If this property is set, all other ethernet interface requirements are ignored. | |
| @odata.id | String | read-only | The unique identifier for a resource. Format: uri | ||
| } | |||||
| SpeedMbps | Int32 | Yes | read-write | The minimum speed of the ethernet interface Unit: Mbit/s | |
| VLANs [ { | Array[Object] | read-write | The VLANs of the ethernet interface | ||
| Tagged | Boolean | Yes | read-write | The tagged value of the VLAN | |
| VLANId | Int64 | Yes | read-write | The ID of the VLAN Minimum: 1 Maximum: 4080 | |
| } ] | |||||
| } ] | |||||
| HSLLInterface { | Object | Yes | read-write | The requirements for a HSLL interface | |
| AvailableWidth | Int32 | Yes | read-write | The number of unused lanes of the HSLL interface | |
| MaxSpeedGbps | Int32 | Yes | read-write | The minimal value of the maximum speed of the HSLL interface Unit: GBytes/s | |
| MaxWidth | Int32 | Yes | read-write | The minimal value of the maximum lanes of the HSLL interface | |
| Resource { | Reference(HSLLInterface) | Yes | read-write | The URI of a HSLLInterface resource. If this property is set, all other HSLL interface requirements are ignored. | |
| @odata.id | String | read-only | The unique identifier for a resource. Format: uri | ||
| } | |||||
| } | |||||
| Processors [ { | Array[Object] | read-write | The requirements for one or more processors | ||
| AchievableSpeedMHz | Int32 | Yes | read-write | The minimum speed of the processor Unit: MHz | |
| InstructionSet | String | Yes | read-write | The instruction set of the processor Possible Values:
| |
| Model | String | Yes | read-write | The exact model of the processor | |
| ProcessorArchitecture | String | Yes | read-write | The architecture of the processor Possible Values:
| |
| ProcessorType | String | Yes | read-write | The type of processor Possible Values:
| |
| Resource { | Reference(Processor) | Yes | read-write | The URI of a Processor resource. If this property is set, all other processor requirements are ignored. | |
| @odata.id | String | read-only | The unique identifier for a resource. Format: uri | ||
| } | |||||
| TotalCores | Int32 | Yes | read-write | The minimum number of cores of the processor | |
| } ] | |||||
| Resource { | Reference(ComputerSystem) | Yes | read-write | The URI of a ComputerSystem resource. If this property is set, all other system requirements are ignored. | |
| @odata.id | String | read-only | The unique identifier for a resource. Format: uri | ||
| } | |||||
| TotalProcessorCoreCount | Int64 | Yes | read-write | The total amount of processor cores for this system. | |
| } ] |
Request
POST /redfish/v1/Chassis/Chassis1/ComposedNodes/Actions/ComposedNodeCollection.Allocate
Content-Type: application/json
{
"ComposedNodes": [{
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/ComposedNodes/ComposedNode1"
}
}]
"Description": "String",
"Devices": [{
"Baseboard": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Baseboards/Baseboard1"
},
"HSLLInterface": {
"AvailableWidth": 0,
"MaxSpeedGbps": 0,
"MaxWidth": 0,
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Switch1/Ports/Port1/HSLLInterface"
}
}
"PCIeFunctions": [{
"ClassCode": "String",
"DeviceClass": "UnclassifiedDevice",
"DeviceId": "String",
"FunctionType": "Physical",
"RevisionId": "String",
"SubsystemId": "String",
"SubsystemVendorId": "String",
"VendorId": "String"
}]
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Baseboards/Baseboard1/PCIeDevices/PCIeDevice1"
},
"SerialNumber": "String",
"Type": "SingleFunction"
}]
"Name": "String",
"Ports": [{
"DeviceIndex": 0,
"SystemIndex": 0
}]
"Systems": [{
"Baseboard": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Baseboards/Baseboard1"
},
"EthernetInterfaces": [{
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Baseboards/Baseboard1/ComputerSystems/ComputerSystem1/EthernetInterfaces/EthernetInterface1"
},
"SpeedMbps": 0,
"VLANs": [{
"Tagged": false,
"VLANId": 1
}]
}]
"HSLLInterface": {
"AvailableWidth": 0,
"MaxSpeedGbps": 0,
"MaxWidth": 0,
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Switch1/Ports/Port1/HSLLInterface"
}
}
"Processors": [{
"AchievableSpeedMHz": 0,
"InstructionSet": "x86",
"Model": "String",
"ProcessorArchitecture": "x86",
"ProcessorType": "CPU",
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Baseboards/Baseboard1/ComputerSystems/ComputerSystem1/Processors/Processor1"
},
"TotalCores": 0
}]
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Baseboards/Baseboard1/ComputerSystems/ComputerSystem1"
},
"TotalProcessorCoreCount": 0
}]
}
Content-Type: application/json
{
"ComposedNodes": [{
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/ComposedNodes/ComposedNode1"
}
}]
"Description": "String",
"Devices": [{
"Baseboard": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Baseboards/Baseboard1"
},
"HSLLInterface": {
"AvailableWidth": 0,
"MaxSpeedGbps": 0,
"MaxWidth": 0,
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Switch1/Ports/Port1/HSLLInterface"
}
}
"PCIeFunctions": [{
"ClassCode": "String",
"DeviceClass": "UnclassifiedDevice",
"DeviceId": "String",
"FunctionType": "Physical",
"RevisionId": "String",
"SubsystemId": "String",
"SubsystemVendorId": "String",
"VendorId": "String"
}]
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Baseboards/Baseboard1/PCIeDevices/PCIeDevice1"
},
"SerialNumber": "String",
"Type": "SingleFunction"
}]
"Name": "String",
"Ports": [{
"DeviceIndex": 0,
"SystemIndex": 0
}]
"Systems": [{
"Baseboard": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Baseboards/Baseboard1"
},
"EthernetInterfaces": [{
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Baseboards/Baseboard1/ComputerSystems/ComputerSystem1/EthernetInterfaces/EthernetInterface1"
},
"SpeedMbps": 0,
"VLANs": [{
"Tagged": false,
"VLANId": 1
}]
}]
"HSLLInterface": {
"AvailableWidth": 0,
"MaxSpeedGbps": 0,
"MaxWidth": 0,
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Switch1/Ports/Port1/HSLLInterface"
}
}
"Processors": [{
"AchievableSpeedMHz": 0,
"InstructionSet": "x86",
"Model": "String",
"ProcessorArchitecture": "x86",
"ProcessorType": "CPU",
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Baseboards/Baseboard1/ComputerSystems/ComputerSystem1/Processors/Processor1"
},
"TotalCores": 0
}]
"Resource": {
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/Baseboards/Baseboard1/ComputerSystems/ComputerSystem1"
},
"TotalProcessorCoreCount": 0
}]
}
Response
HTTP/1.1 201
Location: http://{IP}:{PORT}/redfish/v1/Chassis/Chassis1/ComposedNodes/ComposedNode1
Location: http://{IP}:{PORT}/redfish/v1/Chassis/Chassis1/ComposedNodes/ComposedNode1
Operations
GET
Request
GET /redfish/v1/ComposedNodes
Content-Type: application/json
Content-Type: application/json
Response
{
<EMAIL_ADDRESS>"uri",
<EMAIL_ADDRESS>"/redfish/v1/ComposedNodes",
<EMAIL_ADDRESS>"String",
"Actions": {
"#ComposedNodeCollection.Allocate": {
"target": "/redfish/v1/Chassis/Chassis1/ComposedNodes/Actions/ComposedNodeCollection.Allocate",
"title": "String"
}
"Oem": { }
}
"Description": "String",
"Members": [{
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/ComposedNodes/ComposedNode1"
}],
<EMAIL_ADDRESS>1,
"Name": "String",
"Oem": { }
}
<EMAIL_ADDRESS>"uri",
<EMAIL_ADDRESS>"/redfish/v1/ComposedNodes",
<EMAIL_ADDRESS>"String",
"Actions": {
"#ComposedNodeCollection.Allocate": {
"target": "/redfish/v1/Chassis/Chassis1/ComposedNodes/Actions/ComposedNodeCollection.Allocate",
"title": "String"
}
"Oem": { }
}
"Description": "String",
"Members": [{
<EMAIL_ADDRESS>"/redfish/v1/Chassis/Chassis1/ComposedNodes/ComposedNode1"
}],
<EMAIL_ADDRESS>1,
"Name": "String",
"Oem": { }
}
POST
This operation is not supported on this resource and will result in the following response:
HTTP/1.1 405 Method Not Allowed
PATCH
This operation is not supported on this resource and will result in the following response:
HTTP/1.1 405 Method Not Allowed
DELETE
This operation is not supported on this resource and will result in the following response:
HTTP/1.1 405 Method Not Allowed


Class: Use0MK::ShortenedURI
- Inherits:
-
Object
- Object
- Use0MK::ShortenedURI
- Defined in:
- lib/use0mk.rb
Overview
Represents a shortened URI from 0.mk. It contains only the information retrieved by the API call to 0.mk. The volume of information with any API call is not consistent therefore any attribute of this class that is nil or empty should be ignored.
The origin (the API call which generated the object of this class) of this object can be tracked with the origin attribute. The origin is a Symbol which is a member of ORIGINS.
It is not a good idea to create instances of this class by hand, as it contains only data available from API calls to 0.mk.
Instance Attribute Summary (collapse)
-
- (String?) delete_code
readonly
the deletion code.
-
- (String?) delete_uri
readonly
the deletion URI.
-
- (true, false) deleted
readonly
whether this URI is deleted.
-
- (String?) long_uri
readonly
the long URI.
-
- (Symbol) origin
readonly
a member of ORIGINS.
-
- (String?) short_name
readonly
the short name (http://0.mk/short_name).
-
- (String?) short_uri
readonly
the shortened URI.
-
- (String?) stats_uri
readonly
the stats URI.
-
- (String?) title
readonly
the document title of the long URI.
Instance Method Summary (collapse)
-
- (true, false) delete
Deletes the shortened URI.
-
- (ShortenedURI) initialize(origin, attributes = {})
constructor
Initializes this class.
Constructor Details
- (ShortenedURI) initialize(origin, attributes = {})
Initializes this class. Usually called from either shorten or preview.
183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
# File 'lib/use0mk.rb', line 183 def initialize(origin, attributes = {}) if !(Use0MK::ORIGINS.member? origin) raise ArgumentError, "origin should be a member of Use0MK::ORIGINS" end @origin = origin @deleted = @origin != :shorten @long_uri = attributes[:long_uri] @short_uri = attributes[:short_uri] @short_name = attributes[:short_name] @stats_uri = attributes[:stats_uri] @title = attributes[:title] @delete_uri = attributes[:delete_uri] @delete_code = attributes[:delete_code] end |
Instance Attribute Details
- (String?) delete_code (readonly)
the deletion code
174 175 176 |
# File 'lib/use0mk.rb', line 174 def delete_code @delete_code end |
- (String?) delete_uri (readonly)
the deletion URI
171 172 173 |
# File 'lib/use0mk.rb', line 171 def delete_uri @delete_uri end |
- (true, false) deleted (readonly)
whether this URI is deleted
177 178 179 |
# File 'lib/use0mk.rb', line 177 def deleted @deleted end |
- (String?) long_uri (readonly)
the long URI
156 157 158 |
# File 'lib/use0mk.rb', line 156 def long_uri @long_uri end |
- (Symbol) origin (readonly)
a member of ORIGINS
153 154 155 |
# File 'lib/use0mk.rb', line 153 def origin @origin end |
- (String?) short_name (readonly)
the short name (http://0.mk/short_name)
162 163 164 |
# File 'lib/use0mk.rb', line 162 def short_name @short_name end |
- (String?) short_uri (readonly)
the shortened URI
159 160 161 |
# File 'lib/use0mk.rb', line 159 def short_uri @short_uri end |
- (String?) stats_uri (readonly)
the stats URI
165 166 167 |
# File 'lib/use0mk.rb', line 165 def stats_uri @stats_uri end |
- (String?) title (readonly)
the document title of the long URI
168 169 170 |
# File 'lib/use0mk.rb', line 168 def title @title end |
Instance Method Details
- (true, false) delete
Deletes the shortened URI. This method calls Interface.delete internally.
205 206 207 208 209 210 211 |
# File 'lib/use0mk.rb', line 205 def delete if @deleted return false end @deleted = Use0MK::Interface.delete(@delete_uri, @delete_code) end |


Tablet of Vision:
You hear fighting and the yell of Khavatari.
The opponent is the god of flame, who can't be defeated alone!
Run towards the sound.


It is a method that returns the numeric value rounded.
wd(number).round(n)
The n
argument (optional) indicates the number of decimal places to be considered in the rounding. If the argument is omitted, the number will be rounded to the integer above.
wd().round(); wd().round(); wd().round(); wd().round();


5
1 Then I saw in the right hand of the one who was seated on the throne, a scroll written on the front side and the back side, and it had been sealed with seven seals.
2 I saw a powerful angel proclaiming with a loud voice, "Who is worthy to open the scroll and break its seals?"
3 No one in heaven or on the earth or under the earth was able to open the scroll or to read it.
4 I wept bitterly because no one was found worthy to open the scroll or to read it.
5 But one of the elders said to me, "Do not weep. Look! The Lion of the tribe of Judah, the Root of David, has conquered, and he is able to open the scroll and its seven seals."
6 Between the throne and the four living creatures and among the elders, I saw a Lamb standing, looking as though he had been killed. He had seven horns and seven eyes—these are the seven Spirits of God sent out over all the earth.
7 He went and took hold of the scroll out of the right hand of the one who was seated on the throne.
8 When he took the scroll, the four living creatures and the twenty-four elders laid themselves on the ground before the Lamb. Each of them had a harp and a gold bowl full of incense, which is the prayers of the saints.
9 They sang a new song:
"You are worthy to take the scroll
and to open its seals.

11 Then I looked and heard the sound of many angels around the throne—the number of them was 200,000,000—and the living creatures and the elders.
12 They said in a loud voice,
"Worthy is the Lamb who has been slaughtered to receive power, wealth, wisdom, strength, honor, glory, and praise."
13 I heard every created thing that was in heaven and on the earth and under the earth and on the sea—everything in them—saying,
"To him who sits on the throne and to the Lamb, be praise, honor, glory, and the power to rule, forever and ever."
14 The four living creatures said, "Amen!" and the elders lay down and worshiped.


Huawei to give staff US$286m bonus for helping it ride out US curbs
SHENZHEN, Nov 12 — Chinese telecoms giant Huawei Technologies said today it will hand out 2 billion yuan (RM1.2 billion) in cash rewards to staff working to help it weather a US trade blacklisting.
The world’s largest telecoms equipment provider has said it has been trying to find alternatives to US hardware after the United States all but banned it in May from doing business with American firms, disrupting its ability to source key parts.
The cash is a mark of recognition for work in the face of US pressure, Huawei’s human resources department said in a notice to staff seen by Reuters. It will also double pay this month for almost all its 190,000 workers, a company spokesman said.
The cash rewards will likely go to research and development teams and those working to shift the company’s supply chains away from the United States, the spokesman said.
Details of Huawei’s plan were first reported by the South China Morning Post today.
Many in the US government believe that Huawei’s equipment, particularly its 5G networks, pose a security risk, because of the company’s allegedly close ties to the Chinese government. Huawei has denied the Chinese government plays any role in its operations.
Although granted reprieves from much of the US exclusion, Huawei had been working to find alternatives after it witnessed the crippling effect of US sanctions on its smaller Chinese rival ZTE Corp in early 2017.
The company is also the world’s second largest maker of smartphones and a surge in shipments of devices helped it to report a 27 per cent rise in third-quarter revenue last month. — Reuters