text:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
using Appleseed.Framework.Site.Data;
using Appleseed.Framework;
using Appleseed.Framework.Site.Configuration;
using System.Web.UI;
using System.Data.SqlClient;
using Appleseed.Framework.Settings.Cache;
using Appleseed.Framework.Security;
using System.Web.UI.WebControls;
using Appleseed.PortalTemplate;
using PageManagerTree.Models;
using PageManagerTree.Massive;
using rb_ModuleSettings = PageManagerTree.Massive.rb_ModuleSettings;
using rb_Modules = PageManagerTree.Massive.rb_Modules;
using rb_Pages = PageManagerTree.Massive.rb_Pages;
using Appleseed.Framework.Core.Model;
namespace PageManagerTree.Controllers
{
    [History("Ashish.patel@haptix.biz", "2014/12/24", "Added clearing cache and clearing url elements on rename")]
    public class PageManagerTreeController : Controller
    {
        //
        // GET: /PageManagerTree/
        public ActionResult Index()
        {
            return View();
        }
        protected List<PageItem> PortalPages { get; set; }
        public PortalSettings PortalSettings
        {
            get
            {
                // Obtain PortalSettings from page else Current Context else null
                return (PortalSettings)HttpContext.Items["PortalSettings"];
            }
        }
        /// <summary>
        /// The OrderPages helper method is used to reset
        ///   the display order for tabs within the portal
        /// </summary>
        /// <remarks>
        /// </remarks>
        private void OrderPages()
        {
            var i = 1;
            this.PortalPages = new PagesDB().GetPagesFlat(this.PortalSettings.PortalID);
            this.PortalPages.Sort();
            foreach (var t in this.PortalPages)
            {
                // number the items 1, 3, 5, etc. to provide an empty order
                // number when moving items up and down in the list.
                t.Order = i;
                i += 2;
                // rewrite tab to database
                var tabs = new PagesDB();
                // 12/16/2002 Start - Cory Isakson
                tabs.UpdatePageOrder(t.ID, t.Order);
                // 12/16/2002 End - Cory Isakson
            }
            CurrentCache.RemoveAll("_PageNavigationSettings_");
        }
        public ActionResult Module()
        {
            bool isCurrentUserAdmin = UserProfile.isCurrentUserAdmin;
            Permissions perm = new Permissions
            {
                HasPageCreatePermission = UserProfile.CurrentUser.HasPermission(AccessPermissions.PAGE_CREATION) || isCurrentUserAdmin,
                HasPageDeletePermission = UserProfile.CurrentUser.HasPermission(AccessPermissions.PAGE_DELETION) || isCurrentUserAdmin,
                HasPageList = UserProfile.CurrentUser.HasPermission(AccessPermissions.PAGE_LIST) || isCurrentUserAdmin,
                HasPageUpdatePermission = UserProfile.CurrentUser.HasPermission(AccessPermissions.PAGE_EDITING) || isCurrentUserAdmin
            };

            return View(perm);
        }
        public JsonResult GetRootPage()
        {
            JsTreeModel rootNode = new JsTreeModel();
            // rootNode.attr = new JsTreeAttribute();
            rootNode.text = "Root";
            rootNode.id = "0";// new DirectoryInfo(Request.MapPath("/")).Name;
            return Json(rootNode, JsonRequestBehavior.AllowGet);
        }
        public JsTreeModel[] getChildrenTree(PageItem page)
        {
            List<PageStripDetails> childPages = new PagesDB().GetPagesinPage(this.PortalSettings.PortalID, page.ID);
            int count = 0;
            List<JsTreeModel> lstTree = new List<JsTreeModel>();
            foreach (PageStripDetails childPage in childPages)
            {
                if (PortalSecurity.IsInRole("Admins") || (!PortalSecurity.IsInRole("Admins") && (childPage.PageID != 100 || childPage.ParentPageID == 100)))
                {
                    PageItem aux = new PageItem();
                    aux.ID = childPage.PageID;
                    aux.Name = childPage.PageName;
                    //JsTreeModel[] childs = getChildrenTree(aux);
                    JsTreeModel node = new JsTreeModel
                    {
                        data = aux.Name,
                        attr = new JsTreeAttribute { id = "pjson_" + aux.ID.ToString() },
                        //children = childs,
                    };
                    lstTree.Add(node);
                    count++;
                }
            }
            JsTreeModel[] tree = lstTree.ToArray<JsTreeModel>();
            return tree;
        }
        public JsonResult GetTreeData()
        {
            List<PageItem> pages = new PagesDB().GetPagesFlat(this.PortalSettings.PortalID);
            List<JsTreeModel> lstTree = new List<JsTreeModel>();
            foreach (PageItem page in pages)
            {
                if (page.NestLevel == 0)
                {
                    //JsTreeModel[] child = getChildrenTree(page);
                    JsTreeModel node = new JsTreeModel
                    {
                        text = page.Name,
                        id = page.ID.ToString(),
                        data = page.Name,
                        attr = new JsTreeAttribute { id = "pjson_" + page.ID.ToString() },
                        //children = child,
                    };
                    List<PageStripDetails> childPages = new PagesDB().GetPagesinPage(this.PortalSettings.PortalID, page.ID);
                    if (childPages.Count > 0)
                    {
                        //node.children
                    }
                    lstTree.Add(node);
                }
            }
            int root = 0;
            JsTreeModel rootNode = new JsTreeModel
            {
                text = "Root",
                id = root.ToString(),
                data = "Root",
                attr = new JsTreeAttribute { id = "pjson_" + root.ToString(), rel = "root" },
                // children = lstTree.ToArray<JsTreeModel>()
            };
            return Json(rootNode);
        }
        /// <summary>
        /// Gets sub pages of given page
        /// </summary>
        /// <param name="pageid">page id</param>
        /// <returns> return json</returns>
        public JsonResult GetSubPages(string pageid, bool isPane, string parentid)
        {
            List<JsTreeModel> pages = new List<JsTreeModel>();
            if (!isPane)
            {
                List<PageStripDetails> childBDPages = new PagesDB().GetPagesinPage(this.PortalSettings.PortalID, Convert.ToInt32(pageid));
                List<PageStripDetails> childPages = new List<PageStripDetails>();
                foreach (var childPage in childBDPages)
                {
                    if (PortalSecurity.IsInRole("Admins") || (!PortalSecurity.IsInRole("Admins") && (childPage.PageID != 100 || childPage.ParentPageID == 100)))
                    {
                        childPages.Add(childPage);
                    }
                }

                int i = 0;
                pages = (from page in childPages
                         orderby page.PageOrder
                         select new JsTreeModel()
                         {
                             id = page.PageID.ToString(),
                             text = page.PageName,
                             position = (i++).ToString(),//page.PageOrder.ToString(),
                             lastpos = (childPages.Count - 1).ToString(),
                             nodeType = "page",
                             type = "page"
                             //icon = "http://jstree.com/tree.png"
                         }).ToList();
                //pages.Where(pg => pg.lastpos == i.ToString());
            }
            // Get panes and modules
            //if (isPane)
            //{
            //    GetPanes(parentid, pages, isPane, pageid);
            //}
            //else
            //{
            //    if (pageid != "0")
            //        GetPanes(pageid, pages, isPane, string.Empty);
            //}
            return Json(pages, JsonRequestBehavior.AllowGet);
        }
        private void GetPanes(string pageid, List<JsTreeModel> pages, bool loadModules, string panename)
        {
            string URL = ConvertRelativeUrlToAbsoluteUrl(HttpUrlBuilder.BuildUrl("~/?pageid=" + Convert.ToInt32(pageid) + "&panelist=y"));
            System.Net.WebRequest webRequest = System.Net.WebRequest.Create(URL);
            webRequest.Method = "GET";
            StreamReader sr = new StreamReader(webRequest.GetResponse().GetResponseStream());
            string result = sr.ReadToEnd();
            List<JsTreeModel> child2 = new List<JsTreeModel>();
            var panelist = result.Split('+').ToList();
            //var panetopage = ModelServices.GetPageModules(Convert.ToInt32(pageid));
            var lowerpane = panelist.ConvertAll(d => d.ToLower());
            var i = 0;
            if (!loadModules)
            {
                foreach (var pane in panelist)
                {
                    //JsTreeModel[] childm = getModuleToPane(pane, Convert.ToInt32(pageid));
                    JsTreeModel nodem = new JsTreeModel
                    {
                        text = pane,
                        id = pane,
                        isPane = true,
                        nodeType = "pane",
                        // icon = @"/aspnet_client/jQuery/jsTree/icon.png", //+ "http://jstree.com/tree.png",
                        type = "pane",
                        //data = pane,
                        attr = new JsTreeAttribute { id = "pjson_pane_" + i, rel = "folder" },
                        //children2 = childm
                    };
                    child2.Add(nodem);
                    i++;
                }
                pages.AddRange(child2);
            }
            else
            {
                // add other pane.
                JsTreeModel[] childm = getModuleToPane(panename, Convert.ToInt32(pageid));
                pages.AddRange(childm);
                //JsTreeModel nodem = new JsTreeModel
                //{
                //    text = pane.Key,
                //    id = pane.Key + i.ToString(),
                //    isPane = true,
                //    //data = pane.Key + "  [Not present in current layout]",
                //    attr = new JsTreeAttribute { id = "pjson_pane_" + i, rel = "folder2" },
                //    //children2 = childm
                //};
                //child2.Add(nodem);
                //i++;
            }
        }
        [HttpPost]
        public JsonResult remove(int id)
        {
            try
            {
                if ((UserProfile.isCurrentUserAdmin) || UserProfile.CurrentUser.HasPermission(AccessPermissions.PAGE_DELETION))
                {
                    var tabs = new PagesDB();
                    // tabs.DeletePage(id);
                    // Add to recycle
                    tabs.DeletePageToRecycler(id);
                    return Json(new { error = false });
                }
                else
                {
                    string errorMessage = General.GetString("ACCESS_DENIED", "You don't have permissin to delete page", this);
                    return Json(new { error = true, errorMess = errorMessage });
                }
            }
            catch (SqlException)
            {
                string errorMessage = General.GetString("TAB_DELETE_FAILED", "Failed to delete Page", this);
                return Json(new { error = true, errorMess = errorMessage });
            }
        }
        public JsonResult RemoveModule(int id)
        {
            string errorMessage = General.GetString("MODULE_DELETE_FAILED", "You don't have permission to delete this module", this);
            try
            {
                if (PortalSecurity.IsInRoles(PortalSecurity.GetDeleteModulePermissions(id)) && ((UserProfile.isCurrentUserAdmin) || UserProfile.CurrentUser.HasPermission(AccessPermissions.MODULE_DELETION)))
                {
                    // must delete from database too
                    var moddb = new ModulesDB();
                    moddb.DeleteModule(id);
                    return Json(new { error = false });
                }
                else
                {
                    return Json(new { error = true, errorMess = errorMessage });
                }
            }
            catch (SqlException)
            {
                return Json(new { error = true, errorMess = errorMessage });
            }
        }

