text:
START_ATF_NAMESPACE
    namespace Detail
    {

        Info::AutominePersonalctor_AutominePersonal2_ptr AutominePersonalctor_AutominePersonal2_next(nullptr);
        Info::AutominePersonalctor_AutominePersonal2_clbk AutominePersonalctor_AutominePersonal2_user(nullptr);

        Info::AutominePersonalGetDefFC4_ptr AutominePersonalGetDefFC4_next(nullptr);
        Info::AutominePersonalGetDefFC4_clbk AutominePersonalGetDefFC4_user(nullptr);

        Info::AutominePersonalGetDefFacing6_ptr AutominePersonalGetDefFacing6_next(nullptr);
        Info::AutominePersonalGetDefFacing6_clbk AutominePersonalGetDefFacing6_user(nullptr);

        Info::AutominePersonalGetDefGap8_ptr AutominePersonalGetDefGap8_next(nullptr);
        Info::AutominePersonalGetDefGap8_clbk AutominePersonalGetDefGap8_user(nullptr);

        Info::AutominePersonalGetHP10_ptr AutominePersonalGetHP10_next(nullptr);
        Info::AutominePersonalGetHP10_clbk AutominePersonalGetHP10_user(nullptr);

        Info::AutominePersonalGetMaxHP12_ptr AutominePersonalGetMaxHP12_next(nullptr);
        Info::AutominePersonalGetMaxHP12_clbk AutominePersonalGetMaxHP12_user(nullptr);

        Info::AutominePersonalGetObjRace14_ptr AutominePersonalGetObjRace14_next(nullptr);
        Info::AutominePersonalGetObjRace14_clbk AutominePersonalGetObjRace14_user(nullptr);

        Info::AutominePersonalGetOwner16_ptr AutominePersonalGetOwner16_next(nullptr);
        Info::AutominePersonalGetOwner16_clbk AutominePersonalGetOwner16_user(nullptr);

        Info::AutominePersonalIsBeAttackedAble18_ptr AutominePersonalIsBeAttackedAble18_next(nullptr);
        Info::AutominePersonalIsBeAttackedAble18_clbk AutominePersonalIsBeAttackedAble18_user(nullptr);

        Info::AutominePersonalIsBeDamagedAble20_ptr AutominePersonalIsBeDamagedAble20_next(nullptr);
        Info::AutominePersonalIsBeDamagedAble20_clbk AutominePersonalIsBeDamagedAble20_user(nullptr);

        Info::AutominePersonalLoadDBComplete22_ptr AutominePersonalLoadDBComplete22_next(nullptr);
        Info::AutominePersonalLoadDBComplete22_clbk AutominePersonalLoadDBComplete22_user(nullptr);

        Info::AutominePersonalLoop24_ptr AutominePersonalLoop24_next(nullptr);
        Info::AutominePersonalLoop24_clbk AutominePersonalLoop24_user(nullptr);

        Info::AutominePersonalSendMsg_FixPosition26_ptr AutominePersonalSendMsg_FixPosition26_next(nullptr);
        Info::AutominePersonalSendMsg_FixPosition26_clbk AutominePersonalSendMsg_FixPosition26_user(nullptr);

        Info::AutominePersonalSetDamage28_ptr AutominePersonalSetDamage28_next(nullptr);
        Info::AutominePersonalSetDamage28_clbk AutominePersonalSetDamage28_user(nullptr);

        Info::AutominePersonaldo_automine34_ptr AutominePersonaldo_automine34_next(nullptr);
        Info::AutominePersonaldo_automine34_clbk AutominePersonaldo_automine34_user(nullptr);

        Info::AutominePersonalextract_battery36_ptr AutominePersonalextract_battery36_next(nullptr);
        Info::AutominePersonalextract_battery36_clbk AutominePersonalextract_battery36_user(nullptr);

        Info::AutominePersonalget_battery38_ptr AutominePersonalget_battery38_next(nullptr);
        Info::AutominePersonalget_battery38_clbk AutominePersonalget_battery38_user(nullptr);

        Info::AutominePersonalget_battery40_ptr AutominePersonalget_battery40_next(nullptr);
        Info::AutominePersonalget_battery40_clbk AutominePersonalget_battery40_user(nullptr);

        Info::AutominePersonalget_item42_ptr AutominePersonalget_item42_next(nullptr);
        Info::AutominePersonalget_item42_clbk AutominePersonalget_item42_user(nullptr);

        Info::AutominePersonalget_itemserial44_ptr AutominePersonalget_itemserial44_next(nullptr);
        Info::AutominePersonalget_itemserial44_clbk AutominePersonalget_itemserial44_user(nullptr);

        Info::AutominePersonalget_objserial46_ptr AutominePersonalget_objserial46_next(nullptr);
        Info::AutominePersonalget_objserial46_clbk AutominePersonalget_objserial46_user(nullptr);

        Info::AutominePersonalget_owner48_ptr AutominePersonalget_owner48_next(nullptr);
        Info::AutominePersonalget_owner48_clbk AutominePersonalget_owner48_user(nullptr);

        Info::AutominePersonalget_ownerserial50_ptr AutominePersonalget_ownerserial50_next(nullptr);
        Info::AutominePersonalget_ownerserial50_clbk AutominePersonalget_ownerserial50_user(nullptr);

        Info::AutominePersonalinitialize52_ptr AutominePersonalinitialize52_next(nullptr);
        Info::AutominePersonalinitialize52_clbk AutominePersonalinitialize52_user(nullptr);

        Info::AutominePersonalinsert_battery54_ptr AutominePersonalinsert_battery54_next(nullptr);
        Info::AutominePersonalinsert_battery54_clbk AutominePersonalinsert_battery54_user(nullptr);

        Info::AutominePersonalis_installed56_ptr AutominePersonalis_installed56_next(nullptr);
        Info::AutominePersonalis_installed56_clbk AutominePersonalis_installed56_user(nullptr);

        Info::AutominePersonalis_run58_ptr AutominePersonalis_run58_next(nullptr);
        Info::AutominePersonalis_run58_clbk AutominePersonalis_run58_user(nullptr);

        Info::AutominePersonalmake_minepacket60_ptr AutominePersonalmake_minepacket60_next(nullptr);
        Info::AutominePersonalmake_minepacket60_clbk AutominePersonalmake_minepacket60_user(nullptr);

        Info::AutominePersonalregist_to_map62_ptr AutominePersonalregist_to_map62_next(nullptr);
        Info::AutominePersonalregist_to_map62_clbk AutominePersonalregist_to_map62_user(nullptr);

        Info::AutominePersonalsend_attacked64_ptr AutominePersonalsend_attacked64_next(nullptr);
        Info::AutominePersonalsend_attacked64_clbk AutominePersonalsend_attacked64_user(nullptr);

        Info::AutominePersonalsend_changed_packet66_ptr AutominePersonalsend_changed_packet66_next(nullptr);
        Info::AutominePersonalsend_changed_packet66_clbk AutominePersonalsend_changed_packet66_user(nullptr);

        Info::AutominePersonalsend_current_state68_ptr AutominePersonalsend_current_state68_next(nullptr);
        Info::AutominePersonalsend_current_state68_clbk AutominePersonalsend_current_state68_user(nullptr);

        Info::AutominePersonalsend_ecode70_ptr AutominePersonalsend_ecode70_next(nullptr);
        Info::AutominePersonalsend_ecode70_clbk AutominePersonalsend_ecode70_user(nullptr);

        Info::AutominePersonalsend_installed72_ptr AutominePersonalsend_installed72_next(nullptr);
        Info::AutominePersonalsend_installed72_clbk AutominePersonalsend_installed72_user(nullptr);

        Info::AutominePersonalset_delay74_ptr AutominePersonalset_delay74_next(nullptr);
        Info::AutominePersonalset_delay74_clbk AutominePersonalset_delay74_user(nullptr);

        Info::AutominePersonalset_delaysec76_ptr AutominePersonalset_delaysec76_next(nullptr);
        Info::AutominePersonalset_delaysec76_clbk AutominePersonalset_delaysec76_user(nullptr);

        Info::AutominePersonalset_openUI_Inven78_ptr AutominePersonalset_openUI_Inven78_next(nullptr);
        Info::AutominePersonalset_openUI_Inven78_clbk AutominePersonalset_openUI_Inven78_user(nullptr);

        Info::AutominePersonalset_openUI_battery80_ptr AutominePersonalset_openUI_battery80_next(nullptr);
        Info::AutominePersonalset_openUI_battery80_clbk AutominePersonalset_openUI_battery80_user(nullptr);

        Info::AutominePersonalset_selore82_ptr AutominePersonalset_selore82_next(nullptr);
        Info::AutominePersonalset_selore82_clbk AutominePersonalset_selore82_user(nullptr);

        Info::AutominePersonalset_work84_ptr AutominePersonalset_work84_next(nullptr);
        Info::AutominePersonalset_work84_clbk AutominePersonalset_work84_user(nullptr);

        Info::AutominePersonalsub_battery86_ptr AutominePersonalsub_battery86_next(nullptr);
        Info::AutominePersonalsub_battery86_clbk AutominePersonalsub_battery86_user(nullptr);

        Info::AutominePersonalsub_filledslot88_ptr AutominePersonalsub_filledslot88_next(nullptr);
        Info::AutominePersonalsub_filledslot88_clbk AutominePersonalsub_filledslot88_user(nullptr);

        Info::AutominePersonalunregist_from_map90_ptr AutominePersonalunregist_from_map90_next(nullptr);
        Info::AutominePersonalunregist_from_map90_clbk AutominePersonalunregist_from_map90_user(nullptr);

        Info::AutominePersonaldtor_AutominePersonal92_ptr AutominePersonaldtor_AutominePersonal92_next(nullptr);
        Info::AutominePersonaldtor_AutominePersonal92_clbk AutominePersonaldtor_AutominePersonal92_user(nullptr);

        void AutominePersonalctor_AutominePersonal2_wrapper(struct AutominePersonal* _this)
        {
           AutominePersonalctor_AutominePersonal2_user(_this, AutominePersonalctor_AutominePersonal2_next);
        };
        int AutominePersonalGetDefFC4_wrapper(struct AutominePersonal* _this, int nAttactPart, struct CCharacter* pAttChar, int* pnConvertPart)
        {
           return AutominePersonalGetDefFC4_user(_this, nAttactPart, pAttChar, pnConvertPart, AutominePersonalGetDefFC4_next);
        };
        float AutominePersonalGetDefFacing6_wrapper(struct AutominePersonal* _this, int nPart)
        {
           return AutominePersonalGetDefFacing6_user(_this, nPart, AutominePersonalGetDefFacing6_next);
        };
        float AutominePersonalGetDefGap8_wrapper(struct AutominePersonal* _this, int nPart)
        {
           return AutominePersonalGetDefGap8_user(_this, nPart, AutominePersonalGetDefGap8_next);
        };
        int AutominePersonalGetHP10_wrapper(struct AutominePersonal* _this)
        {
           return AutominePersonalGetHP10_user(_this, AutominePersonalGetHP10_next);
        };
        int AutominePersonalGetMaxHP12_wrapper(struct AutominePersonal* _this)
        {
           return AutominePersonalGetMaxHP12_user(_this, AutominePersonalGetMaxHP12_next);
        };
        int AutominePersonalGetObjRace14_wrapper(struct AutominePersonal* _this)
        {
           return AutominePersonalGetObjRace14_user(_this, AutominePersonalGetObjRace14_next);
        };
        struct CPlayer* AutominePersonalGetOwner16_wrapper(struct AutominePersonal* _this)
        {
           return AutominePersonalGetOwner16_user(_this, AutominePersonalGetOwner16_next);
        };
        bool AutominePersonalIsBeAttackedAble18_wrapper(struct AutominePersonal* _this, bool bFirst)
        {
           return AutominePersonalIsBeAttackedAble18_user(_this, bFirst, AutominePersonalIsBeAttackedAble18_next);
        };
        bool AutominePersonalIsBeDamagedAble20_wrapper(struct AutominePersonal* _this, struct CCharacter* pAtter)
        {
           return AutominePersonalIsBeDamagedAble20_user(_this, pAtter, AutominePersonalIsBeDamagedAble20_next);
        };
        void AutominePersonalLoadDBComplete22_wrapper(struct AutominePersonal* _this)
        {
           AutominePersonalLoadDBComplete22_user(_this, AutominePersonalLoadDBComplete22_next);
        };
        void AutominePersonalLoop24_wrapper(struct AutominePersonal* _this)
        {
           AutominePersonalLoop24_user(_this, AutominePersonalLoop24_next);
        };
        void AutominePersonalSendMsg_FixPosition26_wrapper(struct AutominePersonal* _this, int n)
        {
           AutominePersonalSendMsg_FixPosition26_user(_this, n, AutominePersonalSendMsg_FixPosition26_next);
        };
        int AutominePersonalSetDamage28_wrapper(struct AutominePersonal* _this, int nDam, struct CCharacter* pDst, int nDstLv, bool bCrt, int nAttackType, unsigned int dwAttackSerial, bool bJadeReturn)
        {
           return AutominePersonalSetDamage28_user(_this, nDam, pDst, nDstLv, bCrt, nAttackType, dwAttackSerial, bJadeReturn, AutominePersonalSetDamage28_next);
        };
        bool AutominePersonaldo_automine34_wrapper(struct AutominePersonal* _this, unsigned int dwTime)
        {
           return AutominePersonaldo_automine34_user(_this, dwTime, AutominePersonaldo_automine34_next);
        };
        bool AutominePersonalextract_battery36_wrapper(struct AutominePersonal* _this, char bySlotIdx, struct _STORAGE_LIST::_db_con* pBattery)
        {
           return AutominePersonalextract_battery36_user(_this, bySlotIdx, pBattery, AutominePersonalextract_battery36_next);
        };
        unsigned int AutominePersonalget_battery38_wrapper(struct AutominePersonal* _this, int n)
        {
           return AutominePersonalget_battery38_user(_this, n, AutominePersonalget_battery38_next);
        };
        unsigned int AutominePersonalget_battery40_wrapper(struct AutominePersonal* _this)
        {
           return AutominePersonalget_battery40_user(_this, AutominePersonalget_battery40_next);
        };
        struct _STORAGE_LIST::_db_con* AutominePersonalget_item42_wrapper(struct AutominePersonal* _this)
        {
           return AutominePersonalget_item42_user(_this, AutominePersonalget_item42_next);
        };
        uint16_t AutominePersonalget_itemserial44_wrapper(struct AutominePersonal* _this)
        {
           return AutominePersonalget_itemserial44_user(_this, AutominePersonalget_itemserial44_next);
        };
        unsigned int AutominePersonalget_objserial46_wrapper(struct AutominePersonal* _this)
        {
           return AutominePersonalget_objserial46_user(_this, AutominePersonalget_objserial46_next);
        };
        struct CPlayer* AutominePersonalget_owner48_wrapper(struct AutominePersonal* _this)
        {
           return AutominePersonalget_owner48_user(_this, AutominePersonalget_owner48_next);
        };
        unsigned int AutominePersonalget_ownerserial50_wrapper(struct AutominePersonal* _this)
        {
           return AutominePersonalget_ownerserial50_user(_this, AutominePersonalget_ownerserial50_next);
        };
        bool AutominePersonalinitialize52_wrapper(struct AutominePersonal* _this, uint16_t wIndex)
        {
           return AutominePersonalinitialize52_user(_this, wIndex, AutominePersonalinitialize52_next);
        };
        bool AutominePersonalinsert_battery54_wrapper(struct AutominePersonal* _this, char bySlotIdx, uint16_t wItemSerial)
        {
           return AutominePersonalinsert_battery54_user(_this, bySlotIdx, wItemSerial, AutominePersonalinsert_battery54_next);
        };
        bool AutominePersonalis_installed56_wrapper(struct AutominePersonal* _this)
        {
           return AutominePersonalis_installed56_user(_this, AutominePersonalis_installed56_next);
        };
        bool AutominePersonalis_run58_wrapper(struct AutominePersonal* _this)
        {
           return AutominePersonalis_run58_user(_this, AutominePersonalis_run58_next);
        };
        void AutominePersonalmake_minepacket60_wrapper(struct AutominePersonal* _this, uint16_t wItemIndex, uint16_t wItemSerial, char byStorageIndex, uint16_t nNewOre, unsigned int dwDur)
        {
           AutominePersonalmake_minepacket60_user(_this, wItemIndex, wItemSerial, byStorageIndex, nNewOre, dwDur, AutominePersonalmake_minepacket60_next);
        };
        bool AutominePersonalregist_to_map62_wrapper(struct AutominePersonal* _this, struct CPlayer* pOne, struct _STORAGE_LIST::_db_con* pDstItem, char byDummyIndex, unsigned int dwObjSerial, float fDelayProf)
        {
           return AutominePersonalregist_to_map62_user(_this, pOne, pDstItem, byDummyIndex, dwObjSerial, fDelayProf, AutominePersonalregist_to_map62_next);
        };
        void AutominePersonalsend_attacked64_wrapper(struct AutominePersonal* _this)
        {
           AutominePersonalsend_attacked64_user(_this, AutominePersonalsend_attacked64_next);
        };
        void AutominePersonalsend_changed_packet66_wrapper(struct AutominePersonal* _this, int n)
        {
           AutominePersonalsend_changed_packet66_user(_this, n, AutominePersonalsend_changed_packet66_next);
        };
        void AutominePersonalsend_current_state68_wrapper(struct AutominePersonal* _this)
        {
           AutominePersonalsend_current_state68_user(_this, AutominePersonalsend_current_state68_next);
        };
        void AutominePersonalsend_ecode70_wrapper(struct AutominePersonal* _this, char byCode)
        {
           AutominePersonalsend_ecode70_user(_this, byCode, AutominePersonalsend_ecode70_next);
        };
        void AutominePersonalsend_installed72_wrapper(struct AutominePersonal* _this)
        {
           AutominePersonalsend_installed72_user(_this, AutominePersonalsend_installed72_next);
        };
        void AutominePersonalset_delay74_wrapper(struct AutominePersonal* _this, unsigned int dwDelay)
        {
           AutominePersonalset_delay74_user(_this, dwDelay, AutominePersonalset_delay74_next);
        };
        void AutominePersonalset_delaysec76_wrapper(struct AutominePersonal* _this, unsigned int dwDS)
        {
           AutominePersonalset_delaysec76_user(_this, dwDS, AutominePersonalset_delaysec76_next);
        };
        void AutominePersonalset_openUI_Inven78_wrapper(struct AutominePersonal* _this, bool bFlag)
        {
           AutominePersonalset_openUI_Inven78_user(_this, bFlag, AutominePersonalset_openUI_Inven78_next);
        };
        void AutominePersonalset_openUI_battery80_wrapper(struct AutominePersonal* _this, bool bFlag)
        {
           AutominePersonalset_openUI_battery80_user(_this, bFlag, AutominePersonalset_openUI_battery80_next);
        };
        void AutominePersonalset_selore82_wrapper(struct AutominePersonal* _this, char bySelOre)
        {
           AutominePersonalset_selore82_user(_this, bySelOre, AutominePersonalset_selore82_next);
        };
        void AutominePersonalset_work84_wrapper(struct AutominePersonal* _this, bool bWork)
        {
           AutominePersonalset_work84_user(_this, bWork, AutominePersonalset_work84_next);
        };
        char AutominePersonalsub_battery86_wrapper(struct AutominePersonal* _this, unsigned int dwUsed)
        {
           return AutominePersonalsub_battery86_user(_this, dwUsed, AutominePersonalsub_battery86_next);
        };
        void AutominePersonalsub_filledslot88_wrapper(struct AutominePersonal* _this)
        {
           AutominePersonalsub_filledslot88_user(_this, AutominePersonalsub_filledslot88_next);
        };
        bool AutominePersonalunregist_from_map90_wrapper(struct AutominePersonal* _this, char byDestroyType)
        {
           return AutominePersonalunregist_from_map90_user(_this, byDestroyType, AutominePersonalunregist_from_map90_next);
        };

        void AutominePersonaldtor_AutominePersonal92_wrapper(struct AutominePersonal* _this)
        {
           AutominePersonaldtor_AutominePersonal92_user(_this, AutominePersonaldtor_AutominePersonal92_next);
        };

        ::std::array<hook_record, 44> AutominePersonal_functions =
        {
            _hook_record {
                (LPVOID)0x1402da090L,
                (LPVOID *)&AutominePersonalctor_AutominePersonal2_user,
                (LPVOID *)&AutominePersonalctor_AutominePersonal2_next,
                (LPVOID)cast_pointer_function(AutominePersonalctor_AutominePersonal2_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)())&AutominePersonal::ctor_AutominePersonal)
            },
            _hook_record {
                (LPVOID)0x1402db7e0L,
                (LPVOID *)&AutominePersonalGetDefFC4_user,
                (LPVOID *)&AutominePersonalGetDefFC4_next,
                (LPVOID)cast_pointer_function(AutominePersonalGetDefFC4_wrapper),
                (LPVOID)cast_pointer_function((int(AutominePersonal::*)(int, struct CCharacter*, int*))&AutominePersonal::GetDefFC)
            },
            _hook_record {
                (LPVOID)0x1402db730L,
                (LPVOID *)&AutominePersonalGetDefFacing6_user,
                (LPVOID *)&AutominePersonalGetDefFacing6_next,
                (LPVOID)cast_pointer_function(AutominePersonalGetDefFacing6_wrapper),
                (LPVOID)cast_pointer_function((float(AutominePersonal::*)(int))&AutominePersonal::GetDefFacing)
            },
            _hook_record {
                (LPVOID)0x1402db680L,
                (LPVOID *)&AutominePersonalGetDefGap8_user,
                (LPVOID *)&AutominePersonalGetDefGap8_next,
                (LPVOID)cast_pointer_function(AutominePersonalGetDefGap8_wrapper),
                (LPVOID)cast_pointer_function((float(AutominePersonal::*)(int))&AutominePersonal::GetDefGap)
            },
            _hook_record {
                (LPVOID)0x1402ddbf0L,
                (LPVOID *)&AutominePersonalGetHP10_user,
                (LPVOID *)&AutominePersonalGetHP10_next,
                (LPVOID)cast_pointer_function(AutominePersonalGetHP10_wrapper),
                (LPVOID)cast_pointer_function((int(AutominePersonal::*)())&AutominePersonal::GetHP)
            },
            _hook_record {
                (LPVOID)0x1402ddbd0L,
                (LPVOID *)&AutominePersonalGetMaxHP12_user,
                (LPVOID *)&AutominePersonalGetMaxHP12_next,
                (LPVOID)cast_pointer_function(AutominePersonalGetMaxHP12_wrapper),
                (LPVOID)cast_pointer_function((int(AutominePersonal::*)())&AutominePersonal::GetMaxHP)
            },
            _hook_record {
                (LPVOID)0x1402ddc60L,
                (LPVOID *)&AutominePersonalGetObjRace14_user,
                (LPVOID *)&AutominePersonalGetObjRace14_next,
                (LPVOID)cast_pointer_function(AutominePersonalGetObjRace14_wrapper),
                (LPVOID)cast_pointer_function((int(AutominePersonal::*)())&AutominePersonal::GetObjRace)
            },
            _hook_record {
                (LPVOID)0x1402dcfc0L,
                (LPVOID *)&AutominePersonalGetOwner16_user,
                (LPVOID *)&AutominePersonalGetOwner16_next,
                (LPVOID)cast_pointer_function(AutominePersonalGetOwner16_wrapper),
                (LPVOID)cast_pointer_function((struct CPlayer*(AutominePersonal::*)())&AutominePersonal::GetOwner)
            },
            _hook_record {
                (LPVOID)0x1402ddd00L,
                (LPVOID *)&AutominePersonalIsBeAttackedAble18_user,
                (LPVOID *)&AutominePersonalIsBeAttackedAble18_next,
                (LPVOID)cast_pointer_function(AutominePersonalIsBeAttackedAble18_wrapper),
                (LPVOID)cast_pointer_function((bool(AutominePersonal::*)(bool))&AutominePersonal::IsBeAttackedAble)
            },
            _hook_record {
                (LPVOID)0x1402ddce0L,
                (LPVOID *)&AutominePersonalIsBeDamagedAble20_user,
                (LPVOID *)&AutominePersonalIsBeDamagedAble20_next,
                (LPVOID)cast_pointer_function(AutominePersonalIsBeDamagedAble20_wrapper),
                (LPVOID)cast_pointer_function((bool(AutominePersonal::*)(struct CCharacter*))&AutominePersonal::IsBeDamagedAble)
            },
            _hook_record {
                (LPVOID)0x1402da620L,
                (LPVOID *)&AutominePersonalLoadDBComplete22_user,
                (LPVOID *)&AutominePersonalLoadDBComplete22_next,
                (LPVOID)cast_pointer_function(AutominePersonalLoadDBComplete22_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)())&AutominePersonal::LoadDBComplete)
            },
            _hook_record {
                (LPVOID)0x1402dc310L,
                (LPVOID *)&AutominePersonalLoop24_user,
                (LPVOID *)&AutominePersonalLoop24_next,
                (LPVOID)cast_pointer_function(AutominePersonalLoop24_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)())&AutominePersonal::Loop)
            },
            _hook_record {
                (LPVOID)0x1402dcd60L,
                (LPVOID *)&AutominePersonalSendMsg_FixPosition26_user,
                (LPVOID *)&AutominePersonalSendMsg_FixPosition26_next,
                (LPVOID)cast_pointer_function(AutominePersonalSendMsg_FixPosition26_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)(int))&AutominePersonal::SendMsg_FixPosition)
            },
            _hook_record {
                (LPVOID)0x1402db890L,
                (LPVOID *)&AutominePersonalSetDamage28_user,
                (LPVOID *)&AutominePersonalSetDamage28_next,
                (LPVOID)cast_pointer_function(AutominePersonalSetDamage28_wrapper),
                (LPVOID)cast_pointer_function((int(AutominePersonal::*)(int, struct CCharacter*, int, bool, int, unsigned int, bool))&AutominePersonal::SetDamage)
            },
            _hook_record {
                (LPVOID)0x1402db9c0L,
                (LPVOID *)&AutominePersonaldo_automine34_user,
                (LPVOID *)&AutominePersonaldo_automine34_next,
                (LPVOID)cast_pointer_function(AutominePersonaldo_automine34_wrapper),
                (LPVOID)cast_pointer_function((bool(AutominePersonal::*)(unsigned int))&AutominePersonal::do_automine)
            },
            _hook_record {
                (LPVOID)0x1402da880L,
                (LPVOID *)&AutominePersonalextract_battery36_user,
                (LPVOID *)&AutominePersonalextract_battery36_next,
                (LPVOID)cast_pointer_function(AutominePersonalextract_battery36_wrapper),
                (LPVOID)cast_pointer_function((bool(AutominePersonal::*)(char, struct _STORAGE_LIST::_db_con*))&AutominePersonal::extract_battery)
            },
            _hook_record {
                (LPVOID)0x1402e1ac0L,
                (LPVOID *)&AutominePersonalget_battery38_user,
                (LPVOID *)&AutominePersonalget_battery38_next,
                (LPVOID)cast_pointer_function(AutominePersonalget_battery38_wrapper),
                (LPVOID)cast_pointer_function((unsigned int(AutominePersonal::*)(int))&AutominePersonal::get_battery)
            },
            _hook_record {
                (LPVOID)0x1402de0b0L,
                (LPVOID *)&AutominePersonalget_battery40_user,
                (LPVOID *)&AutominePersonalget_battery40_next,
                (LPVOID)cast_pointer_function(AutominePersonalget_battery40_wrapper),
                (LPVOID)cast_pointer_function((unsigned int(AutominePersonal::*)())&AutominePersonal::get_battery)
            },
            _hook_record {
                (LPVOID)0x1402e1810L,
                (LPVOID *)&AutominePersonalget_item42_user,
                (LPVOID *)&AutominePersonalget_item42_next,
                (LPVOID)cast_pointer_function(AutominePersonalget_item42_wrapper),
                (LPVOID)cast_pointer_function((struct _STORAGE_LIST::_db_con*(AutominePersonal::*)())&AutominePersonal::get_item)
            },
            _hook_record {
                (LPVOID)0x1402e19d0L,
                (LPVOID *)&AutominePersonalget_itemserial44_user,
                (LPVOID *)&AutominePersonalget_itemserial44_next,
                (LPVOID)cast_pointer_function(AutominePersonalget_itemserial44_wrapper),
                (LPVOID)cast_pointer_function((uint16_t(AutominePersonal::*)())&AutominePersonal::get_itemserial)
            },
            _hook_record {
                (LPVOID)0x14029d690L,
                (LPVOID *)&AutominePersonalget_objserial46_user,
                (LPVOID *)&AutominePersonalget_objserial46_next,
                (LPVOID)cast_pointer_function(AutominePersonalget_objserial46_wrapper),
                (LPVOID)cast_pointer_function((unsigned int(AutominePersonal::*)())&AutominePersonal::get_objserial)
            },
            _hook_record {
                (LPVOID)0x1402e1a50L,
                (LPVOID *)&AutominePersonalget_owner48_user,
                (LPVOID *)&AutominePersonalget_owner48_next,
                (LPVOID)cast_pointer_function(AutominePersonalget_owner48_wrapper),
                (LPVOID)cast_pointer_function((struct CPlayer*(AutominePersonal::*)())&AutominePersonal::get_owner)
            },
            _hook_record {
                (LPVOID)0x1402de040L,
                (LPVOID *)&AutominePersonalget_ownerserial50_user,
                (LPVOID *)&AutominePersonalget_ownerserial50_next,
                (LPVOID)cast_pointer_function(AutominePersonalget_ownerserial50_wrapper),
                (LPVOID)cast_pointer_function((unsigned int(AutominePersonal::*)())&AutominePersonal::get_ownerserial)
            },
            _hook_record {
                (LPVOID)0x1402da3d0L,
                (LPVOID *)&AutominePersonalinitialize52_user,
                (LPVOID *)&AutominePersonalinitialize52_next,
                (LPVOID)cast_pointer_function(AutominePersonalinitialize52_wrapper),
                (LPVOID)cast_pointer_function((bool(AutominePersonal::*)(uint16_t))&AutominePersonal::initialize)
            },
            _hook_record {
                (LPVOID)0x1402da640L,
                (LPVOID *)&AutominePersonalinsert_battery54_user,
                (LPVOID *)&AutominePersonalinsert_battery54_next,
                (LPVOID)cast_pointer_function(AutominePersonalinsert_battery54_wrapper),
                (LPVOID)cast_pointer_function((bool(AutominePersonal::*)(char, uint16_t))&AutominePersonal::insert_battery)
            },
            _hook_record {
                (LPVOID)0x1400d3dd0L,
                (LPVOID *)&AutominePersonalis_installed56_user,
                (LPVOID *)&AutominePersonalis_installed56_next,
                (LPVOID)cast_pointer_function(AutominePersonalis_installed56_wrapper),
                (LPVOID)cast_pointer_function((bool(AutominePersonal::*)())&AutominePersonal::is_installed)
            },
            _hook_record {
                (LPVOID)0x1402e1aa0L,
                (LPVOID *)&AutominePersonalis_run58_user,
                (LPVOID *)&AutominePersonalis_run58_next,
                (LPVOID)cast_pointer_function(AutominePersonalis_run58_wrapper),
                (LPVOID)cast_pointer_function((bool(AutominePersonal::*)())&AutominePersonal::is_run)
            },
            _hook_record {
                (LPVOID)0x1402dc130L,
                (LPVOID *)&AutominePersonalmake_minepacket60_user,
                (LPVOID *)&AutominePersonalmake_minepacket60_next,
                (LPVOID)cast_pointer_function(AutominePersonalmake_minepacket60_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)(uint16_t, uint16_t, char, uint16_t, unsigned int))&AutominePersonal::make_minepacket)
            },
            _hook_record {
                (LPVOID)0x1402dabc0L,
                (LPVOID *)&AutominePersonalregist_to_map62_user,
                (LPVOID *)&AutominePersonalregist_to_map62_next,
                (LPVOID)cast_pointer_function(AutominePersonalregist_to_map62_wrapper),
                (LPVOID)cast_pointer_function((bool(AutominePersonal::*)(struct CPlayer*, struct _STORAGE_LIST::_db_con*, char, unsigned int, float))&AutominePersonal::regist_to_map)
            },
            _hook_record {
                (LPVOID)0x1402dcb70L,
                (LPVOID *)&AutominePersonalsend_attacked64_user,
                (LPVOID *)&AutominePersonalsend_attacked64_next,
                (LPVOID)cast_pointer_function(AutominePersonalsend_attacked64_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)())&AutominePersonal::send_attacked)
            },
            _hook_record {
                (LPVOID)0x1402dc930L,
                (LPVOID *)&AutominePersonalsend_changed_packet66_user,
                (LPVOID *)&AutominePersonalsend_changed_packet66_next,
                (LPVOID)cast_pointer_function(AutominePersonalsend_changed_packet66_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)(int))&AutominePersonal::send_changed_packet)
            },
            _hook_record {
                (LPVOID)0x1402dcea0L,
                (LPVOID *)&AutominePersonalsend_current_state68_user,
                (LPVOID *)&AutominePersonalsend_current_state68_next,
                (LPVOID)cast_pointer_function(AutominePersonalsend_current_state68_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)())&AutominePersonal::send_current_state)
            },
            _hook_record {
                (LPVOID)0x1402dcc90L,
                (LPVOID *)&AutominePersonalsend_ecode70_user,
                (LPVOID *)&AutominePersonalsend_ecode70_next,
                (LPVOID)cast_pointer_function(AutominePersonalsend_ecode70_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)(char))&AutominePersonal::send_ecode)
            },
            _hook_record {
                (LPVOID)0x1402dc9f0L,
                (LPVOID *)&AutominePersonalsend_installed72_user,
                (LPVOID *)&AutominePersonalsend_installed72_next,
                (LPVOID)cast_pointer_function(AutominePersonalsend_installed72_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)())&AutominePersonal::send_installed)
            },
            _hook_record {
                (LPVOID)0x14029d540L,
                (LPVOID *)&AutominePersonalset_delay74_user,
                (LPVOID *)&AutominePersonalset_delay74_next,
                (LPVOID)cast_pointer_function(AutominePersonalset_delay74_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)(unsigned int))&AutominePersonal::set_delay)
            },
            _hook_record {
                (LPVOID)0x14029d570L,
                (LPVOID *)&AutominePersonalset_delaysec76_user,
                (LPVOID *)&AutominePersonalset_delaysec76_next,
                (LPVOID)cast_pointer_function(AutominePersonalset_delaysec76_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)(unsigned int))&AutominePersonal::set_delaysec)
            },
            _hook_record {
                (LPVOID)0x1402e1b20L,
                (LPVOID *)&AutominePersonalset_openUI_Inven78_user,
                (LPVOID *)&AutominePersonalset_openUI_Inven78_next,
                (LPVOID)cast_pointer_function(AutominePersonalset_openUI_Inven78_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)(bool))&AutominePersonal::set_openUI_Inven)
            },
            _hook_record {
                (LPVOID)0x1402e1b50L,
                (LPVOID *)&AutominePersonalset_openUI_battery80_user,
                (LPVOID *)&AutominePersonalset_openUI_battery80_next,
                (LPVOID)cast_pointer_function(AutominePersonalset_openUI_battery80_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)(bool))&AutominePersonal::set_openUI_battery)
            },
            _hook_record {
                (LPVOID)0x1402e1940L,
                (LPVOID *)&AutominePersonalset_selore82_user,
                (LPVOID *)&AutominePersonalset_selore82_next,
                (LPVOID)cast_pointer_function(AutominePersonalset_selore82_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)(char))&AutominePersonal::set_selore)
            },
            _hook_record {
                (LPVOID)0x1402e1a70L,
                (LPVOID *)&AutominePersonalset_work84_user,
                (LPVOID *)&AutominePersonalset_work84_next,
                (LPVOID)cast_pointer_function(AutominePersonalset_work84_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)(bool))&AutominePersonal::set_work)
            },
            _hook_record {
                (LPVOID)0x1402da990L,
                (LPVOID *)&AutominePersonalsub_battery86_user,
                (LPVOID *)&AutominePersonalsub_battery86_next,
                (LPVOID)cast_pointer_function(AutominePersonalsub_battery86_wrapper),
                (LPVOID)cast_pointer_function((char(AutominePersonal::*)(unsigned int))&AutominePersonal::sub_battery)
            },
            _hook_record {
                (LPVOID)0x1402e1be0L,
                (LPVOID *)&AutominePersonalsub_filledslot88_user,
                (LPVOID *)&AutominePersonalsub_filledslot88_next,
                (LPVOID)cast_pointer_function(AutominePersonalsub_filledslot88_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)())&AutominePersonal::sub_filledslot)
            },
            _hook_record {
                (LPVOID)0x1402db110L,
                (LPVOID *)&AutominePersonalunregist_from_map90_user,
                (LPVOID *)&AutominePersonalunregist_from_map90_next,
                (LPVOID)cast_pointer_function(AutominePersonalunregist_from_map90_wrapper),
                (LPVOID)cast_pointer_function((bool(AutominePersonal::*)(char))&AutominePersonal::unregist_from_map)
            },
            _hook_record {
                (LPVOID)0x1402da210L,
                (LPVOID *)&AutominePersonaldtor_AutominePersonal92_user,
                (LPVOID *)&AutominePersonaldtor_AutominePersonal92_next,
                (LPVOID)cast_pointer_function(AutominePersonaldtor_AutominePersonal92_wrapper),
                (LPVOID)cast_pointer_function((void(AutominePersonal::*)())&AutominePersonal::dtor_AutominePersonal)
            },
        };
    }; // end namespace Detail
