Functions for visualizing distributional regression models fitted using the 'gamlss' or 'bamlss' R package. The core of the package consists of a 'shiny' application, where the model results can be interactively explored and visualized.
| Version: | 1.0.1 |
| Depends: | R (≥ 3.3.0) |
| Imports: | stats, utils, methods, shiny (≥ 1.0.3), bamlss (≥ 0.1-2), gamlss (≥ 5.0-6), gamlss.dist (≥ 5.1-0), ggplot2 (≥ 2.2.1), rhandsontable (≥ 0.3.4), magrittr (≥ 1.5), mvtnorm (≥ 1.0-6), viridis (≥ 0.4.0), RColorBrewer (≥ 1.1-2), formatR (≥ 1.5) |
| Suggests: | testthat, gridExtra, glogis |
| Published: | 2018-10-30 |
| Author: | Stanislaus Stadlmann [cre, aut] |
| Maintainer: | Stanislaus Stadlmann <stadlmann at uni-goettingen.de> |
| BugReports: | https://github.com/Stan125/distreg.vis/issues |
| License: | GPL-3 |
| URL: | https://github.com/Stan125/distreg.vis |
| NeedsCompilation: | no |
| CRAN checks: | distreg.vis results |
| Reference manual: | distreg.vis.pdf |
| Package source: | distreg.vis_1.0.1.tar.gz |
| Windows binaries: | r-devel: distreg.vis_1.0.1.zip, r-release: distreg.vis_1.0.1.zip, r-oldrel: distreg.vis_1.0.1.zip |
| OS X binaries: | r-release: distreg.vis_1.0.1.tgz, r-oldrel: distreg.vis_1.0.1.tgz |
Please use the canonical form https://CRAN.R-project.org/package=distreg.vis to link to this page.


"A dog wags its tail with its heart" - Martin Buxbaum
Lola's Pet Sitting Services provides you peace of mind while you're away. We will stop in socialize your pet, go for a walk, groom it, and feed it!
Put your trust in Lola's Pet Sitting Services for your next time away from your pet!


[
DWR Website
|
Web Application Index
]
Operator Assisted Form Fill
Name:
Email:
Account Num:
Sort Code:
Address Line 1:
Address Line 2:
Address Line 3:
Zipcode / Postcode:


Doge Social Network
Home
Profile
Friends
Friends of Doge
Best Friend
my neighbour's golden retriever Buck
Other Friends
the labrador retriever Caeser
the dutch shepherd Blacky
the akita Zara