        public JsonResult Clone(int id, int parentId)
        {
            try
            {
                if ((UserProfile.isCurrentUserAdmin) || UserProfile.CurrentUser.HasPermission(AccessPermissions.PAGE_CREATION))
                {
                    var generalModuleDef = Guid.Parse("F9F9C3A4-6E16-43B4-B540-984DDB5F1CD2");
                    object[] queryargs = { generalModuleDef, PortalSettings.PortalID };
                    int moduleDefinition;
                    try
                    {
                        moduleDefinition =
                            new rb_ModuleDefinitions().All(where: "GeneralModDefID = @0 and PortalID = @1", args: queryargs).Single().ModuleDefID;
                    }
                    catch
                    {
                        // Shortcut module doesn't exist in current Portal
                        var modules = new ModulesDB();
                        modules.UpdateModuleDefinitions(
                                generalModuleDef,
                                PortalSettings.PortalID,
                                true);
                        moduleDefinition =
                            new rb_ModuleSettings().All(where: "GeneralModDefID = @0 and PortalID = @1", args: queryargs).Single().ModuleDefID;
                    }
                    var db = new PagesDB();
                    PortalPages = db.GetPagesFlat(PortalSettings.PortalID);
                    var t = new PageItem
                    {
                        Name = General.GetString("TAB_NAME", "New Page Name"),
                        ID = -1,
                        Order = 990000
                    };
                    PortalPages.Add(t);
                    var tabs = new PagesDB();
                    t.ID = tabs.AddPage(PortalSettings.PortalID, t.Name, t.Order);
                    db.UpdatePageParent(t.ID, parentId, PortalSettings.PortalID);
                    OrderPages();
                    //JsonResult treeData = GetTreeData();
                    // Coping Modules
                    var pagesModules = new rb_Modules().All(where: "TabID = @0", args: id);
                    foreach (var module in pagesModules)
                    {
                        var m = new ModuleItem();
                        m.Title = module.ModuleTitle;
                        m.ModuleDefID = moduleDefinition;
                        m.Order = module.ModuleOrder;
                        // save to database
                        var mod = new ModulesDB();
                        m.ID = mod.AddModule(
                            t.ID,
                            m.Order,
                            module.PaneName,
                            module.ModuleTitle,
                            m.ModuleDefID,
                            0,
                            module.AuthorizedEditRoles,
                            module.AuthorizedViewRoles,
                            module.AuthorizedAddRoles,
                            module.AuthorizedDeleteRoles,
                            module.AuthorizedPropertiesRoles,
                            module.AuthorizedMoveModuleRoles,
                            module.AuthorizedDeleteModuleRoles,
                            false,
                            PortalSecurity.GetDeleteModulePermissions(module.ModuleID),
                            false,
                            false,
                            false);
                        var settings = new rb_ModuleSettings();
                        settings.Insert(new { ModuleID = m.ID, SettingName = "LinkedModule", SettingValue = module.ModuleID });
                    }
                    return Json(new { pageId = t.ID });
                }
                else
                {
                    string errorMessage = General.GetString("ACCESS_DENIED", "You don't have permissin to clone this page", this);
                    return Json(new { error = true, errorMess = errorMessage });
                }
            }
            catch (Exception e)
            {
                ErrorHandler.Publish(LogLevel.Error, e);
                Response.StatusCode = 500;
                return Json("");
            }
        }

        public JsonResult create(string pageid, string pagename)
        {
            try
            {
                if ((UserProfile.isCurrentUserAdmin) || UserProfile.CurrentUser.HasPermission(AccessPermissions.PAGE_CREATION))
                {
                    pageid = pageid.Trim('"');
                    PagesDB db = new PagesDB();
                    this.PortalPages = db.GetPagesFlat(this.PortalSettings.PortalID);
                    var t = new PageItem
                    {
                        Name = General.GetString("TAB_NAME", "New Page Name"),
                        ID = -1,
                        Order = 990000
                    };
                    if (!string.IsNullOrEmpty(pagename))
                    {
                        t.Name = pagename;
                    }
                    this.PortalPages.Add(t);
                    var tabs = new PagesDB();
                    t.ID = tabs.AddPage(this.PortalSettings.PortalID, t.Name, t.Order);
                    db.UpdatePageParent(t.ID, Convert.ToInt32(pageid), this.PortalSettings.PortalID);
                    this.OrderPages();
                    return Json("");
                }
                else
                {
                    string errorMessage = General.GetString("ACCESS_DENIED", "You don't have permissin to add new page", this);
                    return Json(new { error = true, errorMess = errorMessage });
                }
            }
            catch (Exception)
            {
                string errorMessage = General.GetString("ADD_NEW_PAGE_FAILED", "Failed to add new Page", this);
                return Json(new { error = true, errorMess = errorMessage });
            }
        }

        public JsonResult edit(int id)
        {
            if ((UserProfile.isCurrentUserAdmin) || UserProfile.CurrentUser.HasPermission(AccessPermissions.MODULE_EDITING))
            {
                ModulesDB modules = new ModulesDB();
                Guid TabGuid = new Guid("{1C575D94-70FC-4A83-80C3-2087F726CBB3}");
                int TabModuleID = 0;
                foreach (ModuleItem m in modules.FindModuleItemsByGuid(PortalSettings.PortalID, TabGuid))
                {
                    bool HasEditPermissionsOnTabs = PortalSecurity.HasEditPermissions(m.ID);
                    if (HasEditPermissionsOnTabs)
                    {
                        TabModuleID = m.ID;
                        break;
                    }
                }
                string dir = HttpUrlBuilder.BuildUrl("~/DesktopModules/CoreModules/Pages/PageLayout.aspx?PageID=" + id.ToString() +
                        "&mID=" + TabModuleID + "&Alias=" + this.PortalSettings.PortalAlias + "&returntabid=" +
                        this.PortalSettings.ActiveModule);
                return Json(new { url = dir });
            }
            else
            {
                string errorMessage = General.GetString("ACCESS_DENIED", "You don't have permissin to edit this module", this);
                return Json(new { error = true, errorMess = errorMessage });
            }
        }
        private List<PageItem> getPagesInLevel(int pageInlevel)
        {
            List<PageItem> pages = new List<PageItem>();
            int level = 0;
            foreach (PageItem page in this.PortalPages)
            {
                if (page.ID == pageInlevel)
                    level = page.NestLevel;
            }
            foreach (PageItem p in this.PortalPages)
            {
                if (p.NestLevel == level)
                    pages.Add(p);
            }
            return pages;
        }
        private int getPageOrder(int idToSearch)
        {
            List<PageItem> pages = new PagesDB().GetPagesFlat(this.PortalSettings.PortalID);
            while (pages.Count > 0)
            {
                PageItem page = pages.First<PageItem>();
                pages.Remove(page);
                if (page.ID == idToSearch)
                {
                    return page.Order;
                }
            }
            return -1;
        }