END_ATF_NAMESPACE


text:
General Results of Self-Study Related to Four Standards and Criterial for Review - Accreditation
Capacity and Preparatory Review
General Results of Self-Study Related to Four Standards and Criterial for Review
IV. General Results of Self-Study Related to Four
IV. General Results of Self-Study Related to Four Standards and Criteria for Review
Standard 1: Defining Institutional Purposes and Ensuring Educational Objectives
Institutional Purpose and Educational Integrity
The mission and the vision guide all strategic planning and decision-making processes at the Naval Postgraduate School. Both institutional capacity and educational effectiveness are measured against the backdrop of the NPS mission and vision, which serve as the basis for development and review of curriculum as well as its business practices and processes. For example, proposed curricula are reviewed, approved and funded based on the fit with mission and vision. The move to develop a substantial distributed learning program in both master's and certificates was based on the vision. [CFR 1.1,1.2, 1.3]
Since its inception as a graduate school for the Department of the Navy in 1909, NPS has been in a unique position to provide postgraduate education in academic areas clearly supporting defense and national security. Faculty, staff and students are aware of the mission of the Naval Postgraduate School because of its immediacy to operational readiness and the service that NPS provides to all Armed Forces, our global partners, the Department of Defense and the Department of the Navy. All education and research conducted at the Naval Postgraduate School is focused on the enhancement of national security. [CFR 1.2]
At the same time, NPS is committed to academic freedom and the ability of faculty to publish and disseminate their research, as stated in the Faculty Handbook. (24) It is a hallmark of NPS faculty that they seek collaboration and multi-disciplinary research, not just across the campus, but also throughout the world. This can be seen in our many partnerships "" with North Atlantic Treaty Organization (NATO) countries, as a Partnership for Peace education and training center, the distribution of Homeland Security curricula to universities all over the U.S., and more. [CFR 1.4]
The faculty controls the planning, delivery and oversight of all curricula. Curriculum committees are found in the departments, and the Academic Council oversees final approval of new programs. Each degree awarded is also reviewed and approved by the Academic Council. Policies affecting faculty are clearly set forth in the Faculty Handbook and the Policy Regarding Appointment, Promotion, Salary, and Tenure of Office. (25) [CFR 2.4]
NPS is working diligently to operate in a more efficient and effective manner, having identified operational support both as a main WASC theme and a goal of the new strategic plan. Efforts have been underway to review functional processes, identify best practices and implement recommendations, which will result in more accountability and transparency in operations. Theme Three further highlights the importance that NPS places on its operational and institutional integrity, recognizing it as an ongoing process that takes precedence in the planning, assessment, and review cycle. [CFR1.8]
Diversity in faculty, staff and student populations is an area that the campus is striving to better understand and document. The academic disciplines that make up NPS were traditionally male-dominated. Over the past 10 years, however, departments and Schools have made increased gender diversity a priority in hiring. As a result, the faculty has gone from 12 percent female in 2000, to 18 percent female in 2007. Ethnic and cultural diversity among the faculty was made somewhat more problematic in the post-9/11 environment with the temporary elimination of the hiring of international faculty. That restriction was lifted and cultural diversity is expected to increase in faculty hiring, and efforts toward that goal are being strengthened. [CFR 1.5]
The NPS staff has become more diverse over time, with 54 percent females in 2007, up from 45 percent in 2000, and 48 percent minorities in 2007, up from 33 percent in 2000. In addition, there have been shifts in the numbers of staff directly employed by NPS. Decreases have occurred for several reasons including regionalization of some functional areas and the use of contracts to hire qualified staff more quickly than possible through standard federal employment mechanisms.
One of the distinctive features that sets NPS apart from nearly all other institutions is that officers of all U.S. armed services and the armed services of many other countries come together in NPS classrooms and laboratories. The student body reflects the diversity of the military populations from which they are drawn. Graduates of NPS report that diversity in service, culture and ethnicity greatly enhanced their educational experience. NPS continues to build international programs with other institutions, such as the University of Singapore, the Korean National Defense University and the German-Jordanian University's Talal Abu-Ghazaleh College of Business. [CFR 1.5]
Standard 2: Achieving Educational Objectives through Core Functions
The Naval Postgraduate School is committed to providing its resident, international, distributed learning and government civilian students with an environment that reflects NPS's academic standards of excellence. To achieve this goal, the Naval Postgraduate School employs nearly 600 faculty, all of whom have a Ph.D., terminal degree and/or demonstrated expertise in their particular fields. [CFR 2.1]
There are currently 52 resident curricula leading to master's and doctoral degrees; 13 non-resident curricula leading to master's degrees; and 14 certificate curricula. These curricula originate when a need for military officers educated in a particular discipline is identified. Academic degrees may be granted within the framework of a curriculum. For example, a Masters of Mechanical Engineering may be earned within the curricula of Undersea Warfare or Space Systems Engineering or a number of other curricula. (26) Generally, when a curriculum is designed, a set of learning objectives, the Educational Skill Requirements (ESRs), is identified. The learning objectives of each curricula are found in the online academic catalog, updated each quarter. The curricular review process, described in detail under Theme Two, is a periodic evaluation by faculty as well as senior military officers to determine the continuing relevance of the content. The Academic Program Review process, also described under Theme Two, evaluates each program for academic rigor, currency of subject matter, and adequacy of resources provided. Since students come to NPS not from undergraduate education, but directly from military service, refresher courses are provided to update key skill and knowledge sets before graduate-level work commences. [CFR2.2, 2.3, 2.4, 2.5, 2.6]
Survey results from graduating students show that 95 percent had active interaction with and access to NPS professors, from course studies to thesis/capstone projects, and that this is one of the most valuable benefits of securing an education at NPS. (27) Teaching assistants rarely teach classes; NPS students are taught directly by the faculty, who are experts in their field. Because of the interaction between NPS and the local higher education and research community, students can also work together with scholars from the Fleet Numerical Meteorology and Oceanography Center, Monterey Institute of International Studies, the Naval Research Laboratory and more.
Scholarship and Creative Activity
NPS strives to support and encourage the creative and scholarly activities of its faculty, recognizing the importance of research in the Promotion and Tenure process. The NPS faculty is involved in a wide range of scholarly activities beyond the classroom and the confines of their research laboratories, writing and publishing in peer-reviewed journals as well as producing patents, books and book chapters, and contributions to proceedings of professional societies. The faculty is active in national and international professional associations, and NPS faculty members belong to various national academies. Because of NPS's position within the Department of Defense, NPS faculty members are frequently called to the nation's capital to brief Congress, military officials, and the Executive Branch, including the President of the U.S. Likewise, faculty travel abroad to serve on visiting task forces and provide professional consultative services to allied nations. Members of the NPS faculty are frequently interviewed by global media because of their relevant and highly focused insight on the many issues facing the U.S. in a global environment. [CFR 2.8]
NPS provides funding to new tenure-track faculty during their first two years. Titled the Research Initiation Program (RIP), funding is provided for release time as well as equipment, supplies and travel to assist new faculty in establishing or transitioning to a research program supportive of the NPS graduate education mission. Since 2000, RIP has increased from supporting 7 faculty at a funding level of $0.4 million, to 29 faculty supported in 2008 at a level of $2.5 million. [CFR 2.9]
As a graduate university, professionally active faculty members are expected to extend their scholarship directly into their classrooms and research areas""providing an integrated approach to teaching that is more effective and relevant as it relates current issues to national security; therefore, scholars at NPS are actively engaged in service to the DoD through advisory boards or Integrated Project Teams. Many NPS faculty serve on National Academy of Sciences panels, and as advisors and mentors for the National Research Council, American Society for Engineering Education, and Engineer and Science Exchange. NPS faculty members are active in their discipline societies and can often be found as organizing members for national and international conferences. While the majority of NPS-sponsored activity is for the DoD (66 percent), NPS faculty members are also successful in competitive awards from agencies such as the National Science Foundation. Collaborative research with non-government activities (industry, universities, and state governments) has increased ten-fold in recent years. [CFR 2.9]
While the Naval Postgraduate School has four graduate Schools as the supporting pillars, three institutes were established in 2001 to integrate research and learning within a multi-disciplinary focus. The initial three institutes focused on systems engineering; information superiority and innovation; and modeling and simulation. A fourth institute, formed in 2007 with partners Lawrence Livermore National Laboratory and the University of California Santa Barbara, focuses on research and education in support of national security and homeland security. NPS also hosts 26 Centers of Excellence ranging from Information Operations to Remotely Piloted Aircraft. [CFR 2.8]
Support for Student Learning
A broad range of support services to assist students with their academic programs is provided through the department and program offices across the campus. Additional offices are dedicated to the special needs of military, international and graduate students. Staff assistance is described below [CFR 2.12, 2.13]:
Research and Sponsored Programs Office
The Research and Sponsored Programs Office (RSPO) provides direct support to students as they are conducting their research through:
facilitation of a student research fellowship program
provision of travel funding to support thesis research or conference travel (if student does not have support from a faculty Principal Investigator)
assistance to all resident and non-resident students on achieving a publishable thesis
provision of thesis editors for all international students and editor referrals for U.S. students
creation of a writing center to assist students and improve written and oral communication and presentation skills. [CFR 2.13]
The International Graduate Program Office (IGPO)
The IGPO at NPS serves as an integral link in establishing long-term, military-to-military relationships between U.S. and international officers. The IGPO is responsible for cultural, social and academic integration of the international military students and their families. IGPO staff provides information and assistance daily on a wide variety of issues and activities, ranging from medical and dental, housing, DMV, Social Security registration, income verifications, technical assistance for visa/passport renewals, ID card applications, furniture loan program, textbooks, thesis formatting and editing assistance, and English as a Second Language support. [CFR 2.13]
The Office of Student Services facilitates all military administrative processes and ensures that proper documentation, leave processing, promotions, etc. are carried out. Student Services provides initial student orientation and ensures a smooth transition from various duty assignments to the campus environment. Student Services assists with housing, medical issues, family advocacy issues and other areas, allowing students to concentrate primarily on their education and research. [CFR 2.11, 2.12]
To monitor and improve services in all areas, a set of student needs and satisfaction surveys have been developed. The first of these, the Graduating Student Survey, has been administered quarterly for nearly two years. (27) The New Student Survey is due to be initiated in the first quarter of Academic Year 2009. (28) The Mid-Term Student Survey is currently under construction. (29) Students developed these last two surveys as part of a survey research course in conjunction with the Office of Institutional Research. A report series on these surveys is also currently under construction. [CFR 4.5]
Because students come to NPS primarily for graduate degrees, students participate in a rigorous and active research community. A thesis or capstone project is required to earn the graduate degree and, in keeping with its mission, student research is relevant to the defense and security arenas. In the graduating student survey, 85 percent of students see completion of the thesis or capstone project as a valuable part of their education, and 75 percent think their thesis or capstone project made a valuable contribution to a national security need. (27)
The Dudley Knox Library provides a unique combination of print and online resources and patron services that directly support the research and instructional needs of NPS students, faculty, and staff. The Library does this in both "public" as well as "classified" subject areas with a focus on 24/7 access to current and archival journals and databases. More than 85 percent of the library content is available online because, wherever possible, the Library leverages limited dollars into consortial licenses with other Department of the Navy, Department of Defense and federal libraries. Successful partnerships with campus constituents such as ITACS and the Office of Continuous Learning (OCL) also expand the reach of campus investments in systems and access to content and technology, which focus on providing a robust, information-rich environment that promotes distributed, lifelong learning. [CFR 2.13]
Library instruction programs address the multi-cultural and multi-lingual requirements that adult learners face when they return to graduate school after years in the workforce. In 2007 alone, the Library reached more than 2,600 students through 168 instructional sessions ("public" and "classified" versions) covering such topics as "Thesis Quick Start," "Searching the Invisible or Deep Web," or topical presentations like "DTIC's STINET (Defense Technical Information Center's Scientific and Technical Information Network)." Librarians are active participants in all aspects of the NPS student life""resident and distant, instruction and research. Librarians are invited into the classroom to talk about specific resources supporting individual curricular programs; offer general sessions in the Library; and reach distance learners in person (by traveling to the course site), via online tools and VTE, as well as through recorded sessions and presentations streamed from the Library website. The Library is fully vested in providing content, instruction, and services that meet the needs of students anywhere, anytime. [CFR 2.13]
Information Technology and Communications Services (ITACS) provides support for student learning in education and research experience through a variety of technology and communication resources. These include support for nearly 800 software packages and technology tools, as well as support for 80 classrooms, 18 Learning Resource Centers, 7 conference rooms, 10 scheduled labs, 6 library collaboration spaces, and 5 large venue facilities. Direct support of 7 VTE classrooms is provided; this includes approximately 50 courses per quarter including more than 50 distant geographic sites. Approximately 120 hours of instructional content per week is captured and made available to students on demand. Streaming media capabilities also permit video capture of special events on campus (e.g., guest lectures, public events, etc.). The classrooms and laboratories are supported through an annual Educational Technology Inventory and Life Cycle Management Plan. (30, 31) [CFR 2.13, 3.6]
Support for student education and research is provided through the Technology Assistance Center, a help desk established by ITACS to respond to constituent needs. ITACS also sponsors a series of short courses, with topics and agendas developed based on user requests. [CFR 2.13, 3.6]
An important component of graduate education and research in a research university involves high-speed network access and access to global educational resources. Maintaining Internet access through Cal-REN, the state's higher education network, ensures state-of- the-art linkages with resources around the world. The special nature of research at NPS also requires the support of classified networks and technical resources. Use of High Performance Computing (HPC) is growing on campus, and support for access to those resources is increasing, both on campus and at other HPC sites around the country. NPS researchers and staff are engaged in a project with University of California campuses at Los Angeles and Santa Barbara to build a grid environment, permitting seamless sharing of HPC resources. The cornerstone of ITACS services is in its partnerships; these include partnerships with academic departments, the Office of Continuous Learning, the Dudley Knox Library, industry, and other universities, laboratories and federal and international organizations. [CFR 3.6, 3.7]
The Information Technology Plan provides a five-year framework for technology and services planning. (32) The IT Task Force, a broadly representative group of faculty, staff and students provides user input and feedback on all policies and practices considered for adoption by NPS. (33)
Standard 3: Developing and Applying Resources and Organizational Structures to Ensure Sustainability
Being responsible stewards of the Naval Postgraduate School's fiscal, physical, human and information resources is the foundation that allows NPS to meet its strategic goals and advance its mission. The foundation of all successful functions of NPS rests with a highly qualified faculty and staff. Recruitment and retention of both have become a primary focus for the institution. The Human Resources Office at NPS administers the hiring of staff and faculty. Potential faculty candidates are vetted through the recruitment and hiring process as set forth in the Faculty Handbook. (24) Qualified prospective staff members are referred through the Department of Navy civilian hiring and recruitment online system. All applicants are subject to interviews, often by a committee. The Human Resources Office also provides orientation for all new staff members. (34) [CFR 3.1, 3.2, 3.3]
Acknowledging that graduate programs in particular require a high level of faculty support, NPS has increased the number of faculty from 464 in 2002, to 606 in 2007 as its research and educational areas have expanded. The student to faculty ratio is 9.5:1, which compares favorably to other research institutions (e.g., the UC Berkeley ratio is 10:1). [CFR 3.2]
NPS has a rigorous faculty recruitment process. Advertisements are widely disseminated in major national publications, as well as discipline-specific publications and media. Every effort is made to recruit from as diverse a candidate pool as possible. Particular attention is given to coordinate the timing of searches with key professional association meetings in order to reach the broadest possible candidate pool. Search committees typically identify targets of opportunity and invite highly qualified candidates to apply. Likewise, NPS has a system for confirming appointments and reappointments to key positions, such as Department Chair and Dean. Some professional staff positions also undergo national searches to find the most highly qualified candidates available. The policies regarding appointment, promotion and tenure can be found in the Policy Regarding Appointment, Promotion, Salary, and Tenure of Office. (25) [CFR 3.3]
Accordingly, substantial attention is given to helping new faculty and rewarding more experienced faculty. The Research Initiation Program helps new tenure-track faculty establish research programs within the DoD. In 2006, 40 faculty received a combined total of $2.8 million; in 2007, 35 faculty received $2.2 million; and in 2008, 29 faculty received $2.5 million. [CFR 3.4]
In 2007, the Staff Development Advisory Committee (SDAC) was formed to provide a framework for career and professional development opportunities. (35) One of the first activities was a staff survey regarding development needs, followed by focus groups and interviews. As a result of the data collection effort, recommendations to the President included: 1) a need for stronger orientation programs, 2) more training opportunities, 3) better communication about advancement opportunities and 4) funding for training. (36)
Fiscal, Physical and Information Resources
Accountability and Resource Management
NPS continues to be financially stable, operating with appropriate internal and external budgetary controls and oversight. Financial strength is the result of a responsible planning and review process that involves faculty and administrators. NPS aggressively seeks to strengthen and increase its financial base and pursue the resources necessary to achieve its mission and to develop business models that enhance its stakeholders' return on investment. Revenue from tuition and other non-governmental sources increases annually. [CFR 3.5]
The NPS operating budget provided by the Navy, which supports the teaching mission and academic support structures, was $102,646,000 for the fiscal year ending September 30, 2008. The total annual funding, including reimbursable research and other federal and non-federal sponsored programs, was $338 million. It is important to note that NPS has strong sponsorship for funded research. In the fiscal year ending September 30, 2008, NPS faculty brought in over $175 million in sponsored activities. [CFR 3.5]
NPS is investing strategically in its classrooms, laboratories, library and technology. Operational plans support the strategic goals, and NPS is making investments and decisions that are aligned with institutional mission and vision. As an institution, NPS will monitor its performance and report to its community of stakeholders, which will allow those who invest in NPS to capitalize on their investment. [CFR 3.5]
For example, the campus recently underwent a comprehensive revamping of the budget process, including a change in the funding model for determining the academic budgets provided to the Schools and Departments. The major change is a shift in orientation, from a model resourcing the academic units principally for teaching activity to a model that is based on funding of faculty for a nine-month academic year, consistent with other research universities. In the past, the budgeting process has been relatively informal and reactive to Department of Navy directives. Within the past year, new and more formal processes have been implemented, based on campus priorities and strategic plan goals. The budget process as it relates to strategic planning is discussed in detail under Theme One. [CFR 3.5]
NPS resides on a main campus of 133 acres, along with a 51-acre section of beachfront along Monterey Bay. The beachfront area has a number of oceanography labs; however, most of the land is natural habitat, and not easily converted for other purposes. Additional remote NPS lab facilities reside at the Monterey Pines (Navy) Golf Course, less than one mile from the main campus, while a one-acre parcel at Point Sur, 25 miles away, houses another oceanographic lab. Other leased areas, including aircraft hangar space at Marina Airport and at Camp Roberts (U.S. Army), are used for the remotely piloted aircraft program. Facilities used to house the NPS university functions number 45 separate building structures. A partnership with the U.S. Army Garrison at the Presidio of Monterey and a private developer provides more than 2,100 housing units for NPS students at La Mesa Village and the Ord Military Community on the former Fort Ord. An initiative to provide for faculty and staff home ownership in the Community Land Trust is also being planned. The first homes should be offered for sale within the next four years. This is a critical component for recruitment and retention of key faculty and staff for the NPS. [CFR 3.5]
The Road Ahead describes the major base facilities initiatives within the 2006-2011 timeframe, to include construction, renovation, and major departmental moves. (37) A campus Space Management Prioritization Committee and associated working groups have a detailed process for assigning and auditing space utilization across campus. Plans in this area include additional staff to increase support for space management and the mapping of the entire campus into a GIS (geographic information system), as well as the creation of a database of CAD drawings for every space on campus. [CFR3.5]
Organizational Structures and Decision Making
A number of key committees help govern the institution, ensuring all members of the university community are engaged and involved. (38) Faculty actively engages in proposing, drafting and reviewing curricular, program and course proposals. The structure and function of the Academic Council is described in more depth under Theme Two. Assessing student learning outcomes, and conducting program and curricular review, is also primarily the responsibility of the faculty. The NPS Research Board, with representatives from each academic department, the institutes, and Faculty Council, advises the Vice President and Dean of Research on policies affecting research. [CFR 3.8]
Standard 4: Creating an Organization Dedicated to Learning and Improvement
Strategic Thinking and Planning
Prior to the recent efforts, strategic planning was last completed on an institution-wide basis in 2003. The preparation for the WASC review coincided with the need to review, evaluate and renew the institutional commitment to mission and how to accomplish this mission. The complete process is documented under Theme One.
As part of the strategic planning process, the institution developed metrics that are shared broadly and updated regularly. A new Strategic Planning Council meets regularly to discuss the process and review the latest metrics. Efforts are underway by the Office of Institutional Research to expand and enhance data availability to the entire campus in order to support decision-making. (39) [CFR 4.1, 4.2, 4.3]
Commitment to Learning and Improvement
The Naval Postgraduate School has long been committed to the ideals of continuous improvement. The curricular review process, described in detail under Theme Two, is just one example of how NPS has long engaged faculty, students and future employers in the development, review and improvement of academic programs. Indeed, fulfillment of the mission to be "relevant" and support increased combat effectiveness and to "enhance our national security" cannot be undertaken without rigorous and consistent program review. [CFR 4.4]
While all curricula undergo regular review, only a few of the academic degree programs are accredited by professional organizations. ABET (Accreditation Board for Engineering and Technology) accredits the master's programs in mechanical, astronautical and electrical engineering, among the few graduate-level programs so accredited. (40) The business and public policy programs are accredited by both AACSB (Association to Advance Collegiate Schools of Business) and NASPAA (National Association of Schools of Public Affairs and Administration). (41, 42) Although some departments have on occasion conducted self-initiated program reviews, an NPS system of academic program review, similar in nature to professional accreditation, was proposed and designed in 2006. The first of these reviews was completed in 2007 and future reviews continue according to a defined calendar. These efforts, which are described more fully in Theme Two, help NPS to identify and highlight planning processes, bring evidence to bear on decision-making and complete the process of continuous improvement. [CFR 4.6]
Introduction: CPR Preparation Process
Changes in Context
Self-Study Related to the Three Themes

