The tuple/elem.h
header defines macros that extract an element from a tuple.
#include <chaos/preprocessor/tuple/elem.h>
The CHAOS_PP_VARIADIC_ELEM
macro extracts an element of a variadic list of arguments.
CHAOS_PP_VARIADIC_ELEM
(i, ...)
The zero-based index of the element to extract.
Valid values range from 0
to CHAOS_PP_LIMIT_TUPLE
- 1.
The variadic list of arguments from which an element is to be extracted.
This macro expands to the i-th argument within __VA_ARGS__
.
If the i-th element doesn't exist, this macro expands to nothing.
CHAOS_PP_ARRAY_ELEM
CHAOS_PP_BINARY
CHAOS_PP_BINARY_CTOR
CHAOS_PP_ELEM
CHAOS_PP_SEQ_ELEM
CHAOS_PP_TUPLE_ELEM
CHAOS_PP_TUPLE_ELEM_ALT
#include<chaos/preprocessor/config.h>
#include<chaos/preprocessor/tuple/elem.h>
#ifCHAOS_PP_VARIADICS
CHAOS_PP_VARIADIC_ELEM
(0, a, b, c, d, e) // aCHAOS_PP_VARIADIC_ELEM
(2, x, y, z) // z #endif
The CHAOS_PP_VARIADIC_ELEM_ID
macro indirectly expands to CHAOS_PP_VARIADIC_ELEM
.
CHAOS_PP_VARIADIC_ELEM_ID
()
This macro effectively allows CHAOS_PP_VARIADIC_ELEM
to pass through itself without becoming disabled.
The CHAOS_PP_VARIADIC_ELEM_
macro expands to a λ expression representing CHAOS_PP_VARIADIC_ELEM
.
CHAOS_PP_VARIADIC_ELEM_
This macro is a shorthand form of the following λ binding:
The CHAOS_PP_TUPLE_ELEM
macro extracts an element from a tuple.
CHAOS_PP_TUPLE_ELEM
(size, i, tuple)
This argument exists only for compatibility. It is otherwise ignored.
The zero-based index of the element to be extracted.
Valid values range from 0
to CHAOS_PP_LIMIT_TUPLE
- 1.
The tuple from which an element is to be extracted.
CHAOS_PP_TUPLE_ELEM
(size, i, tuple)
The size of the tuple from which an element is to be extracted.
Valid values range from 0
to CHAOS_PP_LIMIT_TUPLE
.
The zero-based index of the element to be extracted.
Valid values range from 0
to CHAOS_PP_LIMIT_TUPLE
- 1.
The tuple from which an element is to be extracted.
This macro expands to the i-th element of tuple. If the i-th element doesn't exist, this macro expands to nothing.
CHAOS_PP_ARRAY_ELEM
CHAOS_PP_BINARY
CHAOS_PP_BINARY_CTOR
CHAOS_PP_ELEM
CHAOS_PP_SEQ_ELEM
CHAOS_PP_TUPLE_ELEM_ALT
CHAOS_PP_VARIADIC_ELEM
#include<chaos/preprocessor/config.h>
#include<chaos/preprocessor/tuple/elem.h>
CHAOS_PP_TUPLE_ELEM
(3, 0, (a, b, c)) // a #ifCHAOS_PP_VARIADICS
CHAOS_PP_TUPLE_ELEM
(, 2, (x, y, z)) // z #endif
The CHAOS_PP_TUPLE_ELEM_ID
macro indirectly expands to CHAOS_PP_TUPLE_ELEM
.
CHAOS_PP_TUPLE_ELEM_ID
()
This macro effectively allows CHAOS_PP_TUPLE_ELEM
to pass through itself without becoming disabled.
The CHAOS_PP_TUPLE_ELEM_
macro expands to a λ expression representing CHAOS_PP_TUPLE_ELEM
.
CHAOS_PP_TUPLE_ELEM_
This macro is a shorthand form of the following λ binding:
The CHAOS_PP_TUPLE_ELEM_ALT
macro extracts an element from a tuple.
CHAOS_PP_TUPLE_ELEM_ALT
(i, tuple)
The zero-based index of the element to be extracted.
Valid values range from 0
to CHAOS_PP_LIMIT_MAG
.
The tuple from which an element is to be extracted.
This macro extracts the i-th element of tuple. Consequently, tuple must contain at least i + 1 elements.
The efficiency of the algorithm's use of the recursion backend can be described in terms of the number of recursion steps required to complete the algorithm.
The asymptotic upper and lower bounds are Θ, where n is i and tω is CHAOS_PP_LIMIT_TUPLE
.
This macro operates on the nil tuple representation used by the core tuple operations defined in <chaos/preprocessor/tuple/core.h>
.
Specifically, ()
is a one-element tuple, not a zero-element tuple.
This macro uses bypass semantics.
If bypass semantics are already in effect, CHAOS_PP_TUPLE_ELEM_BYPASS
must be used instead.
CHAOS_PP_ARRAY_ELEM
CHAOS_PP_BINARY
CHAOS_PP_BINARY_CTOR
CHAOS_PP_ELEM
CHAOS_PP_SEQ_ELEM
CHAOS_PP_TUPLE_ELEM
CHAOS_PP_VARIADIC_ELEM
The CHAOS_PP_TUPLE_ELEM_ALT_ID
macro indirectly expands to CHAOS_PP_TUPLE_ELEM_ALT
.
CHAOS_PP_TUPLE_ELEM_ALT_ID
()
This macro effectively allows CHAOS_PP_TUPLE_ELEM_ALT
to pass through itself without becoming disabled.
The CHAOS_PP_TUPLE_ELEM_ALT_
macro expands to a λ expression representing CHAOS_PP_TUPLE_ELEM_ALT
.
CHAOS_PP_TUPLE_ELEM_ALT_
This macro is a shorthand form of the following λ binding:
The CHAOS_PP_TUPLE_ELEM_ALT_BYPASS
macro behaves identically to CHAOS_PP_TUPLE_ELEM_ALT
except that it is parametized by the bypass recursion state.
CHAOS_PP_TUPLE_ELEM_ALT_BYPASS
(s, i, tuple)
The current bypass recursion state.
The zero-based index of the element to be extracted.
Valid values range from 0
to CHAOS_PP_LIMIT_MAG
.
The tuple from which an element is to be extracted.
If bypass semantics are already in effect, this macro must be used instead of CHAOS_PP_TUPLE_ELEM_ALT
.
The CHAOS_PP_TUPLE_ELEM_ALT_BYPASS_ID
macro indirectly expands to CHAOS_PP_TUPLE_ELEM_ALT_BYPASS
.
CHAOS_PP_TUPLE_ELEM_ALT_BYPASS_ID
()
This macro effectively allows CHAOS_PP_TUPLE_ELEM_ALT_BYPASS
to pass through itself without becoming disabled.
The CHAOS_PP_TUPLE_ELEM_ALT_BYPASS_
macro expands to a λ expression representing CHAOS_PP_TUPLE_ELEM_ALT_BYPASS
.
CHAOS_PP_TUPLE_ELEM_ALT_BYPASS_
This macro is a shorthand form of the following λ binding:


Who’s in What Groups?
• Not too crazy, just enumerate all groups and all members of each group through LDAP/ADSI searches
• Get-NetGroup | Get-NetGroupMember
• That’s it!


We’re bringing a travel service that we know you’ll love and it’ll be amazing. You wouldn’t want to miss what we plan to have on offer!
WELCOME TO ANTELOPE NEPAL | INTO A WORLD OF ADVENTURE FROM US, TO YOU
Connect With Us Via Social Media
About Us
Antelope Nepal is an upcoming travel platform focusing on streamlining and creating a travel experience that is catered to individual customers. Established in 2019, Antelope Nepal is owned and serviced by VoBerry Technologies Pvt. Ltd. We focus on providing a platform where users can have easy access and can build travel packages from scratch, focusing on every aspect users require. Our portal will provide a platform for everyone to have the best possible research information as well as easy access to our partner hotels, restaurants, vehicle rental services and any other services associated with the travel agency to create the holiday package they dream of.
Our process
Our website contains a web engine, that is simple and easy to use. Put in your destinations and details as mentioned there, and see the magic happen! Our system understands your requirements and will provide you options that are best suited to your personal tastes, all while giving you the freedom to customise every aspect of it from start to finish.
Our Vision
At Antelope Nepal, we believe in providing a travel experience unique from the very start for our users. We want to give you the ability to design and develop your itinerary from scratch at the best possible prices while making the experience as smooth as possible. And that is our vision; making your experience, smooth, easy, unique and complete.
Our Approach
We’ve always believed in the “Customer First” Approach.  We’ll do everything we can to make the entire planning process as smooth and close to your personal taste as much as we can. We are open to feedback as you are our champions. We will work as closely as we can with you to provide an even complete experience.
Our Objective
We want to make travelling in Nepal fun. Travel agencies in the country do aid in your travel experience. But we want to present ourselves by providing a platform to help make your journey as personal as it can be. It is completely unique and special for you. We want to be the foundation of your experience and be more than just a service provider, we want to be your travel companion.
Get In Touch At
Narayan Gopal Chwok, Maharajgunj
Contact:<PHONE_NUMBER>,<PHONE_NUMBER>,<PHONE_NUMBER>
Mail: info@antelopenepal.com


Starts the execution of the given thread, and waits for the LuaThread to finish it's execution.
Starts the execution of the given thread, and waits for the LuaThread to finish it's execution.
public void Resume(Int32);
Calls the routine associated with the thread, and automatically passes the given arguments to the routine.
public void Resume(params Object[]);


