text:
#pragma once

#include "devioctl.h"

//
// Interface GUIDs
//
// need these GUIDs outside conditional includes so that user can
//   #include <ntddstor.h> in precompiled header
//   #include <initguid.h> in a single source file
//   #include <ntddstor.h> in that source file a second time to instantiate the GUIDs
//
#ifdef DEFINE_GUID
//
// Make sure FAR is defined...
//
#ifndef FAR
#ifdef _WIN32
#define FAR
#else
#define FAR _far
#endif
#endif

// begin_wioctlguids
DEFINE_GUID(GUID_DEVINTERFACE_DISK,                   0x53f56307L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
DEFINE_GUID(GUID_DEVINTERFACE_CDROM,                  0x53f56308L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
DEFINE_GUID(GUID_DEVINTERFACE_PARTITION,              0x53f5630aL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
DEFINE_GUID(GUID_DEVINTERFACE_TAPE,                   0x53f5630bL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
DEFINE_GUID(GUID_DEVINTERFACE_WRITEONCEDISK,          0x53f5630cL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
DEFINE_GUID(GUID_DEVINTERFACE_VOLUME,                 0x53f5630dL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
DEFINE_GUID(GUID_DEVINTERFACE_MEDIUMCHANGER,          0x53f56310L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
DEFINE_GUID(GUID_DEVINTERFACE_FLOPPY,                 0x53f56311L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
DEFINE_GUID(GUID_DEVINTERFACE_CDCHANGER,              0x53f56312L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT,            0x2accfe60L, 0xc130, 0x11d2, 0xb0, 0x82, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
// end_wioctlguids

// begin_wioctlobsoleteguids
#define DiskClassGuid               GUID_DEVINTERFACE_DISK
#define CdRomClassGuid              GUID_DEVINTERFACE_CDROM
#define PartitionClassGuid          GUID_DEVINTERFACE_PARTITION
#define TapeClassGuid               GUID_DEVINTERFACE_TAPE
#define WriteOnceDiskClassGuid      GUID_DEVINTERFACE_WRITEONCEDISK
#define VolumeClassGuid             GUID_DEVINTERFACE_VOLUME
#define MediumChangerClassGuid      GUID_DEVINTERFACE_MEDIUMCHANGER
#define FloppyClassGuid             GUID_DEVINTERFACE_FLOPPY
#define CdChangerClassGuid          GUID_DEVINTERFACE_CDCHANGER
#define StoragePortClassGuid        GUID_DEVINTERFACE_STORAGEPORT
// end_wioctlobsoleteguids
#endif

// begin_winioctl

#ifndef _NTDDSTOR_H_
#define _NTDDSTOR_H_

#ifdef __cplusplus
extern "C" {
#endif

//
// IoControlCode values for storage devices
//

#define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE

//
// The following device control codes are common for all class drivers.  They
// should be used in place of the older IOCTL_DISK, IOCTL_CDROM and IOCTL_TAPE
// common codes
//

#define IOCTL_STORAGE_CHECK_VERIFY            CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_STORAGE_CHECK_VERIFY2           CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_MEDIA_REMOVAL           CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_STORAGE_EJECT_MEDIA             CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_STORAGE_LOAD_MEDIA              CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_STORAGE_LOAD_MEDIA2             CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_RESERVE                 CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_STORAGE_RELEASE                 CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_STORAGE_FIND_NEW_DEVICES        CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)

#define IOCTL_STORAGE_EJECTION_CONTROL        CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_MCN_CONTROL             CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_STORAGE_GET_MEDIA_TYPES         CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX      CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_GET_HOTPLUG_INFO        CTL_CODE(IOCTL_STORAGE_BASE, 0x0305, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_SET_HOTPLUG_INFO        CTL_CODE(IOCTL_STORAGE_BASE, 0x0306, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

#define IOCTL_STORAGE_RESET_BUS               CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_STORAGE_RESET_DEVICE            CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_STORAGE_BREAK_RESERVATION       CTL_CODE(IOCTL_STORAGE_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS)

#define IOCTL_STORAGE_GET_DEVICE_NUMBER       CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_PREDICT_FAILURE         CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)

// end_winioctl

#define IOCTL_STORAGE_QUERY_PROPERTY   CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS)

// begin_winioctl

//
// These ioctl codes are obsolete.  They are defined here to avoid resuing them
// and to allow class drivers to respond to them more easily.
//

#define OBSOLETE_IOCTL_STORAGE_RESET_BUS        CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define OBSOLETE_IOCTL_STORAGE_RESET_DEVICE     CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

//
// IOCTL_STORAGE_GET_HOTPLUG_INFO
//

typedef struct _STORAGE_HOTPLUG_INFO {
    ULONG Size; // version
    BOOLEAN MediaRemovable; // ie. zip, jaz, cdrom, mo, etc. vs hdd
    BOOLEAN MediaHotplug;   // ie. does the device succeed a lock even though its not lockable media?
    BOOLEAN DeviceHotplug;  // ie. 1394, USB, etc.
    BOOLEAN WriteCacheEnableOverride; // This field should not be relied upon because it is no longer used
} STORAGE_HOTPLUG_INFO, *PSTORAGE_HOTPLUG_INFO;

//
// IOCTL_STORAGE_GET_DEVICE_NUMBER
//
// input - none
//
// output - STORAGE_DEVICE_NUMBER structure
//          The values in the STORAGE_DEVICE_NUMBER structure are guaranteed
//          to remain unchanged until the system is rebooted.  They are not
//          guaranteed to be persistant across boots.
//

typedef struct _STORAGE_DEVICE_NUMBER {

    //
    // The FILE_DEVICE_XXX type for this device.
    //

    DEVICE_TYPE DeviceType;

    //
    // The number of this device
    //

    ULONG       DeviceNumber;

    //
    // If the device is partitionable, the partition number of the device.
    // Otherwise -1
    //

    ULONG       PartitionNumber;
} STORAGE_DEVICE_NUMBER, *PSTORAGE_DEVICE_NUMBER;

//
// Define the structures for scsi resets
//

typedef struct _STORAGE_BUS_RESET_REQUEST {
    UCHAR PathId;
} STORAGE_BUS_RESET_REQUEST, *PSTORAGE_BUS_RESET_REQUEST;

//
// IOCTL_STORAGE_MEDIA_REMOVAL disables the mechanism
// on a storage device that ejects media. This function
// may or may not be supported on storage devices that
// support removable media.
//
// TRUE means prevent media from being removed.
// FALSE means allow media removal.
//

typedef struct _PREVENT_MEDIA_REMOVAL {
    BOOLEAN PreventMediaRemoval;
} PREVENT_MEDIA_REMOVAL, *PPREVENT_MEDIA_REMOVAL;

// begin_ntminitape

typedef struct _TAPE_STATISTICS {
    ULONG Version;
    ULONG Flags;
    LARGE_INTEGER RecoveredWrites;
    LARGE_INTEGER UnrecoveredWrites;
    LARGE_INTEGER RecoveredReads;
    LARGE_INTEGER UnrecoveredReads;
    UCHAR         CompressionRatioReads;
    UCHAR         CompressionRatioWrites;
} TAPE_STATISTICS, *PTAPE_STATISTICS;

#define RECOVERED_WRITES_VALID   0x00000001
#define UNRECOVERED_WRITES_VALID 0x00000002
#define RECOVERED_READS_VALID    0x00000004
#define UNRECOVERED_READS_VALID  0x00000008
#define WRITE_COMPRESSION_INFO_VALID  0x00000010
#define READ_COMPRESSION_INFO_VALID   0x00000020

typedef struct _TAPE_GET_STATISTICS {
    ULONG Operation;
} TAPE_GET_STATISTICS, *PTAPE_GET_STATISTICS;

#define TAPE_RETURN_STATISTICS 0L
#define TAPE_RETURN_ENV_INFO   1L
#define TAPE_RESET_STATISTICS  2L

//
// IOCTL_STORAGE_GET_MEDIA_TYPES_EX will return an array of DEVICE_MEDIA_INFO
// structures, one per supported type, embedded in the GET_MEDIA_TYPES struct.
//

typedef enum _STORAGE_MEDIA_TYPE {
    //
    // Following are defined in ntdddisk.h in the MEDIA_TYPE enum
    //
    // Unknown,                // Format is unknown
    // F5_1Pt2_512,            // 5.25", 1.2MB,  512 bytes/sector
    // F3_1Pt44_512,           // 3.5",  1.44MB, 512 bytes/sector
    // F3_2Pt88_512,           // 3.5",  2.88MB, 512 bytes/sector
    // F3_20Pt8_512,           // 3.5",  20.8MB, 512 bytes/sector
    // F3_720_512,             // 3.5",  720KB,  512 bytes/sector
    // F5_360_512,             // 5.25", 360KB,  512 bytes/sector
    // F5_320_512,             // 5.25", 320KB,  512 bytes/sector
    // F5_320_1024,            // 5.25", 320KB,  1024 bytes/sector
    // F5_180_512,             // 5.25", 180KB,  512 bytes/sector
    // F5_160_512,             // 5.25", 160KB,  512 bytes/sector
    // RemovableMedia,         // Removable media other than floppy
    // FixedMedia,             // Fixed hard disk media
    // F3_120M_512,            // 3.5", 120M Floppy
    // F3_640_512,             // 3.5" ,  640KB,  512 bytes/sector
    // F5_640_512,             // 5.25",  640KB,  512 bytes/sector
    // F5_720_512,             // 5.25",  720KB,  512 bytes/sector
    // F3_1Pt2_512,            // 3.5" ,  1.2Mb,  512 bytes/sector
    // F3_1Pt23_1024,          // 3.5" ,  1.23Mb, 1024 bytes/sector
    // F5_1Pt23_1024,          // 5.25",  1.23MB, 1024 bytes/sector
    // F3_128Mb_512,           // 3.5" MO 128Mb   512 bytes/sector
    // F3_230Mb_512,           // 3.5" MO 230Mb   512 bytes/sector
    // F8_256_128,             // 8",     256KB,  128 bytes/sector
    // F3_200Mb_512,           // 3.5",   200M Floppy (HiFD)
    //

    DDS_4mm = 0x20,            // Tape - DAT DDS1,2,... (all vendors)
    MiniQic,                   // Tape - miniQIC Tape
    Travan,                    // Tape - Travan TR-1,2,3,...
    QIC,                       // Tape - QIC
    MP_8mm,                    // Tape - 8mm Exabyte Metal Particle
    AME_8mm,                   // Tape - 8mm Exabyte Advanced Metal Evap
    AIT1_8mm,                  // Tape - 8mm Sony AIT
    DLT,                       // Tape - DLT Compact IIIxt, IV
    NCTP,                      // Tape - Philips NCTP
    IBM_3480,                  // Tape - IBM 3480
    IBM_3490E,                 // Tape - IBM 3490E
    IBM_Magstar_3590,          // Tape - IBM Magstar 3590
    IBM_Magstar_MP,            // Tape - IBM Magstar MP
    STK_DATA_D3,               // Tape - STK Data D3
    SONY_DTF,                  // Tape - Sony DTF
    DV_6mm,                    // Tape - 6mm Digital Video
    DMI,                       // Tape - Exabyte DMI and compatibles
    SONY_D2,                   // Tape - Sony D2S and D2L
    CLEANER_CARTRIDGE,         // Cleaner - All Drive types that support Drive Cleaners
    CD_ROM,                    // Opt_Disk - CD
    CD_R,                      // Opt_Disk - CD-Recordable (Write Once)
    CD_RW,                     // Opt_Disk - CD-Rewriteable
    DVD_ROM,                   // Opt_Disk - DVD-ROM
    DVD_R,                     // Opt_Disk - DVD-Recordable (Write Once)
    DVD_RW,                    // Opt_Disk - DVD-Rewriteable
    MO_3_RW,                   // Opt_Disk - 3.5" Rewriteable MO Disk
    MO_5_WO,                   // Opt_Disk - MO 5.25" Write Once
    MO_5_RW,                   // Opt_Disk - MO 5.25" Rewriteable (not LIMDOW)
    MO_5_LIMDOW,               // Opt_Disk - MO 5.25" Rewriteable (LIMDOW)
    PC_5_WO,                   // Opt_Disk - Phase Change 5.25" Write Once Optical
    PC_5_RW,                   // Opt_Disk - Phase Change 5.25" Rewriteable
    PD_5_RW,                   // Opt_Disk - PhaseChange Dual Rewriteable
    ABL_5_WO,                  // Opt_Disk - Ablative 5.25" Write Once Optical
    PINNACLE_APEX_5_RW,        // Opt_Disk - Pinnacle Apex 4.6GB Rewriteable Optical
    SONY_12_WO,                // Opt_Disk - Sony 12" Write Once
    PHILIPS_12_WO,             // Opt_Disk - Philips/LMS 12" Write Once
    HITACHI_12_WO,             // Opt_Disk - Hitachi 12" Write Once
    CYGNET_12_WO,              // Opt_Disk - Cygnet/ATG 12" Write Once
    KODAK_14_WO,               // Opt_Disk - Kodak 14" Write Once
    MO_NFR_525,                // Opt_Disk - Near Field Recording (Terastor)
    NIKON_12_RW,               // Opt_Disk - Nikon 12" Rewriteable
    IOMEGA_ZIP,                // Mag_Disk - Iomega Zip
    IOMEGA_JAZ,                // Mag_Disk - Iomega Jaz
    SYQUEST_EZ135,             // Mag_Disk - Syquest EZ135
    SYQUEST_EZFLYER,           // Mag_Disk - Syquest EzFlyer
    SYQUEST_SYJET,             // Mag_Disk - Syquest SyJet
    AVATAR_F2,                 // Mag_Disk - 2.5" Floppy
    MP2_8mm,                   // Tape - 8mm Hitachi
    DST_S,                     // Ampex DST Small Tapes
    DST_M,                     // Ampex DST Medium Tapes
    DST_L,                     // Ampex DST Large Tapes
    VXATape_1,                 // Ecrix 8mm Tape
    VXATape_2,                 // Ecrix 8mm Tape
    STK_9840,                  // STK 9840
    LTO_Ultrium,               // IBM, HP, Seagate LTO Ultrium
    LTO_Accelis,               // IBM, HP, Seagate LTO Accelis
    DVD_RAM,                   // Opt_Disk - DVD-RAM
    AIT_8mm,                   // AIT2 or higher
    ADR_1,                     // OnStream ADR Mediatypes
    ADR_2
} STORAGE_MEDIA_TYPE, *PSTORAGE_MEDIA_TYPE;

#define MEDIA_ERASEABLE         0x00000001
#define MEDIA_WRITE_ONCE        0x00000002
#define MEDIA_READ_ONLY         0x00000004
#define MEDIA_READ_WRITE        0x00000008

#define MEDIA_WRITE_PROTECTED   0x00000100
#define MEDIA_CURRENTLY_MOUNTED 0x80000000

//
// Define the different storage bus types
// Bus types below 128 (0x80) are reserved for Microsoft use
//

typedef enum _STORAGE_BUS_TYPE {
    BusTypeUnknown = 0x00,
    BusTypeScsi,
    BusTypeAtapi,
    BusTypeAta,
    BusType1394,
    BusTypeSsa,
    BusTypeFibre,
    BusTypeUsb,
    BusTypeRAID,
    BusTypeMaxReserved = 0x7F
} STORAGE_BUS_TYPE, *PSTORAGE_BUS_TYPE;

typedef struct _DEVICE_MEDIA_INFO {
    union {
        struct {
            LARGE_INTEGER Cylinders;
            STORAGE_MEDIA_TYPE MediaType;
            ULONG TracksPerCylinder;
            ULONG SectorsPerTrack;
            ULONG BytesPerSector;
            ULONG NumberMediaSides;
            ULONG MediaCharacteristics; // Bitmask of MEDIA_XXX values.
        } DiskInfo;

        struct {
            LARGE_INTEGER Cylinders;
            STORAGE_MEDIA_TYPE MediaType;
            ULONG TracksPerCylinder;
            ULONG SectorsPerTrack;
            ULONG BytesPerSector;
            ULONG NumberMediaSides;
            ULONG MediaCharacteristics; // Bitmask of MEDIA_XXX values.
        } RemovableDiskInfo;

        struct {
            STORAGE_MEDIA_TYPE MediaType;
            ULONG   MediaCharacteristics; // Bitmask of MEDIA_XXX values.
            ULONG   CurrentBlockSize;
            STORAGE_BUS_TYPE BusType;

            //
            // Bus specific information describing the medium supported.
            //

            union {
                struct {
                    UCHAR MediumType;
                    UCHAR DensityCode;
                } ScsiInformation;
            } BusSpecificData;

        } TapeInfo;
    } DeviceSpecific;
} DEVICE_MEDIA_INFO, *PDEVICE_MEDIA_INFO;

typedef struct _GET_MEDIA_TYPES {
    ULONG DeviceType;              // FILE_DEVICE_XXX values
    ULONG MediaInfoCount;
    DEVICE_MEDIA_INFO MediaInfo[1];
} GET_MEDIA_TYPES, *PGET_MEDIA_TYPES;

//
// IOCTL_STORAGE_PREDICT_FAILURE
//
// input - none
//
// output - STORAGE_PREDICT_FAILURE structure
//          PredictFailure returns zero if no failure predicted and non zero
//                         if a failure is predicted.
//
//          VendorSpecific returns 512 bytes of vendor specific information
//                         if a failure is predicted
//
typedef struct _STORAGE_PREDICT_FAILURE
{
    ULONG PredictFailure;
    UCHAR VendorSpecific[512];
} STORAGE_PREDICT_FAILURE, *PSTORAGE_PREDICT_FAILURE;

// end_ntminitape
// end_winioctl

//
// Property Query Structures
//

//
// IOCTL_STORAGE_QUERY_PROPERTY
//
// Input Buffer:
//      a STORAGE_PROPERTY_QUERY structure which describes what type of query
//      is being done, what property is being queried for, and any additional
//      parameters which a particular property query requires.
//
//  Output Buffer:
//      Contains a buffer to place the results of the query into.  Since all
//      property descriptors can be cast into a STORAGE_DESCRIPTOR_HEADER,
//      the IOCTL can be called once with a small buffer then again using
//      a buffer as large as the header reports is necessary.
//

//
// Types of queries
//

typedef enum _STORAGE_QUERY_TYPE {
    PropertyStandardQuery = 0,          // Retrieves the descriptor
    PropertyExistsQuery,                // Used to test whether the descriptor is supported
    PropertyMaskQuery,                  // Used to retrieve a mask of writeable fields in the descriptor
    PropertyQueryMaxDefined     // use to validate the value
} STORAGE_QUERY_TYPE, *PSTORAGE_QUERY_TYPE;

//
// define some initial property id's
//

typedef enum _STORAGE_PROPERTY_ID {
    StorageDeviceProperty = 0,
    StorageAdapterProperty,
    StorageDeviceIdProperty
} STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID;

//
// Query structure - additional parameters for specific queries can follow
// the header
//

typedef struct _STORAGE_PROPERTY_QUERY {

    //
    // ID of the property being retrieved
    //

    STORAGE_PROPERTY_ID PropertyId;

    //
    // Flags indicating the type of query being performed
    //

    STORAGE_QUERY_TYPE QueryType;

    //
    // Space for additional parameters if necessary
    //

    UCHAR AdditionalParameters[1];

} STORAGE_PROPERTY_QUERY, *PSTORAGE_PROPERTY_QUERY;

//
// Standard property descriptor header.  All property pages should use this
// as their first element or should contain these two elements
//

typedef struct _STORAGE_DESCRIPTOR_HEADER {

    ULONG Version;

    ULONG Size;

} STORAGE_DESCRIPTOR_HEADER, *PSTORAGE_DESCRIPTOR_HEADER;

//
// Device property descriptor - this is really just a rehash of the inquiry
// data retrieved from a scsi device
//
// This may only be retrieved from a target device.  Sending this to the bus
// will result in an error
//

typedef struct _STORAGE_DEVICE_DESCRIPTOR {

    //
    // Sizeof(STORAGE_DEVICE_DESCRIPTOR)
    //

    ULONG Version;

    //
    // Total size of the descriptor, including the space for additional
    // data and id strings
    //

    ULONG Size;

    //
    // The SCSI-2 device type
    //

    UCHAR DeviceType;

    //
    // The SCSI-2 device type modifier (if any) - this may be zero
    //

    UCHAR DeviceTypeModifier;

    //
    // Flag indicating whether the device's media (if any) is removable.  This
    // field should be ignored for media-less devices
    //

    BOOLEAN RemovableMedia;

    //
    // Flag indicating whether the device can support mulitple outstanding
    // commands.  The actual synchronization in this case is the responsibility
    // of the port driver.
    //

    BOOLEAN CommandQueueing;

    //
    // Byte offset to the zero-terminated ascii string containing the device's
    // vendor id string.  For devices with no such ID this will be zero
    //

    ULONG VendorIdOffset;

    //
    // Byte offset to the zero-terminated ascii string containing the device's
    // product id string.  For devices with no such ID this will be zero
    //

    ULONG ProductIdOffset;

    //
    // Byte offset to the zero-terminated ascii string containing the device's
    // product revision string.  For devices with no such string this will be
    // zero
    //

    ULONG ProductRevisionOffset;

    //
    // Byte offset to the zero-terminated ascii string containing the device's
    // serial number.  For devices with no serial number this will be zero
    //

    ULONG SerialNumberOffset;

    //
    // Contains the bus type (as defined above) of the device.  It should be
    // used to interpret the raw device properties at the end of this structure
    // (if any)
    //

    STORAGE_BUS_TYPE BusType;

    //
    // The number of bytes of bus-specific data which have been appended to
    // this descriptor
    //

    ULONG RawPropertiesLength;

    //
    // Place holder for the first byte of the bus specific property data
    //

    UCHAR RawDeviceProperties[1];

} STORAGE_DEVICE_DESCRIPTOR, *PSTORAGE_DEVICE_DESCRIPTOR;

//
// Adapter properties
//
// This descriptor can be retrieved from a target device object of from the
// device object for the bus.  Retrieving from the target device object will
// forward the request to the underlying bus
//

typedef struct _STORAGE_ADAPTER_DESCRIPTOR {

    ULONG Version;

    ULONG Size;

    ULONG MaximumTransferLength;

    ULONG MaximumPhysicalPages;

    ULONG AlignmentMask;

    BOOLEAN AdapterUsesPio;

    BOOLEAN AdapterScansDown;

    BOOLEAN CommandQueueing;

    BOOLEAN AcceleratedTransfer;

    UCHAR BusType;

    USHORT BusMajorVersion;

    USHORT BusMinorVersion;

} STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR;

//
// Storage identification descriptor.
// The definitions here are based on the SCSI/SBP vital product data
// device identifier page.
//

typedef enum _STORAGE_IDENTIFIER_CODE_SET {
    StorageIdCodeSetReserved = 0,
    StorageIdCodeSetBinary = 1,
    StorageIdCodeSetAscii = 2
} STORAGE_IDENTIFIER_CODE_SET, *PSTORAGE_IDENTIFIER_CODE_SET;

typedef enum _STORAGE_IDENTIFIER_TYPE {
    StorageIdTypeVendorSpecific = 0,
    StorageIdTypeVendorId = 1,
    StorageIdTypeEUI64 = 2,
    StorageIdTypeFCPHName = 3,
    StorageIdTypePortRelative = 4
} STORAGE_IDENTIFIER_TYPE, *PSTORAGE_IDENTIFIER_TYPE;

typedef enum _STORAGE_ASSOCIATION_TYPE {
    StorageIdAssocDevice = 0,
    StorageIdAssocPort = 1
} STORAGE_ASSOCIATION_TYPE, *PSTORAGE_ASSOCIATION_TYPE;

typedef struct _STORAGE_IDENTIFIER {
    STORAGE_IDENTIFIER_CODE_SET CodeSet;
    STORAGE_IDENTIFIER_TYPE Type;
    USHORT IdentifierSize;
    USHORT NextOffset;

    //
    // Add new fields here since existing code depends on
    // the above layout not changing.
    //

    STORAGE_ASSOCIATION_TYPE Association;

    //
    // The identifier is a variable length array of bytes.
    //

    UCHAR Identifier[1];
} STORAGE_IDENTIFIER, *PSTORAGE_IDENTIFIER;

typedef struct _STORAGE_DEVICE_ID_DESCRIPTOR {

    ULONG Version;

    ULONG Size;

    //
    // The number of identifiers reported by the device.
    //

    ULONG NumberOfIdentifiers;

    //
    // The following field is actually a variable length array of identification
    // descriptors.  Unfortunately there's no C notation for an array of
    // variable length structures so we're forced to just pretend.
    //

    UCHAR Identifiers[1];
} STORAGE_DEVICE_ID_DESCRIPTOR, *PSTORAGE_DEVICE_ID_DESCRIPTOR;

#pragma warning(push)
#pragma warning(disable:4200)
typedef struct _STORAGE_MEDIA_SERIAL_NUMBER_DATA {

    USHORT Reserved;

    //
    // the SerialNumberLength will be set to zero
    // if the command is supported and the media
    // does not have a valid serial number.
    //

    USHORT SerialNumberLength;

    //
    // the following data is binary, and is not guaranteed
    // to be NULL terminated.  this is an excercise for the
    // caller.
    //

    UCHAR SerialNumber[0];

} STORAGE_MEDIA_SERIAL_NUMBER_DATA, *PSTORAGE_MEDIA_SERIAL_NUMBER_DATA;
#pragma warning(push)

// begin_winioctl

#ifdef __cplusplus
}
#endif

#endif // _NTDDSTOR_H_
// end_winioctl

redpajama_set_name: RedPajamaGithub


We are leaders in the online chinese viral media space. Based on comscore, our viral media portals are currently in the top 11 based on mobile traffic in october Malaysia. We provide our readers with memorable viral content about food, travel, entertainment and news in Malaysia.


One Imperial Berkey with two Black Berkey Filters - $285.
Special savings $$$ on the purchase of more than one unit.
Buy two Imperial Berkeys for $550 and save $20.
Buy Three Imperial Berkys for $795 and save $60.
Buy four or more Imperial Berkey and save $30 dollars off the price of each unit. Call us using our toll-free number 1-877-702-4433 to make this special order.
Adding filters to your Imperial Berkey can increase it's output dramatically. With eight filter elements it will produce up to 600 gallons a day. Once you've made your order simply go to the Black Berkey Filter page and order the number of filters you would like included with your Imperial Berkey.
The Imperial Berkey water filtration unit is made of high grade stainless steel.
The Imperial Berkey model can be fitted with up to six Black Berkey filter elements.
The flow rate with six filter elements is 16.5 10.5 gallons per hour.
With two Black Berkey filter elements will filter up to 6,000 gallons of tap water.
With six Black Berkey filter elements will filter up to 18,000 gallons of tap water.
This powerful system purifies both chemically treated municipal water, (assuring you of safe, clean fresh-tasting water everyday) as well as raw water from lakes, streams, ponds or swimming pools in the event of an emergency (think New Orleans and Katrina) .
YOU DON'T WANT ARASENIC, FLOURIDE OR HEAVY METALS IN YOUR WATER.
We guarantee that you will be 100% satisfied that the claims we make about our products are true.
We guarantee that you will be satisfied with our products and happy about your purchases.
We offer you the opportunity to use your unit for 90 days. If you are not fully satisfied for any reason, return the product for a full, prompt and cheerful refund.
Filters must be changed according to manufactures recommendation.
UV lights must actually be "on" to work, plugged in and not burned out.
UV lights need to be replaced according to manufacturers recommendation.
Water will continue to flow through the system to your tap and into your glass if the system is working or not.
If it is not working and you draw water from the tap, whatever it was that you bought the water filter system to protect you from is now in the whole system.
Before you can use the water from the tap the system has to be sanitized.
Your Imperial Berkey will never let harmful microbial pathogens into your drinking water. The unique design of the Black Berkey filter prevents harmful contaminants into your drinking water. When the filter stops working the water stops running. Simply remove the filter, scrub it gently with a scotch pad, put it back and begin to enjoy the assurance that only Berkey can bring. You can confidently drink or serve water from the Imperial Berkey knowing that it is always comes out 99.99999% pure.
Your UV dependant or Reverse Osmosis filter system or distiller will stop providing you with a reliable source of water when the electricity is off.
Your under counter or countertop filter will stop working when the water pressure is no longer able to be maintained.
It will purify water from any fresh water source, lake, stream, pond, swimming pool.
It requires no electricity to keep provide you with a reliable source of water.
Keep yourself and the ones who depend on you prepared.
Unhealthy chemical and biological contaminants as well as sediment and odors are removed leaving you with safe, clear, fresh-tasting water.
The beautiful high grade stainless steel or Clear Lexan construction of these units are built to lastmany years.
No tools are needed, it assembles and is ready to use in minutes. No electricity, No plumbing.
When the flow from the filters diminishes, simply remove the filters, place them under running water, scrub them gently with a Scotch pad and reinstall.
Because these units do not use electricity and need no plumbing or water pressure to work they are especially valuable during emergencies where a source of safe drinking water may not be available. Water from any fresh water source can be filtered and made safe for drinking.
We know that not everyone is as convinced as we are that they should own a Berkey – yet.
To help you make a common-sense purchase, we are offering as an incentive the following SPECIAL OFFER.
Despite rating high in every criterion above, we know not everyone is as convinced as we are that they should own a Berkey– yet. To help win you over and help you make this common-sense purchase we are offering as an incentive the following Special Offer.
The Crown Berkey may not be the "perfect fit" for your lifestyle.
Simply return to the Berkey Products page to select the model that is perfect for you.
Click here to return to Berkey Products page.


A few simple parsing rules on your emails, and you can extract structured data and automatically send to your Pardot account.
Our Pardot by Salesforce integration, assists in sending all of the data you want to send from inbound emails, directly to your Pardot account. Pardot is marketing automation made easy through sales and marketing cohesiveness. Superb reporting allows your team to access ROI on all your marketing initiatives.
Once set up with the Pardot integration, you can automate data input into Pardot and eliminate the need for developer customization, or manual copy and pasting. Send text, attachments and just about anything you like from your emails. Our Zapier integration allows data to be seamlessly sent to Pardot each time an email comes in.
Our "getting started with email parsing" blog article will help you get rolling. Feel free to explore Zapier's integration with Pardot here.
This Pardot integration is brought to you by Zapier. Next to having a Pardot account and a mailparser.io account, you also need an account with Zapier.
Extract data from incoming emails and automate your business.


text:
module.exports = function($el) {
    if (!$el.attr('minlength')) {
        return true;
    }
    var minlength = parseInt($el.attr('minlength'));
    var value = $el.val();
    if (value.length < minlength) {
        var text = this.getMessage('minlength', minlength);
        this.alert(text, $el);
        return false;
    }
    return true;
};


Rhubarb Dump Cake Tastes Like Strawberry Rhubarb Crisp!
I made this rhubarb dump cake immediately after finding rhubarb for the first time this spring. Rhubarb season is way too short, and if you don't get some the moment you spot it, you just might lose out altogether. At least that's how it seems to go for me.
Anyhow, this rhubarb cake is the first of my rhubarb recipes this year, and so as long as I can keep finding it, I'll keep baking with it. I'm a little obsessed with rhubarb in the spring!
Since dump cake recipes are so quick and simple to make, so is this rhubarb cake version, and it has the added perk of tasting just like strawberry rhubarb crisp.
You'll need about 4 cups of sliced rhubarb, so get to choppin'. That's the hardest part, and that's not even hard!
Top with a scoop of vanilla ice cream, and dig in!
In a 9"x13" pan, place rhubarb evenly over bottom of pan.
Mix sugar and cinnamon together and sprinkle over rhubarb.
Spread dry JELL-O mix over rhubarb and sugar layers.
Add dry cake mix as the next layer, then cold water and finally the melted butter. Don't mix together.
Are you a rhubarb fan? Do you have any favorite rhubarb dessert recipes?
I've made this – it's great!
My dad LOVES rhubarb. I will have to make this for him one day. There is so much fresh rhubarb at the market right now.
How many servings would you guess one batch makes?
I LOVE rhubarb. I tried it for the first time with strawberries as a kid and found it so delicious, but surprisingly I never see it much anywhere and never find it it my market to buy it and remake it myself. Thanks for this great recipe!
YUM! Looks delicious and not too many ingredients too! Thank you so much for sharing with us at Merry Monday. We hope you'll come to the new party. We're celebrating our anniversary with a big Giveaway.
Thanks for joining Delicious Dishes Recipe Party again this week! Hope to see you again next week!
This looks amazing and actually like something I could make! I'm so glad that spring and summer fruits and veggies are coming!
Now this is something I would love. I LOVE rhubarb. I have to add this to my list to make.
YUM! This is my kind of recipe. I've been looking for a good rhubarb dessert. Can't wait to try this one out!
Omg it's years since I had rhubarb and now you have me craving it!!
This looks like something I'd like to try. I think I've only had rhubarb once or twice. I remember my grandma having some in her garden when I was a little girl.
Can you believe I haven't tried baking with rhubarb yet? I hope I see one in the farmer's market so I could try it.
Looks like a great recipe – I'm not much of a baker but I'd love to try this!
I've never had rhubarb, but this looks really good. I'm recently transitioning into a vegetarian so it's nice to see new options out there, especially for me. Thank you so much for this recipe.
Ah, this seems delicious. I have never had an experience of trying rhubarb. I would first like to try it before making something out of it myself.
It does look pretty simple. I like it. I don't like complicated things. I don't have time to make complicated things.
That looks so delicious. My mom will love this for sure, I would like to give a try. Thanks for this!
I just love anything that is done with rhubarb, but never had a chance to do something on a dessert with it. But this looks absolutely delicious & healthy, a wonderful recipe that my kids would love right away.
I don't think that I have ever tasted rhubarb, especially in a dessert. I like how fluffy and light this cake looks in the photos.
Looks fab Liz! I should make some this weekend!
What?? This looked way too simple! Watch me try this and burn it lol But for real though, looks delicious! I've never use rhubarb in any recipes before! Would be awesome to try making this recipe!
I love that it is spring now … fresh local produce is on the way, and with it, treats like these!
I can't wait to try it, it looks so good and yummy!
I am a huge fun of pies! This one looks unbelievably delicious and I love the addition of the cinnamon! Great recipe! Pinned it!
Strawberry rhubarb pie is my fave, so I would imagine I would LOVE this cake!
I love the colors! Turns out beautifully without a lot of effort – can't beat that!
You know, I don't think that I have ever in my life ate a rhubarb. Lol.
I am a massive fan of rhubarb! It is just so fresh and flavoursome. This recipe looks so easy, and very delicious!
That is a great recipe. I think I'll pin this one to try at a later ate!
I mean a later 'date.' BUT then I thought of you saying you have to get rhubarb quick or you'll miss out, so maybe I'll make it this weekend!
That looks yummy. Although I've never tried rhubarb nor do I know how to use it lol.
I am so in love with dump cakes right now! I need to try this one soon – a friend has lots of rhubarb to share so it's perfect!
Confession time. I've never had rhubarb. This is going to be my first experience, and I have a feeling it'll be love at first bite.
I haven't either!!! I can't wait to give this a try.
I've had rhubarb pies but never have come across cake. This reciepe looks delecious and I am going to try it.
I have never heard of this but it looks delicious!
I love dump cakes, but I've never tried rhubarb before! Sounds yummy!
Oh my goodness to many times YES! I could definitely eat a whole pan of this deliciousness!!
Wow. this really looks amazingly delicious. Would love to try this out soon!. Yummy!
Yumm.. This looks so good and easy to make too! I would love to try this recipe today. Thanks for sharing!
I love how simple this recipe is! I have to admit that I don't usually make anything with rhubarb but am going to give this one a try.
You know I have never had rhubarb before. My husband likes rhubarb, I bet he would like this recipe.
This looks like a recipe my family is going to love. I am looking forward to rhubarb season. I will have to make this on the weekend.
This looks incredible *Crying face* Cheat day it is!
OMG what a yammi cake this is super soft and tasty.i will definatly try this recepie.
Oh my gosh, you're so right. I look forward to rhubarb season all year long, only to have it pass me by some years. I've started looking already, but haven't found any yet. I'm trying this awesome cake the minute I find some!
This absolutely looks delicious and I love this it's easy recipe. I'm so glad that you share this recipe with us.
Rhubarb dump cake looks so delicious and is so simple to make. This recipe has made into our baking experiment list and we are going to try it very soon. Thanks for sharing!
This brings back memories of picking rhubarb out of the garden and talking my mom into making rhubarb pies. I can't wait to try this recipe and share it with my mom. She don't cook anymore so I bake her goodies all the time.
It hs been years since I have had a rhubarb dessert. I have to remedy that soon!
I have to admit, I've never had rhubarb before! Gasp! You make it look so yummy though…I'll have to try this.
I love recipes that are easy to follow and make and this is both! This looks awesome! My mother loves rhubarb and this is a great treat to make her on Mother's Day! Thank you for sharing!
I really love easy recipes! That looks so good and yummy! I need to try this. Thanks!
Can't believe how easy this is. It looks very delicious!
This is such an amazing cake! I've never made rhubarb cake, I can't wait to try it!
Hey, I'm from NC too! So happy to find your blog, your recipes look amazing! Although, I've never tried rhubarb before so I'm not sure how much I would like this… Still, looks good!
This looks great – I am very curious as I have not tried rhubarb before.
I do like the ice cream topping for sure!
Looks like a cool and delicious cake. I like this one.
This recipe looks amazing but I couldn't help and look and Chanelle's amazing pictures in the side bar! I've really let myself slip recently and I'm so jealous of her hardwork (and body) x I've not been here before but I'll definitely be coming back!
I love rhubarb, but what I love even more is how easy this cake is!
This sounds like my kind of cake! Can't believe how easy this is, and it looks delicious.
How delicious! Will have to add this dessert to my menu for next week!
I wonder how this would be without the strawberry jello. I LOVE rhubarb, but I don't care for other flavors mucking it up.
This looks really good. I never thought of using Rhubarb in a cake recipe.
I have not had rhubarb in a cake like this before!! It sounds really good, we get rhubarb at our farmers markets a lot.
Gosh I love rhubarb when it is in season. I have never made a dump cake with it…I will have to try.
I am not a huge rhubarb fan but I think that is only because I haven't taken the opportunity to cook with it much. I think this cake looks easy and really good!
Wow, what an interesting combo! And to top it with ice cream. Looks AMAZING!
I have a confession to make, I've never tried rhubarb! I had it in a yogurt a few days ago and now I'm dying to get my hands on a strawberry rhubarb pie. Yum, I love cake!
That looks fantastic! I use to eat rhubarb all the time when I was a kiddo. I have got to make this.
This looks delicious. I love how simple it is!
I love the whole idea of dump cakes. This one looks delicious!
I promise you I have never ever bought a rhubarb or made anything with one. But… there is always a first time. You just may have inspired me with this great sounding recipe.
I wonder if this would be good with strawberries or blueberries.
I've been wondering about what a dump cake is, until I watched the video. That's an easy way to bake things, really. Thanks for the recipe, it looks really good and it's definitely worth trying!
My mom always raved about rhubarb pie that she had when she was young. I bet she would love this.
I like dump cakes because they are easy and don't need to look super pretty. This looks so tasty!
Dump cakes are great because they're so easy to make. I don't think I've ever tried rhubarb in a cake before.
I love strawberry rhubarb pie, never had this before though. I bet I would love it and eat it right up, considering I used to eat rhubarb raw picked right out of the garden at my family farm!
I've always been curious about Rhubarb. I'm not sure I've every actually tried it, but this crisp looks so yummy.
This looks SO delicious. I've never had rhubarb before, but my mom loved it and made so much with it when I was a kick. I'd love to give this a try!
I love dump cake and my husband loves rhubarb so I will have to try this out. It sounds perfect for a summer BBQ.
This looks SO GOOD! We have family coming in from out of town this weekend, I need to try this!
This looks so yummy. I discover Rhubarb when I started making smoothies. It's so delicious, I love the faint tartness of it.
Wow this is a nice cake to mak for the family. Thanks for sharing.
This would be perfct to make with family coming in town next week! Great idea!
I am so chicken when it comes to rhubarb! I see it in the store and avoid it! I never have been comfortable with it… maybe I should make this and just get over it already?!
I've never heard of dump cake before but I flipping love rhubarb so I'm definitely going to be giving this one a try soon!
This Dump Cake looks and sounds so delicious…love Rhubarb!! I've never made a Dump Cake before, but I think it's about high time that I did 🙂 Thanks for this recipe!
Okay, I'm not much of a rhubarb fan, but this cake looks delicious! So easy to make too. I'll have to try it.
Well this looks delicious and easy enough even for me to make! Thank you for posting!
Wow this looks delicious, and to be honest I never heard of this one before! Thanks for the recipe, i will try it out for sure!
Yum! Strawberry rhubarb is one of my favorite pies. I think this might be the first time I've ever seen it in a cake form. Thanks for sharing this great twist on an old favorite.
I have never heard of a dump cake before this and now I want them every day.
Great post! This looks delicious, and fairly easy to make! I like!
I haven't seen anyone use rhubarb since i was a child and grandma would make strawberry adn rhubarb pie. I am so going to have to make this.
I once tried Rhubarb ice cream and it was really good. I bet that I would really love this, too.
That looks so yummy. I've never had a rhubarb before. I would love to try this.
So yummy! I haven't used rhubarb in forever and you've totally inspired me. Also, I always love your recipe format. The ease of printing is genius.
I love rhubarb. Only a few more weeks and it will be ready for picking. The way it looks at the moment we could be in for a bumper crop so I'll be trying all the recipes I can find that include rhubarb!
I love you rhubarb. I want to make this so bad I wish the rest of my family would eat it. This is another one on my list that I need to make when I have company over.
Oh boy I'm going to be making this – thanks for the recipe!
This does look good. I've only had it in pie before.
I love how easy this is to make. I also love that I can just chop the rhubarb and not have to pre cook it.
I would love to try this a la mode, I'll have to make this soon!
I love rhubarb. I have such fond memories of rhubarb crumble as a kid but I haven't had any since school. This sounds quite simple to make so I'm going to have to give this a go.
This looks delicious! I'd love to try making this! Would be nice to make something different than a normal sponge!
Never heard of this cake before but I'm trying if out on the weekend. Looks delicious.
I love dump cake! It's so easy to make and it always turns out well. I don't know if I have ever actually tried rhubarb.
Dump cakes are my favorite because they are so effortless! They're perfect for pot lucks or get-togethers.
Oh, I used to absolutely adore this cake when I was a child. I remember my mother used to cover it in egg whites that would transform in meringue in the oven. I used to love that combination.


text:
Q: How to overlay several plots I would like to plot in one graph 3 different occupancy patterns: a.) when both male and female are working; b.) only male working; c.) only female working.
I created 3 different data.frames using facet
The structure of the first data.frame (both male and female is working) is:
   structure(list(time = c("04:00", "04:15", "04:30", "04:45", "05:00",
"05:15", "05:30", "05:45", "06:00", "06:15", "06:30", "06:45",
"07:00", "07:15", "07:30", "07:45", "08:00", "08:15", "08:30",
"08:45", "09:00", "09:15", "09:30", "09:45", "10:00", "10:15",
"10:30", "10:45", "11:00", "11:15"), day = c("Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday", "Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday", "Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday", "Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday", "Monday", "Monday"
), variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L), .Label = c("Shifts on Monday", "Shifts on Tuesday",
"Shifts on Wednesday", "Shifts on Thursday", "Shifts on Friday",
"Shifts on Saturday", "Shifts on Sunday"), class = "factor"),
    value = c(102, 110, 116, 120, 148, 152, 188, 204, 318, 348,
    418, 442, 752, 816, 1064, 1144, 1836, 1942, 2402, 2524, 3240,
    3324, 3486, 3520, 3594, 3592, 3596, 3568, 3594, 3626), size_f = structure(c(1L,
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Monday",
    "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
    "Sunday"), class = "factor")), row.names = c(NA, 30L), class = "data.frame")

The structure of the second data.frame (male is working) is:
dput(head(melted_WkSTiWeekM , 30))
structure(list(time = c("04:00", "04:15", "04:30", "04:45", "05:00",
"05:15", "05:30", "05:45", "06:00", "06:15", "06:30", "06:45",
"07:00", "07:15", "07:30", "07:45", "08:00", "08:15", "08:30",
"08:45", "09:00", "09:15", "09:30", "09:45", "10:00", "10:15",
"10:30", "10:45", "11:00", "11:15"), day = c("Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday", "Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday", "Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday", "Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday", "Monday", "Monday"
), variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L), .Label = c("Shifts on Monday", "Shifts on Tuesday",
"Shifts on Wednesday", "Shifts on Thursday", "Shifts on Friday",
"Shifts on Saturday", "Shifts on Sunday"), class = "factor"),
    value = c(56, 58, 64, 68, 84, 84, 104, 114, 172, 196, 224,
    238, 410, 442, 560, 604, 930, 968, 1188, 1230, 1576, 1620,
    1692, 1706, 1740, 1746, 1752, 1740, 1736, 1756), size_f = structure(c(1L,
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Monday",
    "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
    "Sunday"), class = "factor")), row.names = c(NA, 30L), class = "data.frame")

The structure of the second data.frame (female is working) is:
structure(list(time = c("04:00", "04:15", "04:30", "04:45", "05:00",
"05:15", "05:30", "05:45", "06:00", "06:15", "06:30", "06:45",
"07:00", "07:15", "07:30", "07:45", "08:00", "08:15", "08:30",
"08:45", "09:00", "09:15", "09:30", "09:45", "10:00", "10:15",
"10:30", "10:45", "11:00", "11:15"), day = c("Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday", "Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday", "Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday", "Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday", "Monday", "Monday"
), variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L), .Label = c("Shifts on Monday", "Shifts on Tuesday",
"Shifts on Wednesday", "Shifts on Thursday", "Shifts on Friday",
"Shifts on Saturday", "Shifts on Sunday"), class = "factor"),
    value = c(46, 52, 52, 52, 64, 68, 84, 90, 146, 152, 194,
    204, 342, 374, 504, 540, 906, 974, 1214, 1294, 1664, 1704,
    1794, 1814, 1854, 1846, 1844, 1828, 1858, 1870), size_f = structure(c(1L,
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Monday",
    "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
    "Sunday"), class = "factor")), row.names = c(NA, 30L), class = "data.frame")