redpajama_set_name: RedPajamaCommonCrawl


Our so-called knowledge is limited because its current paradigm is of extrinsic observation and an adamance of knowingness; The real knowing comes only from within, deep within, from our very centre, and that centre is what gives birth to imagination itself! And it always waits, patiently, eternally, for our mind's dirt to settle down.
but, as you pointed, time is the only commodity and no-time is out of the scope of our mind because it's only interested in commodities!
don't know why but this made me sad, it is an amazing poem though.
i have to agree with hayat on the melancholy, but also with the fact that this is an amazing piece. it's one of the best things i've read here, or on the internet in general. the vagueness of the "something" waiting but the attendant need to hurry up to get it. the absent "you"s in the first stanza. the literal depth of the ending. masterful, squires.
I kiss the hands that write such beautiful poetry.
There's a whirlpool under that sheet, I reckon. Beautiful poem Paul. It feels serene and anticipatious.
Time is the only commodity, yet we take it for granted or long for its passing. One of your best.
A jewel of a poem, Paul — a masterful blend of playfulness and melancholy.
I wish everything would be nonsense. Nothing would be what it is. What it wouldn't be, it would. You see?


text:
Operation Mend
Finding Identity Again
By uclahealth • November 27, 2019
"When I lost my arm, I felt like I lost my identity," admits 46-year-old Darius Johnson, who was an infantryman and squad leader in the United States Army. "My first sergeant stepped on an IED, detonated it and took my arm in 2011. After that, I went straight into work for two and a half years to avoid dealing with PTSD. I thought it was a myth or a cop-out for people who weren't strong-minded. I came to Operation Mend in 2017 after a lot of encouragement from my mom and other people in my circle. Operation Mend helped me confront that it wasn't my fault, and I was punishing myself while trying to make sense of 'why me?' I ended up going back to school to get my degree and got in a relationship where I'm now engaged. I wouldn't have gotten here if not for Operation Mend. I would still be in my room, sitting and watching TV and not enjoying life. Everybody needs help, and the hardest thing is admitting to yourself that you need help. Once you admit that, I think you're halfway there. Operation Mend really empowered me."
Tags: featured, Operation Mend, patient stories, PTSD
Healing the Invisible Wounds
"I was part of a female engagement team, and we were helping an all-girls school that had been blown up by the Taliban rebuild," recounts [...]
Getting Confidence Back
"Operation Mend gave me my confidence back," confirms Angelica Jimenez, a USMC Field Radio [...]
Phenomenal That U Care
"There were six of us in the vehicle. We were crossing over a bridge when 'BAM!,' an IED went off," recounts 48-year-old Chris


