• Какие перспективы есть у Elixir?

    @yaBliznyk
    Язык действительно интересный и легкий. Есть русская документация в elixir school и достаточное количество библиотек. Есть русское сообщество в телеграмме @proelixir Есть курсы elixir и большое количество книг тоже на русском. Язык развивается, пусть не так быстро, но от того возможно качественно.
    Его активно используют за бугром, там найти работу не составит труда. У нас достаточно проблематично джуном. Но я бы сказал что джуном берут только в офис практически везде, поэтому вам должно либо повезти с местом жительства, либо вы должны будете продвинуть его на текущем месте работы.
    Я на чистом эликсире писал парсеры, многопоточность выручает очень сильно.
    Рассматривать elixir без phoenix не имеет смысла. Phoenix имеет смысл рассматривать только как очень быстрый микросервис. Как вариант для websockets. Вполне может выстрелить LiveView но до этого надо дожить. В большинстве компаний, на сегодняшний момент в России, предпочтут go вместо elixir.
    В купе за 10 лет он только разовьется, просто в России его еще толком не заметили.
    Как основной язык, возможно, но только там где уже работает erlang. Поэтому лучше потихоньку изучать как добавочный и прикручивать его там, куда go еще не прикрутили)
    Мышление меняет очень сильно, после пары месяцев работы с ним будете смотреть на другие языки уже совсем иначе, но точно не хуже!
    Ответ написан
    Комментировать
  • Стоит ли доверять Windows 10?

    15432
    @15432
    Системный программист ^_^
    Несколько сторонних антивирусов ставить точно не стоит, они друг другу мешают и грузят систему. Моё мнение - для продвинутого пользователя антивирусы не требуются, достаточно не запускать подозрительные файлы и не тыкать по ярким заманивающим ссылкам.
    Ответ написан
    Комментировать
  • Rbac yii2 чем отличается разрешние от роли?

    myks92
    @myks92 Куратор тега Yii
    Нашёл решение — пометь вопрос ответом!
    Разрешения это то, что может делать пользователь: просматривать админку, редактировать посты, удалять пользователей и так далее.

    Чтобы одни и те же разрешения не присваивать каждый раз разным пользователям их привязывают к ролям. Затем данная роль присваивается пользователю либо сразу при регистрации, либо админом.

    При присваивании роли «Администратор» какому-либо пользователю ему становятся доступны все разрешения этой роли. Так же роли можно наследовать. Админ может наследовать роль пользователя и дополнительные разрешения.

    Если вы добавили новое разрешение системы, то вы просто присваиваете это разрешение необходимой роли. И всем пользователям этой роли становится доступно это разрешение. Если бы не было ролей - разрешение нужно было бы присваивать всем пользователям.

    В небольших проектах можно обойтись ролями без разрешений.

    Роль служит для группировки разрешений.

    Достаточно понятно описано в Википедии.
    Ответ написан
    2 комментария
  • Как в spring вернуть лист объектов?

    Maksclub
    @Maksclub
    maksfedorov.ru
    @Repository
    class ShipRepository {
     
        @PersistenceContext
        private EntityManager entityManager;
     
        @Override
        public List<Ship> findLimitedTo(int limit) {
            return entityManager.createQuery("SELECT s FROM Ship s ORDER BY s.id",
              Ship.class).setMaxResults(limit).getResultList();
        }
    }
    Ответ написан
    1 комментарий
  • Symfony 4 autowiring и наследование?

    @Flying
    Поскольку вы наследуете свой класс от абстрактного класса - иницализация parent'а - ваша прямая обязанность (см. сноску после первого абзаца). Таким образом, если абстрактный класс принимает свои зависимости через конструктор - вам необходимо принимать их же и передавать выше по иерархии наследования.

    Т.е. если абстрактный класс выглядит как:
    abstract class AbstractExample 
    {
      public function __construct(Foo $foo, Bar $bar) 
      {
      }
    }

    а вам необходима ещё дополнительная зависимость Baz $baz, то ваш конструктор должен выглядеть примерно так:
    class MyExample extends AbstractExample 
    {
      public function __construct(Foo $foo, Bar $bar, Baz $baz) 
      {
        parent::__construct($foo, $bar);
        // ... и далее ваша логика ...
      }
    }
    Ответ написан
    Комментировать
  • Как реализовать функцию добавления страниц на сайт пользователями?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    Это ж очень лёгкая задача, модели статья добавляем атрибут типа Boolean "moderated". Вывод отредактировать чтобы учитывал этот атрибут. Делаем форму добавления статьи, настраиваем права доступа. При добавлении статьи пользователем ставим moderated false. В интерфейсе модератора отлавливаем статьи где moderated false.
    Ответ написан
    2 комментария
  • Как ускорить 1С?

    Jump
    @Jump
    Системный администратор со стажем.
    Один из вариантов это переход на серверную версию.
    Хотя с базами 5-7гб при 3-4 пользователях можно прекрасно работать и на файловом варианте.
    Что сделать в первую очередь -
    • Отключаем лишние фоновые задания. - иногда очень сильно тормозят работу.
    • Регулярно делаем сжатие базы - вы давно базу сжимали?
    • Полнотекстовый поиск - включить индексацию, либо выключить его если не пользуетесь.
    • Посмотреть что установлено на сервере - а то бывают случаи, что антивирус умудряются поставить на терминальный сервер с 1с.
    • Проверить базы на ошибки - сначала ChDbfl, потом стандартное ТИИ.
    • Убедитесь что нигде - ни в биос, ни в настройках электропитания не выставлены режимы экономии.
    • Убедитесь что кэш пользователей расположен на SSD диске, убедитесь что SSD не забит под завязку при этом, желательно добавьте для SSD резерв побольше.


    Если памяти достаточно попробуйте поставить 64 битный толстый клиент.
    Прогоните тест Гилева и покажите количество попугаев - зачастую это помогает выявить некоторые проблемы.

    Перекидывать базы в MS SQL?
    Если уж совсем с файловой ничего не получается (что маловероятно) то можно перейти на SQL.
    Тут следует помнить что бесплатная постгри сейчас работает не хуже MS SQL, а при грамотной настройке бывает и получше.
    Есть специальный мини сервер 1с за 15тыс, у которого ограничение на 5юзеров.
    Если не предполагается увеличение числа пользователей - довольно выгодный вариант.
    Ответ написан
    Комментировать
  • Как набить руку на Python разработку и сисадминистрирование за 2 месяца?

    ri_gilfanov
    @ri_gilfanov
    Web- and desktop-developer
    Веб-разработка и администрирование сетевых ресурсов более востребованы, поэтому я бы рекомендовал изучить следующее:
    • основы и стандартная библиотека Python -- навык лучше прокачивается написанием скриптов и программ для решения неучебных задач. И если основной навык миддла -- это гуглить (полу)готовые решения, то основной навык джуна -- уметь писать свои "велосипеды". Разработчик, который по-максимуму использует и полагается на готовое -- столь же неэффективен, как и предпочитающий использовать готовое по-минимуму;
    • веб-фреймворк Django -- пилите небольшой проект, получаете общие представления о веб-разработке и практику ООП, но о Python этот веб-фреймворк расскажет мало, делает слишком много работы за программиста, а в его исходном коде можно заплутать, так и не поняв как он работает;
    • система контроля версий Git -- обязательно для разработчика и желательно для сисадмина;
    • wsgi-сервер uWSGI (или Gunicorn) -- см. ниже;
    • http-сервер Nginx -- см. ниже;
    • GNU/Linux -- пробуете развернуть проект с использованием предыдущих двух пунктов;
    • веб-фреймворк Flask -- просто пощупайте или сделайте ещё один небольшой веб-проект, по исходникам этого веб-фреймворка проще понять как работают другие веб-фреймворки и как писать поддерживаемый код, к тому же на Flask часто пилят всякие API / бэкенды;

    Настольные приложения и мобильная разработка на Python кажется менее развита и менее востребована, но когда-нибудь можете пощупать:
    • Python GTK+ 3 (или PySide2) -- Python обёртки над GUI инструментариями для разработки настольных приложений;
    • Kivy -- фреймворк преимущественно для мобильной разработки.

    И, если вопрос предполагает поиск работы через пару месяцев, то работодателям обычно нужны те, разработчики, что будут решать их "бизнес-задачи": снижать расходы, повышать доходы и минимизировать риски. Проще говоря, знание математики, алгоритмов и модных технологий могут не пригодится вообще, а вот доведённые до ума проекты расскажут о Вас работодателю намного больше.
    Ответ написан
    4 комментария
  • Как в Spring MVC отображать изображения?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Приветствую!
    Могут быть различные причину этому... Я тоже иногда сталкиваюсь с этим при работе с Spring Boot.
    1) Используйте Rebuild Project. Не знаю почему, но при простом перезапуске приложения статичные файлы могут не загрузиться. Соответственно, в консоли браузера во вкладке "сеть" - 404 ошибка.
    2) Проверьте включены ли ваши ресурсы в состав приложения. Может изображения физически отсутствуют
    3) Проверьте путь к вашим ресурсам. Например, у меня в Spring Boot вся статика хранится в
    /resources/static/css
    /resources/static/js
    /resources/static/images и т.д.
    Говоря проще, гляньте в настройки вашего проекта и на его структуру....
    Ответ написан
    1 комментарий
  • Модуль для joomla для интерактивной схемы коттеджного поселка?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    Ja image hotspot - https://extensions.joomla.org/extension/ja-image-h...
    Делал на нем генпланы 3х поселков.
    Участков много? Есть одна особенность, объясню. Суть в том что в базе данных нужно сменить тип поля который хранит настройки на LONGTEXT.
    Ответ написан
    5 комментариев
  • Как лучше реализовать отображение схемы расположения рабочих мест в офисе в связке vue.js 1С?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    1. Сделайте картинку офиса сверху
    2. Справа создайте кассу символов (компьютер, стол, и т. д.)
    3. Обработчик на перемещение, обработчик на клик, и правый клик, там меню
    4. Элементы сохраняйте в следующем списке
    5. Этот список сохраняйте в 1с в аттрибутах, рядом с инвентарным номером
    6. По желанию можно добавить фильтры

    Дополнил.

    https://www.html5rocks.com/ru/tutorials/dnd/basics/
    Возьмите за основу, добавьте поддержку драгндропа, загрузку и сохранение.

    https://jsfiddle.net/vkorotenko/902cdmLv/

    items: [
    {id: '1', name: 'test', roomid: 2, x: 200, y: 200, angle: 90, zindex: 400, itemtype: 3},
    {id: '2', name: 'test', roomid: 2, x: 210, y: 200, angle: 90, zindex: 400, itemtype: 3},
    {id: '3', name: 'test', roomid: 2, x: 220, y: 200, angle: 90, zindex: 400, itemtype: 3},
    ]
    Ответ написан
    1 комментарий
  • Как получить координаты нужного километра на трассе или по километрам?

    @EmelyanovKonstantin
    GIS архитектура, аналитика, разработка
    где можно скачать такую базу?

    В открытом доступе, скорее всего, не найдёте. Это очень специфично. Можно попробовать договориться с каким-нибудь институтом или организацией.
    PHP или JavaScript / jQuery

    Это уже вопрос технологии, и его лучше решать после получения данных, в зависимости от их формата и объёма.
    Ответ написан
    Комментировать
  • Popup не отображает данные в MarkerClusterGroup react leaflet?

    @EmelyanovKonstantin
    GIS архитектура, аналитика, разработка
    Посмотри так.
    <MarkerClusterGroup>
                    {
                        markers
                    }
                    onMarkerClick={(marker) => console.log(marker, marker.getLatLng())}
    </MarkerClusterGroup>

    Если способ не устарел. Можно добавлять инфу из данных.
    Ответ написан
  • Какой PHP-фреймворк для приложения по обработке данных из разных источников?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Честно не вижу смысла загонять себя в рамки фреймворка. Таких специализированных по моему мнению
    нет. Ваша задача отлично ложится на RabitMQ . Вам потребуется скорее не фреймворк, а базовые принципы
    проектирования / разработки. Понятие интерфейса и класса его реализующего .

    Приблизительно будет так.
    Пользователь Вася хочет опубликовать пост с темой и текстом таким-то
    Слушатель КООРДИНАТОР из этого события Делает события
    - Вася хочет опубликовать в ВК
    - Вася хочет опубликовать в ОК
    - Вася хочет опубликовать в ФБ
    - Вася хочет опубликовать в АХЗ

    Слушатель ВК (кто то хочет запостить, исполняю)
    Ответ написан
    4 комментария
  • Как сделать данную работу на c#?

    SpacePurr
    @SpacePurr
    c#, wpf
    Для примера на WPF.

    После запуска программы в окне изображается две полосы прокрутки.

    Разделим основной Grid на две строки, две колонки. По краям поместим ScrollBar, в большую часть Canvas.
    В Canvas в качестве элементов, которые должны менять позицию, возьмем Button.
    Также добавим обработчики события Button.Click и ScrollBar.Scroll.

    <Window x:Class="Toster.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:Toster"
            mc:Ignorable="d"
            Title="MainWindow" Height="450" Width="800" MinWidth="200">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition Height="15"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition Width="15"/>
            </Grid.ColumnDefinitions>
    
            <Canvas Name="Field">
                <Button Canvas.Left="120" Canvas.Top="150" 
                        Height="50" Width="50" Click="Button_Click"/>
                <Button Canvas.Left="250" Canvas.Top="180" 
                        Height="50" Width="50" Click="Button_Click"/>
            </Canvas>
            
            <ScrollBar x:Name="VerticalScrollBar" 
                       HorizontalAlignment="Right" 
                       Grid.Column="1" Grid.Row="0" 
                       Scroll="VerticalScrollBar_Scroll"/>
            <ScrollBar x:Name="HorizontalScrollBar" 
                       Orientation="Horizontal" VerticalAlignment="Bottom" 
                       Grid.Column="0" Grid.Row="1" 
                       Scroll="HorizontalScrollBar_Scroll"/>
        </Grid>
    </Window>


    В основном классе создадим два свойства:
    1. Point SelectedPoint, в которой будут храниться координаты выбранного элемента
    2. Button SelectedButton, которая будет хранить выбранный элемент.

    ScrollBar сделаем неактивными, пока не будут выбраны объекты для перемещения.

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

    В событии Button.Click ставим крестик выбранному Button. Сохраняем в свойства SelectedButton и SelectedPoint выбранный элемент и его координаты соответственно.
    Значения свойства Value у ScrollBar заполняем относительным положение Button на Canvas.

    При перемещении полосы прокрутки, создаем новую точку с обратно высчитанными координатами и присваиваем новое положение элемента на Canvas.

    public partial class MainWindow : Window
        {
            public Point SelectedPoint { get; set; }
            public Button SelectedButton { get; set; }
    
            public MainWindow()
            {
                DataContext = this;
                InitializeComponent();
    
                VerticalScrollBar.IsEnabled = false;
                HorizontalScrollBar.IsEnabled = false;
            }
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                if (SelectedButton != null)
                    SelectedButton.Content = "";
    
                SelectedButton = sender as Button;
                SelectedButton.Content = "X";
    
                SelectedPoint = SelectedButton.TransformToAncestor(Field).Transform(new Point(0, 0));
                VerticalScrollBar.Value = SelectedPoint.Y / Field.ActualHeight;
                HorizontalScrollBar.Value = SelectedPoint.X / Field.ActualWidth;
    
                VerticalScrollBar.IsEnabled = true;
                HorizontalScrollBar.IsEnabled = true;
            }
    
            private void VerticalScrollBar_Scroll(object sender, ScrollEventArgs e)
            {
                SelectedPoint = new Point(SelectedPoint.X, VerticalScrollBar.Value * Field.ActualHeight);
                Canvas.SetTop(SelectedButton, SelectedPoint.Y);
            }
    
            private void HorizontalScrollBar_Scroll(object sender, ScrollEventArgs e)
            {
                SelectedPoint = new Point(HorizontalScrollBar.Value * Field.ActualWidth, SelectedPoint.Y);
                Canvas.SetLeft(SelectedButton, SelectedPoint.X);
            }
        }


    Пример простой, непрофессиональный, но рабочий. Остальное в ваших руках :)

    5dbf2c1f1718c377695765.gif
    Ответ написан
    Комментировать
  • Как в symfony 3.4 вытащить пользователей у которых нет конкретных ролей?

    @maximrabotaet Автор вопроса
    Вот так:
    /**
         * @param string $role
         *
         * @return array
         */
        public function findWithoutRole($role)
        {
            $qb = $this->_em->createQueryBuilder();
            $qb->select('u')
                ->from($this->_entityName, 'u')
                ->where('u.roles NOT LIKE :roles')
                ->setParameter('roles', '%"' . $role . '"%');
            return $qb->getQuery()->getResult();
        }
    Ответ написан
    2 комментария
  • Видеоуроки - долго, и много воды. Стоит ли тратить на них время?

    @lloydbanks
    Те кто в негативном ключе высказываются о видео-курсах, делают о них выводы по просмотру нескольких неудачных роликов. С таким же успехом можно взять в руки любую неудачную книгу и раскритиковать способ обучения по книгам.
    Интернет образование за последние несколько лет сделало большой прорыв в информационной индустрии. Это целое направление в бизнесе, которое направлено в первую очередь на качество оказываемых услуг. Ведь люди, приобретая тот или иной курс, оставляют в конечном итоге отзывы и рейтинг, которые в дальнейшем поспособствуют фильтром в отсеивании некачественных материалов. Следовательно, авторы курсов заинтересованы в том, чтобы выпустить свой продукт максимально полезным и живым. Посмотрите на udemy, на кол-во приобретенных курсов и кол-во довольных отзывов. Хотите сказать, все эти люди которые инвестируют в свое образование "дегенераты" (как кто-то выше писал в комментах)?
    Только неадекватный профан будет утверждать, что данный способ обучения не работает или что он менее эффективен. Все люди разные, кому-то проще обучаться по видео курсам, кому-то по книгам. Главное, чтобы был результат. В конечном итоге никто не мешает комбинировать эти способы.

    Плюсы видео курсов:
    + последовательность: теория + практика. По окончанию курса у вас будет готовое приложение, которые не стыдно разместить в портфолио. Почему не стыдно - потому что оно писалось более опытным разработчиком чем вы, который показал вам best practices, чтобы вы не ломали голову и не наступали на грабли, в попытках самостоятельно написать кривой код;
    + поддержка: проверка ДЗ и возможность задать вопрос автору когда возникнут проблемы. Можете ли вы написать свой технический вопрос автору книги? Ответ очевиден.
    Минусы:
    - отсутствие деталей и тонкостей: о многих технических моментах можно узнать только из книг/документации. Если вы человек разумный, то вы согласитесь, что нельзя вместить все технические нюансы в одном видео курсе. Вы когда смотрите фильм снятый по книге не возмущаетесь ведь почему так подробно не был освещен какой-то момент, который в книге был расписан до мелочей. Здесь точно так же.

    Можно ли обучаться только по видео-курсам\книгам? Можно, но это не будет так эффективно как если бы вы комбинировали разные способы. Всегда полезно изучать информацию под разным углом, это поможет по-новому взглянуть на вещи и только так придет осознание того, что вы действительно поняли тему.

    Поэтому, Логинов Станислав не ведитесь на поводу у стада, которое навязывает вам точку зрения, которая априори не может быть истиной в виду индивидуальных особенностей человека.
    Ваша формулировка вопроса Видеоуроки — долго, и много воды уже звучит неадекватно. С вероятностью 99% вы просто взяли неудачный курс и делаете по нему выводы. Что вам мешает найти тот, который подойдет именно вам?
    Ответ написан
    7 комментариев
  • Как избавиться от глобальной переменно в файле views.py?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    @lru_cache
    def get_cities(id):
        METHOD = 'database.getCities'
        response = requests.get(
            f'{URL}{METHOD}?access_token={TOKEN}&v={VK_API}&country_id={id}'
        )
        content = response.json()
        return [i['title'] for i in content['response']['items']]
    
    
    def show_cities(request, id, ordered=False):
        cities_list = get_cities(id)
        if ordered:
            cities_list = sorted(cities_list, key=lambda x: x[0])
        return render(request, 'countries/cities_list.html', {'cities': cities_list})
    Ответ написан
    1 комментарий
  • Как бороться со стрессом на работе?

    coderisimo
    @coderisimo
    Для начала максимально полно отстроить восстановление. Любые ресурсы закончатся , если тратить их без восполнения. Что я имею ввиду ? Это кажется ерундой, но на большой дистанции очень важно. Сон, спорт, нормальное питание , прогулки, хобби , поездки, общение. Некоторые рекомендуют витамины и так далее, но имхо это не самое важное. Простые вещи - Режим, спорт, позитивные занятия. Тушка и нервная система скажут вам спасибо. Только это должно стать привычкой. Инстинктом.
    Далее... если есть ощущение , что прогресса нет , постоянный стресс, опять же ,имхо ,возможно, стоит поискать другое место работы. У меня была похожая ситуация. Я работал в команде гораздо более сильных разработчиков и постепенно ощутил полную загнанность. Они легко жонглировали всякими "эластик серчами" и прочими "монгами диби" , а мне нужно было врубаться во все это сходу, что не получалось, скажем прямо . Все время не покидало ощущение, что бегу "галопом по европам" , не уверен в качестве того, что делаю, вынужден быстрее закрывать таски в jira и тому подобное. В общем, после года работы в проекте я вежливо попрощался. Сейчас нашел более подходящий мне объем и профиль работы. Продолжаю изучать новые штуки , удовольствие от программирования не пропало. Есть идеи для своих проектов. А иначе зачем это все ? :)
    Ответ написан
    2 комментария
  • Как бороться со стрессом на работе?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Мозг каждый день кипит так же, как в первый день. Шаг влево шаг вправо, и вот, я уже ничего не знаю и ничего не умею... ощущение, что на работе я как будто не прогрессирую, а наоборот деградирую...

    У меня такое было, когда я только перешел во фронтенд и пытался держать слишком много деталей о языках и инструментах в голове. Со временем понял, что это не имеет смысла - все меняется быстрее, чем я запоминаю. Перешел от мысли "я использую инструменты" к мысли "я делаю штуки" и сразу полегчало, стал держать в голове только общие идеи о том, как что-то делается, или что вообще бывает в какой-то области, а конкретные инструкции по применению отдельных инструментов изучаю по ходу дела. Изменил фокус своего самообразования, если это можно так назвать. В результате все препроцессоры слились в один, новые библиотеки становятся все менее сложными в освоении, поскольку идеи везде плюс-минус одинаковые и.т.д. Решения стало принимать гораздо проще. И аргументировать тоже. Иногда складывается такое впечатление, что у нас в отрасли совсем ничего не появляется нового уже лет пять, а то и больше. Да, я забываю как использовать флексы, путаю call() и apply(), гуглю свои же ответы на тостере, но это не важно. Голова занята решением проблем, в ней теперь нет никакой второстепенной информации и это очень здорово. Статьи писать тоже полезно оказалось - написал, "поставил на полочку", и забыл. А если будет нужно - можно достать и посмотреть. Таким образом вот эта вся фигня с закипанием мозгов практически ушла.
    Ответ написан
    1 комментарий