After this I created a
melted_WkSTiWeekAll=cbind(melted_WkSTiWeek,melted_WkSTiWeekM,melted_WkSTiWeekF)

structure(list(time = c("04:00", "04:15", "04:30", "04:45", "05:00"
), day = c("Monday", "Monday", "Monday", "Monday", "Monday"),
    variable = structure(c(1L, 1L, 1L, 1L, 1L), .Label = c("Shifts on Monday",
    "Shifts on Tuesday", "Shifts on Wednesday", "Shifts on Thursday",
    "Shifts on Friday", "Shifts on Saturday", "Shifts on Sunday"
    ), class = "factor"), value = c(102, 110, 116, 120, 148),
    size_f = structure(c(1L, 1L, 1L, 1L, 1L), .Label = c("Monday",
    "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
    "Sunday"), class = "factor"), time = c("04:00", "04:15",
    "04:30", "04:45", "05:00"), day = c("Monday", "Monday", "Monday",
    "Monday", "Monday"), variable = structure(c(1L, 1L, 1L, 1L,
    1L), .Label = c("Shifts on Monday", "Shifts on Tuesday",
    "Shifts on Wednesday", "Shifts on Thursday", "Shifts on Friday",
    "Shifts on Saturday", "Shifts on Sunday"), class = "factor"),
    value = c(56, 58, 64, 68, 84), size_f = structure(c(1L, 1L,
    1L, 1L, 1L), .Label = c("Monday", "Tuesday", "Wednesday",
    "Thursday", "Friday", "Saturday", "Sunday"), class = "factor"),
    time = c("04:00", "04:15", "04:30", "04:45", "05:00"), day = c("Monday",
    "Monday", "Monday", "Monday", "Monday"), variable = structure(c(1L,
    1L, 1L, 1L, 1L), .Label = c("Shifts on Monday", "Shifts on Tuesday",
    "Shifts on Wednesday", "Shifts on Thursday", "Shifts on Friday",
    "Shifts on Saturday", "Shifts on Sunday"), class = "factor"),
    value = c(46, 52, 52, 52, 64), size_f = structure(c(1L, 1L,
    1L, 1L, 1L), .Label = c("Monday", "Tuesday", "Wednesday",
    "Thursday", "Friday", "Saturday", "Sunday"), class = "factor")), row.names = c(NA,
5L), class = "data.frame")