text:
package app_test

import (
	"deactivator/app"
	"deactivator/app/test"
	"errors"

	"testing"

	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/mock"
)

func TestInit(t *testing.T) {
	t.Run("Cannot get current exe's directory", func(t *testing.T) {
		sysHandler := &test.MockSystemHandler{}
		api := &app.API{}
		sysHandler.On("Executable").Return("", errors.New("Error getting exe dir")).Once()

		err := api.Init(sysHandler)

		assert.EqualError(t, err, "Error getting exe dir")
		sysHandler.AssertNotCalled(t, "ReadFile", mock.Anything)
	})

	t.Run("Cannot get app data directory", func(t *testing.T) {
		sysHandler := &test.MockSystemHandler{}
		api := &app.API{}
		sysHandler.On("Executable").Return(".", nil).Once()
		sysHandler.On("Getenv", "APPDATA").Return("").Once()

		err := api.Init(sysHandler)

		assert.EqualError(t, err, "Couldn't get user's APPDATA dir")
		sysHandler.AssertNotCalled(t, "ReadFile", mock.Anything)
	})

	// NOTE: Extensive testing is done in the Launcher
	t.Run("Cannot read info file", func(t *testing.T) {
		sysHandler := &test.MockSystemHandler{}
		api := &app.API{}
		sysHandler.On("Executable").Return("./IS_Uninstall", nil).Once()
		sysHandler.On("Getenv", "APPDATA").Return("APPDATA")
		sysHandler.On("ReadFile", mock.Anything).Return(nil, errors.New("FileNotFound")).Once()

		err := api.Init(sysHandler)

		assert.EqualError(t, err, "FileNotFound")
		sysHandler.AssertCalled(t, "ReadFile", "./IS_Files/IS_Info.json")
	})

	t.Run("Successfully initialize the Launcher", func(t *testing.T) {
		sysHandler := &test.MockSystemHandler{}
		api := &app.API{}
		sysHandler.On("Executable").Return(".", nil).Once()
		sysHandler.On("Getenv", "APPDATA").Return("APPDATA")
		sysHandler.On("ReadFile", mock.Anything).Return(test.FmtInfoFile(true, "2.0", "test"), nil).Once()

		err := api.Init(sysHandler)

		assert.Nil(t, err)
		sysHandler.AssertCalled(t, "ReadFile", "./IS_Files/IS_Info.json")
	})
}