        public JsonResult moveNode(int pageID, int newParent, int idOldNode, int selectedposition)
        {
            //Cache clearing
            Appleseed.Framework.Web.SqlUrlBuilderProvider.ClearCachePageUrl(pageID);
            Appleseed.Framework.Web.UrlBuilderHelper.ClearUrlElements(pageID);
            CurrentCache.RemoveAll("_PageNavigationSettings_");
            PortalSettings.RemovePortalSettingsCache(pageID, PortalSettings.PortalAlias);
            Appleseed.Framework.Providers.AppleseedSiteMapProvider.AppleseedSiteMapProvider.ClearAllAppleseedSiteMapCaches();
            PortalSettings.UpdatePortalSettingParentPageCache(newParent, pageID);

            if (UserProfile.isCurrentUserAdmin || UserProfile.CurrentUser.HasPermission(AccessPermissions.PAGE_EDITING))
            {
                PagesDB db = new PagesDB();
                this.PortalPages = db.GetPagesFlat(this.PortalSettings.PortalID);
                db.UpdatePageParent(Convert.ToInt32(pageID), Convert.ToInt32(newParent), this.PortalSettings.PortalID);
                int order;
                if (Convert.ToInt32(idOldNode) == -1)
                {
                    order = 9999;
                }
                else
                {
                    List<PageStripDetails> childPages = new PagesDB().GetPagesinPage(this.PortalSettings.PortalID, newParent).Where(pg => pg.PageID != pageID).ToList();
                    if (childPages.Count == 0)
                    {
                        order = 0;
                    }
                    else
                    {
                        if (selectedposition < childPages.Count)
                            order = childPages[selectedposition].PageOrder - 1;
                        else
                            order = childPages[childPages.Count - 1].PageOrder + 1;
                    }
                }
                db.UpdatePageOrder(Convert.ToInt32(pageID), order);
                this.OrderPages();
                return Json("");
            }
            else
            {
                this.OrderPages();
                string errorMessage = General.GetString("ACCESS_DENIED", "You don't have permissin to move page", this);
                return Json(new { error = true, errorMess = errorMessage });
            }
        }
        public JsonResult MoveModuleNode(int pageId, int moduleId, string paneName)
        {
            if (UserProfile.isCurrentUserAdmin || UserProfile.CurrentUser.HasPermission(AccessPermissions.MODULE_EDITING))
            {
                rb_Modules db = new rb_Modules();
                var module = db.Single(moduleId);
                module.TabID = pageId;
                module.PaneName = paneName.TrimEnd();
                db.Update(module, moduleId);
                return Json("");
            }
            else
            {
                string errorMessage = General.GetString("ACCESS_DENIED", "You don't have permissin to move module", this);
                return Json(new { error = true, errorMess = errorMessage });
            }
        }
        /// Ashish.patel@haptix.biz - 2014/12/24 - Added clearing cache and clearing url elements
        public JsonResult Rename(int id, string name)
        {
            try
            {
                if ((UserProfile.isCurrentUserAdmin) || UserProfile.CurrentUser.HasPermission(AccessPermissions.PAGE_EDITING))
                {
                    var db = new rb_Pages();
                    var page = db.Single(id);
                    page.PageName = name;
                    db.Update(page, page.PageID);
                    // Added for clearing page url and elements from cache
                    Appleseed.Framework.Web.SqlUrlBuilderProvider.ClearCachePageUrl(id);
                    Appleseed.Framework.Web.UrlBuilderHelper.ClearUrlElements(id);
                    //string sql = @"UPDATE rb_Pages SET [] = @0 WHERE PageID = @1";
                    //object[] queryargs = { name, id };
                    //var t = new .Query(sql, queryargs);
                }
                else
                {
                    string errorMessage = General.GetString("ACCESS_DENIED", "You don't have permissin to rename page", this);
                    return Json(new { error = true, errorMess = errorMessage });
                }
            }
            catch (Exception)
            {
                return Json(new { error = true });
            }
            return Json(new { error = false });
        }
        public JsonResult RenameModule(int id, string name)
        {
            try
            {
                if ((UserProfile.isCurrentUserAdmin) || UserProfile.CurrentUser.HasPermission(AccessPermissions.MODULE_EDITING))
                {
                    var db = new rb_Modules();
                    var module = db.Single(id);
                    module.ModuleTitle = name;
                    db.Update(module, module.ModuleID);
                }
                else
                {
                    string errorMessage = General.GetString("ACCESS_DENIED", "You don't have permissin to rename module", this);
                    return Json(new { error = true, errorMess = errorMessage });
                }
            }
            catch (Exception)
            {
                return Json(new { error = true });
            }
            return Json(new { error = false });
        }
        public JsonResult ViewPage(string page_Id)
        {
            int pageId = Convert.ToInt32(page_Id.Trim('"'));
            var url = HttpUrlBuilder.BuildUrl(pageId);
            return Json(url);
        }
        public JsonResult CutCopyPage(int pageId, string name, int parentId, bool isCopy)
        {
            if ((UserProfile.isCurrentUserAdmin) || UserProfile.CurrentUser.HasPermission(AccessPermissions.PAGE_CREATION))
            {
                PagesDB db = new PagesDB();
                if (isCopy)
                {
                    IPortalTemplateServices services = PortalTemplateFactory.GetPortalTemplateServices(new PortalTemplateRepository());
                    int newpageid = services.CopyPage(pageId, name + "- Copy");
                    db.UpdatePageParent(newpageid, parentId, this.PortalSettings.PortalID);
                    return Json(new { pageId = newpageid });
                }
                else
                {
                    db.UpdatePageParent(pageId, parentId, this.PortalSettings.PortalID);
                    return Json(new { pageId = pageId });
                }
            }
            else
            {
                string errorMessage = General.GetString("ACCESS_DENIED", "You don't have permissin to cut page", this);
                if (isCopy)
                {
                    errorMessage = General.GetString("ACCESS_DENIED", "You don't have permissin to copy page", this);
                }
                return Json(new { error = true, errorMess = errorMessage });
            }
        }

        public JsTreeModel[] getModuleToPane(string paneName, int pageId)
        {
            var pageModulesByPlaceHolder = ModelServices.GetModulesToPage(pageId);
            var result = new List<JsTreeModel>();
            var modulelist = pageModulesByPlaceHolder.Where(m => m.PaneName.ToLower() == paneName.ToLower());
            int i = 0;
            foreach (var module in modulelist)
            {
                JsTreeModel node = new JsTreeModel
                {
                    text = module.ModuleTitle,
                    id = module.ModuleID.ToString(),
                    data = module.ModuleTitle,
                    nodeType = "module",
                    type = "module"
                    // attr = new JsTreeAttribute { id = "pjson_module_" + module.ModuleID, rel = "file" },
                };
                i++;
                result.Add(node);
            }
            return result.ToArray<JsTreeModel>();
        }
        public JsonResult GetTreeModule(string result, int pageId)
        {
            List<PageItem> pages = new PagesDB().GetPagesFlat(this.PortalSettings.PortalID);
            var page = pages.First(p => p.ID == pageId);
            JsTreeModel[] child = getChildrenTree(page);
            List<JsTreeModel> child2 = new List<JsTreeModel>();
            var panelist = result.Split('+').ToList();
            var panetopage = ModelServices.GetPageModules(pageId);
            var lowerpane = panelist.ConvertAll(d => d.ToLower());
            var i = 0;
            foreach (var pane in panelist)
            {
                JsTreeModel[] childm = getModuleToPane(pane, pageId);
                JsTreeModel nodem = new JsTreeModel
                {
                    text = pane,
                    id = i.ToString(),
                    data = pane,
                    attr = new JsTreeAttribute { id = "pjson_pane_" + i, rel = "folder" },
                    //children2 = childm
                };
                child2.Add(nodem);
                i++;
            }
            // add other pane.
            foreach (var pane in panetopage)
            {
                if (!lowerpane.Contains(pane.Key))
                {
                    JsTreeModel[] childm = getModuleToPane(pane.Key, pageId);
                    JsTreeModel nodem = new JsTreeModel
                    {
                        text = pane.Key,
                        id = i.ToString(),
                        data = pane.Key + "  [Not present in current layout]",
                        attr = new JsTreeAttribute { id = "pjson_pane_" + i, rel = "folder2" },
                        //children2 = childm
                    };
                    child2.Add(nodem);
                    i++;
                }
                panelist.Add(pane.Key);
            }
            var childlist = child.ToList();
            foreach (var childmod in child2)
            {
                childlist.Add(childmod);
            }
            child = childlist.ToArray<JsTreeModel>();
            return Json(child);
        }
        public JsonResult AddModule(string id)
        {
            var pageId = Convert.ToInt32(id.Replace("pjson_", ""));
            string URL = ConvertRelativeUrlToAbsoluteUrl(HttpUrlBuilder.BuildUrl("~/?pageid=" + pageId + "&panelist=y"));
            System.Net.WebRequest webRequest = System.Net.WebRequest.Create(URL);
            webRequest.Method = "GET";
            StreamReader sr = new StreamReader(webRequest.GetResponse().GetResponseStream());
            string result = sr.ReadToEnd();
            return GetTreeModule(result, pageId);
        }
        public string ConvertRelativeUrlToAbsoluteUrl(string relativeUrl)
        {
            if (Request.IsSecureConnection)
                return string.Format("https://{0}{1}", Request.Url.Host, relativeUrl);
            else
                return string.Format("http://{0}{1}", Request.Url.Host, relativeUrl);
        }
        public string GetUrlToEdit(string pageId, string moduleId)
        {
            var url = HttpUrlBuilder.BuildUrl("~/DesktopModules/CoreModules/Admin/ModuleSettings.aspx", Int32.Parse(pageId));
            url += "&mID=" + moduleId;
            return url;
        }
    }
}


After I turned in my "last" draft to Michelle (is any draft the last, really?), I finally sat down and read two authors that she had repped at her previous agency. CRASH INTO ME by Albert Borris and NOTHING LIKE YOU by Lauren Strasnick. It's been a long time since I've read what's out there in the YA world and I was blown away. CRASH INTO ME is about 4 suicidal teenagers who make a suicide pact to travel where celebrities died and then to kill themselves at the end of the road trip. Beautifully written, told with IM messages, lists, and present-day convcrsations, the book is a can't-put-me-down. I seriously couldn't. And the cover really says it all once the narrator reveals the meaning of the snake on his arm.
NOTHING LIKE YOU by Lauren Strasnick is totally different than CRASH INTO ME but still equally as gripping. Holly's mother has recently died and the book opens when she hooks up with Paul. Holly thinks it's a one-night stand that suddenly becomes all consuming. Paul has a girlfriend and Holly becomes friends with her. What I love about NOTHING LIKE YOU is how real Holly is and how every girl can relate to the guy who has a girlfriend but you love anyway. The relationships in this book are so real.
UPDATE: Lauren was gracious enough to put together a list of her fave YA books for me via Twitter. You can follow her @laurenstrasnick.
So after I quickly finished those books, I turned to my fellow YA authors on Twitter and asked for their recommendations of what I should read next. Here are their picks. Please add your own in the comments section.
Elana Johnson, my fellow agency sister, repped by the lovely by Michelle Andelman of Lynn C. Franklin Associates, Ltd. Follow Elana on Twitter @elanaj.
LOVED When You Reach Me! Brilliant.
I echo Sarah Zarr. I loved STORY OF A GIRL. Very moving.
I need to read both Crash Into Me and Nothing Like You. I went a little lighter and am reading Suite Scarlett by Maureen Johnson and Just One Wish by Janette Rallison. So far, so good.
But on the paranormal side, have you read Prophecy of the Sisters by Michelle Zink?? LOVE it.
I agree with Shari and Elana. Sarah Zarr is a wonderful writer – "Once Was Lost" is fabulous.
Sarah Dessen has never let me down. If you've never read her, you really should!
Some of these might not be out – I get ARCs through work, but they should be publishing sometime this year.
I second the Sarah Dessen recommendation! My fave of hers is The Truth About Forever. I credit that book with getting me hooked on YA.
Shari, will totally read Sarah Zarr now since 3 of you say she's wonderful. Now I have a great list to go through. There is something so nice about having a go-to list of what to read!
Thanks for the suggestions! I'll check out infloox.