The variable time, day, variable and size_f are similar.
I would like to plot 3 graph together in the same plot. But I have no clue how to this
Using the suggested facet the following plot
Plot1

Plot2

Plot3

How to move forward
I would like to create a pot like this

A: You can do it by merging your dataframes together and tag them as All, Male, and Female accordingly. Then you can use that tag for grouping(coloring) within your ggplot function.
Using geom_bar and position = "identity" you will get bars on top of each other and to remove the space between the bars (to mimic density plots look) width is set to 1. alpha can be used to alter the transparency of fill colors.
And to get a separate plot for each day of the week we can use facet_wrap(~day).
library(tidyverse)

melted_WkSTiWeekAll <- bind_rows(list(All=melted_WkSTiWeek,
                                      Male=melted_WkSTiWeekM,
                                      Female=melted_WkSTiWeekF),
                                                                .id = 'source')

ggplot(melted_WkSTiWeekAll, aes(x=time, y=value, fill=source)) +
  geom_bar(stat="identity", position = "identity", alpha=.3, width=1) +
  facet_wrap(~day)

Note that here we only get one facet as the data provided only has entries for Monday.

Created on 2019-05-31 by the reprex package (v0.3.0)

redpajama_set_name: RedPajamaStackExchange


text:
Vanessa Lees' Blog
Vanessa's
Vanessa Lees
we are in print…yipeeeee
It's official. Whooossshh has launched. We are in print, glorious print.
The delivery of 2000 books to my front door was far more terrifying than receiving exam results (and I never imagined anything would trump that). Helen and I barely breathed when we opened the first box in case there was a big blob of ink marring the cover or something equally as terrible. But (breathe), there wasn't. It is beautiful. All is well at The Odd Sock Publishing and a very shaky Helen managed to make it home on her bicycle without causing a road traffic incident.
Mad about Madeline
So Audrey and I are 'Mad about Madeline', both the original book by Ludvig Bemelman and the animated series on Tiny Pop. Audrey has recently hit a low point in her book collection and has proclaimed at age three that her demands for suitable reading material are not being met. Or in her words "my books are rubbish". Then along came Madeline written in the 1940s, stemming from an idea penned on the back of a menu. it is beautifully illustrated, has a fabulous determined, strong willed but selfless and gentle little girl as its main protagonist and its rhyme and repetition are exceptional. And to top all that, it's absolutely timeless.Audrey's faith in literature has been restored and now she waves a finger in Barnaby's face singing in a french accent one of the songs from the tv adaptation "have you learnt your lesson, you naughty, naughty boy." i like to think Audrey (especially in Wooossshh http://www.theoddsock.co.uk) is a modern day Madeline and i think she does too.
Last leg
Helen has been working on Whooosshh for too long now. She told me that all she needs in life is drawing and running. She has been a "runner" now for a total of two weeks. She said "They are the two most honest things in life. You get out what you put in." Not sure where her partner Kev slots into this exclusive lifestyle.
Not long now Helen. We are on the home run and the finish line is in sight. We may even be published before the Olympics.
Patrick George
Barnaby has been bought Opposites by Patrick George for his birthday. It has gone completely over his head, given he is two, can barely string three words together and far more interested in swiping flies with tea towels than learning about opposites. HOWEVER, it is absolute genius and I am slightly in awe of its concept and graphics. The Patrick George collection use really clever graphics and acetate to aid learning and are the product of husband and wife team Peter and Ann Scott and who started off self-publishing.In a slightly stalker fashion I emailed them to ask their advice on finding a reliable printer and Ann was incredibly helpful and encouraging so now I am even more in love with them patrickgeorge.biz
Key components of a successful children's book
Audrey announced today that she didn't like Whooossshh because of its reference to "scary legs". Children of today are so ungrateful. Remind me next time to name a star after her or something equally as unoriginal. Actually i think it's quite tricky finding a book which resonates with both children and parent. The contemporary books which really work for me by authors such as Oliver Jeffers and Catherine Rayner are really cool, succinct and void of drama. Yet, Audrey loves the old school fairy tales such as Alice in Wonderland and the Snow Queen.Myself and both my kids have found common reading ground though with the rhyming books such as those by Julia Donaldson or Eric Carle. Any book where a child can recite the words is doing their job. And that's why Julia Donaldson, Eric Carle and not forgetting Michael Rosen (Bear Hunt) are genius.They are mostly based on rhythm, rhyme and repetition and with those 3Rs comes familiarity and the recognition of words. Let's face it Kylie Minogue would still be working as a mechanic in Neighbours if it wasn't for rhythm, rhyme and repetition. Here's hoping the concept brings Whooosshh as much success.
How to self-publish a children's book checklist
God this is taking forever. It's a bit like waiting for someone to propose to you (speaking from personal experience) . Admittedly Helen has got the tougher gig. She has to translate my insane ramblings into images of beauty and then take constructive criticism on top of that. Suffice to say she knows I think she's exceptionally talented but everything has to be perfect. So I've compiled a list of things for me to do while waiting for the illustrations. Incidentally I am being guided by this fab website I've found. It's an American website but it's all relevant to a British market http://www.selfpublishing.com/faq/ or for absolutely everything you need to know on the children's book industry buy "Children's Writers' and Artists' Yearbook 2012"
Create a website/publishing house:
This is really important especially when considering writing more books. Also it looks far more professional having a publishing house contact the press, rather than myself (even though it's technically me contacting but they don't have to tell them that).
Pen out a press release:
Aha, the beauty of being a journo is knowing what will or won't land in the delete file of the publication's computer. Press releases need to be ready to send to all relevant magazines (have a look in the Children's Writers' and Artists' Yearbook 2012 for a comprehensive list of magazine titles)
Press Releases need to be really succinct but promote the book simultaneously. So keep to the 5 Ws. WHO you are, WHAT is the book about, WHY did you write it or WHY the public should buy it, WHEN is it available in the shops and WHERE can it be purchased. Try to write two press releases – one for the local press (go for the local angle) and one for the nationals. The title needs to be really catchy and convey your unique selling point in no more than 4 words. Tricky but do-able. There should also be a quotation from yourself, expressing your feelings and pride for your book.
Visit a book shop (preferably a chain)
Start at A and go through every single title until you exhaust yourself at Z. Create a pile based on the following:
Likeable fonts: Different fonts suit different stories
Type of paper: Do you prefer a thicker or thinner page? What finish do you want?
Get some ideas for inner pages: have a look at the layout of the dedication page and publisher details page.
I allocated myself two hours for this and seriously underestimated the task. By the end of it I realised several things:
) My blood sugar levels had reached an all-time low and I was manic
) I'd found a lovely shade of coral for a chair I was having upholstered
) Major book stores are oversaturated and I can't understand how anyone finds the time to choose a suitable children's book, especially with your kids using your leg as a fireman's pole.
) There are some terrible children's books out there
Apart from that, it was a really useful exercise
Create a buzz
I despise the word networking but that's exactly what you have to do. You need to become a familiar face in all the local places where you want to sell your book. Ideally we are aiming for one shop in most family populated villages/town to stock the book – that way you can go for the "exclusivity" angle when approaching shops.
I said I would rather eat my own toenails then go on facebook but where Whoooossshh is concerned, I would sell my soul to the devil. For all its negatives, when used properly ie for promoting your business, social networking can be one of your strongest allies and really is the biggest reason why this is the perfect time to self-publish. I've just found a really easy to understand website on how to promote your business on facebook. Even Barnaby could manage this. http://www.makeuseof.com/tag/4-easy-steps-promote-business-facebook/ Right off to find my husband to set me up on this thing.
Just been introduced to the award-winning blog the daddy diaries http://www.daddydiariesblog.com. It's brilliant. Ordinarily I would be necking anti-hystamine tablets for my "parenting sites" allergy, however the difference is this is written by a father and journalist. At the risk of sounding like a misogynist, sometimes, just sometimes men have a better perspective on the whole parenting thing.
Whooosshh was written in acknowledgment of my husband being a great dad and we would be totally lost without him. And yes I know this is ludicrous but he can multi-task…better than me. Ouch. Check out my very own super hero in action in Whooossshh http://www.theoddsock.co.uk