See: Description
| Class | Description |
|---|---|
| Calculate |
This class is used:
- to obtain the X or Y position of a pad based on its MIDI note value - to obtain the MIDI note value of a pad based on its X and Y positions - to return a random integer based on a min and max values |
| Colors |
This class contains the Launchpad S specific MIDI velocity values used for
output.
|
| DefaultMIDI |
Contains the simplified methods needed to send Virtual MIDI messages
|
| Display |
This class is used to turn on or off pads on the launchpad
Methods available for use include: - a way to turn on a pad permanently (until overwritten), - a way to turn on a pad for a certain amount of time (in ms) - a way to turn on a pad for a certain duration (in ms) and change it to another color permanently afterwards - a way to turn off a pad - a way to start blinking a pad based on timing (in ms) - a way to start blinking a pad with 2 colors - a way to start blinking a pad with 3 colors - a way to stop blinking a pad - a way to turn off anything that might be on or blinking. |
| DisplayBlink |
Class used by Display.java to start blinking lights.
|
| DisplayDevices |
This class is used to display available MIDI devices on the console
|
| DisplayPad |
Class used by Display.java to turn on or off a pad.
|
| Input |
Class used to determine input from the Launchpad S
|
| Launchpad |
Determines the connections to the Launchpad S.
|
| Padmap |
Creates a pad map continaing the values needed to determine positions of the
Launchpad S pads
|
| PlaySound |
Implements a way to play sound samples located in the resources folder.
|
| Program |
Program initiation and termination
|
| ReceiveMidiMessage |
This class is used to notify all observers that an input has been received.
|
| SetMidiMessage |
Class used to set and send the MIDI Messages to the Launchpad S.
|
| SetupProcess |
Sets up the connection to the Launchpad S and to the internal virtual MIDI
|
| testGame |
This was simply used to show all possible colors available on the board.
|
| testLaunchpadOutput |
This simply calls an animation.
|
| VirtualMIDI |
Contains the simplified methods needed to send Virtual MIDI messages
|


This foremost centre of yachting in France can be entered in all weathers and at all stes of the tide. Its entrance is sheltered from the atlantic swell by the off lying island of Ile de Groix.
Position 47°41' 26"N, 03°22' 46"W (river entrance)
Once past the forts guarding the entrance, the estuary opens out and there are several bays, inlets and marinas. There is the large Kernevel marina, the small quiet marina of Port-Louis, another small marina, Sainte Catherine at Locmiquelic. Further up the river is Pen-Mane marina and opposite this is the entrance to the Avant Port and the city basin, where there are good, sheltered pontoons just inside, to port. This is a good berth, being close to the city, but still being pleasently open.
Beyond the entrance to the Avant Port, is the main marina at Quai de Rohan. A good sheltered spot, if rather hot in summer.
There is a good anchorage, at neaps, ESE of the breakwater at Locmalo. Another, more open anchorage, is on the west side of the entrance, off Larmor. The Anse de Goerem provides a good anchorage in easterlies.


@() @main("Add User") { Pacemaker Dashboard Upload location Upload Activity Logout Enter Activity Details: Type Location Distance Upload }


--- layout: default title: Joakim Lindfors ---
I'm an amateur developer and allround computer enthusiast. In my day to day I do a little bit of everything, but mainly, front and backend development, managing e-commerce stores, techsupport and system administration for Nejdefelts Yrkes & Profilkläder. Read more about my life...


| # | Unicorn | Location | Color |
|---|---|---|---|
| 1 | Joey The Great |
|
Violet |
| 2 | Pixel Fopalapalus | Rainbow | |
| 3 | Silver Dynamo |
|
Silver |
| 4 | Golden Wonderer |
|
Gold |
| 5 | Maximus The Steed | Black Hole Black | |
| 6 | Pufflepuff |
|
Baby Blue & Pink |
| 7 | Migthy Ryder |
|
Burgundy & Gold |
| 8 | Mortolomew |
|
Mauve |
| 9 | Jack The Stampede |
|
White |
| 10 | Leo The Thunder |
|
Mustard Yellow |
| 11 | Larry |
|
Grey |
| 12 | Just Steve |
|
Starlight |


Comments
-
Nathaniel Madura
Created an attachment (id=5) Synergy Sample from activity montior
I also tried submitting a system profile, but it was too large, let me know if there is an alternate way of getting it to you
-
Greg Hurrell
Thanks for filing the report. I suspect this could be a duplicate of bug #39, but without more information I can't be sure.
Can you take a look at this article and add some more information?
http://wincent.com/a/knowledge-base/archives/2004/11/how_to_file_a_g.php
Particularly useful would be samples taken in Activity Monitor, and info about other third-party stuff installed on your machine. For what it's worth, I also have Panther and iTunes 4.7; I leave Synergy, iTunes and the computer running 24 hours a day, and I've never seen a hang like you describe. (And needless to say, I do pause Synergy when I leave the computer.) So we'll need more precise info to identify the cause and eliminate it.
-
Greg Hurrell
Thanks for the sample report. About the System Profile. The most important parts are the configuration info at the top. You can strip off the rest. You can email it to me if you want (my email address appears on this page).
And as I said in the post I just made, info about third-party software that could potentially cause a conflict would be very useful.
-
Nathaniel Madura
I looked at bug 39 and I believe this bug is different, SetiChatStatus isn't running on my computer (at least it isnn't listed in the Activity Monitor), I never even launch iChat on this machine
-
Greg Hurrell
- ** Bug 51 has been marked as a duplicate of this bug. ***
-
Greg Hurrell
Bug #52 may be related to this, although in that bug, the "hang" is not a total block (ie. the global menu keeps working). I'm interested to know if the hang referred to in *this* bug (bug #50) and bug #39 is a total (spinning beachball) hang, or if the global menu keeps working etc. I doubt that it does, but it's good to be explicit.
-
Nathaniel Madura
The hang is a total hang, both synergy and iTunes have a spinning beach ball, and the preference pane can't stop the synergy application
-
Greg Hurrell
Based on the information that's being reported it looks like this and bug #39 actually refer to the same underlying issue. Please file any further comments in that bug. Marking this one as a duplicate.
- ** This bug has been marked as a duplicate of 39 ***
-
Greg Hurrell
Marking as CLOSED.
Add a comment
Comments are now closed for this issue.