It's rare to find a gorgeous home in California that has a large yard, but 3321 Dorado Place in Carlsbad is truly one of a kind!
This single-story home features 3 bedrooms, 2 full baths, and approximately 1,453 square feet. This Shady Hollow home has a tranquil, park-like setting, and is tucked away at the end of a cul-de-sac. There is a large variety of lush greenery and foliage surrounding this stunning home.
The floorplan of this house has a great room that's open to the backyard, kitchen, and adjoining breakfast nook. This gorgeous listing has a vaulted ceiling, hardwood floors, new windows and sliders, a newly painted interior, and even aa atrium area. Relax in the living room and warm up on chilly nights by the beautiful brick fireplace.
Homeowners will absolutely fall in love with the exceptionally large, lush, private yard. Perfect for entertaining, relaxing, kids at play, and furry pets. The backyard is an oasis of tranquility that could be your own private escape.
This one of a kind home is currently listed at $745,000. For more details, visit the listing page for further information.
Don't miss out on the OPEN HOUSE this WEDNESDAY, MARCH 27TH FROM 10:30AM TO 12:30PM.
This entry was posted in Homes for Sale and tagged Carlsbad, property listings. Bookmark the permalink.


UCLA MII offers graduate programs, which award MS and PhD degrees, as well as an undergraduate summer research and graduate admission pathway program named MII-RISE.
The first use of the term "medical informatics" is traced back to France in the 1960s ("Informatique Medicale"), with university departments around this discipline being created across Europe. In the subsequent decade, dedicated medical informatics research units were formed in the United States. Since that time, fostering medical informatics research and education has been an enduring objective of the National Institutes of Health (NIH), with the creation of funded training programs starting in the mid-80s. Today, biomedical informatics sits at the intersection of engineering, data sciences, and medicine. Broadly, informatics is concerned with the acquisition, representation, storage, retrieval, analysis, visualization, and utilization of information. Biomedical informatics is the development and application of these techniques specifically to support biomedical research and clinical practice. Topics include (but are not limited to) medical knowledge representation, information extraction and structuring, information architectures, data mining/machine learning, disease modeling, and data visulization. Current NIH efforts such as the Big Data to Knowledge (BD2K) initiative and Clinical Translational Science Awards (CTSAs) recognize the importance of this growing discipline, particularly in realizing precision medicine.


I did this charity back three years a go to motivate my brother, that carried a bad cancer disease. It took me 14 days with a lot of obstacles and tough days included a badly injured knee, 40C, strong winds, hills and not any experience in a similar challenge! But along the toughest times I though about my brother and all many others that suffer this disease and it helped me to stain on the bike and push over my limits.
I raised good funds on that time, just at due with the lack of news, many people didn't know about it and they wouldn't help as I'm sure they would like to.
Unfortunately, my brother pass away on 2014, but my mind still with those who would need help and have more chances to survive the cancer disease.
We have raised over £6 million and funded over 60 research projects tackling many forms of cancer. We opened a clinical trials unit at Leicester Royal Infirmary, where patients take part in trials on new drugs and treatments to find the cures of tomorrow and we fund a HOPE nurse there.


It had been over a year now since I had started learning from the Ocean of mystical knowledge, Reverend Saint Sukh Sagar Ji. I could see positive changes in myself and was able to trace and keep in check the waywardness of my Mind in a better manner than before. I was trying sincerely to imbibe the norm of 'Unconditional Happiness' in my life. Our vacations had become more fulfilling. First, we used to go for holidays, in a hope to find rejuvenation, but came back more tired…sapped of our energy. Now, however, the whole concept of holidaying changed for us. We did not necessarily, have to spend fat sums of money to "buy" happiness from home or abroad…we could find it knocking right at our doors. Every occasion was now an occurrence for celebration…. Every dish cooked in our kitchen was sumptuous enough to please even the Royal taste buds! Each bush, shrub or a blossom outside seemed as if belonging to the proverbial Garden of Eden, and to our surprise, we started receiving hundreds of winged guests in our courtyard, which we perhaps had never noticed before! Yes, our household was loaded now, with beautiful shades of joy, melodious songs of the myriad colored birds and fragrances of desirable delicacies! The world had not changed…it was still going on with its successes, failures, joys and sorrows, but our perception to all this had definitely changed. And my humble admittance- I was thoroughly enjoying the changed landscape of my Life!
After implementing the first two ideologies to remain "unconditionally happy" and "to be fair in my dealings", my Guru led me on to follow the next Code of conduct, which was equally important to take my Spiritual journey ahead. It was to enhance my "LEVEL OF MINDFUL AWARENESS". I have mentioned about this Principle in my earlier chapters also, but mastering this art was a rigorous training .Swami Ji referred to this practice as living in constant "SIMRAN". By this he did not mean the repetition of any hymns or prayers. By "SIMRAN", he meant mastering one's consciousness level…living constantly in total.
"Every person, in order to tread on the Spiritual path, must learn to live in perfect Mindfulness and total awareness, "he explained. This Mindfulness should become such a compulsive habit that it be exercised all the times-walking, talking, eating, drinking, working, singing, sleeping and even doing nothing…!
During one of conversations with him, the topic turned to the concept of 'Sin' and 'Virtuousness'. The explanation he gave, was an altogether novel idea for me as he went on to the extent of saying that anything, which is done without Mindfulness, is a sin and an act which is undertaken with total Awareness, is virtuous. It made sense to me. If one is ever watchful and remains in constant Mindful awakening, one can never indulge in any wickedness outwardly or inwardly, so no question of committing any sin! No awakened person can ever commit any such deed which will be injurious or spiteful to a fellow creature. If ever an awakened person has to raise arms against someone, it would be purely for one's own defence; that too if the other party is bent upon causing harm. The intension, in this case will also be self-protection and not any kind of vindictiveness, because, an awakened person knows no maliciousness, no ill will!!!
"Is this YOUR head or YOU are this head?"
I tried to find answer to this apparently simple question. Well, the answer was not as simple as the question was!
I was not MY MIND either….
"Recognizing this PRESENCE and living in its BEING is MINDFULNESS," he told me.
"Know mindfully that it is YOUR BODY, which is feeling tired and not YOU".
That was the first time, when I became consciously aware of the GAP between MYSELF and my BODY.
That was the first time, when I understood what was required of me when I was asked by him to grasp the idea of MINDFULNESS or of living in 'SIMRAN'.
Swami Ji also mentioned some simple practical ways to master the art of Mindfulness. If in pain, for instance, remind yourself that the pain is affecting your BODY and not YOU. "Learn to distinguish between pain and sorrow. Body pain or suffering, by no means should be confused with sorrow!" he reinforced.
Watching a movie, he suggested that it should be watched passively, with complete awareness that YOU are separate from the characters, from the theme…and YOU are not perturbed if the protagonist is suffering, which generally disturbs you if you let yourself be a "part" of the plot. In the beginning, start practicing this art by taking out "Daswandh", i.e. try to be mindful at least for the tenth part of each of your activity. If you are eating and it takes you thirty minutes to consume your food, at least be completely conscious of eating your food for the ten percent of your time, which is only three minutes.
Apply this principle to your walking, talking, laughing, cooking…every activity you undertake and then move on to gradually increase the 'consciousness degree or the percentage ', till it becomes a perpetual habit. In the olden times, taking out a "Daswandh" of your monetary earnings was considered to be a charitable practice. This encouraged voluntary or mindful help extended to the financially weaker brethren. I can now relate to the validity of doing so in the present day world in more than one context.
Carrying the practice of deliberate acquisition of AWARENESS further into life, you progressively begin mastering the REAL ART that YOU are a spectator of this movie of LIFE. Nothing in this life can harm or affect YOU. You start living this life as untouched by its adversities, as the Lotus blossoms…not affected by the fact that the water where it is growing is muddy….
Mastering the art of living in MINDFULNESS enables you to understand an important aspect of Spirituality that you are not BODY or MIND, but you are SPIRIT and this practice eventually results in the acquisition of MINDFULNESS, which becomes your powerful tool to take you beyond this mortal world to the world of ETERNITY….


We use the term 'cookies' to refer to all technologies which store and access information on the device that you use to access the Online Services, such as your computer, tablet or mobile phone. For example, we use http cookies, which are small data files (typically made up of numbers and letters) that are downloaded when you access our services and allow us to recognise your device.
Cookies which endure for different periods of time, including those that only last only as long as your browser is open (referred to as 'session cookies'). These are deleted automatically once you close your browser. Other cookies are 'permanent cookies' meaning they survive after your browser is closed. For example, they recognise your device when you open your browser and browse the internet again.
The following table shows you the cookies used by the DataGuidance website in accordance with the UK implementation of the European e-Privacy Directive (2009/136/EC).
When you visit our website or use our Online Services, Essential Cookies will run automatically. If you have turned on other non-essential cookies as described in the table below using the Cookie Control Settings you are able to opt-out by following the instructions set out under the Website (Browser) Opt-Out and Mobile Devise Usage Opt-Out sections below.
These cookies enable services you have asked for or disable services you have chosen not to consent to. This information is not used for advertising on other sites. Temporary session cookies are set ONLY for the duration of the visit to the DataGuidance website and are removed when you log out of the Services.
These cookies remember choices you make to improve your experience. Temporary session information is ONLY for the purpose of managing log in processes and for management of user accounts and user access to website features.
These cookies share information about your browsing habits with third parties to help make advertising relevant to you. DataGuidance.com and its subdomains do NOT collect information relating to browsing habits for advertising networks.
The DataGuidance website includes access to DataGuidance social media channels and also facilitates sharing content on social media, by embedding their channels. By clicking any of the social media buttons, this may set cookies on your computer.
How can you exercise your cookie choices?
Choosing to decline non-essential cookies may prevent the full functionality of the DataGuidance website being available to you.
Most browers accept cookies by default. You may be able to change the settings to have your browser refuse certain cookies or notify you before accepting cookies. To do so, please follow the instructions provided by your browser which are usually located within the "Help", "Tools" or "Edit" facility. Some third parties also provide the ability to refuse their cookies directly by clicking on an opt-out link. However we note that switching off cookies may restrict your use of our website.
To limit interest-based advertising on your mobile device, you can review and adjust the settings provided by your device manufacturer, such as "Limit Ad Tracking" for iOS or "Opt-out of interest based ads" for Android.
Non-personal information gathered through this web site or through other means may be used for statistical research purposes, but the identity of members and site visitors will be protected at all times.