redpajama_set_name: RedPajamaGithub


text:
Q: "retriggering" Midi note in AudioKit I'm working on a toy with multiple "touch areas" which serve as inputs to my synth.
Using an oscillatorBank I can start and stop notes easily.
In regular keyboards there's only 1 key for each Midi note, so "retriggering" a note requires the musician to lift their finger, even if only briefly allowing one to call .stop() and then .start() on the note.
The scenario I'm working on is when the note is held down, but is then triggered again on another "touch area". Could I somehow "retrigger" the "attack" sound for that note? Should I start and stop the player? Ideally I would call
oscillator.restart(noteNumber: )

but that doesn't exist that I know of.
Many thanks.

A: Seems like a simple wrapper for stop(noteNumber:) and start(noteNumber:) that you could set up in an extension.

redpajama_set_name: RedPajamaStackExchange


The EMS Cooperative's regional Pay-for-performance training continued with a second training workshop in Europe in November.
The workshop was a timely reminder of EMS Pay-for-performance changes coming in 2018 - from 1 January accounting in EMS Pay-for-performance will be based on EMSEVT V3 (UPU Standard M40 -7) only. Delayed implementation of EMSEVT V3 could bring a financial impact to those operators not prepared for the accounting change.
The training took place at UPU headquarters in Berne and was attended by staff responsible for tracking implementation and quality of service monitoring. Through group exercises and presentations participants learnt how to correctly implement EMSEVT V3 and details of the new Pay-for-performance measurement methodologies and reports.
As with the Asia Pacific training in September, there was a lot of interest in the event: 32 participants from 21 operators attended. Initially it was thought that the event would interest members from Europe but the importance of the topic meant that it also attracted participants from Brazil, Iran and the Philippines.
If any member has questions about EMS Pay-for-performance or EMS EVT V3 please contact their regional coordinator.