您已经知道了，Emacs 的配置文件为 ~/.emacs
。配置文件中，以 ; 起始到行末的部分为注释。
 (setq scroll-margin 5 scroll-conservatively 10000) ;高亮显示成对括号，但不来回弹跳 (show-paren-mode t) (setq show-paren-style 'parentheses) ;;鼠标指针规避光标 ;(mouse-avoidance-mode 'animate) ;;粘贴于光标处，而不是鼠标指针处 (setq mouse-yank-at-point t) ;;======================================== ;; 回显区 ;;======================================== ;;闪屏报警 (setq visible-bell t) ;;使用 y or n 提问 (fset 'yes-or-no-p 'y-or-n-p) ;;锁定行高 (setq resize-mini-windows nil) ;;递归 minibuffer (setq enable-recursive-minibuffers t) ;; 当使用 M-x COMMAND 后，过 1 秒钟显示该 COMMAND 绑定的键。  ;For example, if the current buffer is the file x.pl, ;then it'll call “perl x.pl” in a shell. ;The file can be php, perl, python, bash, java. ;File suffix is used to determine what program to run." ;(interactive) ; (let (ext-map file-name file-ext prog-name cmd-str) ;; get the file name ;; get the program name ;; run it ; (setq ext-map ; '( ; ("php" . "php") ; ("pl" . "perl") ; ("py" . "python") ; ("sh" . "bash") ; ("java" . "javac") ; ) ; ) ; (setq file-name (buffer-file-name)) ; (setq file-ext (file-name-extension file-name)) ; (setq prog-name (cdr (assoc file-ext ext-map))) ; (setq cmd-str (concat prog-name " " file-name)) ;; (compile cmd-str))) ; (shell-command cmd-str))) ; ;(global-set-key (kbd "<f5>") 'run-current-file) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;; 以下为实现 redo 的代码 ;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (provide 'redo) (defvar redo-version "1.02" "Version number for the Redo package.") (defvar last-buffer-undo-list nil "The head of buffer-undo-list at the last time an undo or redo was done.") (make-variable-buffer-local 'last-buffer-undo-list) (make-variable-buffer-local 'pending-undo-list) ;; Emacs 20 variable (defvar undo-in-progress) (defun redo (&optional count) "Redo the the most recent undo. Prefix arg COUNT means redo the COUNT most recent undos. If you have modified the buffer since the last redo or undo, then you cannot redo any undos before then." (interactive "*p") (if (eq buffer-undo-list t) (error "No undo information in this buffer")) (if (eq last-buffer-undo-list nil) (error "No undos to redo")) (or (eq last-buffer-undo-list buffer-undo-list) ;; skip one undo boundary and all point setting commands up ;; until the next undo boundary and try again. (let ((p buffer-undo-list)) (and (null (car-safe p)) (setq p (cdr-safe p))) (while (and p (integerp (car-safe p))) (setq p (cdr-safe p))) (eq last-buffer-undo-list p)) (error "Buffer modified since last undo/redo, cannot redo")) (and (or (eq buffer-undo-list pending-undo-list) (eq (cdr buffer-undo-list) pending-undo-list)) (error "No further undos to redo in this buffer")) (or (eq (selected-window) (minibuffer-window)) (message "Redo...")) (let ((modified (buffer-modified-p)) (undo-in-progress t) (recent-save (recent-auto-save-p)) (old-undo-list buffer-undo-list) (p (cdr buffer-undo-list)) (records-between 0)) ;; count the number of undo records between the head of the ;; undo chain and the pointer to the next change. Note that ;; by `record' we mean clumps of change records, not the ;; boundary records. The number of records will always be a ;; multiple of 2, because an undo moves the pending pointer ;; forward one record and prepend a record to the head of the ;; chain. Thus the separation always increases by two. When ;; we decrease it we will decrease it by a multiple of 2 ;; also. (while p (cond ((eq p pending-undo-list) (setq p nil)) ((null (car p)) (setq records-between (1+ records-between)) (setq p (cdr p))) (t (setq p (cdr p))))) ;; we're off by one if pending pointer is nil, because there ;; was no boundary record in front of it to count. (and (null pending-undo-list) (setq records-between (1+ records-between))) ;; don't allow the user to redo more undos than exist. ;; only half the records between the list head and the pending ;; pointer are undos that are a part of this command chain. (setq count (min (/ records-between 2) count) p (primitive-undo (1+ count) buffer-undo-list)) (if (eq p old-undo-list) nil ;; nothing happened ;; set buffer-undo-list to the new undo list. if has been ;; shortened by `count' records. (setq buffer-undo-list p) ;; primitive-undo returns a list without a leading undo ;; boundary. add one. (undo-boundary) ;; now move the pending pointer backward in the undo list ;; to reflect the redo. sure would be nice if this list ;; were doubly linked, but no... so we have to run down the ;; list from the head and stop at the right place. (let ((n (- records-between count))) (setq p (cdr old-undo-list)) (while (and p (> n 0)) (if (null (car p)) (setq n (1- n))) (setq p (cdr p))) (setq pending-undo-list p))) (and modified (not (buffer-modified-p)) (delete-auto-save-file-if-necessary recent-save)) (or (eq (selected-window) (minibuffer-window)) (message "Redo!")) (setq last-buffer-undo-list buffer-undo-list))) (defun undo (&optional arg) "Undo some previous changes. Repeat this command to undo more changes. A numeric argument serves as a repeat count." (interactive "*p") (let ((modified (buffer-modified-p)) (recent-save (recent-auto-save-p))) (or (eq (selected-window) (minibuffer-window)) (message "Undo...")) (or (eq last-buffer-undo-list buffer-undo-list) ;; skip one undo boundary and all point setting commands up ;; until the next undo boundary and try again. (let ((p buffer-undo-list)) (and (null (car-safe p)) (setq p (cdr-safe p))) (while (and p (integerp (car-safe p))) (setq p (cdr-safe p))) (eq last-buffer-undo-list p)) (progn (undo-start) (undo-more 1))) (undo-more (or arg 1)) ;; Don't specify a position in the undo record for the undo command. ;; Instead, undoing this should move point to where the change is. ;; ;;;; The old code for this was mad! It deleted all set-point ;;;; references to the position from the whole undo list, ;;;; instead of just the cells from the beginning to the next ;;;; undo boundary. This does what I think the other code ;;;; meant to do. (let ((list buffer-undo-list) (prev nil)) (while (and list (not (null (car list)))) (if (integerp (car list)) (if prev (setcdr prev (cdr list)) ;; impossible now, but maybe not in the future (setq buffer-undo-list (cdr list)))) (setq prev list list (cdr list)))) (and modified (not (buffer-modified-p)) (delete-auto-save-file-if-necessary recent-save))) (or (eq (selected-window) (minibuffer-window)) (message "Undo!")) (setq last-buffer-undo-list buffer-undo-list))


Team members will include the members of child teams.
To get a user's membership with a team, the team must be visible to the authenticated user.
Note: You can also specify a team by
org_id
and team_id
using the route
GET /organizations/:org_id/team/:team_id/memberships/:username
.
GET /orgs/:org/teams/:team_slug/memberships/:username
Note: The role
for organization owners returns
as maintainer
. For more information about
maintainer
roles, see
Create a team.
Status: 200 OK
{
"url": "https://api.github.com/teams/1/memberships/octocat",
"role": "member",
"state": "active"
}
Status: 200 OK
{
"url": "https://api.github.com/teams/1/memberships/octocat",
"role": "maintainer",
"state": "active"
}
Status: 200 OK
{
"url": "https://api.github.com/teams/1/memberships/octocat",
"role": "member",
"state": "pending"
}
Status: 404 Not Found


Below is the config that was created by the setup form. Make any changes that you want and then click the submit button to write the config. Alternatively, you can copy and paste this into the gogios.toml file in /etc/gogios/gogios.toml.


Back
Sign In
Sign Up
Username
Password
Keep me Signed in
Forgot Password?
Create a new User?
Username
email
Password
Confirm Password
Already Member?


Our examples are currently offline due to an issue with our server. We are working on fixing this. In the meantime please download the dwr.war to see the examples.


MAY 5TH, 2022
It's been a while since I last wrote on this blog, but for a good reason, I think, and that was the fact I was having a little break from programming and development, focusing more on applying for work and giving Twitch streaming a legitimate attempt! Thankfully, I had success....
FEBRUARY 11TH, 2022
I've always been proud of this website and portfolio, but lately, it started to feel more and more out of date in terms of design (especially compared to this blog), and with my added desire to get back into the industry, it desperately needed a makeover....
JANUARY 17TH, 2022
Something I've always wanted to do ever since I was a kid was to create my own GameBoy game, but doing so was always so intimidating. Reading up on topics like assembly language, binary, and the hardware limitations had my mind stumped. Eventually, I found a piece of software....
SEPTEMBER 2020 — PRESENT
An Infestation is a work-in-progress multiplayer top-down horror shooter developed using Unity and written in C#. Development of An Infestation began as a curiosity/inspiration project of Among Us and how it handled lighting and eventually found its direction as a horror shooter.
SEPTEMBER 2020 — PRESENT
An Infestation is a work-in-progress multiplayer top-down horror shooter developed using Unity and written in C#. Development of An Infestation began as a curiosity/inspiration project of Among Us and how it handled lighting and eventually found its direction as a horror shooter.
JANUARY 2022 — JANUARY 2022
Digging Simulator 1989 is a basic recreation/prequel of my classic, boring and practical joke game Digging Simulator 2015 for the original Nintendo GameBoy using the GBDK library and written in C.
Digging Sim is an actual GameBoy game, meaning it can run on a real system using either an Everdrive or other similar cartridge solutions, as well as other third-party systems and emulators.
JANUARY 2022 — JANUARY 2022
Digging Simulator 1989 is a basic recreation/prequel of my classic, boring and practical joke game Digging Simulator 2015 for the original Nintendo GameBoy using the GBDK library and written in C.
Digging Sim is an actual GameBoy game, meaning it can run on a real system using either an Everdrive or other similar cartridge solutions, as well as other third-party systems and emulators.
SEPTEMBER 2017 — NOVEMBER 2017
Toy Wars is a turn-based two-player hot-seat game inspired by Worms, developed using Unity and written in C#. Both players have their own set of toy soldiers and must use them to destroy either their opponent's soldiers or their teddy bear base.
SEPTEMBER 2017 — NOVEMBER 2017
Toy Wars is a turn-based two-player hot-seat game inspired by Worms, developed using Unity and written in C#. Both players have their own set of toy soldiers and must use them to destroy either their opponent's soldiers or their teddy bear base.
JULY 2018 — DECEMBER 2018
Gypsy's Tale is a small third-person adventure game inspired by First Tree, developed using Unity and written in C#. Take control of an inquisitive, cheeky Golden Retriever as he causes mischief in an inner-city park interacting with families, finding bones and making friends.
JULY 2018 — DECEMBER 2018
Gypsy's Tale is a small third-person adventure game inspired by First Tree, developed using Unity and written in C#. Take control of an inquisitive, cheeky Golden Retriever as he causes mischief in an inner-city park interacting with families, finding bones and making friends.
AUGUST 2021 — SEPTEMBER 2021
JamJar is a Discord bot developed using Node.Js and written in JavaScript. Created from boredom and a need for inspiration in games development, The JamJar is a Discord bot designed to help Game developers and Game Jam enthusiasts easily generate game ideas or themes for inspiration or motivation in their development. Once installed, use ?info to get started!
AUGUST 2021 — SEPTEMBER 2021
JamJar is a Discord bot developed using Node.Js and written in JavaScript. Created from boredom and a need for inspiration in games development, The JamJar is a Discord bot designed to help Game developers and Game Jam enthusiasts easily generate game ideas or themes for inspiration or motivation in their development. Once installed, use ?info to get started!
FEBRUARY 2015 — MAY 2015
Zombie Game is a retro-style top-down zombie arcade shooter, created using the Love2D engine and written in Lua. It was the first game I ever developed and one of many reasons I make things today!
Zombie Game has two fast-paced game modes, "Endless" and "Stuck in the Mud". Endless is a classic survival mode, each wave getting harder and harder and plenty of powerups to go round, while Stuck in the Mud is simpler, requiring players to shoot zombies from a set position.
FEBRUARY 2015 — MAY 2015
Zombie Game is a retro-style top-down zombie arcade shooter, created using the Love2D engine and written in Lua. It was the first game I ever developed and one of many reasons I make things today!
Zombie Game has two fast-paced game modes, "Endless" and "Stuck in the Mud". Endless is a classic survival mode, each wave getting harder and harder and plenty of powerups to go round, while Stuck in the Mud is simpler, requiring players to shoot zombies from a set position.
SEPTEMBER 2020 — NOVEMBER 2020
ImpostorBot was a Discord bot developed using Node.Js and written in JavaScript. It was originally created for the VeryPoliteGamer community and is a Discord bot designed to help Twitch streamers easily invite their viewers to play Among Us without sharing the invite code publicly. No need for private messaging or other long manual solutions.
These days Among Us has added Discord integration support, meaning ImpostorBot is no longer required or relevant. It was my first Discord bot and I'm still proud of it so here it is.
SEPTEMBER 2020 — NOVEMBER 2020
ImpostorBot was a Discord bot developed using Node.Js and written in JavaScript. It was originally created for the VeryPoliteGamer community and is a Discord bot designed to help Twitch streamers easily invite their viewers to play Among Us without sharing the invite code publicly. No need for private messaging or other long manual solutions.
These days Among Us has added Discord integration support, meaning ImpostorBot is no longer required or relevant. It was my first Discord bot and I'm still proud of it so here it is.
JUNE 2015 — JUNE 2015
Digging Simulator 2015 was a video game developed during the Bacon Game Jam, using Love2D and written in Lua. The original idea for the game was to be a completely different project, but panic and lack of organisation lead to this very quickly developed masterpiece.
JUNE 2015 — JUNE 2015
Digging Simulator 2015 was a video game developed during the Bacon Game Jam, using Love2D and written in Lua. The original idea for the game was to be a completely different project, but panic and lack of organisation lead to this very quickly developed masterpiece.
JULY 2012 — SEPTEMBER 2012
Journey to the center of Hawkthorne is a community-developed recreation of a video game shown in episode 3.20 of NBC's Community. It was an open-source development using Love2D and written in Lua.
I contributed to the project back in 2012 in various ways, from ideas to game directions. But my proudest contribution by far was the creation of various sprite sheets (Abed: Cowboy, Jeff: Heather Popandlocklear, Jeff: Mercury Poisoning, Troy: Bullet Wound) for different characters and skins.
JULY 2012 — SEPTEMBER 2012
Journey to the center of Hawkthorne is a community-developed recreation of a video game shown in episode 3.20 of NBC's Community. It was an open-source development using Love2D and written in Lua.
I contributed to the project back in 2012 in various ways, from ideas to game directions. But my proudest contribution by far was the creation of various sprite sheets (Abed: Cowboy, Jeff: Heather Popandlocklear, Jeff: Mercury Poisoning, Troy: Bullet Wound) for different characters and skins.
This was a project that I completed in my second-year studies at AIE as a part of our complex systems learning outcome. For this assignment, I developed a project for developing games with scriptable objects (Inspiration being the Love2D engine), taking advantage of Lua C++ Bindings.
This was a project that I completed in my first-year studies at AIE to show my understanding and knowledge of Artificial Intelligence. The project is written in C++ and includes many code examples other than AI, for example, LinkedLists and Associative Arrays.
This was a project that I completed in my first-year studies at AIE to show my understanding and knowledge of C# and WinForms. The project aimed to develop a software tool using the platform, in which I choose to develop a basic paint program for pixel artists.
This was a project that I completed in my second-year studies at AIE to show my understanding and knowledge of physics in a 3D engine. The assignment was developed using Unity, showing off a first-person character controller with springs, doors, ragdolls, and more.
This was a project I completed as a part of an employment process with a job application to show my understanding of Unity and its User Interface system. The project was received well and I'm quite proud of the end result, especially the creation of a Grid without the use of a GridLayoutGroup.