redpajama_set_name: RedPajamaCommonCrawl


text:
Abuja Boutique Hotels
Cheap Flights to Abuja
Popular Boutique Hotels in Abuja
Transcorp Hilton Abuja
Ideally located in the prime touristic area of Abuja, Transcorp Hilton Abuja hotel promises a relaxing and wonderful visit. The hotel offers a high standard of service and amenities to suit the individual needs of all travelers. Car park, poolside bar, Wi-Fi in public areas, bicycle rental, tours are on the list of things guests can enjoy. Guestrooms are fitted with all the amenities you need for a good night's sleep, including in room safe, refrigerator, desk, air conditioning, bathtub. Recuperate from a full day of sightseeing in the comfort of your room or take advantage of the hotel's recreational facilities, including tennis courts, outdoor pool, kids club, golf course (on site), squash courts. Transcorp Hilton Abuja hotel combines warm hospitality with a lovely ambiance to make your stay in Abuja unforgettable.
Sheraton Abuja Hotel
Sheraton Abuja Hotel is perfectly located for both business and leisure guests in Abuja. The hotel offers guests a range of services and amenities designed to provide comfort and convenience. Service-minded staff will welcome and guide you at the Sheraton Abuja Hotel. Guestrooms are fitted with all the amenities you need for a good night's sleep. In some of the rooms, guests can find air conditioning, heating, desk, balcony/terrace, seating area. The hotel's peaceful atmosphere extends to its recreational facilities which include fitness center, sauna, outdoor pool, massage, children's playground. A welcoming atmosphere and excellent service are what you can expect during your stay at Sheraton Abuja Hotel.
Hawthorn Suites by Wyndham Abuja
Offering an outdoor pool, Hawthorn Suites by Wyndham is located in Abuja. The property is 15 minutes by car from Abuja Stadium and Aso Rock and a 10-minute drive from Millennium Park. Free Wi-Fi access is available in all areas.
Units will provide guests with air conditioning, a TV and satellite channels. Private bathrooms also come with a shower.
Guest can enjoy local and international cuisine at the onsite restaurant.
At Hawthorn Suites by Wyndham you will find luggage storage. The property offers free parking on site. Nnamdi Azikiwe International Airport is 41 km from the property. Upon request, a shuttle to the airport can be arranged.
Fraser Suites Abuja
An iconic landmark building located in the heart of the modern Federal Capital of Nigeria, Fraser Suites Abuja features 126 Gold-Standard residences that combine comfort, style & technology with outstanding facilities and exclusive in-house services.
With a wide range of apartments from studios to 4-bedroom penthouses, each unit is exquisitely appointed with contemporary interiors and luxurious finishes created by skilled craftsmen, while offering spectacular views across the lush city landscape.
The Dining Room has been lavishly designed to provide a five-star ambience, while the Atrium Café enjoys a fascinating atmosphere with its dramatic water feature. The Business Centre and Executive Lounge offer a full range of essential office services and internet access, as well as a variety of functional meeting rooms.
With an emphasis on health and wellness, Fraser Suites Abuja provides a broad range of recreational facilities all set around private landscaped gardens. In addition to a fully-equipped gym and outdoor swimming pool, the property benefits from a luxurious Spa and children's play zone.
Given its strategic location in the CBD and complete range of offerings, Fraser Suites Abuja is suitable for business executives and family members alike.
Febson Hotel
4.9/5Perfect2 Reviews
Situated in Abuja, Febson Hotel is 2.8 km from Cameroon Embassy and provides facilities like fitness centre, bar and on-site dining. The property is set 3.6 km from Big Church. Guests can chill out in the outdoor swimming pool.All units at the hotel come with a seating area. Every room includes a TV, and certain units at Febson Hotel have a city view. The rooms at the accommodation have air conditioning and a desk.Staff at the 24-hour front desk can provide tips on the area.
Gayyata Hotel
Property Location With a stay at Gayyata Hotel in Abuja, you'll be within the region of Zuma Rock and Jabi Lake Mall. This hotel is within the region of Wonderland Amusement Park and Abuja Stadium. Rooms Make yourself at home in one of the 10 air-conditioned rooms featuring minibars and flat-screen televisions. Complimentary wireless Internet access keeps you connected, and satellite programming is available for your entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include desks and a turndown service, and housekeeping is provided daily. Dining Satisfy your appetite for lunch or dinner at Gayyata, a restaurant which specializes in local and international cuisine, or stay in and take advantage of the room service (during limited hours). Quench your thirst with your favorite drink at the bar/lounge. Cooked-to-order breakfasts are available daily from 8 AM to 10 AM for a fee. Business, Other Amenities Featured amenities include dry cleaning/laundry services and a 24-hour front desk. A roundtrip airport shuttle is provided for a surcharge (available 24 hours), and free self parking is available onsite.
MS Marriott Apartments
Property Location With a stay at MS Marriott Apartments in Abuja, you'll be 11.1 mi (17.8 km) from Zuma Rock and 15.5 mi (24.9 km) from Jabi Lake Mall. This hotel is 17.7 mi (28.5 km) from Millennium Park and 18.2 mi (29.2 km) from Aso Villa. Rooms Make yourself at home in one of the 11 air-conditioned rooms featuring plasma televisions. Cable television is provided for your entertainment. Private bathrooms with showers feature rainfall showerheads and complimentary toiletries. Conveniences include desks and separate sitting areas, and housekeeping is provided daily. Dining At MS Marriott Apartments, enjoy a satisfying meal at the restaurant. Business, Other Amenities Featured amenities include a 24-hour front desk and laundry facilities. Free self parking is available onsite.
Chelsea Hotel - Central Area
Offering an outdoor pool and a restaurant, Chelsea Hotel is located in Abuja. Free WiFi access is available.
Each room here will provide you with air conditioning, a minibar and a seating area. There is also an electric kettle. Featuring a shower, private bathroom also comes with a bath and a bath or shower. Extras include a sofa, a desk and a safety deposit box.
At Chelsea Hotel you will find a tennis court and a fitness centre. Other facilities offered at the property include a tour desk, luggage storage and shops (on site). The property offers free parking.
Nnamdi Azikiwe International Airport is 24 km away.
Viclin Diamond Hotels
Viclin Diamond Hotel provides air-conditioned accommodation in Rubuchi. This 3-star hotel offers free WiFi. Free private parking is available on site.
At the hotel, each room is equipped with a desk. The rooms at Viclin Diamond Hotel are fitted with a TV with cable channels.
A continental breakfast is served daily at the property.
Peace Haven Hotel
Property Location Located in Abuja, Peace Haven Hotel is a 4-minute drive from Wonderland Amusement Park and 6 minutes from Abuja Stadium. This hotel is 3.1 mi (5 km) from Jabi Lake Mall and 4.3 mi (6.9 km) from National Hospital Abuja. Rooms Make yourself at home in one of the 31 guestrooms. Amenities Take advantage of recreation opportunities such as an outdoor pool, or other amenities including complimentary wireless Internet access and concierge services. Dining At Peace Haven Hotel, enjoy a satisfying meal at the restaurant. Quench your thirst with your favorite drink at the bar/lounge. A complimentary breakfast is included. Business, Other Amenities Featured amenities include a business center, dry cleaning/laundry services, and luggage storage. Free self parking is available onsite.
Bolton White Apartments
Property Location Located in Abuja, Bolton White Apartments is on the riverwalk and convenient to Wonderland Amusement Park and National Hospital Abuja. This apartment is within close proximity of Abuja Stadium and Nigerian National Mosque. Rooms Make yourself at home in one of the 75 guestrooms. Amenities Don't miss out on the many recreational opportunities, including an outdoor pool, an outdoor tennis court, and a fitness center. Additional features at this apartment include complimentary wireless Internet access, concierge services, and gift shops/newsstands. If you'd like to spend the day shopping, you can hop on the shuttle (surcharge). Dining Enjoy a satisfying meal at a restaurant serving guests of Bolton White Apartments. Quench your thirst with your favorite drink at a bar/lounge. Business, Other Amenities Featured amenities include dry cleaning/laundry services, luggage storage, and laundry facilities. Guests may use a train station pick-up service for a surcharge, and free self parking is available onsite.
Petrus Hotels Royale
Offering a spa and wellness centre and a restaurant, Petrus Hotels Royale is located in Abuja. Free WiFi access is available.
Each room here will provide you with a TV, air conditioning. Complete with a refrigerator, the dining area also has an electric kettle and a dining table. Private bathroom also comes with a shower and a bath. You can enjoy city view from the room. Extras include a seating area.
At Petrus Hotels Royale you will find a 24-hour front desk, barbecue facilities and a bar. Other facilities offered at the property include meeting facilities and a ticket service. An array of activities can be enjoyed on site or in the surroundings. The property offers free parking.
Peacock Apartments and Suites
Property Location With a stay at Peacock Apartments and Suites in Abuja, you'll be in the suburbs and close to Jabi Lake Mall. This hotel is within the vicinity of Nigerian National Mosque and Millennium Park. Rooms Make yourself at home in one of the 20 air-conditioned rooms featuring refrigerators and flat-screen televisions. Complimentary wireless Internet access keeps you connected, and satellite programming is available for your entertainment. Private bathrooms with shower/tub combinations feature deep soaking bathtubs and rainfall showerheads. Conveniences include safes and desks, and housekeeping is provided daily. Amenities This hotel offers designated smoking areas. Dining Enjoy a meal at the restaurant, or stay in and take advantage of the hotel's 24-hour room service. Wrap up your day with a drink at the bar/lounge. A complimentary continental breakfast is served daily from 7 AM to 8 AM. Business, Other Amenities Featured amenities include dry cleaning/laundry services, a 24-hour front desk, and luggage storage. Free self parking is available onsite.
Casa Rerri Boutique Hotel Asokoro
Featuring a restaurant, Berkshire Hotel Asokoro Abuja is located in Abuja. Free Wi-Fi is available in all areas.
Each room is equipped with a seating area and a desk. The private bathrooms come with a shower and a toilet.
Other facilities include a shared kitchen, a terrace and a kitchen.
Quo Vadis Hotel
Quo Vadis Hotel Abuja is located in Abuja. The property is 2 km from Central Business Area. Free Wi-Fi access is available in all areas.
Units will provide guests with a flat-screen TV, air conditioning and a minibar. There is also a coffee machine.
A continental breakfast is served each morning at Quo Vadis Hotel Abuja. Guest can enjoy local and international cuisine at the onsite restaurant.
At Quo Vadis Hotel Abuja you will find a 24-hour front desk, a terrace and a bar. The property offers free private parking on site.
Barcelona Hotels Abuja
Offering an outdoor pool, year-round outdoor pool and barbecue, Barcelona Hotels Abuja is set in Abuja. The hotel has a terrace and spa centre, and guests can enjoy a meal at the restaurant or a drink at the bar.
Each room is equipped with a flat-screen TV with cable channels. Certain rooms feature a seating area where you can relax. Barcelona Hotels Abuja features free WiFi throughout the property.
You will find a 24-hour front desk, a cash machine, hairdresser's and gift shop at the property.
This hotel has water sports facilities and car hire is available. You can play tennis and billiards at the hotel. Nnamdi Azikiwe International Airport is 25 km away.
Peace Media Hotels
Property Location With a stay at Peace Media Hotels in Abuja, you'll be 20.9 mi (33.7 km) from Zuma Rock and 21.4 mi (34.4 km) from Abuja Stadium. This hotel is 22.4 mi (36.1 km) from National Hospital Abuja and 24.5 mi (39.5 km) from Nigerian National Mosque. Rooms Make yourself at home in one of the 26 air-conditioned rooms featuring fireplaces and LED televisions. Complimentary wireless Internet access keeps you connected, and cable programming is available for your entertainment. Conveniences include safes and desks, and housekeeping is provided daily. Amenities Make use of convenient amenities such as complimentary wireless Internet access, concierge services, and barbecue grills. Getting to nearby attractions is a breeze with the area shuttle (surcharge). Dining For lunch or dinner, stop by Peace Media , a restaurant that specializes in local cuisine. Dining is also available at the coffee shop/café, and 24-hour room service is provided. Wrap up your day with a drink at the bar/lounge. A complimentary continental breakfast is served daily from 6:30 AM to 10:30 AM. Business, Other Amenities Featured amenities include a 24-hour business center, dry cleaning/laundry services, and a 24-hour front desk. This hotel has 2 meeting rooms available for events. A roundtrip airport shuttle is provided for a surcharge (available 24 hours), and free valet parking is available onsite.
3Js Hotels Limited
3Js Hotels Limited is set in Abuja, 6 km from Cameroon Embassy. The hotel has an outdoor pool and barbecue, and guests can enjoy a meal at the restaurant.
Every room includes a flat-screen TV with cable channels. You will find a kettle in the room. All rooms are equipped with a private bathroom equipped with a bath. 3Js Hotels Limited features free WiFi throughout the property.
There is a 24-hour front desk at the property.
The hotel also offers car hire. The nearest airport is Nnamdi Azikiwe International Airport, 20 km from the property.
Margaretta Classic Suites and Hotel
Featuring accommodation, Margaretta Classic Suites & Hotel is set in Abuja, 1.1 km from The Thought Pyramid Art Centre and 4.4 km from Abuja City Gate. The property is around 6 km from Millennium Park and 9 km from Aso Rock. The property is 3.7 km from Amigo supermarket.
At the hotel, rooms include a desk and a flat-screen TV. Selected rooms are fitted with a kitchenette with a fridge. All rooms at Margaretta Classic Suites & Hotel come with a seating area.
The accommodation offers accommodation with a fitness centre.
For any tips on how to get around or what to do in the area, guests can ask at the reception.
Sun Heaven Hotel & Resort Abuja
Property Location With a stay at Sun Heaven Hotel & Resort Abuja in Abuja, you'll be within a 10-minute drive of World Bank and Ecowas Secretariat. This hotel is 3.9 mi (6.2 km) from Federal Secretariat and 4 mi (6.4 km) from Nigerian National Mosque. Rooms Make yourself at home in one of the 25 air-conditioned rooms featuring flat-screen televisions. Cable television is provided for your entertainment. Private bathrooms with shower/tub combinations feature deep soaking bathtubs and complimentary toiletries. Conveniences include desks, and housekeeping is provided daily. Amenities Take advantage of recreation opportunities including an outdoor pool and a fitness center. Dining Enjoy a meal at the restaurant, or stay in and take advantage of the hotel's room service (during limited hours). Relax with your favorite drink at the bar/lounge or the poolside bar. For your convenience, a complimentary breakfast is served daily from 6:30 AM to 10 AM. Business, Other Amenities Featured amenities include limo/town car service, dry cleaning/laundry services, and a 24-hour front desk. Free self parking is available onsite.
The Beckett Suites
Residency Hotel Twin House
Property Location With a stay at Residency Hotel Twin House in Abuja, you'll be within a 15-minute drive of Ecowas Secretariat and World Bank. This hotel is 5.6 mi (9 km) from Federal Secretariat and 5.7 mi (9.2 km) from Nigerian National Mosque. Rooms Make yourself at home in one of the 47 air-conditioned rooms featuring refrigerators and LCD televisions. Satellite television is provided for your entertainment. Bathrooms have showers and complimentary toiletries. Conveniences include phones, as well as desks and minibars. Amenities Enjoy recreational amenities such as an outdoor pool and a fitness center. Additional features at this hotel include complimentary wireless Internet access and concierge services. Guests can catch a ride to nearby destinations on the area shuttle (surcharge). Dining Enjoy a meal at the restaurant, or stay in and take advantage of the hotel's 24-hour room service. Relax with a refreshing drink from the bar/lounge or one of the 2 poolside bars. Continental breakfasts are available daily from 7 AM to 10 AM for a fee. Business, Other Amenities Featured amenities include a business center, dry cleaning/laundry services, and a 24-hour front desk. Free self parking is available onsite.
Josto's Place
Property Location With a stay at Josto's Place, you'll be centrally located in Abuja, within a 15-minute drive of Jabi Lake Mall and Wonderland Amusement Park. This hotel is 5.8 mi (9.4 km) from Federal Secretariat and 6.2 mi (9.9 km) from Nigerian National Mosque. Rooms Make yourself at home in one of the 21 air-conditioned rooms featuring fireplaces and flat-screen televisions. Complimentary wireless Internet access keeps you connected, and satellite programming is available for your entertainment. Private bathrooms with separate bathtubs and showers feature jetted bathtubs and complimentary toiletries. Conveniences include refrigerators and coffee/tea makers, and housekeeping is provided daily. Amenities Enjoy recreation amenities such as an indoor pool or take in the view from a garden. Additional amenities at this hotel include complimentary wireless Internet access and barbecue grills. Dining Enjoy a meal at the restaurant, or stay in and take advantage of the hotel's room service (during limited hours). Continental breakfasts are available daily from 6:30 AM to 10 AM for a fee. Business, Other Amenities Featured amenities include complimentary newspapers in the lobby, dry cleaning/laundry services, and a 24-hour front desk. Free self parking is available onsite.
Power Mike Guest House
Situated in Abuja, 3.7 km from Big Church, Power Mike Guest House features air-conditioned rooms with free WiFi. Guests can enjoy the on-site bar. Free private parking is available on site.
The rooms are fitted with a flat-screen TV with cable channels. Each room comes with a private bathroom equipped with a bath.
You can play billiards at the guest house. The guest house also offers car hire. The nearest airport is Nnamdi Azikiwe International Airport, 22 km from the property.
Your Place at Asokoro
Property Location With a stay at Your Place at Asokoro in Abuja, you'll be within a 10-minute walk of World Bank and Ecowas Secretariat. This apartment is 2.9 mi (4.6 km) from Aso Villa and 3.5 mi (5.7 km) from Federal Secretariat. Rooms Make yourself at home in one of the 4 air-conditioned rooms featuring kitchens with refrigerators and stovetops. Flat-screen televisions with cable programming provide entertainment, while complimentary wireless Internet access keeps you connected. Conveniences include desks and microwaves, and housekeeping is provided daily. Amenities Don't miss out on recreational opportunities including a fitness center and bicycles to rent. Additional amenities at this apartment include complimentary wireless Internet access and barbecue grills. Dining Cooked-to-order breakfasts are available daily from 8 AM to 10 AM for a fee. Business, Other Amenities Featured amenities include dry cleaning/laundry services, luggage storage, and laundry facilities. A roundtrip airport shuttle is provided for a surcharge (available 24 hours), and free self parking is available onsite.
Golden Gate Hotel Abuja
Property Location When you stay at Golden Gate Hotel Abuja in Abuja, you'll be within a 10-minute drive of Nigerian National Mosque and Wonderland Amusement Park. This hotel is 3.2 mi (5.1 km) from Federal Secretariat and 3.8 mi (6 km) from Jabi Lake Mall. Rooms Make yourself at home in one of the 80 air-conditioned rooms featuring refrigerators and flat-screen televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Bathrooms have showers and complimentary toiletries. Conveniences include safes and desks, and housekeeping is provided daily. Amenities Make use of convenient amenities, which include complimentary wireless Internet access and concierge services. Dining Satisfy your appetite for lunch or dinner at the hotel's restaurant, or stay in and take advantage of the room service (during limited hours). Wrap up your day with a drink at the bar/lounge. A complimentary continental breakfast is served daily from 8 AM to 11 AM. Business, Other Amenities Featured amenities include complimentary wired Internet access, dry cleaning/laundry services, and a 24-hour front desk. Event facilities at this hotel consist of a conference center and a meeting room. Free self parking is available onsite.
Orient Hotel & Plaza Ltd
Providing free WiFi throughout the property, Orient Hotel & Plaza is set in Abuja. This 3-star hotel offers a 24-hour front desk. The property has a restaurant and Cameroon Embassy is 3.7 km away.
At the hotel, the rooms have a desk. All guest rooms at Orient Hotel & Plaza have air conditioning and a wardrobe.
Big Church is 5 km from the accommodation.
Lapour Hotels Ltd
Property Location Located in Abuja, Lapour Hotels Ltd is convenient to Wonderland Amusement Park and Abuja Stadium. This hotel is within close proximity of Jabi Lake Mall and National Hospital Abuja. Rooms Make yourself at home in one of the 35 air-conditioned guestrooms. Amenities Take advantage of recreation opportunities such as an outdoor pool, or other amenities including complimentary wireless Internet access and concierge services. Dining Enjoy a satisfying meal at a restaurant serving guests of Lapour Hotels Ltd. Quench your thirst with your favorite drink at a bar/lounge. Business, Other Amenities Featured amenities include a business center, dry cleaning/laundry services, and luggage storage. Free self parking is available onsite.
Pearl Manor Luxury Suites
Pearl Manor Luxury Suites offers accommodation in Galadima. Guests can enjoy the on-site bar. Free WiFi is provided throughout the property and free private parking is available on site.
Each room at this hotel is air conditioned and has a TV with satellite channels. Extras include bath robes, slippers and free toiletries.
The hotel also offers car hire. The nearest airport is Nnamdi Azikiwe International Airport, 18 km from Pearl Manor Luxury Suites.
Junbic Apartment and Suites
Property Location With a stay at Junbic Apartment and Suites in Abuja, you'll be convenient to Abuja Stadium and Wonderland Amusement Park. This hotel is within the vicinity of National Hospital Abuja and Jabi Lake Mall. Amenities Make use of convenient amenities, which include complimentary wireless Internet access and concierge services. Dining Enjoy a satisfying meal at a restaurant serving guests of Junbic Apartment and Suites. Quench your thirst with your favorite drink at a bar/lounge. Business, Other Amenities Featured amenities include dry cleaning/laundry services, luggage storage, and laundry facilities. Free self parking is available onsite.
See all Abuja Boutique hotels>
Abuja Boutique Hotel Guide
There are many discounted hotels on Trip.com. New and popular hotels in Abuja recommended by Trip.com. You can plan a one or two day trip to Abuja. For trips in Abuja, you can choose hotels around the city center or accommodations near popular attractions.
Nnamdi Azikiwe International Airport is the primary airport in Abuja.
There are 64 hotels in Abuja with excellent service. Abuja has high quality and low-priced hotels. You can spend one night at a nice hotel for only 92 USD. There are 6 five-star hotels in Abuja at an average price of 173 USD per night. There are 9 four-star hotels in Abuja at an average price of 89 USD per night. There are 18 three-star hotels in Abuja at an average price of 73 USD per night. There are 6 two-star hotels in Abuja at an average price of 57 USD per night. Abuja has many well-known chain hotels which are suitable for both business trips and vacations. Hilton is the top choice of many travelers in Abuja. Hotels under the Hilton brand are a good choice. Nicon Luxury Abuja in Abuja is a favorite among Trip.com users. Many tourists also stay at E-Suites Hotel.
For short trips in Abuja, Zuma Rock are all good options. You can also visit top-rated attractions like Abuja National Mosque.
• January to March: 32.95°C during the day, 26.58°C at night
• April to June: 29.94°C during the day, 23.87°C at night
• July to September: 26.76°C during the day, 21.61°C at night
• October to December: 29.63°C during the day, 21.57°C at night
Average seasonal Rainfall
• Spring: 6.13 cm
• Summer: 120.37 cm
• Autumn: 244.53 cm
• Winter: 36.03 cm
2 star hotels in Abuja | Hotels in Abuja with Bar | Hotels in Abuja with Airport pickup service | Hotels in Abuja with Parking | Hotels in Abuja with Spa | Hot springs hotels in Xi'an | Hot springs hotels in Ningbo | Boutique hotels in Chuncheon-si | Hot springs hotels in Suzhou | Hot springs hotels in Shanghai | Family friendly hotels in Lubawka | Seaview hotels in Roiffe | Hot springs hotels in Roiffe | Romantic hotels in Roiffe | Family friendly hotels in Roiffe | Hot springs hotels in Guangzhou | Hot springs hotels in Nanjing | Hot springs hotels in Shenzhen | Seaview hotels in Istanbul | Hot springs hotels in Hangzhou
Thai Lion Air | Ryanair | Matak | Flights from Graz | Lagos to Abuja | Ibadan to Abuja | Port Harcourt to Abuja | Yola to Abuja | Gombe to Abuja | Hanoi to Phu Quoc Island | Shanghai to Kunming | Zurich to Marsa Alam | Dubai to Abuja | Paris to Abuja | Cairo to Abuja | Johannesburg to Abuja | Gothenburg to Amsterdam | George to Johannesburg | Grand Rapids to Phoenix | Geneva to Lisbon