Portland Tuna Fishing Charters Fishing Report May 2018 Book Tuna NOW!
Hi there customers and friends, how are you all.
Well what a May it has been fishing in Portland for the Southern Blue Fin Tuna, with the school fish starting out as big as 30 KGS within reach for most Anglers only 20 KLMS SE of the Portland Harbour, such an abundance of school fish, seals, gannets, turns and mixed in with all that the Mighty Giant Blue Fin Tuna AKA Barrels, with most days in May seeing most boats having some serious fun catching school fish on everything from trolling lures and casting stick baits of kinds, and almost every day someone hooking and landing Barrels, it was only a matter of time before the Reel Time Crew had there turn!
it seems that leading into the end of May the Tuna have made an appearance in huge numbers along the continental shelf, also a great patch in 130 m up and down the coast, we have also had a few small Albacore AKA Chicken of the sea mixed in with the Blue Fin when we head wide and fish the shelf.
Take advantage of the EOFY Deal New to Reel Time Fishing very similar to our Fathers Day deal this deal is most definitely one not to miss, here are the details below.
Gift voucher for ONE SPOT on a Snapper Individual Charter valued at $150 plus a bonus $30 voucher towards another trip.
Valid October 2018 to April 2019 | Individual Charters only | Bonus $30 vouchers are to be used one at a time and can be used towards next trip or given to a friend | Bookings essential | Book Online using voucher code | Multiple purchases allowed.
Purchase your EOFY Voucher here!
Well for all the fishos out there its always great to share some important info with you and we all know Matt is very fussy with his gear and his boats and will only use and recommend products that can go the distance and do the job correctly.
First, I would like to thank Ken from Tornado lures for being so responsive and cooperative with my crazy choices in both selections a lure that can be fully designed by you and will almost deliver within a week.
here are some examples I would love to share what has been working both on our school fish and of course the Barrels AKA Giant Tuna.
Ken is a very understanding person and with his passion coming through in his lures you will never be disappointed with the finished product and this applies to lures when targeting Barrels in Portland and your choice of skirt along with how your lure head works and reflects the message across that you want is critical to getting these amazing giant fish with huge eyes to EAT your Lure, Ken's products surely do encourage the bite, we will be working closely with Ken to design more and use his already proven and amazing products.
For all interested in contacting Ken or Tornado Lures his best point of contact is FaceBook so search the Tornado Lures Page and get designing or simply just grab a few of his lures he will know what works as he is pretty thick with most charter boats here in Portland.
Well, its sometimes overlooked especially when chasing Tuna in Portland, as your chance of hooking a large Tuna is very very possible and when you do it is paramount to have the correct equipment to safely get your Tuna in the boat without damaging yourself and your Vessel, Both there Gaffs and Nets come in all sizes they are very well priced for the qaulity the are, hand made, a good set of Gaffs and nets should last a very long time and the Tuna Gaffs will double as a Yellow Tail King Fish Gaff, than your larger models will be perfect for anything from Mako Sharks, Giant Tuna and the list goes on, their nets are unlike most others that will easily tear open and there rubber models are great for easy handling of fish and even better if you like letting your prized catch go swimming and fight again another day.
The Best and easiest way to purchase Gaff Mann Products and a whole heap of other top quality goodies are to search Ram Custom Marine they have a shop in Mordialloc and a great online store.
Pre Booking for the Yellow Tail King Fish Season 2019 Don't miss out!
For all the King Fish Madness in 2018 check out our Photo Galleries to see some of the Amazing King Fish Caught in Melbourne.
Catch of the Month on Reel Time Fishing Charters.
Well with the abundance of very large Blue Fin Tuna very close to Portland for May 2018 the CATCH OF THE MONTH has to go to Jarrod Williams with his 141 KG Southern Blue Fin Tuna, with a outstanding 45 minute fight, and all on board working as a team to make this capture a very special one, this fish was captured on a Tornado Lure the same lure went on to catch another 2 Barrels that week at 111kgs and 50 kgs, pretty good fishing considering the amounts of school fish mixed in along the way.
Liveaboard Fishing Charter with Matt Cini in Vanuatu 1 spot left!
Come to Join Matt Cini and his 2 mates fishing with Nambas Fishing Charters for a trip from Port Vila to Santo chasing everything from big Blue Marlin, Dog Tooth Tuna, Wahoo, Dolphin Fish, Giant Yellow Fin, Big Gts and that's just a tiny little bit of whats available, I will be doing three consecutive trips with all trips full and just one spot left its not going to last, please contact Matt Cini on 0438-302-093 if your interested in a very affordable trip of a life time fishing in prestine, untouched waters.
The trip is basically $3062.50 pp and your flights will be around $1000 you only need to allow about $300 to chip in for use of Jigs and terminal tackle and very little needed on land as most of your time is on the boat where everything apart from your drinking needs will be covered.
We recommend you arrive at least the day before your trip and stay on land for 1 night before your trip.
Click here to go to our photo galleries to see your Fishing Pics!
Surprise a loved one or reward a colleague with a Reel Time Fishing Charters Gift Voucher!
Reel Time Fishing Charters Gift Vouchers available Online Here!


text:
Susan Fernandes
Have you ever wondered what would it be like for our kids, to be deprived the joys of life, the right to study, a chance to play, to be loved, to be nurtured and cared for? It is difficult to even think about it…right, but yes, in the world around us, there are deprived kids like ragpickers, affected by Life Threatening Diseases, tribal and rag-picking kids who want to study, to learn, to play and grow up like our kids do. But the stark reality is otherwise, these children are denied all their basic rights just because they were not born in homes like ours. These children do not have an opportunity to go to school, they are subjected to all cruel things in life, things they should never see – drugs, fights, crime, violence, abuse, childhood is being snatched away from these children. Karunya Trust is been working towards the empowernment of the Children and their families from communities like HIV/AIDS, Rag Pickers and Tribals in Maharashtra. With the onset of Covid19, these families haven't been able to earn even their daily wages making it difficult to run their daily life. These children are from socially and economically vulnerable communities who are in the periphery of our society. Through TMM 2023, we intend to raise funds for people from these communities which will be utilized for : - Livelihood support (To provide a source of income) - Healthcare & Nutrition support (To prevent them from illness & diseases) - Education support (To help them continue their education by paying for their tuition fees , books & stationeries) - Shelter support (Tribal children & their families live in kachha houses which are vulnerable to heavy rains and winds and children living there are also prone to attacks from animals) Karunya Trust strives hard to provide maximum support to the children & people from the above-mentioned communities for the betterment of their life. With the fundraising opportunity from TMM 2023, we will be able to recover them from the impact of COVID-19 & help them out to lead their normal life. Karunya Trust Team is strenuously working for the betterment of the weak sections of the society. Karunya Trust's social workers goes to their homes, encourages the mothers to send their kids to school, takes them for health checkups and provides nutritious food every day. This was possible for Karunya Trust only because of individuals like YOU who supported us. If you are in the luckiest 1% of humanity, then you owe it to the rest of humanity to make life better for the rest 99%. It is only up to us 'haves' to bring a change in the lives of 'have nots.'
I am Susan, associated with Karunya Trust for our projects Savli and Gyansaathi which are working for improving the lives of children shrouded in Life Threatening Diseases, and through Health Support, Education and with other Life Skill activities improving those lives. I support the core value of Karunya Trust to provide Education and Healthcare Facilities, Psychological & Social Care and Nutritional Support to those suffering around us. This year, I am supporting Karunya Trust in raising funds to support 1000 underprivileged children. Like the Great Mahatma said…. "TO FIND OURSELVES IS TO LOSE OURSELVES IN THE SERVICE OF OTHERS" United TOGETHER we can Re-store HOPE. Become a Part in this Social Mission – Lend your Helping HAND to those marginalized people of our SOCIETY.
"Good Luck"
Suresh Gangoli
"😜"
Samuel Meenparambil
"All the best"
"Keep up the good work and God bless all - KM"
Sarwan Singh
"God bless."
Abraham Cheruvathur
"Keep up the good work"
"All the best, keep up the good work...God Bless"
T S SHYAM KUMAR
Quick Donations
Joseph Paul
Joseph Chiramal
Mita Chatterjee
SHAJI PETER
Allbin James James

redpajama_set_name: RedPajamaCommonCrawl


It has been nearly 2 years since Fantasia released her album The Definition Of and it seems she's ready to return. August 22nd the former American Idol winner announced a short tour of southern dates before returning with a new album. Fantasia is set to perform 5 shows between September 18th– November 9th which kicks off in Tuscaloosa and ends in Louisville, Ky.
She will be rolling out her new album but she has stated that she has been in the studio with Missy Elliot and Danja working on the forthcoming album.


text:
<?php

require_once(implode(DIRECTORY_SEPARATOR, array(ABLE_POLECAT_CORE, 'AccessControl', 'Role', 'User.php')));

interface AblePolecat_AccessControl_Role_User_AuthenticatedInterface extends AblePolecat_AccessControl_Role_UserInterface {
  /**
   * @return string ID of authenticating authority.
   */
  public function getAuthority();
}

class AblePolecat_AccessControl_Role_User_Authenticated extends AblePolecat_AccessControl_RoleAbstract implements AblePolecat_AccessControl_Role_User_AuthenticatedInterface {

  /**
   * @var int Role id on localhost.
   */
  private $roleId;

  /**
   * @var string Role name on localhost.
   */
  private $roleName;

  /**
   * @var string ID of authenticating authority.
   */
  private $authorityId;

  /********************************************************************************
   * Implementation of AblePolecat_AccessControl_Article_DynamicInterface.
   ********************************************************************************/

  /**
   * System unique ID.
   *
   * @return scalar Subject unique identifier.
   */
  public function getId() {
    return $this->roleId;
  }

  /**
   * Common name, need not be unique.
   *
   * @return string Common name.
   */
  public function getName() {
    return $this->roleName;
  }

  /********************************************************************************
   * Implementation of AblePolecat_CacheObjectInterface.
   ********************************************************************************/