Notice the yellow preferences in the "current preferences" pane. Those are read-only preferences as defined in the config.xml file.


provo dictionary
noun
a regular glossary for an irregular valley
{{entry.term}}
{{entry.pos}}
{{entry.def}}
{{link}}
chime in!
submit new, or...
submit definition
...put in a request
request definition
thank you!
your request will be moderated.


Check your benefit payment letter
The type of JSA you get is shown on the last page, under the heading ‘How your Jobseeker's Allowance was worked out'.
It will say either:
- We call this income-based Jobseeker's Allowance.
- We call this contribution-based Jobseeker's Allowance.
Find out more about the different types of JSA.
If {% if data['applyingfor'] == "myself" %}you're{% else %}they're{% endif %} still unsure, contact the Jobcentre Plus Helpline.


The house has a floor in the level
-2
named
3
The floor consists of
1
rooms and
1
external spaces
Rooms
Name
Length
Width
Height
Footage
Type
Link
5
54.0
5.0
2.0
270.0
ENTRANCE
details page
The floor has no external spaces


Bioarchaeology of Umm el-Marra
E. K. Batey
2017-06-27
Chapter 1 Introduction
1.1 General Background
The author joined the Tell Umm el-Marra Expedition as bioarchaeologist for the 2006 field season. During that time, the author collected osteological data on human skeletal remains recovered from the Early Bronze mortuary complex, as well as several other skeletal assemblages not associated with the Early Bronze period and/or recovered from localities outside of the site’s acropolis center. All skeletal remains analyzed in 2006 are curated on site, except a small collection of skeletal and dental remains, now curated by Glenn Schwartz, project co-director.
Barbara Stuart provided initial field descriptions of the human remains, and other preliminary assessments were made by Bruno Frohlich and Judith Littleton of the Smithsonian Institution (???). The goal was to re-analyze all human remains recovered from the tomb complex in order to investigate a number of topics, including demography, diet, health and paleopathology, possible familial relationships, and lifestyle reconstruction.
1.2 Methods
All data were collected by the author according to protocols outlined in Standards for Data Collection from Human Skeletal Remains (???). The following report includes a summary of those observations and some results of recent analyses of the data.


MB Comingsoon
Animated and responsive counter for jQuery.
Full compatible with Bootstrap 3
Docs and downloads
info@magicbusmultimedia.it


STOP MOTION
BOUNCING BALL
CAUSE AND EFFECT
TRANSFORMATION
If you want to just see the trasformation go 35 seconds into the video.
STOP MOTION
BOUNCING BALL
CAUSE AND EFFECT
TRANSFORMATION
If you want to just see the trasformation go 35 seconds into the video.


It looks that the page you are looking for doesn't exist...
Psst: Remember that you can always go back.


GET https://apis.wso2.com/api/am/publisher/v1/apis/{apiId}/monetization
This operation can be used to get monetization status for each tier in a given API
apim:api_publish
| Type | Name | Description | Schema | Default |
|---|---|---|---|---|
| Path |
apiId required |
**API ID** consisting of the **UUID** of the API. |
String |
| HTTP Code | Description | Schema |
|---|---|---|
200 |
OK. Monetization status for each tier returned successfully. |
|
400 |
Bad Request. Invalid request or validation error |
Error |
404 |
Not Found. Requested resource does not exist. |
Error |
406 |
Not Acceptable. The requested media type is not supported |
Error |
POST https://apis.wso2.com/api/am/publisher/v1/apis/{apiId}/monetize
This operation can be used to configure monetization for a given API.
apim:api_publish
| Type | Name | Description | Schema | Default |
|---|---|---|---|---|
| Path |
apiId required |
**API ID** consisting of the **UUID** of the API. |
String | |
| Body |
body required |
Monetization data object |
APIMonetizationInfo (APIMonetizationInfo) |
| HTTP Code | Description | Schema |
|---|---|---|
201 |
OK. Monetization status changed successfully. |
|
400 |
Bad Request. Invalid request or validation error |
Error |
404 |
Not Found. Requested resource does not exist. |
Error |
406 |
Not Acceptable. The requested media type is not supported |
Error |
GET https://apis.wso2.com/api/am/publisher/v1/apis/{apiId}/revenue
This operation can be used to get details of total revenue details of a given monetized API with meterd billing.
apim:api_publish
| Type | Name | Description | Schema | Default |
|---|---|---|---|---|
| Path |
apiId required |
**API ID** consisting of the **UUID** of the API. |
String |
| HTTP Code | Description | Schema |
|---|---|---|
200 |
OK. Details of a total revenue returned. |
APIRevenue |
304 |
Not Modified. Empty body because the client has already the latest version of the requested resource (Will be supported in future). |
|
404 |
Not Found. Requested Subscription does not exist. |
Error |
GET https://apis.wso2.com/api/am/publisher/v1/subscriptions/{subscriptionId}/usage
This operation can be used to get details of a pending invoice for a monetized subscription with meterd billing.
apim:subscription_view
| Type | Name | Description | Schema | Default |
|---|---|---|---|---|
| Path |
subscriptionId required |
Subscription Id |
String |
| HTTP Code | Description | Schema |
|---|---|---|
200 |
OK. Details of a pending invoice returned. |
APIMonetizationUsage |
304 |
Not Modified. Empty body because the client has already the latest version of the requested resource (Will be supported in future). |
|
404 |
Not Found. Requested Subscription does not exist. |
Error |


Before Change
:param data:
print(30 * "A")
with open("/tmp/AABB.test", "w") as fp:
fp.write("Hello entry_point!\n")
pass
After Change
// directory and those files will be then uploaded to pypi.
dist_dir = os.path.join(data["tagdir"], "dist")
// Sign all files in "dist" directory.
for f in os.listdir(dist_dir):
print("Signing file %s" % f)
exec_command(["gpg", "--detach-sign", "-a", os.path.join(dist_dir, f)])
print(30 * "B")
print(str(data))


Bananagrams
Home
Create Game
Join Game
How to Play
Home
Create Game
Join Game
How to Play
Enter Your Name
Please enter your display name
Display Name