text:
Q: Responsive menu icon issue I have an issue. I have a menu but I want to make it responsive with a button click ( font awesome) when i set display:none; and then display:block on the media query , my icon doesn't appear.. pls help.
html:

css:
@media screen and (min-width:320px) and (max-width:640px){
   .menuRight{
       display:none;
   }

   #menuIcon{
       display:block;
       float:right;
       cursor:pointer;
   }
}

#menuIcon{
    display:none;
}

A: In your above code, the display:none; is below the display:block; so it is overriding it. Organize your code like this and it will work:
#menuIcon{
    display:none;
}

@media screen and (min-width:320px) and (max-width:640px){
   .menuRight{
   display:none;
 }

 #menuIcon{
   display:block;
   float:right;
   cursor:pointer;
 }
}

Also, see this on cascading: https://css-tricks.com/specifics-on-css-specificity/

A: Maybe just try to set display: block; as !important.

A: If you add style to an element twice in your CSS file, CSS gives higher priority to the code added at the last.
e.g.
.box { color: #fff; }
.box { color: #000; }

The property of .box will be color: #000; since it was added at the last.
Just change your code to the following:
#menuIcon{
    display:none;
}

@media screen and (min-width:320px) and (max-width:640px){
   .menuRight{
       display:none;
   }

   #menuIcon{
       display:block;
       float:right;
       cursor:pointer;
   }
}