  /**
   * Serialize object to cache.
   *
   * @param AblePolecat_AccessControl_SubjectInterface $Subject.
   */
  public function sleep(AblePolecat_AccessControl_SubjectInterface $Subject = NULL) {
  }

  /**
   * Create a new instance of object or restore cached object to previous state.
   *
   * @param AblePolecat_AccessControl_SubjectInterface Session status helps determine if connection is new or established.
   *
   * @return AblePolecat_CacheObjectInterface or NULL.
   */
  public static function wakeup(AblePolecat_AccessControl_SubjectInterface $Subject = NULL) {

    $Role = new AblePolecat_AccessControl_Role_User_Authenticated($Subject);
    $args = func_get_args();
    isset($args[1]) ? $Role->authorityId = $args[1] : NULL;
    return $Role;
  }

  /********************************************************************************
   * Implementation of AblePolecat_AccessControl_Role_User_AuthenticatedInterface.
   ********************************************************************************/

  /**
   * @var string ID of authenticating authority.
   */
  public function getAuthority() {
    return $this->authorityId;
  }

  /********************************************************************************
   * Helper functions.
   ********************************************************************************/

  /**
   * Extends __construct().
   */
  protected function initialize() {
    $this->authorityId = NULL;
    $this->roleId = 0;
    $this->roleName = 'not authenticated';
  }
}

redpajama_set_name: RedPajamaGithub


Team management has been simplified by subscription master. After the invitation to join is received from the Chairman the manager, coach or organiser can now enter players or members onto Subscription Master. As the players are being set up they start to receive email invitation to join.


Come in for our annual fun-filled spook-tacular party! We'll have games, Halloween-themed arts & crafts, storytelling, face painting, treats and prizes! Wear your costume, but BEWARE you might get a little messy. This party will be held mainly in English. Space is limited so register today!
2) 10.27(Sat) 10:00AM - 12:00PM Only a few spots left.
*Children must be able to participate independently. Please contact us if your child is under 3 years of age and wish to participate.
*There will be NO sibling discount for this event.
*Please keep in mind that your costume can get dirty! Wearing a costume is optional. You can bring a smock if you would like.
Payment, cancellation and refund policy for events.
*Only a few slots left.
Do you love art? Do you love Halloween? PERFECT! Come join our Halloween Art Workshop where you can spend the whole time making a halloween themed art project. Plenty of art materials for you to explore and you'll even get to make a fun Halloween treat to take home!
*This workshop is not a party. Children will take home a finished art project and a halloween treat.
Let's make this year's Halloween experience an unforgettable one with some boo'tiful face painting!
Call or email directly to reserve a spot on Halloween day.


text:
package com.fast.ilumer.gank.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

import com.fast.ilumer.gank.R;
import com.fast.ilumer.gank.fragment.GankMeiZiFragment;
import com.fast.ilumer.gank.fragment.GankTypeFragment;

import butterknife.BindArray;
import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends AppCompatActivity {
    @BindView(R.id.toolbar)
    Toolbar mToolbar;
    @BindView(R.id.tab)
    TabLayout mTabLayout;
    @BindView(R.id.viewpager)
    ViewPager mViewPager;
    @BindArray(R.array.various_type)
    String[] titles;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        setSupportActionBar(mToolbar);
        mToolbar.setTitle(R.string.app_name);
        mViewPager.setAdapter(new ViewPageAdapter(getSupportFragmentManager(),titles));
        mTabLayout.setupWithViewPager(mViewPager);
    }

    @Override
    protected void onStart() {
        super.onStart();
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.options_menu,menu);
        //http://stackoverflow.com/questions/29540724/start-new-activity-from-searchview
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item
                .getItemId()) {
            case R.id.today_gank:{
                Intent i = new Intent(this, GankTodayActivity.class);
                startActivity(i);
                return true;
            }
            case R.id.action_search:{
                Intent i = new Intent(this, SearchActivity.class);
                startActivity(i);
                return true;
            }

            case R.id.setting:{
                Intent i = new Intent(this, SettingActivity.class);
                startActivity(i);
                return true;
            }
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }

    @Override
    protected void onStop() {
        super.onStop();
    }

    public static class ViewPageAdapter extends FragmentStatePagerAdapter {
        //不同的viewpager的adapter的区别
        //FragmentStatePagerAdapter 会将fragment实例销毁所以需要layoutstate销毁掉
        //FragmentPagerAdapter 不会销毁实例 但是会销毁视图
        //http://stackoverflow.com/questions/18747975/difference-between-fragmentpageradapter-and-fragmentstatepageradapter
        private final String[] titles;

        private ViewPageAdapter(FragmentManager fm, String[] titles) {
            super(fm);
            this.titles = titles;
        }

        @Override
        public Fragment getItem(int position) {
            switch (position) {
                case 0:
                    return GankTypeFragment.newInstance(titles[0]);
                case 1:
                    return GankTypeFragment.newInstance(titles[1]);
                case 2:
                    return GankTypeFragment.newInstance(titles[2]);
                case 3:
                    return GankTypeFragment.newInstance(titles[3]);
                case 4:
                    return GankTypeFragment.newInstance(titles[4]);
                case 5:
                    return GankTypeFragment.newInstance(titles[5]);
                case 6:
                    return GankMeiZiFragment.newInstance(titles[6]);
                default:
                    return null;
            }
        }

        @Override
        public int getCount() {
            return titles.length;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return titles[position];
        }
    }

}


text:
Home » TIMag.com news » Media » Record ratings for Roland Garros coverage
Record ratings for Roland Garros coverage
PARIS — In its sixth year of televising the most prestigious clay-court competition in the world, Tennis Channel has seen record ratings during its first week of French Open coverage. From the period of Sunday, May 27, through Saturday, June 2, the network's live match coverage averaged a 0.61 rating according to Nielsen Media Research, or 319,738 homes, up 17 percent from 2011's 0.52 average. The daily premiere of prime-time news, interview and analysis show French Open Tonight also established new highs, exceeding 2011's performance by 51 percent every day, and is averaging a 0.52 rating vs. last year's 0.35 for the first seven days, equal to 272,563 homes.
Equally as impressive are the milestone numbers associated with the first-round upset of star Serena Williams on Tuesday, May 29. The match's 1.02 rating was good for first place among all cable networks in Tennis Channel's household coverage area and averaged 533,170 homes during the time period. Peaking at a 1.60 rating, the match generated more than one million viewers at its height, and is the highest-rated early round tournament play in network history. The Williams match is not the only pole propping up the network's ratings canopy, however, as ratings in matches played by Maria Sharapova (0.95), Victoria Azarenka (0.84) and John Isner (0.68 - No. 2 in coverage area), pointed to sustained, weeklong viewer demand.
"Before Tennis Channel there were just a few French Open matches on television each day, and now this tournament has coverage around the clock," said Ken Solomon, chairman and CEO, Tennis Channel. "There's been a real paradigm shift in how this event is televised, which has since spread to every major. Additionally, we've worked with ESPN2 and NBC to build this great integrated distribution chain of networks that promote each other's schedules and share production needs, equipment, a common vision and, in some cases, great on-air talent members. It's proof that the more you put tennis on TV, the more viewers will watch."
Tennis Channel likely has also benefitted from an adjusted schedule this year that makes things easier for viewers, who are not required to switch between channels as often as in the first five years of the network's French Open involvement, and as such enjoy a more seamless experience.
French Open Tonight, hosted by Bill Macatee, typically follows Tennis Channel's nine-hour block of daily tournament coverage and is then repeated twice throughout the night, taking viewers right up to the eve of the following day's play.
Also, with coverage at the French Open and three other tennis majors - Wimbledon, US Open and Australian Open - an annual part of Tennis Channel's lineup since 2009, the independent network is more widely expected to be a part of the on-air process at these competitions. The network also expands its reach to 55 million homes through free previews, making it more accessible than at most times of the year, when it is limited to 34 million homes.
In all, Tennis Channel is televising close to 60 hours of live matches during this year's French Open and more than 140 match hours overall, with 36 first-run hours of French Open Tonight and 114 total, via encores. In addition to more than 250 hours of total television coverage, the network is dedicating more than 300 hours to live online matches during the two-week event.
Tennis Channel (www.tennischannel.com) is the only 24-hour, television-based multimedia destination dedicated to both the professional sport and tennis lifestyle. A hybrid of comprehensive sports, health, fitness, pop culture, entertainment, lifestyle and travel programming, the network is home to every aspect of the wide-ranging, worldwide tennis community. It also has the most concentrated single-sport coverage in television, with telecast rights to the US Open, Wimbledon, Roland Garros (French Open), Australian Open, Olympus US Open Series, ATP World Tour Masters 1000 events, top-tier WTA competitions, Davis Cup and Fed Cup by BNP Paribas, and Hyundai Hopman Cup. Tennis Channel is carried by nine of the top 10 video providers.


Made from fine hardwood, these well-constructed hangers have a lacquered cherry finish. These hangers feature a space-saving flat body, two carefully crafted notches for the option of hanging straps, and a bent end swivel hook in brushed chrome. This style also features two brushed chrome clips with clear anti-stain cushions for hanging pants, skirts or other coordinate pieces. Finished with a double coating of lacquer to prevent splintering, these high quality, low cost hangers have been manufactured to last you a lifetime.


text:
Braeden Tkachuk (; born September 16, 1999) is an American professional ice hockey left winger and captain of the Ottawa Senators of the National Hockey League (NHL). Tkachuk was chosen by the Senators as the fourth overall pick in the 2018 NHL Entry Draft. Prior to turning professional, Tkachuk played one season for the Boston University Terriers, earning All-Hockey East Rookie Team honors.

Internationally, Tkachuk has represented Team USA at the 2017 IIHF World U18 Championships and 2018 World Junior Ice Hockey Championships.

Playing career
After playing for the St. Louis AAA Blues U16 and committing to the USA Hockey National Team Development Program (USNDPT), Tkachuk agreed to play for Boston University after completing two seasons with the USNDPT. While playing for the university's Boston Terriers team, he had four goals and 14 points in 19 games as a freshman before making the U.S. under-20 national team for the 2018 World Junior Championships. Nearing the end of the season, Tkachuk was selected for the Hockey East Rookie Team after ranking fifth on the team in points.