Module: Rpub
- Defined in:
- lib/rpub.rb,
lib/rpub/epub.rb,
lib/rpub/book.rb,
lib/rpub/command.rb,
lib/rpub/context.rb,
lib/rpub/version.rb,
lib/rpub/preview.rb,
lib/rpub/chapter.rb,
lib/rpub/xml_file.rb,
lib/rpub/epub/toc.rb,
lib/rpub/document.rb,
lib/rpub/media_type.rb,
lib/rpub/epub/cover.rb,
lib/rpub/compressor.rb,
lib/rpub/epub/content.rb,
lib/rpub/epub/html_toc.rb,
lib/rpub/commands/clean.rb,
lib/rpub/commands/stats.rb,
lib/rpub/epub/container.rb,
lib/rpub/hash_delegation.rb,
lib/rpub/commands/preview.rb,
lib/rpub/commands/compile.rb,
lib/rpub/commands/package.rb,
lib/rpub/filesystem_source.rb,
lib/rpub/commands/generate.rb
Defined Under Namespace
Modules: Commands, FilesystemSource, HashDelegation, MediaType Classes: Book, Chapter, Command, Compressor, Context, Document, Epub, Preview, XmlFile
Constant Summary
- GEM_ROOT =
File.('../../', __FILE__)
- VERSION =
'0.4.1'
Class Method Summary (collapse)
-
+ (Object) document_factory
-
+ (Object) source
-
+ (String) support_file(path)
Full path to a file that was relative to the gem support directory.
Class Method Details
+ (Object) document_factory
28 29 30 |
# File 'lib/rpub.rb', line 28 def self.document_factory Rpub::Document.method(:new) end |
+ (Object) source
24 25 26 |
# File 'lib/rpub.rb', line 24 def self.source FilesystemSource end |
+ (String) support_file(path)
Returns full path to a file that was relative to the gem support directory
20 21 22 |
# File 'lib/rpub.rb', line 20 def self.support_file(path) File.join(GEM_ROOT, 'support', path) end |