Jerrith’s UO
Packets Guide
Historical note: This packet
guide has been created and maintained by Jerrith 1998-2000
Since 2000 it’s maintained by me (LB), Punt and Krrios
Original (Jerrith’s) intro:
Note: This is
still an early version of this document, which I am currently planning to
revise significantly. I’m letting
people have this version now due to popular demand. Items that I have not touched from the original can be noted by
their further back modification date, and the fact that the modification date
contains a time, which I have dropped.
This guide
is based on the UOPackets.doc document “UOX Protocol” prepared by Damian. The information contained within come from
the UOX source code, the FUSE source code, various message board postings,
various programs I’ve written, and other sources, including information from
Fallo & FUSE source, and Uziel and Rhad from NWO.
For
simplicity, bytes are used, throughout this document. If the size of a piece of data is larger than a byte, the size
will be written afterwards, enclosed in []’s.
In the case of variable length data, attempts will be made to supply
formulas to determine the width of pieces of data.
Also,
seeing as how the number of “hack” programs available for UO has grown as of
late, notes have been attached regarding checks to perform regarding the data,
to insure it is unaltered.
Finally,
before the specifications, just under this, you’ll find a list of some common
variables, and what they represent.
Layers:
0x01 - One
handed weapon
0x02 - Two
handed weapon, shield, or misc.
0x03 -
Shoes
0x04 -
Pants
0x05 -
Shirt
0x06 - Helm/Hat
0x07 - Gloves
0x08 - Ring
0x09 -
Unused
0x0A - Neck
0x0B - Hair
0x0C -
Waist (half apron)
0x0D - Torso
(inner) (chest armor)
0x0E - Bracelet
0x0F -
Unused (backpack, but backpacks go to 0x15)
0x10 -
Facial Hair
0x11 -
Torso (middle) (sircoat, tunic, full apron, sash)
0x12 -
Earrings
0x13 - Arms
0x14 - Back
(cloak)
0x15 -
Backpack
0x16 -
Torso (outer) (robe)
0x17 - Legs
(outer) (skirt/kilt)
0x18 - Legs
(inner) (leg armor)
0x19 - Mount
(horse, ostard, etc)
0x1A - NPC
Buy Restock container
0x1B - NPC
Buy no restock container
0x1C - NPC
Sell container
0x1D - PC
Bank Box
Direction:
0x00 -
North
0x01 -
Northeast
0x02 - East
0x03 -
Southeast
0x04 -
South
0x05 -
Southwest
0x06 - West
0x07 -
Northwest
If running,
dir = dir|0x80 (so dirs become 0x80,
0x81, etc…)
Speech Types:
0x00 -
Regular
0x01 -
Broadcast
0x02 -
Emote (adds *'s as part of text)
0x06 –
Label (You see: )
0x07 Emphasis (clears previous
messages)
0x08 -
Whisper
0x09 – Yell
0x0a –
spell
Flags:
0x0* - Unicode
0xc* - Ascii
Speech Fonts:
0x0000 -
Bold Text
0x0001 -
Text with shadow
0x0002 -
Bold+Shadow
0x0003 -
Normal
0x0004 -
Gothic
0x0005 -
Italic Script
0x0006 -
Small Dark Letters
0x0007 -
Colorful Font (Buggy?)
0x0008 -
Rune font (Only use capital letters with this!)
0x0009 -
Small Light Letters
Speech Trigger Words:
0x0000
*withdrawal *
0x0001
*balance*
0x0001
*statement*
0x0002
*bank*
0x0003 *check
*
0x0004
*join*
0x0004 *member*
0x0005 *quit*
0x0005
*resign*
0x0006
*guild*
………………
for all of
them see speech.mul ;)
Mobile Flag Byte:
0x00 – None
0x02 -
Female
0x04 –
Poisoned
0x08 –
YellowHits // healthbar gets yellow
0x10 – FactionShip // unsure why client
needs to know
0x20 -
Movable if normally not
0x40 - War
mode
0x80 –
Hidden
Skill List:
(1 indexed
version. Some messages use it 0
indexed)
1 – Alchemy
2 – Anatomy
3 – Animal
Lore
4 – Item ID
(Appraise)
5 – Arms
Lore
6 –
Parrying (Battle Defense)
7 – Begging
8 –
Blacksmithing
9 –
Bowcraft
10 –
Peacemaking (Calming)
11 –
Camping
12 –
Carpentry
13 –
Cartography
14 –
Cooking
15 – Detect
Hidden
16 –
Enticement
17 –
Evaluate Intelligence
18 –
Healing
19 –
Fishing
20 –
Forensic Evaluation
21 –
Herding
22 – Hiding
23 –
Provocation
24 –
Inscription
25 –
Lockpicking
26 – Magery
27 – Magic
Resistance
28 –
Tactics
29 –
Snooping
30 –
Musicianship
31 –
Poisoning
32 –
Archery
33 – Spirit
Speak
34 –
Stealing
35 –
Tailoring
36 – Animal
Taming (Taming)
37 – Taste
Identification
38 –
Tinkering
39 –
Tracking
40 –
Veterinary
41 –
Swordsmanship
42 – Mace
Fighting
43 –
Fencing
44 –
Wrestling
45 –
Lumberjacking
46 – Mining
47 –
Meditation
48 –
Stealth
49 – Remove
Trap
50 –
Necromancy
Packet Specifications
0x00 Packet
Last modified on Friday, 19-May-2000
Create
Character (104 bytes)
·
BYTE
cmd
·
BYTE[4]
pattern1 (0xedededed)
·
BYTE[4]
pattern2 (0xffffffff)
·
BYTE
pattern3 (0x00)
·
BYTE[30]
char name
·
BYTE[30]
char password
·
BYTE
sex (0=male, 1=female)
·
BYTE
str
·
BYTE
dex
·
BYTE
int
·
BYTE
skill1
·
BYTE
skill1value
·
BYTE
skill2
·
BYTE
skill2value
·
BYTE
skill3
·
BYTE
skill3value
·
BYTE[2]
skinColor
·
BYTE[2]
hairStyle
·
BYTE[2]
hairColor
·
BYTE[2]
facial hair
·
BYTE[2]
facial hair color
·
BYTE[2]
location # from starting list
·
BYTE[2] unknown1
·
BYTE[2]
slot
·
BYTE[4]
clientIP
·
BYTE[2]
shirt color
·
BYTE[2]
pants color
Note:
Client Message
Note:
pattern3 is set to 0xFF to early signal a Krrios' client user, where it expects
a 0xF0 | 0x00 before login confirm
Notes:
Str, dex
and int should always sum to 65.
Str, dex
and int should always be between 10 and 45, inclusive.
Skill1,
skill2, and skill3 should never be the same value.
Skill1,
skill2, and skill3 should always be between 0 and 45, inclusive.
Skill1value,
skill2value, and skill3value should always sum to 100.
Skill1value,
skill2value, and skill3value should always be between 0 and 50, inclusive.
SkinColor
should always be between 0x3EA and 0x422, exclusive.
HairColor
and facialHairColor should always be between 0x44E and 0x4AD, exclusive.
HairStyle
should be between 0x203B and 0x204A, exclusive, and it should also exclude
0x203D to 0x2044, exclusive.
FacialHairStyle
should be between 0x203E and 0x204D
Shirt color
and Pants color need bounds checking too.
0x01 Packet
Last Modified on Friday, 30-Aug-2002
Disconnect
Notification (5 bytes)
·
BYTE
cmd
·
BYTE[4]
pattern (0xFFFFFFFF)
Note: Client message
Note: Sent when the user chooses to return to the
main menu from the character select menu.
Note: Since the character select menu no longer
has a main menu button, this message is no longer sent.
Note: It’s send again in current 3.0.x
clients. When player does “paper-doll logout”
0x02 Packet
Last Modified on Friday, 19-May-2000
Move
Request (7 bytes)
·
BYTE
cmd
·
BYTE
direction
·
BYTE
sequence number
·
BYTE[4]
fastwalk prevention key
Note:
Client Message
Note:
sequence number starts at 0, after a reset.
However, if 255 is reached, the next seq # is 1, not 0.
Fastwalk prevention
notes: each 0x02 pops the top element from fastwalk key stack. (0xbf sub1 init.
fastwalk stack, 0xbf sub2 pushes an element to stack)
If stack is empty key value is 0. (à never set keys to 0 in 0xbf sub
1/2)
Because client sometimes sends bursts of 0x02’s DON’T check for a certain top
stack value.
The only safe way to detect fastwalk: push a key after EACH x021, 0x22, (=send
0xbf sub 2) check in 0x02 for stack emptyness.
If empty -> fastwalk alert.
Note that actual key values are irrelevant. (just don’t use 0)
Of course without perfect 0x02/0x21/0x22 synch (serverside) it’s useless to use
fastwalk detection.
Last but
not least: fastwalk detection adds 9 bytes per step and player !
0x03 Packet
Last Modified on Friday, 20-Nov-1998
Talk
Request (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE
SpeechType
·
BYTE[2]
Color
·
BYTE[2]
SpeechFont
·
BYTE[?]
msg - Null Terminated (blockSize - 8)
Note:
Client Message
0x04 Packet
Last Modified on Friday, 19-May-2000
Request (2
bytes)
·
BYTE
cmd
·
BYTE
mode (0=off, 1=on)
Note:
Client Message
0x05 Packet
Last Modified on Friday, 19-May-2000
Attack
Request (5 bytes)
·
BYTE
cmd
·
BYTE[4]
ID to be attacked
Note:
Client Message
0x06 Packet
Last Modified on Friday, 19-May-2000
Double
click (5 bytes)
·
BYTE
cmd
·
BYTE[4]
ID of double clicked object
Note:
Client Message
0x07 Packet
Last Modified on Friday, 19-May-2000
Pick Up
Item(s) (7 bytes)
·
BYTE
cmd
·
BYTE[4]
item id
·
BYTE[2]
# of items in stack
Note:
Client Message
0x08 Packet
Last Modified on Friday, 19-May-2000
Drop
Item(s) (14 bytes)
·
BYTE
cmd
·
BYTE[4]
item id
·
BYTE[2]
X Location
·
BYTE[2]
Y Location
·
BYTE Z
Location
·
BYTE[4]
Move Into Container ID (FF FF FF FF if normal world)
Note:
Client Message
Note: 3D
clients sometimes sends 2 of them (bursts) for ONE drop action.
The last one having –1’s in X/Y locs.
Be very
careful how to handle this odd “bursts” server side, neither always process,
nor always skipping is correct.
0x09 Packet
Last Modified on Friday, 19-May-2000
Single
click (5 bytes)
·
BYTE
cmd
·
BYTE[4]
ID of single clicked object
Note:
Client Message
0x11 Packet
Last Modified on Sunday, 12-Feb-2003
Stat window
info
·
BYTE
cmd
·
BYTE[2]
packet length
·
BYTE[4]
player id
·
BYTE[30]
playerName
·
BYTE[2]
currentHitpoints
·
BYTE[2]
maxHitpoints
·
BYTE[1]
name change flag (0x1 = allowed, 0 = not allowed)
·
BYTE[1]
flag (0x00 – no more data following (end of packet here). 0x01 – more data after this flag following,
0x03: like 1, extended
info, 0x04: even more extended info (client 4.0 and above)
·
BYTE
sex (0=male, 1=female)
·
BYTE[2]
str
·
BYTE[2]
dex
·
BYTE[2]
int
·
BYTE[2]
currentStamina
·
BYTE[2]
maxStamina
·
BYTE[2]
currentMana
·
BYTE[2]
maxMana
·
BYTE[4]
gold
·
BYTE[2]
armor class
·
BYTE[2]
weight
·
If
(flag == 3 or flag==4 )
·
BYTE[2] statcap
·
BYTE pets current
·
BYTE
pets max
·
If
(flag == 4)
·
BYTE[2] fireresist
·
BYTE[2] coldresist
·
BYTE
[2] poisonresist
·
BYTE[2] energyresist
· BYTE[2] luck
· BYTE[2] damage max
· BYTE[2] damage min
·
BYTE[4] titching points
Note:
Server Message
Note: For
characters other than the player, currentHitpoints and maxHitpoints are not the
actual values.
MaxHitpoints is a fixed value, and currentHitpoints works like a percentage.
0x12 Packet
Last Modified on Sunday, 17-May-1998 15:27:53
EDT
Request
Skill/Action/Magic Usage (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE
type
·
0x24
($) - skill
·
BYTE[blockSize-4]
skill (null terminated strings)
·
"1
0" - anatomy
·
"2
0" - animal lore
·
"3
0" - item identification
·
"4
0" - arms lore
·
"6
0" - begging
·
"9
0" - peacemaking
·
"12
0" - cartography
·
"14
0" - detect hidden
·
"15
0" - entice
·
"16
0" - evaluate intelligence
·
"19
0" - forensic evaluation
·
"21
0" - hiding
·
"22
0" - provocation
·
"23
0" - inscription
·
"30
0" - poisoning
·
"32
0" - spirit speak
·
"33
0" - stealing
·
"35
0" - taming
·
"36
0" - taste identification
·
"38
0" - tracking
·
0x56
(V) - Macro'd Spell
·
BYTE[blockSize-4]
Spell (null terminated strings)
·
"2"
- Create Food
·
"3"
- Feeblemind
·
"4"
- Heal
·
"5"
- Magic Arrow
·
"6"
- Night Sight
·
"7"
- Reactive Armor
·
"8"
- Weaken
·
"9"
- Agility
·
"10"
- Cunning
·
"11"
- Cure
·
"12"
- Harm
·
"13"
- Magic Trap
·
"14"
- Magic Untrap
·
"15"
- Protection
·
"16"
- Strength
·
"17"
- Bless
·
"18"
- Fireball
·
"19"
- Magic Lock
·
"20"
- Poison
·
"21"
- Telekenisis
·
"22"
- Teleport
·
"23"
- Unlock
·
"24"
- Wall of Stone
·
"25"
- Arch Cure
·
"26"
- Arch Protection
·
"27"
- Curse
·
"28"
- Fire Field
·
"29"
- Greater Heal
·
"30"
- Lightning
·
"31"
- Mana Drain
·
"32"
- Recall
·
"33"
- Blade Spirit
·
"34"
- Dispel Field
·
"35"
- Incognito
·
"36"
- Reflection
·
"37"
- Mind Blast
·
"38"
- Paralyze
·
"39"
- Poison Field
·
"40"
- Summon Creature
·
"41"
- Dispel
·
"42"
- Energy Bolt
·
"43"
- Explosion
·
"44"
- Invisibility
·
"45"
- Mark
·
"46"
- Mass Curse
·
"47"
- Paralyze Field
·
"48"
- Reveal
·
"49"
- Chain Lightning
·
"50"
- Energy Field
·
"51"
- Flame Strike
·
"52"
- Gate
·
"53"
- Mana Vampire
·
"54"
- Mass Dispel
·
"55"
- Meteor Shower
·
"56"
- Polymorph
·
"57"
- Earthquake
·
"58"
- Energy Vortex
·
"59"
- Ressurection
·
"60"
- Summon Air Elemental
·
"61"
- Summon Daemon
·
"62"
- Summon Earth Elemental
·
"63"
- Summon Fire Elemental
·
"64"
- Summon Water Elemental
·
0x58
(X) - Open Door
·
BYTE
null termination (0x00)
·
0xc7 -
action
·
BYTE[blockSize-4]
Action (null terminated strings)
·
"bow"
·
"salute"
0x13 Packet
Last Modified on Thursday, 19-Nov-1998
Drop->Wear
Item (10 bytes)
·
BYTE
cmd
·
BYTE[4]
itemid
·
BYTE
layer (see layer list at top)
·
BYTE[4]
playerID
Note: The
layer byte should not be trusted.
0x1A Packet
Last Modified on Saturday, 13-Apr-1999
Object
Information (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE[4]
itemID
·
BYTE[2]
model #
·
if
(itemID & 0x80000000)
·
BYTE[2]
item count (or model # for corpses)
·
if
(model & 0x8000)
·
BYTE
Incr Counter (increment model by this #)
·
BYTE[2]
xLoc (only use lowest significant 15 bits)
·
BYTE[2]
yLoc
·
if
(xLoc & 0x8000)
·
BYTE
direction
·
BYTE
zLoc
·
if
(yLoc & 0x8000)
·
BYTE[2]
dye
·
if
(yLoc & 0x4000)
·
BYTE
flag byte (See top)
0x1B Packet
Last Modified on Monday, 19-August-2002
Char
Location and body type (37 bytes)
·
BYTE
cmd
·
BYTE[4]
player id
·
BYTE[4] unknown1 // always 0
·
BYTE[2]
bodyType
·
BYTE[2]
xLoc
·
BYTE[2]
yLoc
·
BYTE[2]
zLoc
·
BYTE
direction
·
BYTE unknown2
·
BYTE[4] unknown3
·
BYTE[2] server boundry X
·
BYTE[2] server boundry Y
·
BYTE[2] server boundry Width
·
BYTE[2] server boundry Height
·
BYTE[6]
// completely ignored by standard client
Note: Only send once after login. It’s mandatory to send it once.

 Server side it’s move ack for 0x02.
Whenever client thinks it’s out of synch (basicly: sequence doesn’t fit) it
sends a 0x22 0 0 / Resync request. (server should resend items / npcs / etc
around)
0x23 Packet
Last Modified on Sunday, 17-May-1998 13:33:54
EDT
Dragging of
Items (26 bytes)
·
BYTE
cmd
·
BYTE[2]
model #
·
BYTE[3] unknown1
·
BYTE[2]
stack count
·
BYTE[4]
Source ID
·
BYTE[2]
Source xLoc
·
BYTE[2]
Source yLoc
·
BYTE
Source zLoc
·
BYTE[4]
Target id
·
BYTE[2]
Target xLoc
·
BYTE[2]
Target yLoc
·
BYTE
Target zLoc
0x24 Packet
Last Modified on Tuesday, 14-Apr-1998 20:53:33
EDT
Draw
Container (7 bytes)
·
BYTE
cmd
·
BYTE[4]
item id
·
BYTE[2]
model-Gump
·
0x003c
= backpack
0x25 Packet
Last Modified on Saturday, 02-May-1998 16:05:35
EDT
Add Item to
Container (20 bytes)
·
BYTE
cmd
·
BYTE[4]
item id to add
·
BYTE[2]
model
·
BYTE
unknown1 (0)
·
BYTE[2]
# of items
·
BYTE[2]
xLoc in container
·
BYTE[2]
yLoc in container
·
BYTE[4]
itemID of container
·
BYTE[2]
color
0x26 Packet
Last Modified on Friday, 19-May-2000
Kick Player
(5 bytes)
·
BYTE
cmd
·
BYTE[4]
ID of GM who issued kick?

Only works for player played by client.
x,y,z have
to be in “0xc8 range” from player’s current location
packet has to be send 19 times(!!!) or more in a raw, otherwise it doesn’t do
anything
if all this
satisfied it does a pathfind like action.
location of
destination is displayed above players head (can’t be disabled)
0x3A Packet
Last modified on Friday, 26-Jul-2002
Server
Version - Send Skills (Variable)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE
Type (0x00= full list, 0xFF = single skill update, 0x02 full list with
skillcap, 0xDF single skill update with cap) -
·
Repeat
next until done - 46 skills
·
BYTE[2]
id # of skill (0x01 - 0x2e)
·
BYTE[2]
skill Value * 10
·
BYTE[2]
Unmodified Value * 10
·
BYTE
skillLock (0=up, 1=down, 2=locked)
·
If (Type==2
|| Type==0xDF) BYTE[2] SkillCap
·
BYTE[2]
null (00 00) (ONLY IF TYPE == 0x00)
Note: Can
also send just one skill, to update that skill.
Client
Version – Set Skill Lock (Variable # of bytes)
0x3B Packet
Last Modified on Wednesday, 06-May-1998
23:30:41 EDT
Buy Item(s)
(Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE[4]
vendorID
·
BYTE
flag
·
0x00 -
no items following
·
0x02 -
items following
·
For each
item
·
BYTE
(0x1A)
·
BYTE[4]
itemID (from 3C packet)
·
BYTE[2]
# bought
0x3C Packet
Last Modified on Saturday, 02-May-1998 16:05:37
EDT
Items in
Container (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE[2]
# of Item segments
·
Item
Segments:
·
BYTE[4]
itemID
·
BYTE[2]
model
·
BYTE
unknown1 (0x00)
·
BYTE[2]
# of items in stack
·
BYTE[2]
xLoc
·
BYTE[2]
yLoc
·
BYTE[4]
Container ItemID
·
BYTE[2]
color
0x4E Packet
Last Modified on Sunday, 17-May-1998 13:33:55
EDT
Personal
Light Level (6 bytes)
·
BYTE
cmd
·
BYTE[4]
creature id
·
BYTE
level
0x4F Packet
Last Modified on Saturday, 14-Nov-1998
Overall
Light Level (2 bytes)
·
BYTE
cmd
·
BYTE
level
·
0x00 -
day
·
0x09 -
OSI night
·
0x1F -
Black
·
Max
normal val = 0x1F
0x53 Packet
Last Modified on Sunday, 13-Feb-2000
Idle
Warning(2 bytes)
·
BYTE
cmd
·
BYTE
value (0x07 – idle, 0x05 – another character is online)
“Another
character from this account is currently online in this world. You must either log in as that character or
wait for it to time out.”
0x54 Packet
Last Modified on Sunday, 13-Feb-2000
Play Sound
Effect (12 bytes)
·
BYTE
cmd
·
BYTE
mode (0x00=quiet, repeating, 0x01=single normally played sound effect)
·
BYTE[2]
SoundModel
·
BYTE[2]
unknown3 (speed/volume modifier? Line of sight stuff?)
·
BYTE[2]
xLoc
·
BYTE[2]
yLoc
·
BYTE[2]
zLoc
0x55 Packet
Last Modified on Monday, 26-Oct-1998
Login
Complete, Start Game (1 byte)
·
BYTE
cmd
0x56 Packet
Last Modified on Friday, 26-Jul-2002
Map
Related(11 bytes)
·
BYTE
cmd
·
BYTE[4]
id
·
BYTE
command
·
1 =
add map point,
·
2 =
add new pin with pin number. (insertion. other pins after the number are pushed
back.)
·
3 =
change pin
·
4 =
remove pin
·
5 =
remove all pins on the map
·
6 =
toggle the 'editable' state of the map.
·
7 =
return msg from the server to the request 6 of the client.
·
BYTE
plotting state (1=on, 0=off, valid only if command 7)
·
BYTE[2]
x location (relative to upper left corner of the map, in pixels, for points)
·
BYTE[2]
y location (relative to upper left corner of the map, in pixels, for points)
0x5B Packet
Last Modified on Saturday, 18-Apr-1998 17:49:28
EDT
Time (4
bytes)
·
BYTE
cmd
·
BYTE
hour
·
BYTE
minute
·
BYTE
second
0x5D Packet
Last Modified on Monday, 04-Aug-2002 17:06:26
EDT
Login
Character (73 bytes)
·
BYTE
cmd
·
BYTE[4]
pattern1 (0xedededed)
·
BYTE[30]
char name (0 terminated)
·
BYTE[33]
unknown, mostly 0’s
(Byte# 0x27, 0x28, 0x30 seem to be the
only non 0’s of these 33 bytes. Perhaps password data that’s not send anymore)
·
BYTE
slot choosen (0-based)
·
BYTE[4]
clientIP
0x65 Packet
Last Modified on Wednesday, 24-May-2000
Set Weather
(4 bytes)
·
BYTE
cmd
·
BYTE
type (0x00 – “It starts to rain”, 0x01 – “A fierce storm approaches.”, 0x02 –
“It begins to snow”, 0x03 - “A storm is brewing.”, 0xFF – None (turns off sound
effects), 0xFE (no effect?? Set temperature?)
·
BYTE
num (number of weather effects on screen)
·
BYTE
temperature
Note:
Server Message
Note:
Temperature has no effect at present.
Note:
maximum number of weather effects on screen is 70.
Note: If it
is raining, you can add snow by setting the num to the num of rain currently
going, plus the number of snow you want.
Note:
Weather messages are only displayed when weather starts.
Note:
Weather will end automatically after 6 minutes without any weather change
packets.
Note: You
can totally end weather (to display a new message) by teleporting. I think it’s either the 0x78 or 0x20
messages that reset it, though I haven’t checked to be sure (other possibilities,
0x4F or 0x4E)
0x66 Packet
Last Modified on Monday, 19’th-Feb-2002
Books -
Page (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE[4]
bookID
·
BYTE[2]
# of pages in this packet
·
For
each page:
·
BYTE[2]
page #
·
BYTE[2]
# of lines on page
·
Repeated
for each line:
·
BYTE[var]
null terminated line
Note:
server side: # of pages equals value given in 0x93/0xd4
EACH page # given. If empty: # lines: 0 + terminator (=3 0’s)
client side: # of pages always 1. if 2
pages changed, client generates 2 packets.
0x69 Packet
Last Modified on Thursday, 23-Apr-1998 19:26:05
EDT
Change
Text/Emote Color (5 bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE[2] unknown1
The client
sends two of these independent of the color chosen. It sends two of them in
quick succession as part of the "same" packet. The unknown1 is 0x00
0x01 in the first and 0x00 0x02 in the second.
Note, this
message has been removed.  Look into this. J
Client Ver:
Books –
Update Title Page (99 bytes)
·
BYTE
cmd
·
BYTE[4]
bookID
·
BYTE[4]
unknown (0)
·
BYTE[60]
title (zero terminated, garbage after terminator)
·
BYTE[30]
author (zero terminated, garbage after terminator)
0x95 Packet
Last Modified on Thursday, 30-Apr-1998 18:34:08
EDT
Dye Window
(9 bytes)
·
BYTE
cmd
·
BYTE[4]
itemID of dye target
·
BYTE[2]
ignored on send, model on return
·
BYTE[2]
model on send, color on return (default
on server send is 0x0FAB)
NOTE: This
packet is sent by both the server and client
0x97 Packet
Last Modified on Wednesday, 28-Aug-2002
Move player
(2 bytes)
·
BYTE
cmd
·
BYTE
direction
Note: Server message.
Moves player played by client one step in requested direction.
Doesn’t move if there are obstacles.
0x98 Packet
Last Modified on Monday, 04-Aug-2002 18:34:08
EDT
All-names
“3D” (Variable # of Bytes)
·
BYTE
cmd
·
BYTE[2]
blocksize
·
BYTE[4]
ID
·
If
(server-reply) BYTE[30] name (0 terminated)
NOTE: Only
3D clients send this packet
Server and client packet.
Client asks
for name of object with ID x.
Server has to reply with ID + name
Client automatically knows names of items.
Hence it only asks only for NPC/Player names nearby, but shows bars of items
plus NPC’s.
 -
·
BYTE[2]
# of servers
·
Then
each server --
·
BYTE[2]
serverIndex (0-based)
·
BYTE[32]
serverName
·
BYTE
percentFull
·
BYTE
timezone
·
BYTE[4]
pingIP
0xA9 Packet
Last Modified on Sunday, 12-Feb-2003
Characters
/ Starting Locations (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE #
of characters
·
Following
repeated 5 times
·
BYTE[30]
character name
·
BYTE[30]
character password
·
BYTE
number of starting locations
·
Following
for as many locations as you have
·
BYTE
locationIndex (0-based)
·
BYTE[31]
town (general name)
·
BYTE[31]
exact name
·
BYTE[4]
Flags (0x02 = send config/req logout (IGR?), 0x04 = single character (siege),
0x08 = enable npcpopup menus, 0x10 = unknown,
0x20: enable common AOS features (tooltip thing/fight system book, but not AOS
monsters/map/skills)
0xAA Packet
Last Modified on Thursday, 16-Apr-1998 19:52:14
EDT
OK / Not OK
To Attack (5 bytes)
·
BYTE
cmd
·
BYTE[4]
CharID being attacked
ID is set
to 00 00 00 00 when attack is refused.
0xAB Packet
Last Modified on Friday, 20-Nov-1998
Gump Text
Entry Dialog (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE[4]
id
·
BYTE
parentID
·
BYTE
buttonID
·
BYTE
textlen
·
BYTE[?]
text
·
BYTE
cancel (0=disable, 1=enable)
·
BYTE
style (0=disable, 1=normal, 2=numerical)
·
BYTE[4]
format (if style 1, max text len, if style2, max numeric value)
·
BYTE
text2len
·
BYTE[?]
text2
0xAC Packet
Last Modified on Saturday, 19-Feb-2000
Gump Text
Entry Dialog Reply (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
length
·
BYTE[4]
ID
·
BYTE
type
·
BYTE
index
·
BYTE[3]
unk
·
BYTE[?]
reply
0xAD Packet
Last Modified on Monday, 18-Feb-2002
Unicode/Ascii
speech request (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE
Type
·
BYTE[2]
Color
·
BYTE[2]
Font
·
BYTE[4]
Language (Null Terminated)
·
“enu“
- United States English
·
“des” -
German Swiss
·
“dea” -
German Austria
·
“deu” -
German Germany
·
...
for a complete list see langcode.iff
·
if
(Type & 0xc0)
·
BYTE[1,5]
Number of distinct Trigger words (NUMWORDS).
12 Bit number, Byte #13 = Bit 11…4 of
NUMWORDS, Hi-Nibble of Byte #14 (Bit 7…4)
= Bit 0…3 of NUMWORDS
·
BYTE[1,5]
Index to speech.mul
12 Bit number, Low Nibble of Byte #14 (Bits 3…0) = Bits 11..8 of Index, Byte
#15 = Bits 7…0 of Index
·
UNKNOWNS
= ( (NUMWORDS div 2) *3 ) + (NUMWORDS % 2)
– 1
div = Integeger division, % = modulo operation, NUMWORDS >= 1
examples: UNKNOWNS(1)=0, UNKNOWNS(2)=2, UNKNOWNS(3)=3, UNKNOWNS(4)=5,
UNKNOWNS(5)=6,
UNKNOWNS(6)=8, UNKNOWNS(7)=9, UNKNOWNS(8)=11, UNKNOWNS(9)=12
·
BYTE[UNKNOWNS]
Idea behind this is getting speech parsing load client side.
Thus this contains data OSI server use for easier parsing.
It’s client side hardcoded and exact details are unkown.
·
BYTE[?]
Ascii Msg – Null Terminated (blockSize – (15+UNKNOWNS) )
·
else
·
BYTE[?][2]
Unicode Msg - Null Terminated (blockSize - 12)
Note1:
For pre 2.0.7 clients Type is always < 0xc0
Note2: Uox based emus convert post 2.0.7 data
of this packet to pre 2.0.7 data if Type >=0xc0
Note3: (different view of it)
If Mode&0xc0 then there are keywords (from
speech.mul) present.
Keywords:
The first 12 bits = the number of keywords
present. The keywords are included right after this, each one is 12 bits also.
The keywords are padded to the closest byte.
For example, if there are 2 keywords, it will take up 5 bytes. 12bits for the
number, and 12 bits for each keyword. 12+12+12=36.
·
BYTE[?]
text (in unicode)
0xB1 Packet
Last Modified on Sunday, 28-Jul-2002
Gump Menu
Selection (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE[4]
id (first Id in 0xb0)
·
BYTE[4]
gumpId (second Id in 0xb0)
·
BYTE[4]
buttonId (which button perssed ? 0 if closed)
·
BYTE[4]
switchcount (response info for radio
buttons and checkboxes, any switches listed here are switched on)
For each switch
·
BYTE[4]
SwitchId
For each textentry
·
BYTE[2]
textId
·
BYTE[2]
textlength
·
BYTE[length*2]
Unicode text (not nullterminated)
0xB2 Packet
Last Modified on Friday, 10-Oct-1998 18:42:09
EDT
Chat
Message (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE[2]
messageType
If message type==0x03EB (Display Enter Username
window)
·
BYTE[8]
unknown (all 0’s)
If message type==0x03ED (Username accepted,
display window)
·
BYTE[4]
unknown (all 0’s)
·
BYTE[?][2]
unicode username
·
BYTE[4]
unknown (all 0’s)
If message type==0x03E8
·
BYTE[4]
unknown (all 0’s)
·
BYTE[?][2]
unicode channel name
·
BYTE[2]
unknown (0x0000)
·
BYTE[2]
unknown (0x0030)
·
BYTE[2]
unknown (0x0000)
0xB5 Packet
Last Modified on Friday, 10-Oct-1998 18:42:09
EDT
Open Chat
window (64 bytes)
·
BYTE
cmd
·
BYTE[63]
chatname, if known by client (all 00 if unknown) (name in unicode)
This
message is very incomplete. From the
server, just know that it is 0xB5 len len, and pass the data through as is
appropriate.
0xB6 Packet
Last Modified on Thursday, 12-Nov-1998
Send
Help/Tip Request (9 bytes)
·
BYTE
cmd
·
BYTE[4]
id
·
BYTE[1]
language # (1 for enu)
·
BYTE[3]
language name (enu for English – United states)
0xB7 Packet
Last Modified on Thursday, 19-Nov-1998
Help/Tip
Data (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE[4]
id
·
BYTE[?][2]
message, in unicode
·
BYTE[2]
null terminator (0x0000)
·
BYTE[2]
message terminator (0x3300)
0xB8 Packet
Last Modified on Monday, 02-Sep-2002
Request
Char Profile (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
blockSize
·
BYTE
mode (CLIENT ONLY! Does not exist in server message.)
·
BYTE[4]
id
If request, ends here.
If Update request
·
BYTE[2]
cmdType (0x0001 – Update)
·
BYTE[2]
msglen (# of unicode characters)
·
BYTE[msglen][2]
new profile, in unicode, not null terminated.
Else If from server
·
BYTE[?]
title (not unicode, null terminated.)
·
BYTE[?][2]
static profile ( unicode string
can't be edited )
·
BYTE[2]
(0x0000) (static profile terminator)
·
BYTE[?][2]
profile (in unicode, can be edited)
·
BYTE[2]
(0x0000) (profile terminator)
0xB9 Packet
Last Modified on Wednesday 12-Feb-2003
Enable
locked client features (3 bytes)
·
BYTE
cmd
·
BYTE[2]
feature#
if (MSB not set)
Bit# 1 T2A upgrade, enables chatbutton,
Bit# 2 enables LBR update. (of course
LBR installation is required)
(plays MP3 instead of midis, 2D LBR client shows new LBR monsters,…)
if (MSB set)
Bit# 3 T2A upgrade, enables chatbutton,
Bit# 4 enables LBR update.
Bit#5 enables AOS update (Aos
monsters/map (AOS installation required for that) ,
AOS skills/necro/paladin/fight book stuff
– works for ALL clients 4.0 and above)
Server
Message
Note1: this
message is send immediately after login.
Note2: on OSI servers this controls
features OSI enables/disables via “upgrade codes.”
Note3: a 3
doesn’t seem to “hurt” older (NON LBR) clients.
0xBA Packet
Last Modified on Sunday, 13-Feb-2000
Quest Arrow
(6 bytes)
·
BYTE
cmd
·
BYTE
active (1=on, 0=off)
·
BYTE[2]
xLoc
·
BYTE[2]
yLoc
Server
Message
0xBB Packet
Last Modified on Sunday, 30-Jan-2000
Ultima
Messenger (9 bytes)
·
BYTE
cmd
·
BYTE[4]
id1
·
BYTE[4]
id2
Note: This
is both a client and server message.
0xBC Packet
Last Modified on Friday, 19-May-2000
Seasonal
Information(3 bytes)
·
BYTE
cmd
·
BYTE
id1
·
BYTE
id2
Note:
Server message
Note: if
id2 = 1, then this is a season change.
Note: if
season change, then id1 = (0=spring, 1=summer, 2=fall, 3=winter, 4 =
desolation)
0xBD Packet
Last Modified on Wednesday, 28-Aug-2002
Client
Version Message (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
len
·
If
(client-version of packet)
BYTE[len-3] string stating the client version (0 terminated) (like: “1.26.4”)
Note: Client + Server Message
Client version : client sends its version string (e.g “3.0.8j”)
Server version : 0xbd 0x0 0x3 (client replies with client version of this
packet)
Note2:
clients sends a client version of this packet ONCE at login (without
server request.)
0xBE Packet
Last Modified on Wednesday, 28-Aug-2002
Assist
Version (Variable # of bytes)
·
BYTE
cmd
·
BYTE[2]
len
·
If
(client-version of packet)
·
BYTE[4]
Assist version (numeric)
·
BYTE[?]
string stating the client version (0 terminated) (like: “1.26.4”)
·
If
(server-version of packet) BYTE[4]
Allowed Assist version (numeric)
Note: server requests assist version via server side version of this packet,
client replies with client side version of packet.
If it’s a client without Assist, allowed Assists version from server is relayed
in client version packet.
Because assist never has assist version 0, that would be a way to disallow it.
0xBF Packet
Last Modified on Sunday,28-Feb-20002
The 0xBF
packet starts off with a cmd byte, followed by two bytes for the length. After that is a two byte value which is a
subcmd, and the message varies after that.
General
Info (5 bytes, plus specific message)
·
BYTE
cmd
·
BYTE[2]
len
·
BYTE[2]
subcmd
·
BYTE[len-5]
submessage
Note:
Client & Server message
Subcommand
1: Initialize Fast Walk Prevention
·
BYTE[4]
key1
·
BYTE[4]
key2
·
BYTE[4]
key3
·
BYTE[4]
key4
·
BYTE[4]
key5
·
BYTE[4]
key6
Note:
Server Message
Note: This
sets up stack on the client and whenever it moves, it takes the top value from
this stack and uses it. (key1 starts at
the top, key6 at the bottom).
Subcommand
2: Add key to Fast Walk Stack
·
BYTE[4]
newkey
Note:
Server Message
Note: This
key is added to the top of the stack.
In other words, it’s the one that will be used next. Basically, the other 5 only get used when
the client is sending moves faster than the server is responding.
Subcommand
4: "Close Generic Gump"
Subcommand
5: Screen size
·
BYTE[2]
unknown1 , always 0 ?
·
BYTE[2] X
·
BYTE[2] Y
·
BYTE[2]
unknown2
Note:
Client Message
Subcommand
6: Party System (YES! Subsubcommands)
·
BYTE
subsubcommand #
Subsubcommand 1: Add a party member
(4 bytes)
·
BYTE[4]
id (if 0, a targeting cursor appears)
Note: Client Message
Subsubcommand 1: Add party member(s)
(1+ numMembers*4)
·
BYTE
numMembers (total number of members in the party)
Then, for each member in numMembers:
·
BYTE[4]
id
Note: Server Message
Subsubcommand 2: Remove a party
member (4 bytes)
·
BYTE[4]
id (if 0, a targeting cursor appears)
Note: Client message
Subsubcommand 2: Remove a party
member (? Bytes)
·
BYTE
numMembers (total number of members in the new party)
·
BYTE[4]
idofPlayerRemoved
Then, for each member in numMembers:
·
BYTE[4]
id
Note: Server message
Subsubcommand 3: Tell party member a
message (Variable # of bytes)
·
BYTE[4]
id (of target, from client, of source, from server)
·
BYTE[n][2]
Null terminated Unicode message.
Note: Client & Server Message
Subsubcommand 4: Tell full party a
message (Variable # of bytes)
·
BYTE[n][2]
Null terminated Unicode message.
Note: Client Message.
Subsubcommand 4: Tell full party a
message (Variable # of bytes)
·
BYTE[4]
id (of source)
·
BYTE[n][2]
Null terminated Unicode message.
Note: Server Message
Subsubcommand 6: Party Can Loot
Me? (1 byte)
·
BYTE
canloot (0=no, 1=yes)
Note: Client message
Subsubcommand 8: Accept join party
invitation (4 bytes)
·
BYTE[4]
id (party leader’s id)
Note: Client message
Subsubcommand 9: Decline join party
invitation (4 bytes)
·
BYTE[4]
id (party leader’s id)
Note: Client message
Subcommand
8: Set cursor hue / Set MAP
·
BYTE
hue (0 = Felucca, unhued / BRITANNIA
map. 1 = Trammel, hued gold / BRITANNIA
map, 2 = (switch to) ILSHENAR map)
Note:
Server Message
Subcommand
0x0a: wrestling stun
Subcommand 0x0b:
Client Language
·
BYTE[3]
language (ENU, for English)
Note:
Client Message, send once at login
Subcommand
0x0c: Closed Status Gump
·
BYTE[4]
id (character id)
Note: Server
Message
Subcommand
0x0f: unknown , send once at login, client message
·
BYTE[5]
unknown (0a 00 00 00 07) here
Subcommand
0x13: Request popup menu
·
BYTE[4]
id (character id)
Note:
Client Message
Subcommand
0x14: Display Popup menu
·
BYTE[2] Entry
Tag (this will be returned by the client on selection)
·
BYTE[2] Text ID
ID is the file number for intloc#.language e.g intloc6.enu and the index
into that
·
BYTE[2] Flags 0x01 = locked, 0x02 = arrow,
0x20 = color
·
If
(Flags &0x20)
BYTE[2] color; // rgb 1555 color (ex,
0 = transparent, 0x8000 = solid black, 0x1F = blue, 0x3E0 = green, 0x7C00 =
red)
Note:
Server Side Message
TextID is broken into two decimal parts:
stringID / 1000: intloc fileID
stringID % 1000: text index
So, say you want the 123rd text entry of intloc06, the stringID would be
6123
Subcommand
0x15: Popup Entry Selection
Subcommand 0x17: Codex of wisdom
Note:
server side packet.
Shows codex of wisdom’s text #msg. (msg
is linearised (including sub indices) index number starting with 1)
Subcommand
0x18: Enable map-diff (files)
For each map
·
BYTE[4]
Number of map patches in this map
·
BYTE[4]
Number of static patches in this map
Note:
server side packet, number of maps: currently 3 (0 = Fellucca, 1 = Trammel, and
2 = Ilshenar)
This packet
is sent by the server to the client, telling the client to use the mapdif* and
stadif* files for patching map and statics.
Subcommand:
0x19: Extended stats
Note:server
side packet
Send after 0x11
Subcommand:
0x1a: Extended stats
Note:client
side packet, send if player changed stats (lock) status
Subcommand
0x1b: New Spellbook
Note:
related packet: subcommand 1c, client side
Subcommand 0x1c: Spell selected, client side
Subcommand
0x21: (AOS) Ability icon confirm.
Note: no data, just (bf 0 5 21), server side packet
Send after 0xd7. exact purpose unknown
Subcommand 0x22: Damage
Note: displays
damage above the npc/player’s head.
0xC0 Packet
Last Modified on Friday, 26-Jul-2002
(yet
another) Graphical Effect (36 Bytes)
Server message
0xC1 Packet
Last Modified on Monday, 4’th-August-20002
Predefined
Message (localized Message) (Variable # of bytes )
·
BYTE
cmd
·
BYTE[2]
length
·
BYTE[4]
id (0xffff for system message)
·
BYTE[2]
body (0xff for system message)
·
BYTE
type (6 – lower left, 7 on player)
·
BYTE[2] hue
·
BYTE[2] font
·
BYTE[4]
Message number
·
BYTE[0x20]
– speaker’s name
·
BYTE[?*2]
– arguments // _little-endian_ unicode string, tabs ('\t') seperate the
arguments
Server
message
Argument
example:
take number
1042762:
"Only
~1_AMOUNT~ gold could be deposited. A check for ~2_CHECK_AMOUNT~ gold was
returned to you."
the
arguments string may have "100 thousand\t25 hundred", which in turn
would modify the string:
"Only
100 thousand gold could be deposited. A check for 25 hundred gold was returned
to you."
0xC2 Packet
Last Modified on Friday, 30’th-August-20002
Textentry
Unicode (Variable # of bytes )
·
BYTE
cmd
·
BYTE[2]
length
·
BYTE[4]
player id
·
BYTE[4]
message id
·
If
(server_version of this packet) BYTE[10] all 0’s .. have to be there, otherwise
client crash
·
If
(client_version)
·
BYTE[4]
unknown, always 1
·
BYTE[3]
language code, i.e. DEA, ENU …
·
BYTE[ ?]
unicode Text
Note : protocol : server starts with a server side 0xc2. server can
pick any message id to identify it.
The next
text entry from client after 0xc2 server side -> client replies with a 0xc2
client side.
(first 11 bytes relayed from server packet, plus 0 0 0 1 plus 3 bytes language
code + Unicode text)
Server side packet always has length 0x15.
0xC4 Packet
Last Modified on Monday, 4’th-Augst-2002
Semivisible,
6 Bytes
Note:
Server Message
It has been never encountered in the wild (=on OSI servers)
What this effect is supposed to do is completely unknown.
It sets target more or less blue (dependant on intensity value).
Only for 2d clients, for 3d clients it does nothing.
Perhaps implementation client side not finished ?
0xC7 Packet
Last Modified on Sunday, 28-Jul-2002
3D client
particle effect (49 Bytes)
Note: 2d
clients understand it as well, but default to “old effects”.
0xC8 Packet
Last Modified on Monday, 4’th-Sep-2002
Client view
range (2 Bytes)
Note:
client+server packet.
Range: how far away client wants to see (=get send) items/npcs
Update: since client 3.0.8o it actually got activated.(in a useful way)
When increase/decrease macro send, client sends a 0xc8.
If and only if server “relays” the packet (sending back the same data) range
stuff gets activated client side.
”Greying“ has no packet, purely client internal.
Minimal value:5, maximal: 18
0xC9 Packet
Last Modified on Monday, 19’th-Aug-2002
Get area
server ping (6 Bytes)
Note: Client sends packet with it's
tick count
Server replies with same
packetID/sequence and it's own tick count
Over a few packets, the client can
deduct a reasonably accurate ping number.
Currently
only used/ implemented in god client
0xCA Packet
Last Modified on Monday, 19’th-Aug-2002
Get user server ping (6 Bytes)
Note: see 0xc9
0xCB Packet
Last Modified on Friday, 30’th-Aug-2002
GQ count (7
Bytes)
Note: displays a message:” There are currently [count] available calls in the
global queue
0xCC Packet
Last Modified on Monday, 4’th-August-20002
"Localized
Message Affix" (variable length)
·
BYTE
cmd
·
BYTE[2]
length
·
BYTE[4]
id (0xffff for system message)
·
BYTE[2]
body (0xff for system message)
·
BYTE
type (6 – lower left, 7 on player)
·
BYTE[2] hue
·
BYTE[2] font
·
BYTE[4]
Message number
·
BYTE
flags
0x02 is unknown.
0x04 signals the message doesn't move on screen.
(flags & 0x1) == 0 signals affix is appended to the localization string,
(flags & 0x1) == 1 signals to prepend.
·
BYTE[0x20]
– speaker’s name
·
BYTE[?] affix / null terminated
·
BYTE[?]*2]
arguments; // _big-endian_ unicode string, tabs ('\t') seperate arguments, see
0xC1 for argument example
0xD0 Packet
Last Modified on Sunday, 28-Jul-2002
"Configuration File" (dynamic
length)
Note, sent
if (flag & 0x02) in packet 0xA9
Note: (probably) Used for saving client configuration files server side.
OSI used it for the IGR shard only that is not anymore.
Not sure what configuration files are, perhaps those in /desktop/player dir
Encoding/(compression?)
completely unknown
Note: there’s a client and server version of it.
If on, client sends them 5 times (5 files)
at login.
After logout (0xd1) it expects server versions of 0xd0 and finally a server
version of 0xd1
0xD1 Packet
Last Modified on Sunday, 28-Jul-2002
"Logout
Status" 2 Byte length
Note,
client sends on logout if (flag & 0x02) in packet 0xA9,
when server responds with same packet, client finishes logging out
0xD2 Packet
Last Modified on Sunday, 30-Aug-2002
"Extended
0x20" 25 Byte length
Note:
currently unknown’s don’t seem to do anything.
That packet has never been sighted on OSI servers as well.
We probably have to wait till OSI activates it/finishes implementation., to see
what it does.
0xD3 Packet
Last Modified on Sunday, 30-Aug-2002
"Extended
0x78" dynamic length
Note: see 0xd2 notes
0xD4 Packet
Last Modified on Monday, 19’th-Aug-2002
“new Book
Header” (Variable# Bytes)
Note:
replaced 0x93 on OSI servers, “0xd4 books” are rendered differently
clients still understand “old” 0x93
Note1
server and client packet.
server
side: opening book writeable: flag1+flag2 both 1
(opening readonly book: flag1+flag2 0, unverified though)
client
side: flag1+flag2 both 0, number of pages 0.
Note2
Opening
books goes like this:
open book ->
server sends 0xd4(title + author)
server sends 0x66 with all book data “beyond” title + author
if title +
author changed: client side 0xd4 send
if other
book pages changed: 0x66 client side send.
0xD6 Packet
Last Modified on Wednesday, 12’th-Feb-2003
“AOS tooltip/Object
property list” (Variable# Bytes)
Note1: The “tooltip thing” that
displays object data send via this packet is only active if common AOS is
activated via 0xA9
Note2:
server side packet only
Note3: Also related to 0xD6: 0xbf sub 0x10
Server
version of 0xbf: Query client (do you need tooltip data for Object x ? ) ,
sends list ID+Object-ID
Client version: If it needs it
(cache-miss), replies with a client 0xbf 0x10 (sends Object Id)
Note4: Actual 0xd6’s are send AFTER n>=1 pairs of server/client 0xbf 0x10’s
Note5: The text is to fill in the localized message arguments.
It works like the other argument-based localized message packets.
The strings are tab-delimited.
Take the localized message:
1050044 "~1_COUNT~ items,
~2_WEIGHT~ stones".
The entry might be be:
int localizationnumber = 1050044;
string text = "5\t10"; //
5 items, 10 stones
The localization string they use for
NPC tooltips is:
1050045
"~1_PREFIX~~2_NAME~~3_SUFFIX~"
0xD7 Packet
Last Modified on Wednesday, 12’th-Feb-2003
“Fight
book/system” (Variable# Bytes)
Note: when weapon is changed, ability icons
automatically change, but client does NOT notify server.
Note2:
Fightbook only appearing when common AOS activated via 0xa9
0xD8 Packet
Last Modified on Wednesday, 12’th-Feb-2003
“Custom
house” (Variable# Bytes)
Note:
server side packet
0xF0 Packet
Last Modified on Monday, 4’th-Aug-2002
Krrios
client special
·
BYTE
cmd
·
BYTE[2]
len
·
BYTE
subcmd
·
BYTE[len
- 4] data
Subcommand
0: Acknowledge login (1 byte (for 5 total))
·
BYTE
ack (0 = Rejected, unauthorized. 1 = Accepted, GM priviledges. 2 = Accepted,
player priviledges)
Note:
Server Message
Note: GM
priviledges unlock movement rate configurations


 Completes check for CHN events.
Seg is a segment that is parses out of the xml tree, flag is for signaling terminal or initial segment of the
file.
:param seg:
:param flag:
:return:
◆ GetItem()
| def SeqAnalysis2.EItemList.GetItem |
( |
|
self, |
|
|
|
index |
|
) |
| |
Returns the event item from the event item list at the given index.
:param index:
:return Event item from the event item list:
◆ Header()
| def SeqAnalysis2.EItemList.Header |
( |
|
self | ) |
|
Assembles Headings string for output file.
:return string of headings for output:
◆ InsertPauses()
| def SeqAnalysis2.EItemList.InsertPauses |
( |
|
self | ) |
|
Inserts pauses into the event item list.
Specifies the size of the ouases from the slider in the UI.
:return:
◆ Modify_CHN_Events()
| def SeqAnalysis2.EItemList.Modify_CHN_Events |
( |
|
self, |
|
|
|
seg |
|
) |
| |
Handles special case of CHN events, determines which one they are.
:param seg:
:return string representing the type of CHN event:
◆ RemoveExtraneousPauses()
| def SeqAnalysis2.EItemList.RemoveExtraneousPauses |
( |
|
self | ) |
|
Removes inserted contiguous pauses that are past a user specified amount of pauses to keep.
For instance, if there are 11 minutes of contiguous pauses, but the user only wants to keep 10,
then 1 minute of pauses will be removed
:return:
◆ ResultsTuple()
| def SeqAnalysis2.EItemList.ResultsTuple |
( |
|
self | ) |
|
For result output.
Concatenates the contingencies, pids, filenames, OSV, and the values for A, B, C, D from the results
of analysis
:return a tuple of results:
◆ SeqAn()
| def SeqAnalysis2.EItemList.SeqAn |
( |
|
self | ) |
|
Primary the function for completed the logic of the given sequence analysis.
Checks the var map and decides which contingency to increment based on the chosen logical expression.
:return:
◆ Size()
| def SeqAnalysis2.EItemList.Size |
( |
|
self | ) |
|
Returns current size of the Event item list.
:return the current integer length of the event item list:
◆ TallyItems()
| def SeqAnalysis2.EItemList.TallyItems |
( |
|
self | ) |
|
Counts up the number of each event type.
:return:
The documentation for this class was generated from the following file:
- Users/pinks/Documents/kol-ij/_Spring_18/CSCI_4700/LENA_Contingenciesv3/src/SeqAnalysis2.py


When autumn comes, it doesnt ask.
It just walks in, where it left you last.
And you never know, when it starts
Until there's fog inside the glass around your summer heart
--- layout: post title: "Something's Missing" date: 2013-04-11 comments: false ---


[1]
beautiful and full of birds , of which a high population were different types of hummingbirds .
[2]
we gone with a guide especially if you want to the different types of birds -rrb-/-rrb- .


Owen Otasowie: Arsenal join Liverpool and PSG for 18-year-old Wolves star
- Owen Otasowie is reportedly eyed by European powerhouses including PSG and Arsenal
- The 18-year-old wonderkid's stellar form for Wolves is said to have also caught the attention of Schalke and Liverpool
- The promising defender is eligible to play for England, Nigeria or the United States
Arsenal have reportedly joined European powerhouses Liverpool and Paris-Saint-Germain for the signing of Wolverhampton wonderkind Owen Otasowie.
The 18-year-old has been impressive for Wolves' Under-23s and his stellar performance has since caught the eyes of European top flights.
Otasowie, who is eligible to play for England, Nigeria or the United States, is also being pursued by German club Schalke.
The 18-year-old starlet can operate as a centre-back but his versatility can also see him deployed as a midfielder.
With the German side Schalke intensifying efforts to bring the defender to Bundesliga in the next summer, Arsenal are reported to be leading race for the signing of the wonderkid in England.
Thierry Henry reveals moment he started benching Kanu Nwankwo at Arsenal
Unai Emery's porous backline has seen the North London side slip down on the table but the Spaniard manager is eyeing a move for Otasowie whose contract expires this summer with Molineux.
Jurgen Klopp's Liverpool are also said to be monitoring the performance of the defender and should he fail to extend his contract with Wolves, he may end up playing for the Premier League top side.
Otasowie is reportedly limited to bench appearances, having managed just 86 minutes across four games in the Premier League 2 and this may force him to switch side to one of the suitors.
PAY ATTENTION: Install Pitch Football App for FREE to get the latest football News & Scores
Meanwhile, Legit.ng had reported that Arsenal have been told to table a massive £50million and Xhaka for the service of outstanding Super Eagles midfielder Wilfred Ndidi.
Super Eagles star beats Chelsea's N'Golo Kante to another EPL landmark
The 22-year-old football star caught the attention of Gunners fans after his stellar performance in Leicester City's 9-0 demolition of their Premier League rivals Southampton on Friday night, October 25, in an history-making outing.
Abu Azeez: Meet the only Nigerian rated among top 50 beach soccer players worldwide | Legit TV


I design and code beautifully simple things, and I love what I do.
Dig Out MoreTypically I am a creature full of creative ideas and Technically you could say I am a Developer. Mainly I do webdesign but lately I learned some magic things to make your website just WOW!!!!
Creativity gives birth to cooler, greater and efficient websites. Don't you Think?
All dependencies on technologies are kept current to this mind to keep things fresh and updated.
Computers understands only one Language!!!
Is it really a Good website if it's not made with love?
 Say hiii to me then..!


Module tvar.print
print script contains function for output and formatting
Functions
| tVar:pFormatVal () | Call the number format function according to format definitions tVar |
| tVar.formatValue (numFormat, val, decimalSeparator) | Format a Number according to a number format and a decimal Separator |
| tVar.encapuslate (string, _open, _close) | Enxapsulate a String with _open and _close used for brackets |
| tVar:printFull () | create string with Name, Result, Equation, Numbers and Unit |
| tVar:printHalf () | create string with Name, Result, Equation and Unit |
| tVar:printEQ () | create string with Name, Equation |
| tVar:printVar () | create string with Name, Result and Unit |
| tVar:print () | use tex.print to print tVar depending on global definitions |
| tVar:outRES_EQ_N (numbering, enviroment) | use tex.print to print tVar with Name, Result, Equation, Numbers and Unit |
| tVar:outRES_EQ (numbering, enviroment) | use tex.print to print tVar with Name, Result, Equation and Unit |
| tVar:outRES (numbering, enviroment) | use tex.print to print tVar with Name, Result and Unit |
| tVar:out () | use tex.print to only print the value |
Functions
- tVar:pFormatVal ()
-
Call the number format function according to format definitions tVar
Returns:
-
(String) formatted number as string
- tVar.formatValue (numFormat, val, decimalSeparator)
-
Format a Number according to a number format and a decimal Separator
Parameters:
- numFormat (string) containing the numberformat e.g. %.2f
- val (number) number to be formatted
- decimalSeparator (string) "." gets replaced by decimalSeparator
- tVar.encapuslate (string, _open, _close)
-
Enxapsulate a String with _open and _close used for brackets
Parameters:
- string (string) string to be enclosed
- _open (string) is added before string
- _close (string) is added after string
- tVar:printFull ()
-
create string with Name, Result, Equation, Numbers and Unit
Returns:
-
(string) complete formula
- tVar:printHalf ()
-
create string with Name, Result, Equation and Unit
Returns:
-
(string) complete formula
- tVar:printEQ ()
-
create string with Name, Equation
Returns:
-
(string) complete formula
- tVar:printVar ()
-
create string with Name, Result and Unit
Returns:
-
(string) complete formula
- tVar:print ()
-
use tex.print to print tVar depending on global definitions
Returns:
-
(tVar) self for concatination
- tVar:outRES_EQ_N (numbering, enviroment)
-
use tex.print to print tVar with Name, Result, Equation, Numbers and Unit
Parameters:
- numbering (boolean, optional) show numbering besides formula
- enviroment (boolean, optional) use math enviroment
Returns:
-
(tVar) self for concatination
- tVar:outRES_EQ (numbering, enviroment)
-
use tex.print to print tVar with Name, Result, Equation and Unit
Parameters:
- numbering (boolean, optional) show numbering besides formula
- enviroment (boolean, optional) use math enviroment
Returns:
-
(tVar) self for concatination
- tVar:outRES (numbering, enviroment)
-
use tex.print to print tVar with Name, Result and Unit
Parameters:
- numbering (boolean, optional) show numbering besides formula
- enviroment (boolean, optional) use math enviroment
Returns:
-
(tVar) self for concatination
- tVar:out ()
-
use tex.print to only print the value
Returns:
-
(tVar) self for concatination


(no prefix) |
des_crypt |
_ |
bsdi_crypt |
$1$ |
md5_crypt |
$2$
| bcrypt (original version) |
$2a$ |
bcrypt (first rev) |
$2x$ |
crypt_blowfish-specific (bugged) |
$2y$ |
crypt_blowfish-specific (fixed) |
$2b$ |
bcrypt (second rev, post 2014) |
$3$ |
bsd_nthash |
$5$ |
sha256_crypt |
$6$ |
sha512_crypt |
$md5$ |
sun_md5_crypt |
$md5, |
sun_md5_crypt |
$sha1$ |
sha1_crypt |
$apr1$ |
apr_md5_crypt |
$argon2i$ |
argon2 |
$argon2d$ |
argon2 |
$argon2id$ |
argon2 |
$bcrypt-sha256$ |
bcrypt_sha256 |
$P$ |
phpass (WordPress, Joomla) |
$H$ |
phpass (phpBB) |
$pbkdf2$ |
pbkdf2_sha1 |
$pbkdf2-sha256$ |
pbkdf2_sha256 |
$pbkdf2-sha512$ |
pbkdf2_sha512 |
$p5k2$ (ending with =) |
cta_pbkdf2_sha1 |
$p5k2$ (not ending with =) |
dlitz_pbkdf2_sha1 |
$scrypt$ |
scrypt |


Tone.PingPongDelay is a feedback delay effect where the echo is heard first in one channel and next in the opposite channel. In a stereo system these are the right and left channels. PingPongDelay in more simplified terms is two Tone.FeedbackDelays with independent delay values. Each delay is routed to one channel (left or right), and the channel triggered second will always trigger at the same interval after the first.
The delayTime between consecutive echos.
The amount of the effected signal which is fed back through the delay.
var pingPong = new Tone.PingPongDelay("4n", 0.2).toMaster();
var drum = new Tone.DrumSynth().connect(pingPong);
drum.triggerAttackRelease("C4", "32n");
The amount of feedback from the output back into the input of the effect (routed across left and right channels).
The wet control is how much of the effected will pass through to the output. 1 = 100% effected signal, 0 = 100% dry signal.


Nainital - The beautiful lake resort nestles amidst seven hills in a lush valley at an altitude of 1938 meters. In 1841, the British first discovered Nainital as a holiday resort. Today, the town has emerged as one of the most important hill resorts of India.Nainital is a modem hill resort of northern India (336 kms from Delhi) connected by best-aligned and maintained roads from the railhead of Kathgodam.
Auli in the Indian state of Uttarakhand is renowned for the fascinating ski resorts and stunning natural vistas. Bounded by the snowy peaks of the mighty Himalayas, this hilly terrain offers the enchanting sceneries of oak fringed slopes and coniferous forests. At an average height of 2800 meters, this might be the single spot where the visitors would get the unusual opportunity of a nice promenade.
Almora, another popular hill station of Uttarakhand is known as the cultural capital of Kumaon. This town is situated on a 5 km mountain range situated at an altitude of 1,650 m and from a distance its shape resembles a horse shoe. Almora was not discovered and developed by the British, instead it was the seat of power of the Chand Dynasty who ruled the land of Kumaon for almost a millennium.
Jim Corbett National Park is a forested wildlife sanctuary in northern Indiaís Uttarakhand State. Rich in flora and fauna, itís known for its Bengal tigers. Animals, including tigers, leopards and wild elephants, roam the Dhikala zone. On the banks of the Ramganga Reservoir, the Sonanadi zone is home to elephants and leopards, along with hundreds of species of birds.
Jim Corbett National Park is a forested wildlife sanctuary in northern Indiaís Uttarakhand State. Rich in flora and fauna, itís known for its Bengal tigers. Animals, including tigers, leopards and wild elephants, roam the Dhikala zone. On the banks of the Ramganga Reservoir, the Sonanadi zone is home to elephants and leopards, along with hundreds of species of birds.
Jim Corbett National Park is a forested wildlife sanctuary in northern Indiaís Uttarakhand State. Rich in flora and fauna, itís known for its Bengal tigers. Animals, including tigers, leopards and wild elephants, roam the Dhikala zone. On the banks of the Ramganga Reservoir, the Sonanadi zone is home to elephants and leopards, along with hundreds of species of birds.
Jim Corbett National Park is a forested wildlife sanctuary in northern Indiaís Uttarakhand State. Rich in flora and fauna, itís known for its Bengal tigers. Animals, including tigers, leopards and wild elephants, roam the Dhikala zone. On the banks of the Ramganga Reservoir, the Sonanadi zone is home to elephants and leopards, along with hundreds of species of birds.
Rafting is the most popular adventure sport in Uttarakhand. Swift-moving rivers offer a thrilling experience for white water rafters. These rivers flow through deep forests, rocky terrains, mountains and sometimes even along snowy slopes. Stretches along Alaknanda, Dhauliganga and Kali rivers have several challenging rapids. You can opt for a simple half-day tour or a four to five-day experience of rafting. Do make sure you have an experienced guide's services.Choose between simple or expert levels - whether you choose to negotiate fast and furious river currents or to gently float along the hillside.
Paragliding in Uttarakhand will help the tourists to conquer the fear of heights and tourists will have a wonderful experience - something that they can treasure for their life. The most thrilling part of this sport is the boundless freedom in the open sky.
Bungee-Jumping in Rishikesh is a major reason behind magnification of massive tourist crowd from around the world. This adventure-activity is safeguarded and managed by Jump Master of New Zealand. This is Indiaís first giant swing from a fixed platform. The performers jump from a platform at a height of 83 meters above the ground, with their chest harness tied to the platform via ropes.


Rugged - libgit2 bindings in Ruby
=============================
Rugged is a Ruby bindings to the libgit2 linkable C Git library. This is for testing and using the libgit2 library in a language that is awesome.
INSTALLING AND RUNNING
==================
First you need to install libgit2:
$ git clone git://github.com/libgit2/libgit2.git $ cd libgit2 $ mdkir build && cd build $ cmake .. $ make $ make install
Next, you need to install rake-compiler:
$ sudo gem install rake-compiler
Now that those are installed, you can install Rugged:
$ git clone git://github.com/libgit2/rugged.git $ cd rugged $ rake compile $ rake test
API
========
There is a general library for some basic Gitty methods. So far, just converting a raw sha (20 bytes) into a readable hex sha (40 char).
raw = Rugged.hex_to_raw(hex_sha) hex = Rugged.raw_to_hex(20_byte_raw_sha)
Repository Access
There is a Repository class that you can instantiate with a path. This lets you check for objects, read raw object data, write raw object data and get a hash (SHA1 checksum) of what contents would be without writing them out. You also use it to lookup Git objects from it.
Repository is the main repository object that everything else will emanate from.
repo = Rugged::Repository.new(path) ctnt, type = repo.read(sha) gobj = repo.lookup(sha, type[?]) # optional type argument for checking sha = repo.write(content, type) sha = repo.hash(content, type) bool = repo.exists(sha) index = repo.index
The ‘path’ argument must point to an actual git repository folder. The library will automatically guess if it’s a bare repository or a ’.git’ folder inside a working repository, and locate the working path accordingly.
Object Access
Object is the main object class - it shouldn’t be created directly, but all of these methods should be useful in it’s derived classes
object = # Constructor is inherited by all the repository objects # 'sha' is the ID of the object; # 'repo' is the repository where the object resides # If both 'sha' and 'repo' exist, the object will be looked up on # the repository and instantiated # If the 'sha' ID of the object is missing, the object will be # created in memory and can be written later on to the repository Rugged::Object.new(repo, sha) obj.oid obj.type str = obj.read_raw # read the raw data of the object
The next classes are for consuming and creating the 4 base git object types. Just about every method should be able to take a parameter to change the value so the object can be re-written slightly different or no parameter to simply read the current value out.
gobjc = Rugged::Commit.new # Rugged::Commit.new < Rugged::Object str = gobjc.message str = gobjc.message_short str = gobjc.message_body # TODO prsn = gobjc.author prsn = gobjc.committer gobjr = gobjc.tree sha = gobjc.tree_sha arr = gobjc.parents [*] # TODO: write gobtg = Rugged::Tag.new # Rugged::Tag.new < Rugged::Object gobj = gobtg.target int = gobtg.target_type str = gobtg.name prsn = gobtg.tagger str = gobtg.message gobtr = Rugged::Tree.new # Rugged::Tree.new < Rugged::Object gobtr.add(ent) # TODO gobtr.remove(name) # TODO int = gobtr.entry_count ent = gobtr.get_entry ent = Rugged::TreeEntry.new(attributes, name, sha) int = ent.attributes str = ent.name sha = ent.sha gobj = ent.to_object
// * Person information is returned as a hash table
Commit Walker
There is also a Walker class that currently takes a repo object. You can push head SHAs onto the walker, then call next to get a list of the reachable commit objects, one at a time. You can also hide() commits if you are not interested in anything beneath them (useful for a `git log master ^origin/master` type deal).
walker = Rugged::Walker.new(repo) walker.walk { |c| puts c.inspect } # walk is just an alias of each walker.each { |c| puts c.inspect } walker.push(hex_sha_interesting) walker.hide(hex_sha_uninteresting) walker.reset
Index/Staging Area
We can inspect and manipulate the Git Index as well. To work with the index inside of an existing repository, instantiate it by using the `Repository.index` method instead of manually opening the Index by its path.
# TODO: the remove and add functions immediately flush to the index file on disk index = Rugged::Index.new(path) index.reload # re-read the index file from disk int = index.count # count of index entries index.entries # collection of index entries index.each { |i| puts i.inspect } ent = index.get_entry(i/path) index.remove(i/path) index.add(ientry) # also updates existing entry if there is one index.add(path) # create ientry from file in path, update index #TODO index.read_tree(gobtr, path='/') #TODO index.write_tree
Index Status # TODO
#TODO index.status # how does the index differ from the work tree and the last commit # >> pp stat # [ ['file1', :staged], # ['file2', :modified], # ['file3', :deleted], # ['file4', :untracked], # ['file4', :unmerged], # ]
Ref Management # TODO
The RefList class allows you to list, create and delete packed and loose refs.
list = Rugged::RefList.new(repo) ref = list.head # can retrieve and set HEAD with this - returns ref obj or commit obj if detatched array = list.list([type]) # type is 'heads', 'tags', 'remotes', 'notes', et list.add(oref) list.pack list.unpack oref = Rugged::Ref.new(ref, sha) br.name # master br.ref # refs/heads/master br.type # heads br.object br.sha br.delete br.save
Config Management # TODO
conf = Rugged::Config.new(repo) hash = conf.list([section]) val = conf.get(key, [scope]) bool = conf.set(key, value, [scope]) # scope is 'local'(default), 'global', 'system'
Client Transport # TODO
client = Rugged::Client.new(repo) summry = client.fetch(url, [refs]) summry = client.push(url, refs) refs = client.refs(url) # ls-remote
Remote Management # TODO
remlist = Rugged::RemoteList.new(repo) array = remlist.list rem = remlist.add(alias, url) rem = Rugged::Remote.new(repo) summry = rem.fetch([refs]) summry = rem.push(refs) summry = rem.remove(refs) bool = rem.delete heads = rem.heads
Server Transport # TODO
server = Rugged::Server.new server.listen(port = 8080, ip = <IP_ADDRESS>) server.export_repo(path/repo) server.export_path(path)
TODO
========
I will try to keep this up to date with the working public API available in the libgit2 linkable library. Whatever is available there should be here as well. The latest libgit2 commit known to link and build successfully will be listed in the LIBGIT2_VERSION file.
CONTRIBUTING
========
Fork libgit2/rugged on GitHub, make it awesomer (preferably in a branch named for the topic), send a pull request.
AUTHORS
========
- Scott Chacon
- Vicent Marti
========
MIT. See LICENSE file.


My inquisitive nature and passion for the field of business analytics has drawn me to pursue my 2nd Masters in information technology concentration in Business Analytics. My academic credentials include a Bachelor’s of Science in Information Technology, a Master’s of Science in Information Technology and a Diploma in Software Testing. I also did an internship with Software Development Company for 3 months. I’m familiar with HTML, CSS, Bootstrap, Tableau, C#, ASP.Net, XLminer, QLIKVIEW, Selenium, Quick Test Pro (UFT), Load Runner, Quality Center (ALM) 11.0, Oracle RDBS, MS-Access, M.S. Visual Studio, SQL Server. Computer Science is my passion and I have always been intrigued by the field of business analytics. I strongly believe that opportunity to research in this field will provide me a well-rounded skill set and put me on the path to achieve my career goals. My key areas of interest are Statistical Models in Business and understanding the impacts of statistical method on day to day business applications. I aspire to learn the techniques of analyzing an organization or a business domain, document its processes.
Graduate Research Assistant(September 2020 - Present)
• Researched information regarding "Stock market Analysis" to assist professors with academic pursuits with the help of web scraping
• Gathered, reviewed, and summarized literature from journals via IEEE and Google Scholar.
• Created a neural network with the help of Python for Predicting the data in Colab workbook.
• Created data visualization with the help of Tableau.
• Analyzed acquired information and presented to professors.
• Assisted Professor with data collection and performed ETL via tableau.
• Validated incoming data to check information accuracy and integrity while independently locating and correcting concerns.
• Summarized search results by preparing written reports, graphs, fact sheets and tables
Studnet Assistant Library(September 2020 - Present)
• Responsible for, first and foremost, for excellent customer service to library patrons and staff.
• Perform task and functions of the circulation desk, and report directly to the coordinator of library access service.
• Straighten, shifts and manage book stacks and periodic shelves.
• Assist in the check-out and check-in of library material using WorldShare Platform.
Private Tutor, Office of Disability Services( January 2020 - May 2020)
Responsible for teaching a visually impaired student Software Engineering as a course requirement.
Student Intern( September 2016 - December 2016)
● Performed error solving and bug fixing on code via MS Visual Studio.
● Performed Regression testing on the code by using Selenium.
Southfield Michigan, USA(August 2019 - Present)
Master's of Science •Information Technology
Specialization in Business Analytics.
GPA:-3.92
Completed Courses
Current Courses
Mumbai ,Maharashtra,India(August 2016 - July 2018)
Master's Of Science in Information Technology
GPA:-3.60
Mumbai ,Maharashtra,India(August 2013 - May 2016)
Bachelor’s Of Science in Information Technology
GPA:-3.05
I'm looking for new opportunities to enhance my career in the field of Data Analytics. My inbox is always open. Whether you have a question or just want to say hi, I'll try my best to get back to you!
+19104763594


| Created: | 1/27/2021 3:53:37 PM |
| Modified: | 1/27/2021 3:53:37 PM |
| Project: | |
| Advanced: |
| Attribute |
|
Public serial id |
|
Details:
|
|
Public varchar(255) report_field |
|
Details:
|
|
Public varchar(255) report |
|
Details:
|
|
Public json report_config |
|
Details:
|
|
Public timestamp with time zone(0) start_date |
|
Details:
|
|
Public timestamp with time zone(0) end_date |
|
Details:
|
|
Public varchar(255) created_by |
|
Details:
|
|
Public varchar(255) updated_by |
|
Details:
|
|
Public timestamp with time zone(0) created_at |
|
Details:
|
|
Public timestamp with time zone(0) updated_at |
|
Details:
|
|
Public varchar(255) report_category |
|
Details:
|
|
Public varchar(255) report_id |
|
Details:
|
| Operation | ||
|
Public report_associations_pkey( id: serial, |
||
|
Details:
<<PK>>
|
| Tag | Value |
| Owner | public |
|
Details:
|
| Property | Value |
| isFinalSpecialization: | 0 |


EVE Track can be best described as an EVE Online API viewer, it enables you to view your EVE Online character information without having to log into the game.
My goal is to provide you with a simple-to-use API viewer while still providing a lot of information about your character(s).
For optimal use of this website, I encourage you to create an account.
This will enable you to save multiple characters and quickly access their data.
Don't worry, it's safe!
The source code of this website is publicly available on
GitHub,
so feel free to nose around and discover how it all works.


Teller
Part Time
Thohoyandou, Limpopo
R10 000
22 Nov 17 - 21 Mar 18
Students say they love feedback but they don't always use it. Check out our nine free lesson plans that will provide inspiration for approaching writing instruction for back-to-school. Students say they love feedback but they don't always use it. Check out our nine free lesson plans that will provide inspiration for approaching writing instruction for back-to-school. Students say they love feedback but they don't always use it. Check out our nine free lesson plans that will provide inspiration for approaching writing instruction for back-to-school. Students say they love feedback but they don't always use it. Check out our nine free lesson plans that will provide inspiration for approaching writing instruction for back-to-school.


Juneau Cloud Microservice API
Table of Contents
Microservice Introduction
Getting Started
Installing in Eclipse
Running in Eclipse
Building and Running from Command-Line
Manifest File
Manifest API
Config File
Config File API
Resource Classes
RestMicroservice
Extending RestMicroservice
1 - Microservice Introduction
The Juneau Cloud Microservice is an API for creating stand-alone executable jars that can be used to
start lightweight configurable REST interfaces with all the power of the Juneau REST server and client APIs.
The Microservice API consists of a combination of the Juneau Core, Server, and Client APIs and an embedded
Eclipse Jetty Servlet Container. It includes all libraries needed to execute in a Java 1.6+ environment.
Features include:
-
An out-of-the-box zipped Eclipse project to get started quickly.
-
Packaged as a simple executable jar and configuration file.
-
All the power of the Juneau Cloud Tools for defining REST servlets and clients with the ability to
serialize and parse POJOs as HTML, JSON, XML, RDF, URL-Encoding, and others.
-
An extensible API that allows you to hook into various lifecycle events.
-
Simple-to-use APIs for accessing manifest file entries, command-line arguments, and external configuration
file properties.
-
Predefined REST resources for configuring microservice and accessing log files.
2 - Getting Started
The microservice-project.zip file is a zipped eclipse project that includes everything you
need to create a REST microservice in an Eclipse workspace.
2.1 - Installing in Eclipse
Follow these instructions to create a new template project in Eclipse.
-
Download the latest microservice-project zip file (e.g. microservice-project-5.2.zip).
-
In your Eclipse workspace, go to File->Import->General->Existing Projects into Workspace
and click Next.
-
Select the zip file and click Finish.
-
In your workspace, you should now see the following project:
The important elements in this project are:
-
META-INF/MANIFEST.MF - The manifest file.
This defines the entry point, classpath, top-level REST resources, and location of external
configuration file.
Main-Class: org.apache.juneau.microservice.RestMicroservice
Rest-Resources:
org.apache.juneau.microservice.sample.RootResources
Main-ConfigFile: microservice.cfg
Class-Path:
lib/commons-codec-1.9.jar
lib/commons-io-1.2.jar
lib/commons-logging-1.1.1.jar
lib/httpclient-4.5.jar
lib/httpcore-4.4.1.jar
lib/httpmime-4.5.jar
lib/javax.servlet-api-3.0.jar
lib/jetty-all-8.1.0.jar
lib/juneau-all-5.2.jar
lib/org.apache.commons.fileupload_1.3.1.jar
-
RestMicroservice.java - The application class.
This is a specialized microservice in Juneau for exposing REST servlets.
-
RootResources.java - The top-level REST resource.
This class routes HTTP requests to child resources:
/**
* Root microservice page.
*/
@RestResource(
path="/",
title="Juneau Microservice Template",
description="Template for creating REST microservices",
properties={
@Property(name=HTMLDOC_navlinks, value="{options:'?method=OPTIONS'}")
},
children={
HelloWorldResource.class,
ConfigResource.class,
LogsResource.class
}
)
public class RootResources extends ResourceGroup {
// No actual code!
}
-
microservice.cfg - The external configuration file.
A deceivingly simple yet powerful INI-style configuration file:
#================================================================================
# Basic configuration file for SaaS microservices
# Subprojects can use this as a starting point.
#================================================================================
#================================================================================
# REST settings
#================================================================================
[REST]
# The HTTP port number to use.
# Default is Rest-Port setting in manifest file, or 8000.
port = 10000
...
At this point, you're ready to start the microservice from your workspace.
2.2 - Running in Eclipse
The microservice-project.launch file is already provided to allow you to quickly start
your new microservice.
Go to Run->Run Configurations->Java Application->microservice-project and click Run.
In your console view, you should see the following output:
Now open your browser and point to http://localhost:10000.
You should see the following:
You have started a REST interface on port 10000.
2.3 - Building and Running from Command Line
The build.xml file is a very basic ANT script for creating your microservice
as an executable jar.
To build your microservice, right-click on build.xml and select Run As->Ant Build.
Once complete (which should only take about 1 second), if you refresh your project, you should see the
following new directory:
If you open up a command prompt in the build/microservice folder, you can start your microservice as
follows:
If you get this error message: java.net.BindException: Address already in use
,
then this microservice is already running elsewhere and so it cannot bind to port 10000.
3 - Manifest File
The META-INF/MANIFEST.MF file is used to describe the microservice.
If you open it, you'll see the following:
Main-Class: org.apache.juneau.microservice.RestMicroservice
Rest-Resources:
org.apache.juneau.microservice.sample.RootResources
Main-ConfigFile: microservice.cfg
Class-Path:
lib/commons-codec-1.9.jar
lib/commons-io-1.2.jar
lib/commons-logging-1.1.1.jar
lib/httpclient-4.5.jar
lib/httpcore-4.4.1.jar
lib/httpmime-4.5.jar
lib/javax.servlet-api-3.0.jar
lib/jetty-all-8.1.0.jar
lib/juneau-all-5.2.jar
lib/org.apache.commons.fileupload_1.3.1.jar
The Main-Class entry is the standard manifest entry describing the entry point for the executable jar.
In most cases, this value will always be org.apache.juneau.microservice.RestMicroservice.
However, it is possible to extend this class or implement your own microservice, in which case you'll need
to modify this value to point to the new class.
The Rest-Resources entry is a comma-delimited list of REST resources.
These are classes that subclass from either {@link org.apache.juneau.microservice.Resource} or
{@link org.apache.juneau.microservice.ResourceGroup}.
This is a specialized entry when using org.apache.juneau.microservice.RestMicroservice.
In most cases, you'll want to specify a single top-level "grouping" REST resource mapped to "/" that
extends from {@link org.apache.juneau.microservice.ResourceGroup} so that you can define multiple child
resources.
In this case, we're pointing to a resource defined in our project:
org.apache.juneau.microservice.sample.RootResources.
The Main-ConfigFile entry points to the location of an external configuration file for our microservice.
The Class-Path entry is the standard manifest file entry.
However, if you need to add extra libraries to your microservice, you'll need to copy them into your lib
directory and add them to the classpath here.
Other manifest file entries are also provided:
-
Rest-Port - The HTTP port to use. Default is 10000.
-
Rest-ContextPath - The servlet context path. Default is "/".
-
Rest-AuthType - Authentication support.
Possible values are "NONE" and "BASIC".
Default is "NONE".
Used with the following additional settings:
- Rest-LoginUser
- Rest-LoginPassword
- Rest-AuthRealm
In addition to these predefined manifest entries, you can add your own particular entries to the manifest file
and access them through the Manifest API described next.
3.1 - Manifest API
The {@link org.apache.juneau.microservice.Microservice#getManifest()} method is a static method that
can be used to retrieve the manifest file as an {@link org.apache.juneau.ObjectMap}.
// Get Main-Class from manifest file.
String mainClass = Microservice.getManifest().getString("Main-Class", "unknown");
// Get Rest-Resources from manifest file.
String[] restResources = Microservice.getManifest().getStringArray("Rest-Resources");
Since this method returns an {@link org.apache.juneau.ObjectMap}, it's possible to retrieve entries as a
wide variety of object types such as java primitives, arrays, collections, maps, or even POJOs serialized
as JSON.
4 - Config File
The microservice config file is an external INI-style configuration file that is used to configure
your microservice.
If you open the microservice.cfg file, you'll see several predefined sections and settings.
#================================================================================
# Basic configuration file for SaaS microservices
# Subprojects can use this as a starting point.
#================================================================================
#================================================================================
# REST settings
#================================================================================
[REST]
# The HTTP port number to use.
# Can be a comma-delimited list of ports to try.
# 0 means try a random port.
# Default is Rest-Port setting in manifest file, or 8000.
port = 10000
# A JSON map of servlet paths to servlet classes.
# Example:
# resourceMap = {'/*':'com.foo.MyServlet'}
# Either resourceMap or resources must be specified.
resourceMap =
# A comma-delimited list of names of classes that extend from Servlet.
# Resource paths are pulled from @RestResource.path() annotation, or
# "/*" if annotation not specified.
# Example:
# resources = com.foo.MyServlet
# Default is Rest-Resources in manifest file.
# Either resourceMap or resources must be specified.
resources =
# The context root of the Jetty server.
# Default is Rest-ContextPath in manifest file, or "/".
contextPath =
# Authentication: NONE, BASIC.
authType = NONE
# The BASIC auth username.
# Default is Rest-LoginUser in manifest file.
loginUser =
# The BASIC auth password.
# Default is Rest-LoginPassword in manifest file.
loginPassword =
# The BASIC auth realm.
# Default is Rest-AuthRealm in manifest file.
authRealm =
# Stylesheet to use for HTML views.
# The default options are:
# - styles/juneau.css
# - styles/devops.css
# Other stylesheets can be referenced relative to the servlet package or working
# directory.
stylesheet = styles/devops.css
# What to do when the config file is saved.
# Possible values:
# NOTHING - Don't do anything.
# RESTART_SERVER - Restart the Jetty server.
# RESTART_SERVICE - Shutdown and exit with code '3'.
saveConfigAction = RESTART_SERVER
# Enable SSL support.
useSsl = false
#================================================================================
# Bean properties on the org.eclipse.jetty.util.ssl.SslSocketFactory class
#--------------------------------------------------------------------------------
# Ignored if REST/useSsl is false.
#================================================================================
[REST-SslContextFactory]
keyStorePath = client_keystore.jks
keyStorePassword* = {HRAaRQoT}
excludeCipherSuites = TLS_DHE.*, TLS_EDH.*
excludeProtocols = SSLv3
allowRenegotiate = false
#================================================================================
# Logger settings
# See FileHandler Java class for details.
#================================================================================
[Logging]
# The directory where to create the log file.
# Default is "."
logDir = logs
# The name of the log file to create for the main logger.
# The logDir and logFile make up the pattern that's passed to the FileHandler
# constructor.
# If value is not specified, then logging to a file will not be set up.
logFile = microservice.%g.log
# Whether to append to the existing log file or create a new one.
# Default is false.
append =
# The SimpleDateFormat format to use for dates.
# Default is "yyyy.MM.dd hh:mm:ss".
dateFormat =
# The log message format.
# The value can contain any of the following variables:
# {date} - The date, formatted per dateFormat.
# {class} - The class name.
# {method} - The method name.
# {logger} - The logger name.
# {level} - The log level name.
# {msg} - The log message.
# {threadid} - The thread ID.
# {exception} - The localized exception message.
# Default is "[{date} {level}] {msg}%n".
format =
# The maximum log file size.
# Suffixes available for numbers.
# See ConfigFile.getInt(String,int) for details.
# Default is 1M.
limit = 10M
# Max number of log files.
# Default is 1.
count = 5
# Default log levels.
# Keys are logger names.
# Values are serialized Level POJOs.
levels = { org.apache.juneau:'INFO' }
# Only print unique stack traces once and then refer to them by a simple 8 character hash identifier.
# Useful for preventing log files from filling up with duplicate stack traces.
# Default is false.
useStackTraceHashes = true
# The default level for the console logger.
# Default is WARNING.
consoleLevel =
#================================================================================
# System properties
#--------------------------------------------------------------------------------
# These are arbitrary system properties that are set during startup.
#================================================================================
[SystemProperties]
# Configure Jetty for StdErrLog Logging
org.eclipse.jetty.util.log.class = org.eclipse.jetty.util.log.StrErrLog
# Jetty logging level
org.eclipse.jetty.LEVEL = WARN
-
The predefined config file includes all settings for instructional purposes.
In your microservice, you can remove all lines from your config file that have default values.
Although the config file looks deceptively simple, the config file API is a very powerful feature with many
capabilities, including:
-
The ability to use variables to reference environment variables, system properties, other config file
entries, and a host of other types.
-
The ability to store and retrieve POJOs as JSON.
-
APIs for updating, modifying, and saving configuration files without losing comments or formatting.
-
Extensive listener APIs.
Examples:
#--------------------------
# My section
#--------------------------
[MySection]
# An integer
anInt = 1
# A boolean
aBoolean = true
# An int array
anIntArray = 1,2,3
# A POJO that can be converted from a String
aURL = http://foo
# An encoded password
aPassword* = {HRAaRQoT}
# A POJO that can be converted from JSON
aBean = {foo:'bar',baz:123}
# A system property
locale = $S{java.locale, en_US}
# An environment variable
path = $E{PATH, unknown}
# A manifest file entry
mainClass = $MF{Main-Class}
# Another value in this config file
sameAsAnInt = $C{MySection/anInt}
# A command-line argument in the form "myarg=foo"
myArg = $ARG{myarg}
# The first command-line argument
firstArg = $ARG{0}
# Look for system property, or env var if that doesn't exist, or command-line arg if that doesn't exist.
nested = $S{mySystemProperty,$E{MY_ENV_VAR,$ARG{0}}}
# A POJO with embedded variables
aBean2 = {foo:'$ARG{0}',baz:$C{MySection/anInt}}
// Java code for accessing config entries above.
ConfigFile cf = Microservice.getConfig();
int anInt = cf.getInt("MySection/anInt");
boolean aBoolean = cf.getBoolean("MySection/aBoolean");
int[] anIntArray = cf.getObject(int[].class, "MySection/anIntArray");
URL aURL = cf.getObject(URL.class, "MySection/aURL");
String aPassword = cf.getString("MySection/aPassword");
MyBean aBean = cf.getObject(MyBean.class, "MySection/aBean");
Locale locale = cf.getObject(Locale.class, "MySection/locale");
String path = cf.getString("MySection/path");
String mainClass = cf.getString("MySection/mainClass");
int sameAsAnInt = cf.getInt("MySection/sameAsAnInt");
String myArg = cf.getString("MySection/myArg");
String firstArg = cf.getString("MySection/firstArg");
Additional Information
4.1 - Config File API
There are 3 primary ways of getting access to the config file.
-
{@link org.apache.juneau.microservice.Microservice#getConfig()}
- A static method that can be used to access the config file from anywhere in your application.
When using this method, any of the following variables can be resolved:
- $S{key}, $S{key,default} - System properties.
- $E{key}, $E{key,default} - Environment variables.
- $C{key}, $C{key,default} - Config file entries.
- $MF{key}, $MF{key,default} - Manifest file entries.
- $ARG{key}, $ARG{key,default} - Command-line arguments.
Additional user-defined variables can be defined by overriding the
{@link org.apache.juneau.microservice.Microservice#createVarResolver()} method
and using the {@link org.apache.juneau.rest.RestContextBuilder#vars(Class...)} method.
-
{@link org.apache.juneau.rest.RestContext#getConfigFile()}
- An instance method to access it from inside a REST servlet.
The following variables are available in addition to the variables defined above:
- $I{key}, $I{key,default} - Servlet initialization parameters.
#-------------------------------
# Properties for MyHelloResource
#-------------------------------
[MyHelloResource]
greeting = Hello world!
@RestResource(...)
public class MyHelloResource extends Resource {
// Access config file when initializing fields.
private String greeting = getConfig().getString("MyHelloResource/greeting");
// Or access config file in servlet init method.
@Override /* Servlet */
public void init() {
String greeting = getConfig().getString("MyHelloResource/greeting");
}
}
Additional user-defined variables can be defined at this level by adding a
{@link org.apache.juneau.rest.annotation.HookEvent#INIT} hook method
and using the {@link org.apache.juneau.rest.RestContextBuilder#vars(Class...)} method.
-
{@link org.apache.juneau.rest.RestRequest#getConfigFile()}
- An instance method to access it from inside a REST method.
The following variables are available in addition to the variables defined above:
- $L{key}, $L{key,args} - Localized variables pulled from
{@link org.apache.juneau.rest.RestRequest#getMessage(String, Object...)}.
- $RA{key1,[key2...]} - Request attribute variables.
- $RF{key1,[key2...]} - Request form data variables.
- $RH{key1,[key2...]} - Request header variables.
- $RP{key1,[key2...]} - Request path variables.
- $RQ{key1,[key2...]} - Request query parameter variables.
- $R{key1,[key2...]} - Other request variables.
- $SA{key,mediaType} - Object returned by {@link org.apache.juneau.rest.RestRequest#getAttribute(String)} converted to a string using the serializer registered to handle the specified media type.
- $UE{...} - URL-Encode the specified value.
#-----------------------------
# Contents of microservice.cfg
#-----------------------------
[MyHelloResource]
greeting = Hello $RP{person}!
localizedGreeting = $L{HelloMessage,$RP{person}}
#---------------------------------
# Contents of MyHelloResource.java
#---------------------------------
@RestResource(
path="/hello",
messages="nls/Messages",
...
)
public class MyHelloResource extends Resource {
/** Standard hello message. */
@RestMethod(name=GET, path="/{person}")
public String sayHello(RestRequest req) {
return req.getConfig().getString("MyHelloResource/greeting");
}
/** Hello message in users language. */
@RestMethod(name=GET, path="/localized/{person}")
public String sayLocalizedHello(RestRequest req) {
return req.getConfig().getString("MyHelloResource/localizedGreeting");
}
}
#---------------------------------------
# Contents of nls/Messages_en.properties
#---------------------------------------
MyHelloResource.HelloMessage = Hello {0}!
Additional user-defined variables can be defined at this level by overriding the
{@link org.apache.juneau.rest.RestContextBuilder#vars(Class...)} method.
That sayLocalizedHello() example might need some explanation since there's a lot going on there.
Here's what happens when an HTTP call is made to GET /hello/localized/Bob:
-
The HTTP call matches the /hello path on the MyHelloResource class.
-
The HTTP call matches the /localized/{person} path on the sayLocalizedHello() method.
-
The request attribute person gets assigned the value "Bob".
-
The call to req.getConfig().getString("MyHelloResource/localizedGreeting")
finds the value "$L{HelloMessage,$RP{person}}".
-
The arguments in the $L{} variable get resolved, resulting in "$L{HelloMessage,Bob}".
-
The $L{} variable gets resolved to the message "Hello {0}!" in the localized properties
file of the servlet based on the Accept-Language header on the request.
-
The arguments get replaced in the message resulting in "Hello Bob!".
-
The resulting message "Hello Bob!" is returned as a POJO to be serialized to whatever content
type was specified on the Accept header on the request.
This particular example is needlessly complex, but it gives an idea of how variables can be used
recursively to produce sophisticated results
5 - Resource Classes
Now let's take a look at the resource classes themselves.
The top-level page:
...is generated by this class...
/**
* Root microservice page.
*/
@RestResource(
path="/",
title="Juneau Microservice Template",
description="Template for creating REST microservices",
properties={
@Property(name=HTMLDOC_navlinks, value="{options:'?method=OPTIONS'}")
},
children={
HelloWorldResource.class,
ConfigResource.class,
LogsResource.class
}
)
public class RootResources extends ResourceGroup {
private static final long serialVersionUID = 1L;
}
-
The label and description annotations define the titles on the page.
These can be globalized using $L{...} variables, or by defining specially-named properties in the
properties file for the resource.
-
In this case, the path annotation defines the context root of your application since it was
not specified in the manifest or config file.
Therefore, this resource is mapped to http://localhost:10000.
-
The children annotation make up the list of child resources.
These child resources can be anything that extends from Servlet, although usually
they will be subclasses of {@link org.apache.juneau.microservice.Resource} or other resource groups.
If you click the helloWorld link in your application, you'll get a simple hello world message:
...which is generated by this class...
/**
* Sample REST resource that prints out a simple "Hello world!" message.
*/
@RestResource(
path="/helloWorld",
title="Hello World example",
description="Simplest possible REST resource"
)
public class HelloWorldResource extends Resource {
/** GET request handler */
@RestMethod(name=GET, path="/*")
public String sayHello() {
return "Hello world!";
}
}
The {@link org.apache.juneau.microservice.Resource} and {@link org.apache.juneau.microservice.ResourceGroup}
classes are powerful servlets designed specifically for creating REST APIs using nothing more than serialized
and parsed POJOs.
Additional Information
6 - RestMicroservice
The {@link org.apache.juneau.microservice.RestMicroservice} class is the main application entry-point for REST
microservices.
The class hierarchy is:
-
{@link org.apache.juneau.microservice.Microservice}
- Abstract class that defines simple start/stop methods and access to the manifest file, config file, and
arguments.
-
{@link org.apache.juneau.microservice.RestMicroservice}
- Specialized microservice for starting up REST interfaces using Jetty and specifying REST servlets
through the manifest file or config file.
Refer to the Javadocs for these class for more information.
6.1 - Extending RestMicroservice
This example shows how the {@link org.apache.juneau.microservice.RestMicroservice} class
can be extended to implement lifecycle listener methods or override existing methods.
We'll create a new class com.foo.SampleCustomRestMicroservice.
First, the manifest file needs to be modified to point to our new microservice:
Main-Class: com.foo.SampleCustomRestMicroservice
Then we define the following class:
/**
* Sample subclass of a RestMicroservice that provides customized behavior.
* This class must be specified in the Main-Class entry in the manifest file and optionally
* a Main-ConfigFile entry.
*/
public class SampleCustomRestMicroservice extends RestMicroservice {
/**
* Must implement a main method and call start()!
*/
public static void main(String[] args) throws Exception {
new SampleCustomRestMicroservice(args).start();
}
/**
* Must implement a constructor!
*
* @param args Command line arguments.
* @throws Exception
*/
public SampleCustomRestMicroservice(String[] args) throws Exception {
super(args);
}
//--------------------------------------------------------------------------------
// Methods on Microservice that can be overridden and customized.
//--------------------------------------------------------------------------------
@Override /* Microservice */
protected void start() throws Exception {
super.start();
}
@Override /* Microservice */
public void stop() {
super.stop();
}
@Override /* Microservice */
public void kill() {
super.kill();
}
@Override /* Microservice */
public void onStart() {
System.err.println("onStart() called!");
}
@Override /* Microservice */
public void onStop() {
System.err.println("onStop() called!");
}
//--------------------------------------------------------------------------------
// Methods on RestMicroservice that can be overridden and customized.
//--------------------------------------------------------------------------------
@Override /* RestMicroservice */
protected void initLogging() throws Exception {
super.initLogging();
}
@Override /* RestMicroservice */
protected Server createServer() throws Exception {
return super.createServer();
}
@Override /* RestMicroservice */
protected void startServer() throws Exception {
super.startServer();
}
@Override /* RestMicroservice */
protected void onCreateServer() {
System.err.println("onCreateServer() called!");
}
@Override /* RestMicroservice */
protected void onStartServer() {
System.err.println("onStartServer() called!");
}
@Override /* RestMicroservice */
protected void onPostStartServer() {
System.err.println("onPostStartServer() called!");
}
@Override /* RestMicroservice */
protected void onStopServer() {
System.err.println("onStopServer() called!");
}
@Override /* RestMicroservice */
protected void onPostStopServer() {
System.err.println("onPostStopServer() called!");
}
}


As a future jobseeker, I want to expand my repetoire of technical skills to further my career opportunities.


'Rising demand': Thane mayor writes to CM, seeks additional Covid vaccine doses
In view of the "rising demand" from people, Thane Mayor Naresh Mhaske has urged Maharashtra Chief Minister Uddhav Thackeray to supply more doses of anti-Covid jabs.
'Rising demand': Thane mayor writes to CM, seeks additional Covid vaccine doses
In view of the "rising demand" from people, Thane Mayor Naresh Mhaske has urged Maharashtra Chief Minister Uddhav Thackeray to supply more doses of anti-Covid jabs.
'Rising demand': Thane mayor writes to CM, seeks additional Covid vaccine doses
In view of the "rising demand" from people, Thane Mayor Naresh Mhaske has urged Maharashtra Chief Minister Uddhav Thackeray to supply more doses of anti-Covid jabs.


Welcome to the Build.Tools project.
Convention driven .net builds scripts written in F#.
How To Use
We pull this repository into other repositories for building using Paket GitHub dependencies
By adding this dependency, you automatically (though paket magic) get FAKE.
Assuming the paket bootstrapper is in a .paket folder & your solution file is in the root of src, you can then have a build script which contains:
.paket\paket.bootstrapper.exe --run restore
packages\FAKE\tools\FAKE.exe paket-files\15below\Build.Tools\Core.fsx "solution=src\MySolution.sln"
You can customise any of the .fsx files and copy them into "paket-files\15below\Build.Tools" as part of your build script.
What does it do?
- Restores NuGet or Paket dependencies
- Updates assembly and nuget package versions (including setting pre-release NuGet versions if you're not building from the master branch on the build server)
- Builds your solution
- Packs any nuspec files associated with project files in the repository
- Runs NUnit tests in dlls named *.Tests.dll (if there are any)
- Runs a set of SpecFlow features in a dll named *.Features.dll (if there is one)
- Pushes nupkg files to a NuGet server (only if running on a build server)
Why does it exist?
If you're using NuGet/Paket and practice TDD, BDD or both your build workflow nearly always ends up looking very similar to the above. Rather than rewrite it again and again for every project, we decided to set up one project to rule them all, and in the darkness bind them.
Wait... did we say that out loud?
What's it based on?
Like most open source projects, we're building on the shoulders of giants. In this case, the excellent FAKE (which we also contribute to).
Support or Contact
Documentation can be found in the repository wiki.


Here's the brilliant new Microsoft Flight Simulator trailer
Sky plus.
News by Tom Phillips, News Editor Updated on 15 November 2019
I have watched last night's Microsoft Flight Simulator gameplay trailer numerous times today and gosh, what a majestic thing this game looks to be.
So, yes, I could give you the press release spiel: Microsoft has now confirmed a bunch of aeroplane companies it will officially license planes from: Airbus, Boeing, CubCrafters, Daher, Diamond Aircraft Industries, ICON Aircraft, Robin Aircraft and Textron Aviation.
Or you could just watch the trailer a couple more times and marvel at its astonishing recreation of the planet below.
Crank this up to full screen and 4K.