Leading up to the 2018 NHL Entry Draft, Tkachuk was ranked second overall for North American skaters by the NHL Central Scouting Bureau. He was eventually drafted fourth overall by the Ottawa Senators. Tkachuk signed a three-year entry-level contract with the Senators on August 13, 2018, forgoing his collegiate career. After participating in the Senators preseason games, Tkachuk was sidelined for the Senators' first two regular season games with a groin injury. He eventually made his NHL debut on October 8 in a 6–3 loss to the Boston Bruins. The following game, on October 10, Tkachuk recorded his first career NHL goal, and first multi-goal game, in a loss to the Philadelphia Flyers. He became the fastest Tkachuk to record his first NHL goal, surpassing his brother and father. On October 17, after playing in four games for the Senators, it was announced that Tkachuk had a torn ligament in his leg and was set to be out for a month to recover. Tkachuk eventually returned to the Senators line-up on November 8, 2018, for a game against the Vegas Golden Knights. On March 28, 2019, in a game against the Florida Panthers, Tkachuk tied the Senators' franchise record for most shots on goal in a game with 12. In the same game, he scored his 20th goal of the season to tie Alexandre Daigle for the Senators' record for most goals by a teenage player in a season. Tkachuk finished the 2018–19 season with 22 goals, the second-highest among NHL rookies, behind Elias Pettersson's 28.

Tkachuk was named an alternate captain in the 2020–21 season. Tkachuk was selected on January 22, 2020, to replace the injured Auston Matthews on the Atlantic Division roster for the 2020 NHL All-Star Game. He finished the season with 17 goals and 36 points in 56 games and established himself as a pest to opposing teams and a leader on his own.

On October 14, 2021, Tkachuk signed a seven-year, $57.5 million contract with the Senators. On November 5, Tkachuk was named as the tenth captain in Senators franchise history. On November 27, 2021, Tkachuk was bit by Brendan Lemieux of the Los Angeles Kings during a scrum in the corner. Lemieux was assessed a match penalty and was suspended for five games. On December 11, 2021 Tkachuk scored his first NHL hat trick against Brian Elliott in a 4–0 win over the Tampa Bay Lightning. On April 5, 2022, Tkachuk scored a goal and three points in a 6–3 win over the Montreal Canadiens.

On December 2, 2022, in Tkachuk's 300th career game, the Senators captain recorded a Gordie Howe hat trick, scoring his 100th career goal and the game-winning goal in 3–2 overtime win over the New York Rangers.

International play

Tkachuk was the captain of the gold-winning U.S. under-18 national team at the 2017 IIHF World U18 Championships.

Tkachuk was selected to the U.S. under-20 national team for the 2018 World Junior Ice Hockey Championships in Buffalo, New York, winning bronze.

Personal life
Tkachuk was born in Scottsdale, Arizona as his father, Keith was a member of the Phoenix Coyotes at the time of his birth. He was raised in the St. Louis suburb of Chesterfield, Missouri, after his father's 2001 trade to the Blues. Both Tkachuk brothers attended Chaminade College Preparatory School.

Tkachuk is the younger brother of Florida Panthers forward Matthew Tkachuk. He is also cousins with former NHL player and current New Jersey Devils executive Tom Fitzgerald and his sons Ryan and Casey who are both NHL prospects. Kevin Hayes and his late brother Jimmy Hayes are also cousins of the Tkachuks and Fitzgeralds.

Tkachuk is a dual citizen of both the United States and Canada, as his mother Chantal is a native of Winnipeg.

Career statistics

Regular season and playoffs

International

Awards and honors

References

External links

1999 births
Living people
American expatriate ice hockey players in Canada
American men's ice hockey left wingers
American sportspeople of Canadian descent
American people of Ukrainian descent
Boston University Terriers men's ice hockey players
Chaminade College Preparatory School (Missouri) alumni
Ice hockey people from Scottsdale, Arizona
Ice hockey people from St. Louis
National Hockey League first-round draft picks
Ottawa Senators draft picks
Ottawa Senators players
USA Hockey National Team Development Program players

redpajama_set_name: RedPajamaWikipedia


text:
Pato est une localité de la paroisse civile d'Yapacana dans la municipalité d'Atabapo dans l'État d'Amazonas au Venezuela sur l'Orénoque.

Notes et références

Localité dans l'État d'Amazonas


Sydney's nightlife has changed quite a bit since we moved here. There are many more small cocktail bars and neighbourhood water holes than before. The competition to be the next cool bar has increased raising the standard considerably. You will now find bars to suit your every mood, from casual Friday night drinks to cozy high end romantic spots.
The our Bar Guide focuses on four main areas of Sydney: Downtown (CBD), Darlinghurst, Kings Cross and Surry Hills. These areas are easy to get to by train or on foot and, if needed, an inexpensive taxi ride back to your hotel. Pick an area and try bar hopping or mix it up and discover your own favorite watering hole not listed here. Sydney always has a new hot spot opening so it is very likely that you will find a place that we have yet to hear of. If it's noteworthy drop us a line and we will added to list.
Many of the new small bars can be hard to find mostly because they are tucked away down an alley with no sign marking the entrance. Most you can find by spotting the bouncer outside checking IDs or by a group of people waiting to get in. It all feels very LA to me but the cocktails are usually worth trying though expect to pay for anything special.
The Club Bar – Under Construction!! Closed Temporarily.
Hunky Dory Social Club – This venue closed on 28 Mar 2012.
*I know the address says Darlinghurst but The Local Taphouse is closer to our Surry Hills selection of bars than the Darlinghurst ones.


text:
news20171203
Website of the Breakthrough Prize
Information on WMAP
Breakthrough Prize for WMAP
The WMAP science team has received the 2018 Breakthrough Prize in Fundamental Physics for detailed maps of the early universe that greatly improved our knowledge of the evolution of the cosmos and the fluctuations that seeded the formation of galaxies. The prize will be shared among the entire 27-member WMAP science team including Eiichiro Komatsu, director at the Max Planck Institute for Astrophysics in Garching.
Image of the Cosmic Microwave Background created from nine years of WMAP data.
Credit: NASA / WMAP Science Team
The Wilkinson Microwave Anisotropy Probe (WMAP) was a NASA Explorer mission launched in 2001 (and operating until 2010) to measure the Cosmic Microwave Background (CMB), the "echo" of the Big Bang. The properties of this radiation contain a wealth of information about physical conditions in the early universe. WMAP determined, to a high degree of accuracy and precision, not only the age of the universe, but also the density of atoms; the density of the so-called Dark Matter; the epoch when the first stars started to shine; the "lumpiness" of the universe, and how that "lumpiness" depends on scale size.
WMAP observations also provided the strongest support ever for the so-called theory of "inflation", in which the Universe underwent an exponential expansion in the first tiny fractions of a second. Eiichiro Komatsu, who is now director at the Max Planck Institute for Astrophysics, performed stringent tests of the key predictions of inflation, analysing the statistical properties of primordial quantum fluctuations that seeded cosmic structure formation. He also led the cosmological interpretation of the five- and seven-year data releases, which (according to Thomson Reuters) were the most highly cited research papers in all sciences published in 2009 and 2011, respectively.
The WMAP science team during a meeting at Princeton in 2002 with Eiichiro Komatsu on the left.
© WMAP Science Team
For the sixth year, the Breakthrough Prizes recognize the contributions of the world's top scientists. Each prize is $3 million, the largest individual monetary prize in science, and awarded in the fields of Life Sciences, Fundamental Physics and Mathematics. This year's award ceremony was held in Silicon Valley on 3 December 2017, hosted by Morgan Freeman, and included a program of lectures and discussions. The Breakthrough Prizes were founded by Sergey Brin, Yuri and Julia Milner, Mark Zuckerberg and Priscilla Chan, Anne Wojcicki, and Pony Ma. Selection Committees composed of previous Breakthrough Prize laureates choose the winners.
/500627/news20171203


text:
Day 2 of #RoyalVisitCanada: Will & Kate meet refugees & families battling addiction
The Duke and Duchess of Cambridge continued #RoyalVisitCanada by visiting Vancouver yesterday, spending time with Syrian refugees who have settled in the city, and families who have battled addiction.
William and Kate left Victoria for Vancouver on a float plane, the typical way of travelling between these cities. Their first stop was a visit to Sheway, a charity that works with vulnerable mothers who are battling addiction and other issues, which links with Catherine's work back in the UK.
The couple cooed over some of the children there, with the Duke holding a baby's hand who was being weighed at the centre. The Duchess told Ms Hydrochuk, the baby's mother: "She is so incredibly sweet and I can't believe how good she is. Whenever we used to put George or Charlotte on the scales, they would never stay still."
Prince George and Princess Charlotte were gifted teddies and books amongst other items on the day – it's a good job the Canadian RAF are taking them home, or they would need plenty of excess baggage allowance!
At a round-table discussion, Kate praised the women and families there: "What you're all carrying as mothers and what you've all been through, is a huge, huge burden and just being able to come here and share your stories with us and each other is amazing.
The Duke and Duchess hear from @ShewayBC mothers about their experiences of overcoming addiction #RoyalVisitCanada pic.twitter.com/LSNBxxRMlz
— Kensington Palace (@KensingtonRoyal) September 25, 2016
"You're giving your children an amazing chance by coming here and being able to talk about your stories."
Later, the couple travelled to the Immigration Services Society of British Columbia where they were greeted by Justin and Sophie Trudeau. Here, the Duke and Duchess got the chance to speak with Syrian refugees who have recently arrived in Canada following the devastating conflict in their home country.
Immigrant Services Society's Welcome Centre is a regional hub for transitional housing and support services that includes 16 housing units, multilingual trauma support services and youth programs.
The Prime Minister spoke of his government's efforts to settle 25,000 refugees in Canada and praised those who volunteer to help immigrants and families, as well as sponsors.
William and Kate visit the Immigrant Services of British Columbia, where a young girl is enamoured by the Duchess. Picture by i-Images/ Pool
Courses have been made available to refugees, with Prince William learning about a technology course an Afghani man has taken to enable him to find work, while the Duchess charmed a young girl who gave her flowers.
Following lunch, the Royals went to Telhus Garden for an event with young Canadian leaders, who are making important contributions to their communities. William posed for a photo with Olympians and Paralympians, joined by the PM.
Kitsilano Coastguard Station in Vanier Park was next on the agenda. This was likely of interest for the Duke, who was a search and rescue pilot until 2013. He currently works as an air ambulance pilot in Norfolk.
William and Kate, both 34, spoke with first responders about their work, but also the mental health implications of tasks such as trauma medicine. The Duke of Cambridge has spoken about the 'darkness' of his job, which includes suicide call outs.
Following through on an election promise, the government re-opened the coast guard station following angry protests from locals at the previous government's budget cuts.
More gifts were received for the Cambridge children, including life jackets and a large Dalmatian teddy, before being taken back to Victoria on a hovercraft.
Today they will visit Bella Bella.
PrevPrevious articleWilliam & Kate arrive in Victoria to begin #RoyalVisitCanada with George & Charlotte
Next articleDay 3 of #RoyalVisitCanada: William & Kate visit rainy Great Bear RainforestNext
#RoyalVisitCanada, Vancouver