Arr. © 2000 GIA Publications, Inc.
Italian-born organist, Pietro Yon, came to the USA in 1907 where he was organist at St. Patrick's Cathedral in New York for nearly 20 years. As a composer, he is probably best remembered for this piece, a 20th century pastorale Gesu Bambino. This is a new, simple edition for unison singing with keyboard.


text:
Introducing the greatest Aboriginal artist unknown in America
John Mawurndjul with the installation "John Mawurndjul: I am the old and the new," 2018, Museum of Contemporary Art Australia, Sydney. (Jacquie Manning)
By Sebastian Smee
Sebastian Smee
Art critic
SYDNEY — In early summer — winter in Australia — an exhibition that the wider world should know about opened in a museum of contemporary art situated between Sydney's Opera House and Harbor Bridge. The artist, John Mawurndjul, is an Aboriginal man with a white beard, a furrowed brow and a springy halo of white hair. Born in 1952, he now lives in Maningrida, an indigenous community of about 2,000 people in Arnhem Land, on the continent's north coast, facing Indonesia.
Maningrida is remote — it's a full day's drive from Darwin. But, for much of his life, Mawurndjul, who fought off leprosy as a child, has lived on even more remote outstations.
For more than 30 years, he has been making large paintings on massive pieces of bark, which he cuts, using a tomahawk, from stringybark eucalyptuses. He cures the bark over an open fire and flattens the pieces with weights for several days. Then, using thin reed brushes, he patiently applies black charcoal and white, yellow and red ochers (which he finds and grinds himself) in repeating cross-hatched patterns. These patterns nest within a complex overall design that appears figurative or abstract but always expresses ceremonial ritual based in ancient tradition.
Working in this way, Mawurndjul has produced a body of work so sophisticated, so spellbinding and so beautiful that it has earned him accolades not only in Australia (the Sydney Morning Herald's art critic, John McDonald, recently called him "one of our greatest artists of all time"), but also across Europe.
John Mawurndjul's "Nawarramulmul (Shooting star spirit)," 1988, earth pigments on Stringybark (Eucalyptus tetrodonta). (Jessica Maurer/John Mawurndjul/Copyright Agency)
"Namanjwarre, Saltwater Crocodile,"1988, earth pigments on Stringybark (Eucalyptus tetrodonta). (Art Gallery of South Australia/John Mawurndjul/Copyright Agency)
Mawurndjul has been the subject of retrospectives in Switzerland and Germany. He was featured in the groundbreaking exhibition "Magiciens de la Terre," at the Centre Georges Pompidou in 1989, and his work is permanently installed in Paris at the Musée du Quai Branly. The 2006 opening of that museum was marked by an issue of Time magazine that placed Mawurndjul's face on the cover.
People with a glancing sense of Aboriginal art tend to bring to mind abstract-looking paintings made up of long strings of dots painted in colored acrylics on canvas. Such work, although it is based in traditions of body painting and sand art, dates only as far back as the early 1970s. That was when Geoffrey Bardon, a white schoolteacher in a central Australian settlement of disparate Aborigines displaced by the government's aggressive assimilationist policies, thought to help remedy a bad situation by encouraging the community's elders to paint designs relating to traditional ceremonies and myths.
Half a century later, Aboriginal art is ubiquitous in Australia. The best of it is showcased in the country's major art galleries. The tourist market is awash in varieties of cheap, cynically produced and visually cacophonous work.
The movement's major stars are the late Emily Kngwarreye and Rover Thomas. Among other celebrated figures are Warlimpirrnga Tjapaltjarri, whose 2015 debut in New York drew glowing reviews, and Doreen Reid Nakamarra, who died in 2009 and remains a personal favorite of mine.
Those artists all hailed from the dry regions of central Australia. But about three-quarters of Australia's Aboriginal population live in cities and towns rather than remote outposts. Their creativity, and much about their social plight, is reflected in powerful, politically charged work by the likes of Daniel Boyd, Destiny Deacon, Brook Andrew, Tracey Moffatt and Richard Bell.
American audiences are getting more chances to see art by indigenous Australians. For two years, a changing selection of work from the collection of Miami enthusiasts Dennis and Debra Scholl has been touring the country. It is now at the Phillips Collection in Washington. The Scholls have announced that they are giving around 200 works from their collection to three U.S. museums.
Mawurndjul's "Milmilngkan," 2006. (Collection Bill and Anne Gregory, Annandale Galleries/John Mawurndjul/Copyright Agency)
"Mardayin at Dilebang," 2009. (Collection of Carey Lyon and Jo Crosby, Melbourne/John Mawurndjul/Copyright Agency)
One of them, the Metropolitan Museum of Art in New York, last year mounted a show of six large Aboriginal paintings, part of a gift from another prominent private collection. And, in 2016, Harvard Art Museums mounted "Everywhen," a terrific overview of Aboriginal art.
Several commercial galleries in New York, including Salon 94 and Olsen Gruin, regularly show paintings in acrylics on canvas by indigenous Australians. But, so far, American audiences have had almost no exposure to a strain of Aboriginal art that many consider just as impressive and at least as inventive: bark painting. This will change in 2020, when a large-scale exhibition of bark paintings from the University of Virginia's Kluge-Ruhe Aboriginal Art Collection will tour the United States.
Of the artists painting on bark, few would dispute that Mawurndjul is the most accomplished (although he belongs to a dynasty of groundbreaking artists that includes the pioneer Billy Yirawala, Peter Marralwanga, Marralwanga's son Ivan Namirrkki, and Mick Kubarkku). Mawurndjul began painting for the market in 1979. His work entered the collection of Australia's National Gallery five years later.
He is an experienced hunter, with deep ceremonial knowledge. When not at Maningrida, he likes to spend time at Milmilngkan, a remote outstation on a creek with nearby waterholes and a spring that bubbles up amid a pandanus grove.
These natural features, along with rainbow serpents, spirit figures, crocodiles and other creatures, all make their way into his paintings. The resulting images, abetted by the subtle undulations in the bark supports, squirm with movement and energy, and vibrate with an almost talismanic potency.
It's hard to explain in words how the effect is achieved, especially because Mawurndjul's repertoire of marks is so various. But, in general, an overall format, which might be determined by the edges of the bark itself or by the outline of, say, a rainbow serpent, is subdivided into a loosely shifting grid of dotted lines.
John Mawurndjul, Maninigrida, 2018. (Rhett Hammerton)
Within each section of this grid, Marwundjul's distinctive cross-hatching, or "rarrk," is applied in white, yellow, red, and black stripes. Sometimes the "rarrk" works against the grain of the overall grid, sometimes it is aligned. The colored stripes formed by the "rarrk" may continue in line with those in adjacent sections, but more often they sit at an angle. The eye strains to find a formula behind the jazzy complexity of the whole. But again and again, it is confounded.
Superficially, Marwundjul's designs can resemble a more complex version of the early paintings of Ellsworth Kelly, who cut his compositions into parallel strips and then randomly rearranged the strips. Or they can be likened to the puzzles of early cubist paintings, with their constant slippages between contour and plane, volume and shadow. But such analogies are necessarily loose. Ultimately, both the visual experience and the worldview underlying Marwundjul's monumental bark paintings are of an entirely different order.
Mawurndjul, who speaks the Kuninjku language (one of about 120 Aboriginal languages still spoken today), judges each painting's success, he explained, by placing it "in the bush where there are lots of trees. . . . I walk away and I come back and I look at it to see if there's movement in it. Is it moving? Is there shimmer in it? That's the power of the rarrk. If it does, I am happy."
In today's Australia, Aboriginal art is often press-ganged into the cause of the country's anxious preoccupation with national identity, or promoted as a balm to soothe the open wounds resulting from invasion, murder, mistreatment and a scarcely credible litany of abject failure in government policy.
Outside the country, it might be possible to see the work more clearly. Even so, forms of moral and intellectual vertigo can befuddle the brain of anyone who thinks too long on the origins, development and reception of contemporary Aboriginal art.
If, for instance, you judge the work by criteria that developed in the West around modernist abstraction, you are surely missing the point. But if you treat the best Aboriginal work as a mere ethnographic curiosity, you do it — and yourself — an even greater disservice. You overlook not only its extraordinary visual dynamism, but its value as a moving assertion of spiritual vitality, individual brilliance and collective tradition.
This, folks, is what contemporary art looks like. You might not recognize it. The worldview it comes out of might feel deeply, wondrously foreign. But that is part of what draws the eye to it. The awed and baffled mind runs close behind.
John Mawurndjul, I Am the Old and the New Through Sept. 23, Museum of Contemporary Art, 140 George St., The Rocks, Sydney. mca.com.au.
Sebastian Smee Sebastian Smee is a Pulitzer Prize-winning art critic at The Washington Post and the author of "The Art of Rivalry: Four Friendships, Betrayals and Breakthroughs in Modern Art." He has worked at the Boston Globe, and in London and Sydney for the Daily Telegraph (U.K.), the Guardian, the Spectator, and the Sydney Morning Herald. Follow


Skyhigh Networks has launched its Cloud Security Technology Partner Program - designed to help partners to capitalise on opportunities and provide customers with advanced cloud security solutions.
The Skyhigh cloud access security broker (CASB), delivers visibility, compliance, data security, and threat protection capabilities across 17,000+ cloud services. With the Skyhigh Cloud Security Partner Program, enterprises can integrate the Skyhigh CASB with their current and planned security investments for comprehensive and integrated deployments.
According to the Gartner Market Guide for Cloud Access Security Brokers by Craig Lawson, Neil MacDonald, and Brian Lowans, published in October 2015, "CASBs provide a number of critical points of integration with the environment, and these integration points play an important role in preventing enterprise security delivery from becoming yet another silo.
Skyhigh Networks has formalised partnerships with over 20 leading vendors across the following categories: next generation firewall (NGFW), cloud and on-premises proxies, user behaviour analytics (UBA), threat protection, identity as a service (IDaaS), identity and access management (IAM), data loss prevention (DLP), security information and event management (SIEM), mobile device management (EMM/MDM), key management and digital rights management (DRM).
"The Skyhigh Cloud Security Partner Program was designed based on direct feedback from enterprise customers and provides a fast track to implementing best-in-class cloud security solution while maximising the value of their existing technology investments," says Chris Cesio, Skyhigh Networks vice-president of business development and channels.
"Customers gain a proven blueprint to protect their data in the cloud era that has been proven at more than 500 enterprises," he says.
At present, Skyhigh has partnered with Bay Dynamics, BitSight, Centrify, Checkpoint, Cisco, Cyphort, Exabeam, Gemalto, HPE, IBM, Ionic, Juniper Networks, LogRhythm, Microsoft, MobileIron, Okta, OneLogin, Ping Identity, Titus Labs, Vera, VMware, and Zscaler.


text:
Q: rails 3 + jquery post failing? Ok i have a rails 3 application and when i try to do a $.post request to a rails action I get prompted to relogin ...this might be related to the authenticity_token or the way rails 3 handles posts or remote => true ...but honestly i really dont know why its not working...here is my code
$('#pling').click(function(e){
    e.preventDefault();
    var location = $(this).closest("form").attr("action");
    $.post(location, { note: $("#note").val() }, function(data) {
        var length = data.length;
        var div_string = "";
        for (i=0;i<length;i++)
        {
            div_string += "
"+ data[i].comment.comment +"
";
        }
        $("#pling").html(div_string);
    });
    $("#pay").val("");
    $("#pling").animate( { backgroundColor: "#D3ECF4" }, 1 ).animate( { backgroundColor: "#ffffff" }, 3000 );
});

and here is my rails action
def update_note
  @user = Contact.find(params[:id])
  note = params[:note].to_s.strip
  note = "#{Time.now} - #{note.to_s} - #{current_user.name} (#{current_user.id})"
  @user.notes.create!(:note => note, :user_id => current_user.id)
  respond_to do |format|
    format.json { render :json => @user.notes}
  end
end

any idea what i am doing wrong
here is my form if i view source
<form method="post" action="/users/100/update_note?remote=true" accept-charset="UTF-8">

<input type="hidden" value="✓" name="utf8">
<input type="hidden" value="yPtCzfaI5HOSWeW8HBGLthbpUmgsfgsdfgsdW4aunGDtacva6Kx0=" name="authenticity_token">

A: instead of doing the post directly via jquery, you should instead use the ujs helpers of rails:
form_for @user, :remote => true

and then plug yourself into the form lifecycle-methods described here http://www.alfajango.com/blog/rails-3-remote-links-and-forms/


text:
Hövelmann's Goal of Logistics 4.0
Hövelmann Logistik GmbH & Co.KG, a founding member of New Silk Road Network (NSRN), adopts digital solutions as a means to become competitive in the logistics industry. Frank Maslock, branch manager of Hövelmann Logistik in Haldensleben, Germany, views digitalisation as the need of the hour to ensure the long-term profitability of a company. As a medium-sized family business, the company has gradually implemented feasible digital practices. They aim to remain innovative, future-oriented, and on the path towards "Logistics 4.0".
(Pic Credit: Hövelmann Logistics)
All of Hövelmann's trucks were equipped with telematics within a short period, which is a high-precision system for location, navigation and communication, enabling efficient fleet management. Real-time data on position, traffic flow, driving- and rest times or driving behaviour are registered and analysed as well. The drivers receive the optimal route based on travel time and costs. Hövelmann records data on driving style and performance, which are used for training drivers. To carry out this task, Hövelmann has hired two driving instructors. "If these measures mean that our drivers use one litre less fuel per 100 kilometres, it matters a lot at over 27 million kilometres per year," says Mr Maslock. They have also digitalised scheduling plans which allow tours to be planned digitally using forwarding software and even transfers orders to the vehicle directly via telematics.
The processes in the warehouses are optimised with digital support called "Pick by Voice". This storage system simplifies 'picking' by giving the employee information via headphones and eliminating the need to use paper or scanners. Since the beginning of this year, a new warehouse control system has been implemented in their logistics centre in Hohe Börde, close to the city of Magdeburg, Germany, which offers an interface to the freight forwarding software and further simplifies the processes.
However, there are obstacles for any medium-sized company when adopting digitalisation of processes. Mr Maslock states two issues that act as obstacles to digitalisation. First is the lack of time and human resources to set up these systems. The second is convincing employees to accept new processes and give up established regulations. Although consequently, digitalisation is the way for the logistics industry. Mr Maslock adds that digitalisation is a constant process, where they examine new ideas and see how to position themselves for the future. The ultimate goal is to have consistent and open interfaces so that a single record can be used throughout the entire supply chain industry.


In December 1956, a small group belonging to the Men's Club in McAdenville got the idea to decorate their village's modest community center with a few Christmas lights and decorations. "It was kind of an impromptu thing, done in the simple spirit of the season," remembers Steve Rankin, who grew up in the tiny Gaston County town and was 16 that year, working at Abernathy's Supermarket on Main Street.
The lights were warmly received by everyone in the town, he remembers, and especially appreciated by W.J. Pharr, the civic-minded president of Pharr Yarns LLC, the textile firm that owned most of the town and employed most of its residents.
Several years ago, Time magazine placed the lights of McAdenville on its coveted list of America's top 10 public Christmas displays, ranking the picturesque mill town the 9th most "Most Chrimassy" place in the nation, prompting a flood of national and international media attention to this quiet river town of just under 700 residents.
This month, an estimated 600,000 visitors — 75% of whom hail from outside Gaston County — will make the pilgrimage to the town. By car or by foot, they will see a 1.5-mile stretch of McAdenville's charming brick Main Street and festively decked out residential district, taking in more than half a million red, white and green lights adorning porches, lampposts and several hundred Norway spruce trees around the town lake.
The annual light show commences at 5:30 p.m. sharp at the Pharr Family YMCA — formerly the village community center — on Dec. 1 when a lucky kid from McAdenville Elementary throws a switch that lights up the town. A local school choir will pipe out carols, and Christmas Town USA will be officially off and running. Lights that crews began putting up in September will stay on, rain or snow, seven nights a week (5:30 p.m. till 9 p.m. on weeknights; 5:30 p.m. till 11 p.m. on Fridays through Sundays) until Dec. 26.
One particular highlight of the month is the annual Yule Log ceremony that takes place on the Friday before Christmas. Main Street is closed off to traffic as local school kids haul a sleigh bearing the ceremonial log to a city park, where it's set ablaze to more caroling as hot chocolate is served and Santa Claus holds court.
"It's really a town Christmas party, a highlight for those of us who live here," says Rankin, who with his wife, Shirley, have served as honorary fire starters at the Yule Log lighting, a tradition begun by town patriarch Pharr five years before the Men's Club strung its first lights.
Beyond the lovely optics, more than half a million visitors dropping by for their annual Christmas-light fix translates into a lot of dollars for area merchants. According to a study by UNC Charlotte a decade ago — which the Rankins helped conduct, handing out special DVDs of the lights to anyone who participated — visitors to Christmas Town USA pump almost $13 million into the area's economy.
He's right about that — on more than one front. McAdenville resides on land by the South Fork River once owned by a colorful 18th century character named Adam Alexander Springs, a cotton farmer and passionate fisherman who was in the first graduating class of UNC Chapel Hill. According to local legend, Springs may have been Abraham Lincoln's biological father. His housekeeper, Nancy Hanks, was Lincoln's mother and reportedly left the unincorporated village then called Springs Shoals in a hurry, shortly before the future president's birth. In his will, 'Old Adam' Springs demanded to be buried standing up with a musket in hand in order to protect his fishing traps — or great secret. His son, Gratton, was said to bear an uncanny resemblance to Lincoln.
In 1881, an Atlanta visionary named Rufus McAden purchased Springs' holdings along the river, opened the Springs Shoals Manufacturing Co. and planned a mill town around it, complete with the county's first library, mercantile store and company-built houses to attract workers. Two years later, the town was officially incorporated as McAdenville, and the mill was renamed McAden Mills.
The firm became a pioneering cotton factory, the largest mill in Gaston County for decades and a leader in the production of cotton fabric, boasting a hydroelectric generator personally designed and built by Thomas Edison that made McAdenville the first community in the state to have electric lights.
The Great Depression dealt the mill a devastating blow, however, forcing the owners to shut down all three of its outdated plants in 1935. Four years later, a 41-year-old Davidson College grad named William Pharr purchased the defunct operation in partnership with his father-in-law Robert Stowe and brother-in-law, Dan Stowe. Pharr moved to McAdenville with his wife, Catherine, and young children and began tearing out old cotton-weaving machines and investing in the new technology of synthetic yarns — just in time to make military apparel for American soldiers in World War II.
Bill Pharr died in 1981, a year after Kuralt brought Christmas Town USA to the nation's attention. His son-in-law, J.M. "Bip" Carstarphen, carried on the family's tight relationship with the town — and passion for lighting up Christmas — for the next three and a half decades. The company now specializes in yarns for the commercial carpet industry, having invested more than $80 million in cutting-edge technologies for synthetic-yarn development. Among its products are fire-retardant yarns used in protective apparel worn by firefighters, military and emergency workers. Last March, the company acquired residential-carpet maker Phenix Flooring of Dalton, Ga., bringing its workforce to more than 1,700 in three states.
More than 70% of the company's employees, however, still work at several divisions either in or just outside the pretty little mill town that's roughly the size of New York's Central Park. In the spirit of its Christmas-loving patriarch, a decade ago the company began "re-purposing" the town by removing some of its aging mill houses and developing more than 180 handsome, mid-priced homes that have attracted Charlotte commuters and young families to McAdenville — many because they like its popular Christmas lights.