• Eclipse vs AndroidStudio: что выбрать?

    @Vlad161
    Начинал знакомство с eclipse, но больше нравится Android Studio. Работал в этих ide мало, т.к. только учусь, что то подробного не скажу, но в Android Studio намного приятней работать.
    Разве, что у eclipse есть плюшка, это плагин синхронизации с git, но руками это делается тоже не тяжело.
    Ответ написан
    1 комментарий
  • Как быстро выполняется тот или иной участок кода в Delphi?

    MaxiMonster
    @MaxiMonster
    Я пользовался процедурами, которые уже описаны в делфях:
    QueryPerformanceFrequency - количество тактов за миллисекунду
    QueryPerformanceCounter - количество тактов

    Твой пример:
    var
    tc,tc2,tcins:int64;
    QueryPerformanceFrequency(tcins);
    QueryPerformanceCounter(tc);

    bubblesort(arr100,0,100);

    QueryPerformanceCounter(tc2);
    Ответ написан
    Комментировать
  • Как отобразить значение связаного поля в БД?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT `a`.`id_car`, `m`.`MarkName`, `a`.`CarNumber`, `a`.`Fuel`, `a`.`isActive` 
        FROM `Автомобили` AS `a` 
            LEFT JOIN `Марки` AS `m` ON `a`.`MarkID` = `m`.`id_mark`
    Ответ написан
    1 комментарий
  • Как в Postgres сделать выборку записей, которые состоят только из русских букв или английских?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Это можно решить регулярками:
    #Ищем пользователей с именем, написанным только латинскими буквами
    SELECT * FROM users WHERE name ~ '[a-z]+';
    
    #ищем с русскими буквами
    SELECT * FROM users WHERE name ~ '[а-я]+';

    Пример на sqlfiddle
    Ответ написан
    Комментировать
  • Как сделать правильно? Много таблиц и PageControl в Delphi

    HaJIuBauKa
    @HaJIuBauKa
    Если у вас в приложении будет 4-ре грида, абсолютно не критично создать для них 4-ре отдельные вкладки.
    Для программирования (особенно, если вы начинающий) это намного проще. И для гибкости тоже, у вас, как я понял запросы не однотипные и информация в гридах будет тоже разного порядка.
    Но есть совет: если таблицы у вас связаны (а это скорее всего так), то имеет смысл пересмотреть интерфейс и вывести связанные таблицы на одной вкладке (мастер-детейл).
    Еще есть интересная функция в компонентах EhLib (правда они платные с версии 3) - вывод подчиненных записей в древовидной структуре, проще говоря, нажимаете плюс и видите подчиненные записи, формировать отображение которых можете как угодно.
    dbgridehform16.png
    Ответ написан
    Комментировать
  • Технологий много - как найти время на все? Стоит ли дергаться, изучая параллельно несколько?

    CheshireCat
    @CheshireCat
    full-stack developer
    Приветствую,
    Мне тоже 24 и я по-прежнему хожу по тем же самым мукам. Постоянная тяга к новым знаниям заставляет пробовать новые технологии, так и не достигнув уровня гуру в уже пройденном. Начинал с Delphi и HTML/PHP. Сейчас активно обучаюсь iOS разработке (т.е. Objective-C) и хочу заняться геймдевом под мобильные платформы с помощью Unity3D, попутно изучая C# (который я начинал учить и забросил еще в 2004).
    Так вот, о чем это я?
    Правильный ответ на твой вопрос лежит в аналогии с девушками... можно любить разнообразие, постоянно перебирая себе подруг, пока не решишься жениться, чтобы познавать этого человека долгие годы.
    Любопытство - это хорошо, нужно быть в курсе современных технологий, не бояться пробовать их, но стоит влюбиться во что-то одно и копать его вглубь все дальше и дальше, чтобы была своя специфическая ниша, в который ты станешь специалистом.
    Я понимаю, что мой ответ просто зеркалит твой вопрос, но для меня самого эта тема открыта. И вряд ли кто-то даст 100% ответ что тебе нужно сделать. Стоит учитывать, что есть два типа людей - те, которые любят оттачивать свой навык в чем-то до предела, а другие просто по природе своей - универсалы и такие специалисты тоже востребованы.
    Ответ написан
    2 комментария
  • Как организовать структуру БД?

    Могу предложить такой вариант. Делаем табличку cars_usage_profile
    car_id, client_id, elapsed_usage_time,
    где elapsed_usage_time - допустим суммарное время наката клиентом в секундах, если тариф вычисляться будет в коде, и я уверен, что это правильно. Мало ли как завтра захотят ещё обсчитывать, что тогда делать с имеющейся базой?

    История заказов car_usage_history выглядеть тогда может так:
    cars_usage_profile_id, date_start, date_finish,
    откуда можно вычислить легко разницу во времени.

    Далее, при каждом добавлении строчки в историю проката делаем обсчёт времени пользования. Тут есть быстрый вариант, когда можно взять предыдущее значение из cars_usage_profile и прибавить новое, а есть более медленный с пробеганием по всем строчкам истории с указанным cars_usage_profile_id, который если не будет устраивать - можно зафигачить в крон для полного пересчёта времени использования. Чисто так, для спокойствия души, что всё сходится.
    Поиск будет работать очень быстро.
    Ответ написан
    Комментировать
  • Как организовать структуру БД?

    papahoolio
    @papahoolio
    совмещаем решение toster.ru/q/54424#answer_198854 с toster.ru/q/54424#answer_198864 и получаем оптимальную для старта структуру

    т.е. есть таблица лога
    в таблице клиентов есть атрибут со значением текущего тарифа и триггер на insert в таблицу лога, пересчитывающий тариф клиента
    коэффициенты для машин могут быть, могут не быть - зависит от бизнесс-процесов и возможностью изменения их в будущем
    Ответ написан
    Комментировать
  • Как организовать структуру БД?

    savostin
    @savostin
    Еще один программист
    Заводите поле для клиента - текущий тариф.
    Пишите триггер, который при insert в таблицу заказов пересчитывает "тяжелым" запросом (каким сказать сложно - Вы не указали логику подсчета) текущий тариф клиента и обновляете значение в таблице клиентов.
    Можно не триггером, а по крону.
    Ответ написан
    Комментировать
  • Как организовать структуру БД?

    hell0w0rd
    @hell0w0rd
    Просто разработчик
    Я бы ввел коэффиценты для каждой из машин. Дальше в таблицу логирования вы можете записывать какой клиент на сколько брал, какой автомобиль. Потом простым запросом с использованием агрегатных функций(сумма, подсчет) складывали по нужной вам формуле коэффиценты и время, отсюда получали коэффицент стоимости
    Ответ написан
    Комментировать
  • Как сделать правильно? Много таблиц и PageControl в Delphi

    @mrUlugbek
    Лучше использвать Tabcontrol а не PageCOntrol
    создайте на нем Табстринги
    Tabcontrole вставить один дбгрид + query в обработчкие Onchange селекнуть
    по табиндекс..
    Это дает избежать использовать 4 грида итд
    Ответ написан
    1 комментарий
  • Как сделать правильно? Много таблиц и PageControl в Delphi

    @AlexP11223
    Какой метод, с точки зрения программирования, лучше?

    Разделять UI и бизнес-логику лучше.

    Однако в Дельфи это не совсем просто без опыта, да и она сама прям таки провоцирует писать весь код и логику сразу в обработчиках кликов кнопок. Ну и для несложных проектов не всегда есть смысл париться об этом.

    А что вы во втором варианте имели в виду я не понял.
    Ответ написан
    Комментировать
  • Какой язык программирования начать изучать филологу в 30 лет, если в школе у него было 3 по алгебре, 4 по геометрии, а по остальным предметам 5?

    sevka_fedoroff
    @sevka_fedoroff
    Я тоже рекомендую Питон. Сейчас изучаю, очень нравится. За плечами Pascal/Delphi, Java, PHP. Вот с Си никогда не складывалось, наверное я недостаточно технарь)
    Ответ написан
    2 комментария
  • Как реализовать апдейт программы через Google Drive/Dropbox в Delphi?

    POMA
    @POMA
    Если рассматриваете платные готовые решения для работы с облачным сервисом, то советую TMS. Из бесплатных, к сожалению, вменяемые аналоги найти не смог. Буду рад, если кто подскажет оные.

    А вот если решили настраивать обновление приложения через http (или вообще вернуться на ftp), то лучше TWebUpdate. Всё встроено, никаких dll и дополнительных файлов, плюс локализация и довольно гибкая настройка.
    Ответ написан
    Комментировать
  • Как правильно осуществлять загрузку настроек программы в Delphi

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Если у Вас в INI - база данных на 1Гб, то лучше - прочитал настройку и закрыл файл.
    Если INI как у всех (в несколько килобайт) - то читаете и держите в памяти только те, которые будут постоянно использоваться при работе с программой (другие переменные - убиваете, освобождая память).

    При открытии окна конфигурации в программе - проверяйте соответствие информации на диске (считываете снова данные из INI) и те, что в памяти:
    1. недостающие параметры (от которых освободили память ранее)- считываете снова из INI-файла.
    2. при несовпадении списка параметров или их свойств, сообщаете пользователю: "Файл настроек на диске изменен. Обновить настройки данными из файла или использовать текущие?"

    Тоже самое делайте при выходе из приложения и проверяйте целостность структуры данных, находящихся в INI-файле. (сообщите пользователю, если что-то не так, включив таймер на операцию по-умолчанию)
    Ответ написан
    Комментировать
  • Как правильно осуществлять загрузку настроек программы в Delphi

    @svd71_1
    В Win32 самая главная проблема - это ресурсы. Каждое открытие файла - расход памяти и хэндла на этот файл. Поэтому все читают настройки и сразу их же закрывают. Кроме того, при случайном крэше системы такие ресурсы могут мрнопольно захватить такие ресурсы и данные в них окажутся испорчены.

    данные вы можете хранить как угодно. Самый простой способ - потомка TStrings. Больше возможностей дает IniFile. Ну а более расширенные возможности - это хранение в формате, подобном dfm-файлу.

    И это все методы, которые уже имеются в структуре программ Delphi и к которым не нужно приделывать колеса, чтоб получить велосипед.
    Ответ написан
    Комментировать
  • Как реализовать апдейт программы через Google Drive/Dropbox в Delphi?

    kylt_lichnosti
    @kylt_lichnosti
    По Google Drive, посмотри в этом блоге - http://www.webdelphi.ru

    У нас установка и обновление программы, реализованы через инсталятор (Inno Setup).
    На сайте рядом с инсталятором лежит хмл с версией и датой (дата для сообщения). Программа качает хмл, сверяет версию и если надо предлагает обновится. Потом качает инсталятор, запускает его в тихом режиме (и еще кое какие параметры) и закрывает программу. После обновления, инсталятор запускает программу.
    Ответ написан
    Комментировать
  • Как реализовать апдейт программы через Google Drive/Dropbox в Delphi?

    silvansky
    @silvansky
    Лучше всего сделать через скачивание обновления с сайта - не нужно морочиться с API и т.п.. Можно взять WinSparkle - одна dll, с помощью которой легче лёгкого настроить автообновление программы.
    Ответ написан
    1 комментарий
  • Выбрать СУБД между MySQL, PostgreSQL, MariaDB и MSSQL?

    KEKSOV
    @KEKSOV
    Похоже, что Вы забыли рассмотреть еще вот этот вариант: Percona Server is an enhanced, drop-in MySQL replacement. Для очень быстрого выполнения запросов необходимо воспользоваться special NoSQL interface called HandlerSocket. Да, и даже multi-master репликация там тоже есть.

    Несколько смущает PDO и желание сделать нагруженный сайт. Боюсь, что от этой прослойки придется отказаться сразу.
    Ответ написан
    3 комментария
  • Выбрать СУБД между MySQL, PostgreSQL, MariaDB и MSSQL?

    EugeneOZ
    @EugeneOZ
    Шардится и реплицируется Postgre проще и надёжнее. Но даже с учётом PDO, есть разница местами в синтаксисе и возможностях между ней и MySQL.
    Главное — не вляпайтесь в MSSQL. С ним можно нормально работать только внутри стека MS-инструментов. Оно даже UTF-8 не поддерживает. Ну и MS кладёт болт на не-виндовые драйвера, выпускают их очень редко.
    Ответ написан
    7 комментариев