Casual Atmosphere – At Grace Communion Derby you'll find everyday people who want to share the love they've experience in Christ. Feel free to come dressed casually and comfortably. We are more interested in you than what you wear.
Welcoming People – Grace Communion Derby welcomes you to feel at home and visit without feeling singled out. We're a smaller congregation with a big vision. God's love for all people to be experience and shared.
Order of Service – Services run about 45 minutes to an hour.
Song Service: Services officially begin with the song service which is about six songs. Feel free to sit, stand, sing, or just listen as we express our worship to God.
Offering: Members are given a time to give an offering from the abundance of God's blessings. As our guest, we just want you to come and get to know us, without feeling any pressure to have to give. Many members give online but add an "I gave electronically." card to the basket. Guests are asked to place the Connection slip in the offering basket.
Intercessory Prayer: A member will pray, lifting up prayer requests and praise reports.
Children Dismissed for Sunday School Sunday School Room is across from the coffee bar. Children may attend either Sunday School or remain in the sanctuary. Books and quiet materials are available on the south end of the sanctuary for children to enjoy during church services. A nursery room is available for mothers with infants where audio of the service is available. Children are welcomed and engaged in music and other activities as they learn about God and His love. Sunday School begins in the Sunday School room south of the sanctuary about 10:45 am, before the sermon begins. A slide is projected to let children know when to leave. Song – A song to allow children to get to Sunday School and prepare our hearts for the message.
Messages – Each message is designed to grow us closer in our relationship to the Father, Son and Spirit. Messages are around 20-30 minutes. You may check out past sermons or catch up on a sermon missed here.
2nd Sunday of Month – Extended Prayer: Prayer is highly valued at Grace Communion Derby. Members are provided a short time of prayer on various current topics. The intercessory prayer leader ends the prayer time.
4th Sunday of Month – Communion: The bread and juice will be prayed over and the congregation comes to the front table to receive the elements. We have an open table – all are welcomed to participate. This is a special time of worship. Glasses may be placed in the chair racks.
After the services, people tend to mill around, enjoy refreshments and visit.
3rd Sunday of Month– Potluck downstairs in Fellowship Hall following service. We have provisions for anyone who is not able to go down stairs.
Questions – We know that your first time at a church, any church, might bring up some questions. So feel free to ask us anything. You can do so by emailing us. contact us here, or reach out to us on Facebook.


School and police officials agree that most students want to do the right thing to keep their schools and neighborhoods safe but sometimes fear reprisals.
We have Campus Crime Stoppers at all MISD secondary schools, Greenwood and Midland Christian secondary schools. We want the students to be able to report illegal activity without the fear of repercussion. The incentive to the student is a cash reward, as well as remaining anonymous.
Or maybe you just see something that doesn't look right. A strange car. A person acting sneaky.
MHS students produced a Campus Crime Stoppers video to show students that their choices matter in helping to make their campus safer.
The goal of Campus Crime Stoppers is 100% safe schools. When a student submits a tip using the Crime Stoppers hotline or mobile app, they are Always anonymous and when a tip is submitted directly to a school official, they Always remain confidential. If a crime is solved, if there is an arrest or if a weapon is confiscated because of a tip, the student is eligible for a cash reward.
REMEMBER .... It's Safe to Say....What You Saw, What You Heard and What You Know!
The Board of Directors would like to thank Ms. Shadee Johnson's yearbook class for their hard work in helping to promote the Campus Crime Stoppers program.
The video was shown at the MHS vs LHS football game on November 2, 2018.
The Board of Directors presented Chief David Colburn with an appreciation plaque in recognition of his retirement from the Midland ISD Police Department. The Board appreciates Chief Colburn's unconditional commitment in keeping our schools safe over the years as well as his cooperation and assistance with the Campus Crime Stoppers program! May the many years ahead bring you all joy and relaxation. Congratulations!
Congratulations to the winners of our 7th Annual Campus Crime Stoppers 'Design the Poster' Contest! Midland Crime Stoppers held a prize ceremony at the Midland ISD Central Office on May 22nd to present cash prizes to the 1st, 2nd and 3rd place winners and also presented 24 Honorable Mention certificates to 24 students.
The 1st place winners in the High School and Junior High categories will be the 'Official' Campus Crime Stoppers poster for the 2018-19 school year. 286 poster submissions were received this year and we appreciate all the students who participated! GREAT JOB AND THANK YOU for helping us promote the Campus Crime Stoppers program!
Thank you to the campuses that participated: Midland Christian, Abell Junior High, Goddard Junior High, San Jacinto Junior High, Midland Freshman High School and Midland High School!


Make a bold statement with these Black Ruched Mesh Leggings. Featuring a black ruched mesh fabric with a white underlay. These figure hugging leggings can switch up an outfit in seconds. Team these with a basic bandeau and a pair of perspex heels for the ultimate outfit. You will not be missed in these Black Ruched Mesh Leggings.


text:
package org.pentaho.di.bigdata;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Documented
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.TYPE )
public @interface ShimDependentJobEntry {
  String id();

  String name() default "";

  String description() default "";

  String image();

  String version() default "";

  int category() default -1;

  String categoryDescription() default "";

  String i18nPackageName() default "";

  String documentationUrl() default "";

  String casesUrl() default "";

  String forumUrl() default "";
}


text:
Incompetence at its best
Posted by Liju Philip on July 28, 2010
Iam a strong believer in the theory that the government has no business doing any business. The government has no business running steel companies, textile mills, condom companies etc. All that the government has to do is to manage the law and order machinery, keep the country safe and to create laws and an environment that is conductive for its people do do business and prosper. The government exists so that the common man can use his skills to run his own business and employ people. More than 60 years ago when the country got its independence, it was ok for the government to get into all the industries so as to kick start the process of industrialisation. As time went by, the citizens of the country got into the business of making money and it was time for the government to sell off the businesses and do what it was mandated to….and that is to govern the country.
But under the socialist regime of our succesive governments, the economy has been screwed up badly and sadly even 63 years after independence, we have millions of our citizens going hungry every day while millions of tons of foodgrains rot in open grounds for lack of storage space.
Meanwhile we have a food and agricultural minister who is busy hobnobbing with the glamour of industry and entertainment and involving himself in cricket. Not to mention monopolising the sugar business in his home state of Maharashtra. All this at time when foodgrains have no place to be stored and are left to the mercy of rains and heat in some open lands.
Even though the Supreme Court has woken up late, its good to see that the apex court has now come out with a ruling stating that not a single grain should be wasted and if the government cant do the needful, it must distribute the food to the poor free of cost.
The Supreme Court has observed that not a single food grain should be wasted. In a strongly-worded ruling, the apex court has told the government that foodgrains are rotting and if you can't do anything about it then distribute it among the poor. The court has also sought government's response on this.
Meanwhile, as the government faces flak over letting close to 30 lakh tonnes of foodgrain rot across the country, the Empowered Group of Ministers (EGoM) on food has reportedly decided to sell an additional 30 lakh tonnes of rice and wheat to 11.5 crore Above-Poverty-Line (APL) families through ration shops.
Didnt such a though occur to the incompetent government and the food minister earlier?
PS: Remember the days of waiting for 2 years for a land line, booking periods for a Bajaj scooter or a Maruti car? That's the kind of pathetic performance only our government can do. That's why agriculture, retail and everything to do with logistics needs to be deregulated. So that the private sector can do in a few years what our government hasn't been able to do in decades.
Picture courtesy: Poonam
incompetence
Previous Post When will they learn?
Next Post The Scums in Our Neighborhood
Sure, govt has no business to be in business, but which govt babu wont like to make an extra buck.We are a corrupt country and that is it.
scorpiogenius says:
Incompetence? I'd say CRIMINAL NEGLIGENCE!
Those who're responsible for this surely ought to be brought in front of a court of law and handed out severe sentences for such acts against humanity. Unbelievable, especially when we think that 40% of our countrymen can't find a source of food more than once a day. 😦


Calcutta Rescue is a registered non – governmental organization (NGO) operating in Kolkata and some parts of rural West Bengal for over three decades serving the most socially and economically disadvantaged people of the region – regardless of gender, age, caste or religion.
Although India is a rising power today, the harsh reality of poverty and deprivation cannot be ignored. In Kolkata and areas of rural West Bengal itself, almost 4 million people live below the poverty line and some 2.5 million people live on the streets and slums scattered across the city. Thus, Calcutta Rescue was established to meet the most basic needs of these poor and downtrodden, providing free medical care, education, benefits and vocational training for increasing income generation opportunities.
The Handicrafts project has its origins at Calcutta Rescue's first project – the street clinic on Middleton Row. The sewing teacher from Calcutta Rescue's school was brought in to train former patients how to make clothes. Before long, these former patients were producing clothes for the clinic's existing patients. At the same time, of course, they were themselves earning a wage that helped them to support themselves and their families. This was vital employment for people whose opportunities for work were otherwise severely limited owing to illness.