Meet Atwood. She'll Do Right by You.
Vortexes are being polarized. Faces chapped.
So you duck into a nondescript winter vestibule, emerging into this bi-level wood-and-brick haven.
At the entrance, someone says, "We've been expecting you," and hands you a plate of sweet potato mac and cheese and a Boulevardier.
Who are you, the Sultan of Brunei?
No, but they've got that stuff if you just sit down at Atwood, a Midtown sanctuary of cocktails from a Milk & Honey vet and a bunch of good stuff to absorb them. It's opening any day now.
Thar she blows, floor one. There's a second, too.
This is what you saw right before you sat down and had a stellar evening.
And this is the French Rickey that helped with the stellarness. Gin, seltzer, lime, absinthe. You're taken care of.
You probably should have had the crispy chicken with honey before that, but hey, nobody's perfect. And it's never too late.
Or their version of toast. Way to improve on toast.
Oh, look, you had another one. You rascal, you. This pretty little maid is a Grape Collins—like the "Tom" variety, but with grapes and other stuff.


This special award, which is named in honor of longtime New England journalist and former New England Press Association Executive Director Bob Wallack, recognizes an individual who has an exceptional record of commitment to community journalism. This award celebrates the accomplishments of someone who, over a sustained period of time, has faithfully served the community for which they are responsible and has played an active, constructive role in contributing to its quality of life. Anyone may nominate a colleague, co-worker, subordinate, superior, mentor, retiree, etc., who works or worked in our six-state region and truly exemplifies the ideal of a community journalist, just as Bob Wallack did.
How do you weave the fabric of a community into a tapestry of its triumphs and tragedies? Answer: One stitch at a time, which is what Thor Jourgensen has been doing for 27 years as a reporter for The Daily Item in Lynn, Massachusetts.
Thor is, by any definition a community-oriented reporter committed to giving a voice to residents throughout the Greater Lynn area. His early mentors in the business impressed upon him the importance of stepping aside as a writer and letting the people on whom he reported tell their story. He consistently applies those words of wisdom as he works to craft stories around people who are passionate about their community and the issues each faces.
Thor has not told one person's story once and then moved on to the next headline or topical issue. He has written about the people who built Lynn, like the Migliaccio family's three generations, from the immigrant who built a new life in Lynn to the sons who committed their teen years and 20s to carrying on a family legacy through their local florist business.
When he told the story of a Guatemalan congregation rebuilding a giant brick church in Lynn's center, it was only after telling the stories of Jewish Americans who made the church a temple and brought it to its most glorious heights.
In decades spent reporting on Lynn and surrounding communities, Thor told the story of Lynn's residents, knitting together tales of struggle and promise. He has repeatedly written about local veterans, like the woman whose face was the last one American soldiers saw before they died on a remote Pacific island. When a national veterans' organization marked a milestone, Thor made sure the accomplishment could be seen by Item readers on the face of a local Afghan war veteran.
He told the story 20 years ago of a Lynn woman who turned terror at the hands of an abuser into founding an organization providing safe haven to abused women. In 2003, Portal to Hope and the Massachusetts Legislature honored Thor's commitment to domestic violence prevention reporting.
In 2010 when domestic violence claimed a couple's life, he told their story through a tragic account of how the local court system missed the warning signs of abuse.
No school child's achievement, no senior's hobby, no disenfranchised resident's struggle is too pedestrian for Thor to report on, stitching the story into the tapestry of life in the city he lives and works in. Thor doesn't just report on the community, he is an active part of the community.
Some of his greatest rewards of the job come from gratitude expressed by subjects of the more difficult stories for his fair and accurate reporting. And sometimes, he says, "thank you" from a parent, or from the subject of one of his human-interest stories, goes a long way.
These are just a few examples of many throughout Thor's three decade-long career that demonstrate his reporting experience, the commitment he has made to community journalism, and his body of work which makes him a most worthy recipient of the Bob Wallack Community Journalism Award.
Enterprise Managing Editor Steve Damish began writing about opiate addiction in 2006, when he learned of two Brockton High School students who had died from heroin overdoses – one of them an acclaimed dancer who had performed at the White House.
His Sunday columns about the individuals drew calls and letters from the parents of other overdose victims, many of whom had felt isolated, frustrated and stigmatized, asking that he dig deeper. He did. By attending support groups, visiting with addicts and their families, and studying data. He quickly realized the problem was far worse than people know. He marshaled the resources of the newsroom in what was to become an eight-year effort not only to reveal the breadth and depth of the problem, but to gain support for intervention, treatment and understanding.
Under his direction, the newspaper undertook two ground-breaking series that were the first to expose the prevalence of opioid addiction in southeastern Massachusetts and its impact on communities and families as well as individuals. The results were "Wasted Youth" and "Wasted Youth – A Deadly Surge," published in 2007 and 2008. The two series revealed that dozens of young adults throughout the Brockton area had died, hundreds had overdosed – and scores of families and communities had been fractured, mostly from the drugs OxyContin and heroin. Both series ran for four days and featured extensive print and online components. The centerpieces for each day's presentation were profiles of local addicts written by Damish himself.
To report these stories, he spent months visiting with addicts and their families in sober houses, treatment facilities, halfway homes, recovery schools, drug houses and their homes. To reach addicts, Steve would deliver them a Thanksgiving meal at their sober house, pray with them at a friend's graveside, or sit and hold their hands as they fought through withdrawal and recovery. His personal commitment helped to convince everyone featured in the stories to allow their real names and photos to be used, despite the stigma connected to drug addiction.