SNOBOL4FUNC(1) | CSNOBOL4B 2.2 | December 5, 2020
NAME
snobol4func – SNOBOL4 summary of built-in functions
DESCRIPTION
-
ANY(charset)
-
Pattern: returns a pattern that matches one character in the STRING
charset.
Standard.
-
APPLY(func,arg1,...)
-
Function: calls function func with the supplied arguments.
Standard.
-
ARBNO(pattern)
-
Pattern: returns a pattern that matches zero or more repeats of pattern.
Standard.
-
ARG(func,n)
-
Function: returns the name of the nth argument to function func.
Standard.
-
ARRAY(proto,value)
-
Data: Creates an ARRAY object.
Standard.
-
ATAN(arg)
-
Math: Returns the principal value of the arc tangent of its argument.
Catspaw Macro SPITBOL extension, added in CSNOBOL4 1.4.
-
BACKSPACE(unit)
-
I/O: Not implemented!! See SET() and SSET().
Standard.
-
BREAK(charset)
-
Pattern: Returns a pattern that matches successively longer runs
(zero or more) characters NOT in string charset.
Standard.
-
BREAKX(charset)
-
Pattern: A pattern function used for fast
scanning. BREAKX(str) is equivalent to
BREAK(str) ARBNO(LEN(1) BREAK(str)).
-
-
In other words BREAKX matches a sequence of ever larger strings
terminated by a break set. BREAKX can be used as a faster matching
replacement for ARB: BREAKX('S') 'STRING' always runs faster
than ARB 'STRING' since it only attempts matching 'STRING' at
locations where an 'S' has been detected.
SPITBOL 360 extension, added in CSNOBOL4 version 0.98.
-
CHAR(n)
-
String: takes an integer from 0 to 255 and returns the
nth character in &ALPHABET.
SPITBOL 360 extension, added in CSNOBOL4 version 0.98.
SNOBOL4+ has a CHR() function.
-
CHOP(real)
-
Math: truncates the fractional part of its argument
(rounding towards zero), and returns a REAL value.
Catspaw SNOBOL4+ extension(?), added in CSNOBOL4 version 0.98.4.
-
CLEAR()
-
Interpreter: Clears ALL natural variable values (including predefined pattern
variables ABORT, ARB, BAL, FENCE, REM, and SUCCEED).
Standard.
-
CODE(str)
-
Interpreter: Compiles the argument as source code and returns a CODE
value, suitable for use with :<code>. If execution falls
off the end of the code, the program will exit.
Standard.
-
COLLECT(n)
-
Interpreter: Triggers garbage collection. Returns failure if less than
n bytes are available after collection.
Standard.
-
CONVERT(value,type)
-
Data: Convert value to data type type. Can convert TABLE to ARRAY
for iteration over members.
Standard.
Supports conversion to NUMERIC,
SPITBOL 360 extension, added in CSNOBOL4 version 0.99.4.
-
COPY(value)
-
Data: returns a copy of the supplied value. Copies of
ARRAY, DATA and TABLE objects are “shallow”: the returned
object will point to the same objects as the source container.
Standard.
-
COS(argument)
-
Math: Return cosine of argument in radians.
Catspaw Macro SPITBOL extension, added in CSNOBOL4 version 0.98.4.
-
DATA(prototype)
-
Data: Declares a DATA struct type. prototype is of the form
name(field,...). name is declared as a “constructor”
function, and each field is declared as an “accessor” function
for the type. Any number of types can use the same field names
(regardless of position).
Standard.
-
DATATYPE(value)
-
Data: Returns a string with the data type of value, one of:
ARRAY, BLOCK, CODE, EXPRESSION, EXTERNAL, INTEGER,
NAME, PATTERN, REAL, STRING, TABLE, or a DATA() type name.
Standard.
-
DATE()
-
String: returns MM/DD/YYYY HH:MM:SS.
Standard.
For compatibility with Catspaw Macro SPITBOL,
since CSNOBOL4 version 0.99.4
DATE(0) returns strings of the form MM/DD/YY HH:MM:SS, and
DATE(2) returns strings of the form YYYY-MM-YY HH:MM:SS.
-
DEFINE(prototype[,label])
-
Functions: declares a function using prototype of the form
“name([argname,...])[localname,...]”.
Optional label supplies the function entry point.
Standard.
-
DELETE(filename)
-
I/O: A predicate which tries to remove the
named file, and fails if it cannot.
SITBOL extension: added in CSNOBOL4 version 0.98.5.
-
DETACH(name)
-
I/O: Detach any I/O associations for named variable.
Standard.
-
DIFFER(val1,val2)
-
Predicate: Succeeds if the supplied values refer to different objects,
strings, or numeric values.
Standard.
-
DUMP(n)
-
Data: dumps natural variable values to stdout if argument n is non-zero.
Standard.
-
DUPL(string,n)
-
String: Returns a string with n copies of argument string.
Standard.
-
ENDFILE(unit)
-
I/O: Closes the file attached to I/O unit unit.
Standard.
-
EQ(i1,i2)
-
Predicate: Succeeds if i1 is arithmetically equal to i2.
Standard.
-
EVAL(v)
-
Interpreter: Evaluates v (an unevaluated expression,
INTEGER, REAL, or STRING), and returns the result;
returns failure on syntax error or the expression fails.
Standard.
-
EXIT(arg)
-
System: Passes process control to a shell to execute arg as a command.
Returns failure if arg is not a STRING.
Macro SPITBOL extension(?), added in CSNOBOL.
Does NOT implement “save file” feature of SPITBOL.
-
EXP(x)
-
Math: Returns the value e ** x.
Catspaw SNOBOL4+ extension, added in CSNOBOL4 version 0.98.4.
-
EXTERNAL_DATATYPE(x)
-
Functions: Returns a string for the datatype name for an EXTERNAL
type returned by an external function created by LOAD(). Inspired
by the DATACODE() function in Fred Weigel's SNOBOL4X extensions.
CSNOBOL4 extension, added in CSNOBOL4 version 2.2.
-
EXTERNAL_MODULE_NAME(x)
-
Functions: Returns a string for (internal) module name for an
EXTERNAL type returned by an external function created by LOAD().
CSNOBOL4 extension, added in CSNOBOL4 version 2.2.
-
EXTERNAL_MODULE_PATH(x)
-
Functions: returns a string for the path to an object file for the
module for an EXTERNAL type returned by an external function
created by LOAD().
CSNOBOL4 extension, added in CSNOBOL4 version 2.2.
-
FIELD(name,n)
-
Data: Returns a string with the name of the nth member of
DATA() type name.
Standard.
-
FILE(string)
-
I/O: A predicate which tests if a file exists, and fails if it does not.
SITBOL extension, added in CSNOBOL4 version 0.98.5.
-
FILE_ABSPATH(string)
-
I/O: A predicate which returns null if its argument is an absolute file path,
and failure if the path is relative.
CSNOBOL4 extension, added in CSNOBOL4 version 1.5.
-
FILE_ISDIR(string)
-
I/O: A predicate which returns the null string if its argument is the
pathname of a directory, and returns failure if not.
CSNOBOL4 extension, added in CSNOBOL4 version 1.5.
-
FREEZE(table)
-
Data: prohibits creation of new entries in the referenced table. This
is useful once a table has been initialized to avoid creating empty
entries on lookups that fail. This can greatly improve program speed,
since frozen tables will not become clogged with empty entries.
Lookups for uninitialized entries will return the null string.
Attempts to assign to a non-existent entry will cause a “Variable not
present where required” error.
Catspaw SNOBOL4+ extension, added in CSNOBOL4 version 0.98.2.
-
FUNCTION(name)
-
Function: A predicate which evaluates its argument as a string
(with case folding), and returns the null string if a function with that
name exists and fails if it does not.
SITBOL extension, added in CSNOBOL4 version 0.99.44.
-
GE(i1,i2)
-
Predicate: Succeeds if i1 is arithmetically equal than or equal to i2.
Standard.
-
GT(i1,i2)
-
Predicate: Succeeds if i1 is arithmetically equal than i2.
Standard.
-
HOST(i,...)
-
Host O/S functions. See snobol4host(3).
Macro SPITBOL extension, added in CSNOBOL4 version 0.98.4.
-
IDENT(v1,v2)
-
Predicate: Succeeds if the supplied values refer to the same object,
string, or numeric value.
Standard.
-
INPUT(variable,unit,opt,name)
-
I/O: Associate variable for input, see snobol4io(1).
Standard.*
-
INTEGER(value)
-
Predicate: Succeed if value is an INTEGER.
Standard.
-
IO_FINDUNIT()
-
I/O: Returns an unused I/O unit number for
use with the INPUT() or OUTPUT() functions. IO_FINDUNIT() is
meant for use in subroutines which can be reused. IO_FINDUNIT()
will never return a unit number below 20.
CSNOBOL4 extension, added in version 0.99.4.
-
ITEM(a,i1,...)
-
Data: Reference an element of an ARRAY or TABLE which is the result
of an expression (ie; $variable).
Standard.
-
LABEL(name)
-
Predicate: Evaluates argument as a name (with case folding), and returns the
null string if a label with that name has been defined, and fails if
it does not.
Steve Duff's Macro SPITBOL extension, added in CSNOBOL4 version 1.5
(Added in CSNOBOL4 version 0.99.44, but unreliable until version 1.5).
-
LABELCODE(name)
-
Interpreter: Evaluates argument as a name (with case folding), and
returns the CODE (if any) associated with the label of that name,
or fails.
SITBOL extension, added in CSNOBOL4 2.1.
-
LE(i1,i2)
-
Predicate: tests if first argument is arithmetically less than or
equal to second argument.
Standard.
-
LEN(n)
-
Pattern: Returns a PATTERN which matches exactly n characters.
Standard.
-
LEQ(s1,s2)
-
Predicate: tests if first argument is lexically equal to second argument.
SPITBOL 360 extension, added in CSNOBOL4 version 0.98.2.
-
LGE(S1,S2)
-
Predicate: tests if first argument is lexically greater than or equal to second
argument.
SPITBOL 360 extension, added in CSNOBOL4 version 0.98.2.
-
LGT(s1,s2)
-
Predicate: tests if first argument is lexically greater than second argument.
SPITBOL 360 extension, added in CSNOBOL4 version 0.98.2.
-
LLE(s1,s2)
-
Predicate: tests if first argument is lexically less than or equal to second
argument.
SPITBOL 360 extension, added in CSNOBOL4 version 0.98.2.
-
LLT(s1,s2)
-
Predicate: tests if first argument is lexically less than second argument.
SPITBOL 360 extension, added in CSNOBOL4 version 0.98.2.
-
LNE(s1,s2)
-
Predicate: tests if first argument is lexically different from second argument.
SPITBOL 360 extension, added in CSNOBOL4 version 0.98.2.
-
LN(value)
-
Math: an alias for LOG(),
Catspaw SNOBOL4+ extension, added in CSNOBOL4 version 1.4.
-
LOAD(prototype,file)
-
Function: Load an external function from dynamically loaded library file.
Standard.
-
LOCAL(name,n)
-
Interpreter: Returns a STRING with the nth argument to function named
name.
Standard.
-
LOG(value)
-
Math: returns the natural logarithm of its argument.
Catspaw SNOBOL4+ extension, added in CSNOBOL4 version 0.98.4.
-
LPAD(str,n,char)
-
String: Takes the first argument (subject) string, and left pads it
out to the length specified in the second argument, using the first
character of the optional third argument. If the third argument is
missing, or is the null string, spaces will be used for padding. The
subject will be returned unmodified if already long enough.
SPITBOL 360 extension, added in CSNOBOL4 version 0.98.
-
LT(i1,i2)
-
Predicate: Succeeds if i1 is arithmetically less than i2.
Standard.
-
NE(i1,i2)
-
Predicate: Succeeds if i1 is arithmetically not equal to i2.
Standard.
-
NOTANY(charset)
-
Pattern: Returns a pattern which matches on character NOT present in
STRING charset.
Standard.
-
OPSYN(new,old,n)
-
Interpreter: If n omitted (or zero), new and old are treated
as function names, and new becomes a synonym for old: A call to a
synonym MUST have the correct number of arguments; trailing arguments
can NOT be omitted. If n is 1, new and old are treated as unary
operators, or function names. If n is 2, new and old are treated
as binary operators, or function names.
Standard.
-
ORD(string)
-
String: returns the INTEGER ordinal value (zero to 255) of the
first character in its string argument (the inverse of CHAR()).
CSNOBOL4 extension, added in version 0.99.44.
SNOBOL4+ has an ASC() function.
-
OUTPUT(variable,unit,options,name)
-
I/O: Associate variable for output, see snobol4io(1).
Standard*.
-
POS(n)
-
Pattern: Returns a pattern which succeeds if the pattern matching
cursor is at (non-negative INTEGER) position n, or fails.
Standard.
-
PROTOTYPE(a)
-
Data: Returns the prototype of ARRAY a.
Standard.
-
REMDR(n,m)
-
Math: Returns the remainder from dividing INTEGER n with INTEGER m.
Standard.
-
RENAME(new,old)
-
I/O: A predicate which attempts
to rename the file named by old to the name new.
SITBOL extension: added in CSNOBOL4 version 0.98.5.
Unlike the SITBOL version, if the target file exists, it will be removed.
-
REPLACE(str,charset1,charset2)
-
String: Returns a string with each character str that appears in
charset1 replaced by the corresponding character in .
Standard.
-
REVERSE(str)
-
String: returns its subject string in reverse order.
SPITBOL 360 extension, added in CSNOBOL4 version 0.98.2.
-
REWIND(unit)
-
I/O: Reset input pointer of file associated with unit to start of file.
Standard.
-
RPAD(str,n,char)
-
String: Takes the first argument (subject) string, and right pads it
out to the length specified in the second argument, using the first
character of the optional third argument. If the third argument is
missing, or is the null string, spaces will be used for padding. The
subject will be returned unmodified if already long enough.
SPITBOL 360 extension, added in CSNOBOL4 version 0.98.
-
RPOS(n)
-
Pattern: Returns a pattern which succeeds if the pattern
matching cursor is at (non-negative INTEGER) position n, counting
from the end of the subject string, or fails.
Standard.
-
RSORT(ta,c)
-
Data: see SORT().
Macro SPITBOL extension(?), added in CSNOBOL4 version 0.98.
-
RTAB(n)
-
Pattern: Returns a PATTERN which matches all characters
up to (non-negative INTEGER) position n, counting from the end of
the subject string; matching fails if cursor is past position n.
REM is a synonym for RTAB(0).
Standard.
-
SERV_LISTEN(family,type,service)
-
I/O: takes three STRING arguments and makes snobol4(1) into a
network server process. family must be either "inet" for an Internet
Protocol v4 socket, "inet6" for an Internet Protocol v6 socket, or
"unix" for a local (“unix domain”) socket. The second argument, TYPE
must be "stream", and the third argument, service must be a port
number or service name (for an internet socket), or a pathname (for a
"unix" socket). SERV_LISTEN() listens for incoming requests, accepts
them, then “forks” a child process and returns an integer file
descriptor which can be opened for bidirectional I/O using a
"/dev/fd/n" magic pathname. The original (“parent”) process never
returns from the SERV_LISTEN() call. This function is only available
on systems with the “fork” system call, which makes a child process
which is an identical copy of the parent process.
CSNOBOL4 extension, added in version 0.99.44
-
SET(unit,offset,whence)
-
I/O: Seeks the file pointer of an open file. The
first argument is an I/O unit number, the second is an integer offset.
The third argument, an integer determines from “whence” the file
pointer will be adjusted. If whence is zero the starting point is the
beginning of the file, if whence is one, the starting point is the
current file pointer, and if whence is two, the starting point is the
end of the file. SET() returns the new file pointer value. On
systems with 64-bit file pointers and 32-bit integers the values
will be truncated to 32 bits, and only the first and last 4 gigabytes
of a file can be accessed directly: see SSET().
Catspaw Macro SPITBOL extension, added in CSNOBOL4 version 0.99.1.
-
SETEXIT(label)
-
Interpreter: The argument to SETEXIT() is the name of a label to
pass control to if a subsequent error occurs, when the keyword
&ERRLIMIT is non-zero. The value of &ERRLIMIT is positive, it is
decremented when the error trap occurs. A SETEXIT() call with a
null argument causes cancellation of the intercept. Subsequent
errors will terminate execution as usual with an error message. The
result returned by SETEXIT() is the previous intercept setting
(i.e., a label name or null if no intercept is set). This can be used
to save and restore the SETEXIT() conditions in a recursive
environment, or chain handlers.
-
-
The error intercept routine may inspect &ERRTYPE,
&ERRTEXT, &LASTNO, &LASTFILE, &LASTLINE,
and take one of the following actions:
-
-
1. Branching to the special label ABORT causes error processing to
resume as though no error intercept had been set.
-
-
2. Branching to the special label CONTINUE causes program execution to
resume by taking the failure exit of the statement in error.
-
-
3. Branching to the special label SCONTINUE causes execution to
resume at the point of interruption.
-
-
4. If the error occurred inside a function (&FNCLEVEL is
non-zero), branch to labels RETURN, FRETURN, or NRETURN
to return from the function.
-
-
The error intercept routine must reissue the SETEXIT() in order to
catch further errors. Handlers cannot be nested: only one copy of the
saved execution state is kept.
-
-
SPITBOL 360 extension, added in CSNOBOL4 version 1.4.
-
SIN(argument)
-
Math: Return sine of argument in radians.
Catspaw Macro SPITBOL extension, added in CSNOBOL4 version 0.98.4.
-
SIZE(string)
-
String: returns the length of the STRING argument.
Standard.
-
SORT(ta,c)
-
Data: takes two arguments. The first can be either an array or a table.
If the first argument is an array,
it may be singly-dimensioned in which case the second argument, if
non-null should indicate the name of a field of a programmer defined
data type to use to access the sort key. Otherwise the first argument
should be a table or a doubly-dimensioned array, in which case the
second argument may an integer indicating the array column on which to
sort. If the second argument is null, it is taken to be 1. The array
(or table) is not modified; a new array is allocated and returned.
SORT() sorts elements in ascending order, while RSORT() sorts in
descending order.
-
-
Example: for a table TAB of integers, indexed by strings being used
to tabulate word counts FREQ = RSORT(TAB,2) returns an array such
that FREQ<1,1> contains the most frequent word while
FREQ<1,2> contains the number of occurrences of that word.
While WORDS = SORT(TAB,1) returns an array with the rows by the
lexicographical ordering of the words; WORDS<1,1> contains
the lexicographically first word and WORDS<1,2> contains the
number of occurrences of that word.
Macro SPITBOL extension(?), added in CSNOBOL4 version 0.98.
-
SPAN(charset)
-
Pattern: Returns a pattern that matches the longest run of one or more
characters in string charset.
Standard.
-
SQRT(argument)
-
Math: Return the square root. Fails if the argument is negative.
Catspaw Macro SPITBOL extension, added in CSNOBOL4 version 0.90.
-
SSET(unit,offset,whence,scale)
-
I/O: “scaled set” function, to handle files larger than 4GB
on systems with 32-bit INTEGER variables.
The first three arguments analogous to the same arguments for the
SET() function. The last parameter is used as a multiplicative
scaling factor on the offset parameter, and as a divisor on the
return value. When used in combination with relative SET() calls
(whence of one), any file offset can be achieved, even when system
file offsets are larger than can be represented in a SNOBOL4
INTEGER. Support for “Large Files” is enabled when available,
but not all file systems support large files.
CSNOBOL4 extension, added in version 0.99.44.
-
STOPTR(name,type)
-
Interpreter: Disable type tracing for name.
Standard.
SPITBOL 360 extension of first letter of trace type accepted since CSNOBOL4 2.0.
-
SUBSTR(subject,pos,len)
-
String: Takes a subject string as its first argument, and returns
the substring starting at the position specified by the second
argument (one-based) with a length specified by the third argument.
If the third argument is missing or zero, the remainder of the string
is returned.
SPITBOL 360 extension, added in CSNOBOL4 version 0.98.2.
-
TAB(n)
-
Pattern: Returns a PATTERN which matches all characters up
to (non-negative INTEGER) position n; matching fails if cursor is past
position n.
Standard.
-
TABLE(n,m)
-
Data: Return a TABLE object, with (optional) initial size n
and additional extent size m.
Standard.
-
TAN(argument)
-
Math: Return tangent of argument in radians.
Catspaw SNOBOL4+ extension?, added in CSNOBOL4 version 0.98.4.
-
THAW(table)
-
Data: restores normal entry creation behavior after FREEZE().
Catspaw SNOBOL4+ extension, added in CSNOBOL4 version 0.98.2.
-
TIME()
-
Interpreter: Returns program execution time in milliseconds.
Standard (returning INTEGER).
Returns REAL since CSNOBOL4 0.99.44.
-
TRACE(name,type,id,func)
-
Intrepreter: Associates name for type (VALUE, CALL, RETURN,
FUNCTION, LABEL, KEYWORD) tracing; id is included in trace output;
func is optional name of function to call. See snobol4key(1) for
&TRACE and &FTRACE keywords.
Standard.
SPITBOL 360 extension of first letter of trace type accepted since CSNOBOL4 2.0.
-
TRIM(str)
-
String: Returns str with trailing blanks and tabs removed.
Standard.
-
UNLOAD(name)
-
Function: Removes the function definition for function name.
Standard.
-
VALUE(name)
-
Interpreter: An “accessor” function, defined for STRING and NAME,
so that user data types can declare a VALUE field, and allow uniform
treatment of variables and user types.
Standard.
-
VDIFFER(v1,v2)
-
Misc: If the two arguments, DIFFER(), the first argument's value is
returned. This is intended to be used in contexts where DIFFER(X) X
would otherwise have been used.
Extension from Steve Duff's Macro SPITBOL, added in CSNOBOL4 version 0.99.44.
NOTES
A “predicate” is a function that either returns the null string or failure.
An “accessor” is a function which returns it's value by NAME
(and can be used on the right hand side of an assignment).
BUGS
Descriptions are too brief!!
See
http://www.snobol4.org/docs/books.html#green
for Standard function definitions.
Need to research origins of Macro SPITBOL extensions.
SEE ALSO
snobol4(1),
snobol4blocks(1).


