• Был ли опыт портирование приложения с использования MSSQL на PostgreSQL?

    agent777
    @agent777
    Frontend, Backend, C#, Java
    Послушай, если не устраивает цена MS SQL Server, то проще всего будет поступить так:
    1) создать резервную копию твоей базы на работе
    2) скачать MS SQL Server Express - это та же самая СУБД, что и у тебя на работе стоит, только нету планировщика резервных копий и многих плюшек. Но! - она прекрасна работает в производстве, мы на работе используем версию Express - она бесплатная, ставится быстро, настраивается в 10 раз легче! А перенос базы вообще будет в несколько щелчков. Т.е. просто взять ту же MS SQL (смотря какого года у тебя, 2008, 2012..) и скачать с сайта микрософта бесплатную версию.
    3) зайти через Management Studio и в пустую базу залить копию твоей рабочей. все!
    Какие PostgreSQL???? чтобы переносить бд с SQL Server на Postgre надо быть...смешным. Это почти нереализуемо. Возьми ту же самую СУБД, только бесплатный вариант! в ней будут отсутствовать многие службы, но они тебе и не понадобятся. и просто скопируй базу свою. Предложи этот вариант своему руководству.
    Ответ написан
    5 комментариев
  • Динамический хеш url на nginx реально ли?

    Сделайте rewrite всех этих хешей на /payment
    И уже в php разбирайте правильный пришел request_uri или нет.
    Ответ написан
    2 комментария
  • Как уменьшить потребление памяти при сборке в Android Studio?

    @prosto_anton Автор вопроса
    В общем, если кому-то будет интересен мой опыт.
    Урезаем память демону gradle, так как он не слишком много делает, а по умолчанию жрет прилично.
    3a55f25ee566487dbdd6ca966c3442b1.png

    Основную роль в процессе сборки играет упаковка, хотя, возможно, не правильно назвал. Здесь потребление памяти можно регулировать следующим образом:
    android {
    dexOptions {
    maxProcessCount 1
    javaMaxHeapSize '1200m'
    }
    }
    Цифра в 1200Мб достигнута эмпирически, будет зависеть от приложения.

    Также я еще ресурсов idea подрезал, она не обиделась:
    -Xms128m
    -Xmx128m
    -XX:ReservedCodeCacheSize=32m
    Ответ написан
    Комментировать
  • Как благополучно закрыть проект с невыносимым заказчиком?

    opium
    @opium
    Просто люблю качественно работать
    А в чем проблема подымаете ставку и работаете такие клиенты всегда в радость много работы много денег а лишняя тысяча долларов не лишняч
    Ответ написан
    6 комментариев
  • Как установить Oracle коннектор для php?

    @c3037 Автор вопроса
    оказывается была проблема в версии x64-x86
    Ответ написан
    1 комментарий
  • Как правильно на Rest сервере организовать фоновый поток?

    alsopub
    @alsopub
    Вариант 1.
    Периодический опрос контроллера (по крону или через sleep, если нужно чаще чем раз в минуту) отдельным процессом, складывание результатов в базу данных, обработка результатов по необходимости.
    Клиенту выдается результат из базы.

    Вариант 2.
    Опрос контроллера в момент обращения клиента, кеширование результата опроса на N секунд (в памяти, на диске, в базе данных).

    Все зависит от необходимой частоты опроса, времени одного опроса и тд.
    Ответ написан
    1 комментарий
  • Как исключить использование аккаунта на сайте несколькими пользователями?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    ОЙ, да как 2 пальца)
    1. Средняя взвешенность периодики заходов.
    2. Средняя взвешенность кол-ва уникальных IP-адресов (+подсетей) и User-Agent на один аккаунт за равные промежутки времени после регистрации, относительно других.
    3. Отклонение от суммарных показателей более, чем в 2 раза - бан. (условия прописываем в оферте заранее!)
    Профит!
    Ответ написан
  • File upload express/multier. Запрос успешно работет только в POSTMAN?

    BeSa1nt
    @BeSa1nt Автор вопроса
    студент
    В разработке я использую React.js. Проблема была вызвана тем что React, при рендеринге проигнорировал атрибут enctype="multipart/form-data". Для решения этой проблемы надо изменить название атрибута с ecntype на encType.
    Ответ написан
    1 комментарий
  • Как исключить использование аккаунта на сайте несколькими пользователями?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Все это бессмысленно, знаете почему?
    -Привет, у меня есть аккаунт на Х, давай, я тебе куплю что надо, у меня скидка 666%
    -О, ништяк, покупай!
    Ответ написан
    9 комментариев
  • Возможно ли повесить блокировку sync на структуру?

    @Vaavaan
    Не в Go.
    В Go ты это должен явно проверять.

    Можешь повесить Mutex внутрь, но проверять его все равно нужно. Внутри рядом с данными он, возможно, удобно хранится. Только и всего. Он автоматически работать не будет.

    Можешь использовать lock-free идеологию. Тогда ничего сохранять не нужно. А сами данные и будут блокирующими элементами. Но и в этом случае нужно явно проверять их. Это пакет atomic в Go.

    А вот если ты положишь структуру в канал, то тут да, тут ты получишь потокобезопасность. Но это не совсем то, что ты описал.
    Ответ написан
    Комментировать
  • Как убрать возможность просмотра фильмов на компьютере?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Все компьютеры в домене, может можно что то сделать с политиками AD?
    Синдром Бога?!
    Завязывайте! И просто дайте людям работу и спрашивайте с них её исполнения.
    Не нужно делать то, что не нужно делать!
    Ответ написан
    Комментировать
  • Не получается настроить ЦЕЛИ в ЯндексМетрике, поможете?

    DeoZ
    @DeoZ
    Веб-разработка и Реклама
    Вы можете поставить срабатывание события для кнопки, несмотря на то, что там уже имеется js-код. Просто разделите их точкой с запятой. Получится таким образом:
    <button class="btn btn-smal btn-block btn-success" type="button" onclick="order_product(1,'Фотошторы Волшебный лес');yaCounter37700435.reachGoal('ORDER'); return true;">Купить</button>
    Ответ написан
    Комментировать
  • Как обработать все ошибки (перехваченные и неперехваченные) в ASP.Net MVC?

    andrewpianykh
    @andrewpianykh
    Я предпочитаю следующий подход:

    1. Создаем контроллер ErrorController, например так:

    public class ErrorController
    {
    	public virtual ActionResult BadRequest()
    	{
    		return View();
    	}
    
    	public virtual ActionResult Forbidden()
    	{
    		return View();
    	}
    
    	public virtual ActionResult Index()
    	{
    		return View();
    	}
    
    	public virtual ActionResult NotFound()
    	{
    		return View();
    	}
    }


    2. Добавляем вьюхи

    3. Создаем свой расширенный HandleErrorAttribute, например так:

    public class ExtHandleErrorAttribute : HandleErrorAttribute
    {
    	//private readonly ILogger logger;
    
    	public ExtHandleErrorAttribute(/*ILogger logger*/)
    	{
    		//this.logger = logger;
    	}
    
    	public override void OnException(ExceptionContext filterContext)
    	{
    		if (filterContext.ExceptionHandled || !filterContext.HttpContext.IsCustomErrorEnabled)
    		{
    			return;
    		}
    
    		if (new HttpException(null, filterContext.Exception).GetHttpCode() != 500)
    		{
    			return;
    		}
    
    		if (!ExceptionType.IsInstanceOfType(filterContext.Exception))
    		{
    			return;
    		}
    
    		if (filterContext.HttpContext.Request.Headers["X-Requested-With"] == "XMLHttpRequest")
    		{
    			filterContext.Result = new JsonResult
    			{
    				JsonRequestBehavior = JsonRequestBehavior.AllowGet,
    				Data = new
    				{
    					error = true,
    					message = filterContext.Exception.Message
    				}
    			};
    		}
    		else
    		{
    			var controllerName = (string)filterContext.RouteData.Values["controller"];
    			var actionName = (string)filterContext.RouteData.Values["action"];
    			var model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName);
    
    			filterContext.Result = new ViewResult
    			{
    				ViewName = View,
    				MasterName = Master,
    				ViewData = new ViewDataDictionary<HandleErrorInfo>(model),
    				TempData = filterContext.Controller.TempData
    			};
    		}
    
    		//var e = filterContext.Exception;
    		//logger.Error(e, e.Message);
    
    		filterContext.ExceptionHandled = true;
    		filterContext.HttpContext.Response.Clear();
    		filterContext.HttpContext.Response.StatusCode = 500;
    		filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
    	}
    }


    4. Регистрируем глобальный фильтр:
    public class FilterConfig
    {
    	public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    	{
    		var extHandleErrorAttribute = DependencyResolver.Current.GetService<ExtHandleErrorAttribute>();// new ExtHandleErrorAttribute();
    		filters.Add(extHandleErrorAttribute);
    	}
    }


    5. В Global.asax.cs добавляем метод Application_Error:

    protected void Application_Error(object sender, EventArgs e)
    {
    	var httpContext = ((MvcApplication)sender).Context;
    
    	var currentRouteData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(httpContext));
    	var currentController = " ";
    	var currentAction = " ";
    
    	if (currentRouteData != null)
    	{
    		if (currentRouteData.Values["controller"] != null && !String.IsNullOrEmpty(currentRouteData.Values["controller"].ToString()))
    		{
    			currentController = currentRouteData.Values["controller"].ToString();
    		}
    
    		if (currentRouteData.Values["action"] != null && !String.IsNullOrEmpty(currentRouteData.Values["action"].ToString()))
    		{
    			currentAction = currentRouteData.Values["action"].ToString();
    		}
    	}
    
    	var ex = Server.GetLastError();
    
    	var controller = new ErrorController();
    	var routeData = new RouteData();
    	var action = "Index";
    
    	if (ex is HttpException)
    	{
    		var httpEx = ex as HttpException;
    
    		switch (httpEx.GetHttpCode())
    		{
    			case 404:
    				action = "NotFound";
    				break;
    
    			case 403:
    				action = "Forbidden";
    				break;
    
    			case 400:
    				action = "BadRequest";
    				break;
    
    			default:
    				action = "Index";
    				//var logger = DependencyResolver.Current.GetService<ILogger>();
    				//logger.Error(ex, ex.Message);
    				break;
    		}
    	}
    
    	httpContext.ClearError();
    	httpContext.Response.Clear();
    	httpContext.Response.StatusCode = ex is HttpException ? ((HttpException)ex).GetHttpCode() : 500;
    	httpContext.Response.TrySkipIisCustomErrors = true;
    	routeData.Values["controller"] = "Error";
    	routeData.Values["action"] = action;
    
    	controller.ViewData.Model = new HandleErrorInfo(ex, currentController, currentAction);
    	((IController)controller).Execute(new RequestContext(new HttpContextWrapper(httpContext), routeData));
    }


    6. В web.config добавляем в system.web
    <customErrors mode="On" />

    также в system.webServer можно добавить:

    <httpErrors>
      <remove statusCode="400" subStatusCode="-1" />
      <remove statusCode="403" subStatusCode="-1" />
      <remove statusCode="502" subStatusCode="-1" />
      <remove statusCode="501" subStatusCode="-1" />
      <remove statusCode="500" subStatusCode="-1" />
      <remove statusCode="404" subStatusCode="-1" />
      <error statusCode="400" prefixLanguageFilePath="" path="/Error/BadRequest" responseMode="ExecuteURL" />
      <error statusCode="404" prefixLanguageFilePath="" path="/Error/NotFound" responseMode="ExecuteURL" />
      <error statusCode="500" prefixLanguageFilePath="" path="/Error" responseMode="ExecuteURL" />
      <error statusCode="501" prefixLanguageFilePath="" path="/Error" responseMode="ExecuteURL" />
      <error statusCode="502" prefixLanguageFilePath="" path="/Error" responseMode="ExecuteURL" />
      <error statusCode="403" prefixLanguageFilePath="" path="/Error/Forbidden" responseMode="ExecuteURL" />
    </httpErrors>
    Ответ написан
    Комментировать
  • Экспорт программы (apk) в Xamarin Studio (visual) + как настроить ключ подписи?

    KINEGE
    @KINEGE Автор вопроса
    В общем, методом проб и ошибок(тыка) выяснилось что нужно в разделе properties снять галку "Use shared runtime" (в подразделе android options)6e42cb8c32664a06bcd15eecc394123c.png
    Ответ написан
    Комментировать
  • Как сделать простую гифку со сменяющимся фоном?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    А без вариантов тут - времени гуглить ни у кого нет: мы все на работе.
    Ответ написан
    8 комментариев
  • Не запускается Windows XP пишет из за аппаратных ошибок настройки диска как быть?

    @gomer1726 Автор вопроса
    в флешке( виндовс хп ) что загружал не было файла boot.ini вот создал его и вставил
    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
    
    [operating systems]
    
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=optin /fastdetect

    и после нескольких попыток загрузился с флешки, ЕСЛИ КОМУ ТО ПОНАДОБИТСЯ
    Ответ написан
    Комментировать
  • ASP .NET MVC Entity Framework в чем ошибка и как исправить?

    andrewpianykh
    @andrewpianykh
    В Вашем случаем можно упростить код и обойтись без указания атрибутов:

    public class Area // Район
    {
    	public int Id { get; set; }
    	public string Name { get; set; }
    	public int RegionId { get; set; }		
    	public virtual Region Region {get; set;}
    	public byte[] Map { get; set; }
    }
    
    public class Region // Область
    {
    	public int Id { get; set; }
    	public string Name { get; set; }
    	public byte[] Map { get; set; }
    }


    иначе:

    public class Area // Район
    {
    	[Key]
    	public int AreaId { get; set; }
    	public string Name { get; set; }
    	public int RegionId { get; set; }	
    	[ForeignKey("RegionId")] 	
    	public virtual Region Region {get; set;}
    	public byte[] Map { get; set; }
    }
    
    public class Region // Область
    {
    	[Key]
    	public int RegionId { get; set; }
    	public string Name { get; set; }
    	public byte[] Map { get; set; }
    }


    Подробнее
    www.entityframeworktutorial.net/code-first/foreign...
    https://msdn.microsoft.com/ru-ru/data/gg193958.aspx
    andrey.moveax.ru/post/mvc3-in-depth-entity-framewo...
    Ответ написан
    1 комментарий
  • Какие требования к С# джуниору?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Джун джуну рознь. Чем больше знаний - тем лучше.
    Троелсен и правда очень медленно и педантично повествует. Он удобен как настольная книга джуниора, как справочник - по конкретным задачам копать. Но, ИМХО, Шилдт будет приятнее.


    Основные контейнеры - преимущества и недостатки. Сложность алгоритмов поиска и вставки, сортировки. Хэш-таблицы, хэш-код объектов, equality и как это все устроено. Неплохо бы знать про многопоточность и примитивы синхронизации (в общих чертах).
    Хорошо бы знать кое-что про платформу .NET - типы-значения и ссылочные типы (про стек и кучу), про GC с поколениями, SOH/LOH, как можно устроить утечку памяти -> IDisposable.
    Уметь делать запросы к базе через голый ADO.NET.
    По базам данных: владеть основными запросами SQL, писать и вызывать хранимые процедуры. Знать что такое и зачем нужны индексы, нормализация, View, где смотреть query execution plan.
    Суметь рассказать о том, что такое MVC, ориентироваться в основных паттернах.

    Если курс на веб, то понимать работу HTTP, REST, знать основы фронта (приоритет селекторов в CSS, "всплывающие" объявления переменных в javascript, разницу "==" и "===", чем отличается асинхронность от параллельности и чем это грозит).

    Вызовет уважение в глазах интервьюера: понимать и применять IoC/DI, уметь писать тесты, работать с ORM (EntityFramework допустим), async/await и SynchronizationContext.
    Ответ написан
    11 комментариев
  • Какие требования к С# джуниору?

    Rou1997
    @Rou1997
    В первую очередь надо научиться программы разрабатывать, те, которые вы будете на работе.
    Ответ написан
    Комментировать