The food at George's (I must profess) is some of the best I've had in Beausejour. The burgers, dogs, and fries are excellent. What I would recommend is have all three served up with the home made chili. If you are more likely to eat something more healthy the Submarines and Salads might be what you are after. Breakfast and Sandwiches are also on the menu. If you would really like to treat yourself, you can't do better than a Pizza from George's, and if you order after 2:00pm, you can take advantage of the two for one prices. Come in and fulfill your hunger, seven days a week.
If you are looking for a licenced, social environment, then Steve's Sports Bar is where you want to be. Sporting paraphrenalia hanging from the walls (in fact, I don't think I know what the walls even look like) and three television screens will hold your attention.  Come in, sit down, and make like a local at Steve's Sports Bar. Perhaps you will be able to catch a band playing on the weekend.
Back to the [commerce] [main drag] [Root]


train and test a basic MLP¶
The code block directly below will train an MLP (or dense) autoencoder on the Pavia Uni hyperspectral dataset. Make sure you have a folder in your directory called ‘models’. Once trained, look at the next code block to test out the trained autoencoder. If you have already downloaded the Pavia Uni dataset (e.g. from another example) you can comment out that step.
The network has three encoder and three decoder layers, with 50 neurons in the first layer, 30 in the second and 10 in the third (the latent layer). A model is trained with 200,000 spectral samples and 100 validation samples with a batch size of 1000 samples. Training lasts for 100 epochs, with a learning rate of 0.001, the Adam optimiser and cosine spectral angle (CSA) reconstruction loss function. The train loss and validation loss are displayed every 10 epochs. Models are saved at 50 and 100 epochs. The models are saved in the models/test_ae_mlp folder.
import deephyp.data
import deephyp.autoencoder
import scipy.io
import os
import shutil
try:
from urllib import urlretrieve # python2
except:
from urllib.request import urlretrieve # python3
# download dataset (if already downloaded, comment this out)
urlretrieve( 'http://www.ehu.eus/ccwintco/uploads/e/ee/PaviaU.mat', os.path.join(os.getcwd(),'PaviaU.mat') )
# read data into numpy array
mat = scipy.io.loadmat( 'PaviaU.mat' )
img = mat[ 'paviaU' ]
# create a hyperspectral dataset object from the numpy array
hypData = deephyp.data.HypImg( img )
# pre-process data to make the model easier to train
hypData.pre_process( 'minmax' )
# create data iterator objects for training and validation using the pre-processed data
trainSamples = 200000
valSamples = 100
dataTrain = deephyp.data.Iterator( dataSamples=hypData.spectraPrep[:trainSamples, :],
targets=hypData.spectraPrep[:trainSamples, :], batchSize=1000 )
dataVal = deephyp.data.Iterator( dataSamples=hypData.spectraPrep[trainSamples:trainSamples+valSamples, :],
targets=hypData.spectraPrep[trainSamples:trainSamples+valSamples, :] )
# shuffle training data
dataTrain.shuffle()
# setup a fully-connected autoencoder neural network with 3 encoder layers
net = deephyp.autoencoder.mlp_1D_network( inputSize=hypData.numBands, encoderSize=[50,30,10], activationFunc='relu',
weightInitOpt='truncated_normal', tiedWeights=None, skipConnect=False )
# setup a training operation for the network
net.add_train_op( name='csa', lossFunc='CSA', learning_rate=1e-3, decay_steps=None, decay_rate=None,
method='Adam', wd_lambda=0.0 )
# create a directory to save the learnt model
model_dir = os.path.join('models','test_ae_mlp')
if os.path.exists(model_dir):
# if directory already exists, delete it
shutil.rmtree(model_dir)
os.mkdir(model_dir)
# train the network for 100 epochs, saving the model at epoch 50 and 100
net.train(dataTrain=dataTrain, dataVal=dataVal, train_op_name='csa', n_epochs=100, save_addr=model_dir,
visualiseRateTrain=10, visualiseRateVal=10, save_epochs=[50,100])
The code below will test a trained MLP (or dense) autoencoder on the Pavia Uni hyperspectral dataset. Make sure you have a folder in your directory called ‘results’. The network can be trained using the above code block. Run the testing code block as a separate script to the training code block.
The network is setup using the config file output during training. Then the 100 epoch model is added (named ‘csa_100’). The model is used to encode a latent representation of the Pavia Uni data, and reconstruct it from the latent representation. A figure of the latent vector for a ‘meadow’ spectral sample and the reconstruction is saved in the results folder.
import deephyp.data
import deephyp.autoencoder
import scipy.io
import matplotlib.pyplot as plt
import os
import numpy as np
# read data into numpy array
mat = scipy.io.loadmat( 'PaviaU.mat' )
img = mat[ 'paviaU' ]
# create a hyperspectral dataset object from the numpy array
hypData = deephyp.data.HypImg( img )
# pre-process data to make the model easier to train
hypData.pre_process( 'minmax' )
# setup a network from a config file
net = deephyp.autoencoder.mlp_1D_network( configFile=os.path.join('models','test_ae_mlp','config.json') )
# assign previously trained parameters to the network, and name model
net.add_model( addr=os.path.join('models','test_ae_mlp','epoch_100'), modelName='csa_100' )
# feed forward hyperspectral dataset through encoder (get latent encoding)
dataZ = net.encoder( modelName='csa_100', dataSamples=hypData.spectraPrep )
# feed forward latent encoding through decoder (get reconstruction)
dataY = net.decoder(modelName='csa_100', dataZ=dataZ)
#--------- visualisation ----------------------------------------
# reshape latent encoding to original image dimensions
imgZ = np.reshape(dataZ, (hypData.numRows, hypData.numCols, -1))
# reshape reconstructed output of decoder
imgY = np.reshape(dataY, (hypData.numRows, hypData.numCols, -1))
# reshape pre-processed input
imgX = np.reshape(hypData.spectraPrep, (hypData.numRows, hypData.numCols, -1))
# visualise latent image using 3 out of the 10 dimensions
colourImg = imgZ.copy()
colourImg = colourImg[ :,:,np.argsort(-np.std(np.std(colourImg, axis=0), axis=0))[:3] ]
colourImg /= np.max(np.max(colourImg, axis=0), axis=0)
# save a latent image (using 3 out of the 10 dimensions)
plt.imsave(os.path.join('results', 'test_mlp_latentImg.png'), colourImg)
# save plot of latent vector of 'meadow' spectra
fig = plt.figure()
plt.plot(imgZ[576, 210, :])
plt.xlabel('latent dimension')
plt.ylabel('latent value')
plt.title('meadow spectra')
plt.savefig(os.path.join('results', 'test_mlp_latentVector.png'))
# save plot comparing pre-processed 'meadow' spectra input with decoder reconstruction
fig = plt.figure()
ax = plt.subplot(111)
ax.plot(range(hypData.numBands),imgX[576, 210, :],label='pre-processed input')
ax.plot(range(hypData.numBands),imgY[576, 210, :],label='reconstruction')
plt.xlabel('band')
plt.ylabel('value')
plt.title('meadow spectra')
ax.legend()
plt.savefig(os.path.join('results', 'test_mlp_InputVsReconstruct.png'))


{% load staticfiles %}
Do one thing and do is well. This app is for ...
Use this document as a way to quick start any new project.


“The most disastrous thing that you can ever learn is your first
programming language.”
-Alan Kay
“A successful website does three things: It attracts the right kinds
of visitors. Guides them to the main services or product you offer.
Collect Contact details for future ongoing relation.”
-Mohamed Saad
“Learning HTML and CSS is a lot more challenging than it used to be.
Responsive web design adds more layers of complexity to design and
develop websites.”
-Jacob Lett
“We don't just sell websites, we create websites that SELL.” "Every
great developer you know got there by solving problems they were
unqualified to solve until they actually did it."
-Patrick McKenzie
"No one in the brief history of computing has ever written a piece
of perfect software. It's unlikely that you'll be the first."
-Andy Hunt


Academic Formation:
Universidad de los Andes: Bachelor of Science on Computer Engineering (Expected graduation on March 2020)
Universidad de los Andes: Ongoing Masters Degree on Software Engineering (Expected graduation on March 2021)
Relevant Coursework:
Bachelor Coursework: Mobile Development, Web Development, Software Architecture, Business Architecture, Business Inteligence, Transaction processing systems.
Masters Coursework: Agile Software Development, Machine Learning Technics, Agile Software Architecture.
Personal Information
Programing Languages:
Java, Python (Django and Scripts), JavaScript (Node.js, Angular, React), Ruby on Rails, Visual Basic, Arduino.
Communication Skills:
Spanish (native speaker), English (professional proficiency). TOEFL Score 100/120 September 2011.
Other Software:
Machine Learning: TensorFlow, Keras.
Data Science: Rapidminer, Knime.
Business Inteligence: Tableau, Pentaho.
Middleware: ZooKepeer, Kafka, MQTT, Auth0, etc
Cloud Services: Amazon Web Services (AWS), Firebase.
Database Related: Oracle, PostgreSQL, MySQL, Cassandra, Derby, Jboss, Mongo.
Other Software: Microsoft Office, Autodesk 3ds, Adobe Suite (Photoshop, illustrator, After Effects), Autocad, Bizagi.
Interests
Machine Learning Aficionado:
I've develop several Machine Learning personal proyects, and I find the subject facinating.
Programer since highschool:
During my highschool years I learned how to code in c++ and won several coding copetitions.
Software Arquitect:
I've worked on several proyects as software Arquitect, including Nidoo App for parking in Bogota.
Passionate Developer:
In loved with coding, and avid programer
Pets and Animals:
I own several house pets, including 3 dogs and a cat.
Gamming:
I've been an avid gammer, enjoying hardcore RPG titles such as Darksouls and NierAutomata.
Music Taste:
My favorite genre of music is Heavy Metal, my favorite artist is Opeth.
Film Fan:
One of my favorite activities is watching movies, specially thought provoking, such as incepcion and gataca.
Professional Experience
Academical (July 2017 - September 2018)
Designer and Marketing Manager:
In charge of publicity planning and development.
Costumer Support:
In charge of customer support with different colleges that used the service.
Technical Support:
In charge of managing server functionality and technical issues.
Universidad de los Andes (January 2015 - June 2015)
Teacher:
Work as support teacher for programing classes
Grader:
Grade practical exams and lab homework.
Support:
Help students with questions and supervised exams.
Proyects
Bitcoin Predictor and Investor:
4th semester investigation proyect where Machine learning was used to predict Bitcoin prices with lstm networks and Deep-Q learning investing.
Pets Proyect (Undergraduate Thesis):
API portfolio for an international database on missing pets
Forex Investor:
Homemade proyect using Java to invest traditionally in an automated way over forex.
Leskan mobil app:
Mobile app made for Skin-cancer detection on Colombia, more info on: https://gitlab.com/ISIS3510_201910_Team5/wiki/wikis/Sprint-4


Account Lookup Tool
Check current and former Minecraft usernames and UUIDs.
Get account info
Loading...


|
SlugSat ACS
0.2.0
This repository contains source code for the Attitude Control System (ACS) onboard SlugSat.
|
| ▼ Mech_Lib | |
| ▼ IGRF | |
| IGRFCOF.h | |
| mag_inertial.c | Calculates inertial magnetic field from IGRF12 model |
| mag_inertial.h | Calculates inertial magnetic field from IGRF12 model |
| ACS.h | Contains the Attitude Control System (ACS) struct |
| ACSEnums.h | Created by Galen Savidge. Edited 5/16/2019 |
| ACSStateMachine.h | Runs the logic for the ACS |
| Actuator_Lib.h | |
| AttitudeEstimation.h | Sensor fusion and attitude determination |
| BNO055_IMU.h | |
| DigitalFilters.h | Filter sensor data |
| FeedbackControl.h | Contains implementations for the feedback control states in the ACS |
| InertialVectors.h | Contains functions to find sun and magnetic field inertial vectors |
| Matrix.h | A library of matrix and vector math functions |
| OrientationController.c | Implementation for the reorientation state of the ACS |
| PacketProtocol.h | Makes packets to send to 42 and decodes packets from 42 |
| PWM_Library.h | |
| ReferenceFrames.h | Contains functions to translate between reference frames |
| Sensors.h | Contains functions to read from the physical sensors on the satellite |
| SolarVectors.h | Reads the solar panels to find solar vectors |
| StabilizationController.c | Implementation for the stabilzation state of the ACS |
| STM32SerialCommunication.h | A library to send and receive data from 42 |


This scenario shows how to do an audio only capture using the default microphone.
Click on the "Start Audio Record" button to start recording.


This section describes how this implementation of the standard iostreams differs from the ISO/ANSI C++ Standard Library specification. You must be aware that whenever you use one of the features described here, the portability of your program is impaired. It will not conform to the standard.
The traditional iostreams allowed a file stream to connect to a file using a file descriptor. File descriptors are used by POSIX functions like open(), close(), read(), and write(). However, the ISO/ANSI standard for the programming language C and its library does not include these functions, nor does it mention file descriptors. In this sense, the use of file descriptors introduces platform and operating system dependencies into your program. This is exactly why the standard iostreams are not defined to use file descriptors.
You may have existing programs that use the file descriptor features of the traditional iostreams. You may need to access system-specific files like pipes, which are accessible only through file descriptors. To address these concerns, this implementation offers additional constructors and member functions in the file stream and file buffer classes that enable you to work with file descriptors.
The main additions are:
Constructors that take a file descriptor rather than a file name
An additional third parameter that allows specification of file access rights. This parameter, available on several constructors and the open() member functions, is not available with the standard interface. The parameter has a default, so that you usually need not worry about file protection.
See Chapter 44 on multithreading. Note that all multithreading features are an extension of the standard and are therefore not portable to other implementations of the standard library.