• Справочная: конфликт США и Huawei — хронология и причины
    +10
    image
  • Делфийская история успеха программиста из Улан-Удэ
    +2
    Подключаете ReSharper к VS и снова радуетесь жизни )
  • Начало дружбы с VkNet
    0
    нашёл через телегу, вступил так, спасибо )
  • Начало дружбы с VkNet
    0
    Да что — то не открывается у меня t.me/VkDotNet… (
  • Начало дружбы с VkNet
    0
    Много методов не реализовано… А можно как — нибудь нереализованные методы через нативные api вызывать, но из под библиотеки?
  • Ад своими руками
    0
    Сделал систему автоматизации для машиностроительного предприятия, достаточно крупного для нашего города, и результат немного противоположный. Бюрократия уменьшилась, эффективность возросла. Скорость принятия решения руководством или их реакция возросла в несколько раз как и эффективность межведомственного взаимодействия. Вместо бумаги — электронные подписи, согласование… Выявились проблемы, конечно, но тут да, человеческий фактор и некоторое недопонимание между отделами и начальниками, это автоматизации не поддаётся.
  • Визуализация в САПР: зачем мы написали еще один 3D-движок и как он работает
    0
    Полноценный API только на языке С++, остальные так или иначе урезаны (имел дело с c# в частности).
  • Kivy. Xamarin. React Native. Три фреймворка — один эксперимент (часть 2)
    0
    Использовать POCO-объекты во ViewModel — короткий путь отстрелить себе все возможные колени.


    Можете этот тезис поподробнее осветить. Только открываю мир WPF И MVVM, поэтому было бы интересно ваше мнение.
  • iOS 12: новинки в уведомлениях
    +1

    C#, delphi, php, сейчас вот kotlin штудирую

  • iOS 12: новинки в уведомлениях
    +2

    Я хоть и не ios разработчик, но с удовольствием прочитал статью, спасибо

  • Как я делал свой учет финансов под андроид с блэкджеком, СМС и ФНС
    0
    Просто огромное человеческое спасибо за исходники!
  • DevConf: из шаурмы в Symfony или миграция legacy
    0
    А почему был выбран Symfony? а не Laravel?
  • Лучший UX — совсем никакого UI
    –1
    тогда со смартфона текстом или встать и выключить, зависит от самочувствия и что быстрее, как удобнее, вернее
  • Лучший UX — совсем никакого UI
    0
    А, если вы уже лежите в кровати, почитали книгу, теперь спать собираетесь, то тут уже голос рулит. Даже, если есть пульт, он тоже часто оказывается на тумбе у телевизора, или ещё где, и опять же проще сказать чтобы свет выключиться и поставить будильник голосом, чем лезть в телефон.
    В умных домах голосовое управление как раз то, что доктор прописал, имхо.
  • Финансовый учет для не предпринимателей
    0
    Перепробовал много программ, но остановился на Coin Keeper — доход, расход, долг, кредит, предполагаемые траты на следующий месяц… всё есть.
    Плюс есть доп. приложение, которое с чека ко qr-code получает список что купили и можно уже по категориями раскидать.
  • Доступен PhpStorm 2017.3
    0
    Вам спасибо. Буду ждать )
  • Доступен PhpStorm 2017.3
    0
    вот полное содержание файла на котором ломается форматирование:
    Содерждимое одного из файлов где всё ломается
    {% set itemsCount = 0 %}
    {% for subfolder in subfolders %}
        
        {% if subfolder.IsNotMade %}
            <div style="margin: 10px  10px 20px 0;">
                <a style="color:#ccc; float:right;"
                   href="{{ base_url }}{{ subfolder.TreeAnchor }}">{{ subfolder.FolderName }}</a>
            </div>
            <div class="div_clear"></div>
        {% else %}
            
            {% set itemsCount = itemsCount + 1 %}
            
            {% if subfolder.Tip == constant('repository\\ViewModels\\TreeTip::GROUP') %}
                {% if subfolder.Vid == constant('repository\\ViewModels\\TreeVid_Group::DYNAMIC') %}
                    <div class="content-block-header article-content-expander" {% if not subfolder.IsVisible %} style="display: none;" {% endif %}
                        data-bind="click: CollapseClick.bind($data, $('#models_{{ subfolder.FolderId }}'), $('#sign_{{ subfolder.FolderId }}'))">
                        <span class="left nowrap strong">
                            <a href="#" class="h2_node_link" style="color:#06c;">
                                <span id="sign_{{ subfolder.FolderId }}"  style="font-size:10.5pt;">+</span>{{ subfolder.FolderName }}
                            </a>
                        </span>
                    </div>
                    
                    <div style="margin-bottom: 5px;{% if subfolder.IsVisible %}display: none;{% endif %}" class="to_show" data-expand="0"  id="models_{{ subfolder.FolderId }}">
                        {% if subfolder.Models %}
                            {% if subfolder.IsVisible %}
                                {% include 'model_groups/models_table_without_header.twig' with {'models' : subfolder.Models} only %}
                            {% else %}
                                {% if itemsCount == 1 %}
                                    {% include 'model_groups/models_table.twig' with {'models' : subfolder.Models} only %}
                                {% else %}
                                    {% include 'model_groups/models_table_without_header.twig' with {'models' : subfolder.Models} only %}
                                {% endif %}
                            {% endif %}
                        {% endif %}
                
                        {% if subfolder.SubFolders %}
                            {% include 'model_groups/folders/subfolders.twig' with {'subfolders' : subfolder.SubFolders} only %}
                        {% endif %}
                    </div>
            
                {% elseif subfolder.Vid == constant('repository\\ViewModels\\TreeVid_Group::HEADER') %}
                    {% if subfolder.SubFolders %}
                        <div id="mod_data" style="margin-bottom: 5px;">
                        {% include 'model_groups/models_table_without_header.twig' with {'models' : subfolder.Models} only %}
                        </div>
            
                        {% include 'model_groups/folders/subfolders.twig' with {'subfolders' : subfolder.SubFolders} only %}
                    {% else %}
                        <div id="mod_data" style="margin-bottom: 5px;">
                        {% include 'model_groups/models_table_without_header.twig' with {'models' : subfolder.Models, 'group_name' : subfolder.FolderName} only %}
                        </div>
                    {% endif %}
            
                {% else %}
                    <div id="mod_data" style="margin-bottom: 5px;">
                        {% include 'model_groups/models_table_without_header.twig' with {'models' :subfolder.Models} only %}
                    </div>
                    {% include 'model_groups/folders/subfolders.twig' with {'subfolders' :subfolder.SubFolders} only %}
                {% endif %}
            {% elseif subfolder.Tip == constant('repository\\ViewModels\\TreeTip::DIVISION') %}
            
                {% if subfolder.Vid == constant('repository\\ViewModels\\TreeVid_Division::INDEPENDENT') %}
            
                    <div id="mod_data" style="margin-bottom: 5px;">
                        {% include 'model_groups/models_table_without_header.twig' with {'models' : subfolder.Models} only %}
                    </div>
            
                {% elseif subfolder.Vid == constant('repository\\ViewModels\\TreeVid_Division::MAIN') %}
                    <div style="color:#666; margin:25px 0px 5px 30px; font-size:11pt;">
                        <strong>{{ subfolder.FolderName }}</strong>    
                    </div>
                    {% if subfolder.SubFolders %}
                        <div id="mod_data" style="margin-bottom: 5px;">
                        {% include 'model_groups/models_table.twig' with {'models' : subfolder.Models} only %}
                        </div>
            
                        {% include 'model_groups/folders/subfolders.twig' with {'subfolders' : subfolder.SubFolders} only %}
                    {% else %}
                        <div id="mod_data" style="margin-bottom: 5px;">
                        {% include 'model_groups/models_table.twig' with {'models' : subfolder.Models} only %}
                        </div>
                    {% endif %}
            
                {% elseif subfolder.Vid == constant('repository\\ViewModels\\TreeVid_Division::FULL') %}
                    <div style="color:#666; margin:25px 0px 5px 30px; font-size:11pt;">
                        <strong>{{ subfolder.FolderName }}</strong>    
                    </div>
                    {% if subfolder.SubFolders %}
                        <div id="mod_data" style="margin-bottom: 5px;">
                        {% include 'model_groups/models_table_without_header.twig' with {'models' : subfolder.Models} only %}
                        </div>
                        {% include 'model_groups/folders/subfolders.twig' with {'subfolders' : subfolder.SubFolders} only %}
                    {% else %}
                        <div id="mod_data" style="margin-bottom: 5px;">
                        {% include 'model_groups/models_table_without_header.twig' with {'models' : subfolder.Models} only %}
                        </div>
                    {% endif %}
            
                {% else %}
                    {% if subfolder.SubFolders %}
                        <div id="mod_data" style="margin-bottom: 5px;">
                        {% include 'model_groups/models_table_without_header.twig' with {'models' :subfolder.Models} only %}
                        </div>
                        {% include 'model_groups/folders/subfolders.twig' with {'subfolders' :subfolder.SubFolders} only %}
                    {% else %}
                        <div id="mod_data" style="margin-bottom: 5px;">
                        {% include 'model_groups/models_table_without_header.twig' with {'models' :subfolder.Models} only %}
                        </div>
                    {% endif %}
                {% endif %}
            
            {% elseif subfolder.Tip == constant('repository\\ViewModels\\TreeTip::SUBSECTION') %}
                <div style="color:#666; margin:25px 0px 0px 30px; font-size:11pt;">
                    <strong>
                        {% if subfolder.FolderIcon %}
                            <img src="{{ subfolder.FolderIcon }}"  style="vertical-align: middle; margin: 0px;">
                        {% endif %}
                    {{ subfolder.FolderName }}
                    </strong>    
                </div>
                {% if subfolder.SubFolders %}
                    <div id="mod_data" style="margin-bottom: 5px;">
                    {% include 'model_groups/models_table_without_header.twig' with {'models' :subfolder.Models} only %}
                    </div>
                    {% include 'model_groups/folders/subfolders.twig' with {'subfolders' :subfolder.SubFolders} only %}
                {% else %}
                    <div id="mod_data" style="margin-bottom: 5px;">
                    {% include 'model_groups/models_table_without_header.twig' with {'models' :subfolder.Models} only %}
                    </div>
                {% endif %}
            {% elseif subfolder.Tip == constant('repository\\ViewModels\\TreeTip::SECTION') %}
                {% if subfolder.SubFolders %}
                    <div id="mod_data"  style="margin-bottom: 5px;">
                        {% include 'model_groups/models_table_without_header.twig' with {'models' :subfolder.Models} only %}
                    </div>
                    {% include 'model_groups/folders/subfolders.twig' with {'subfolders' :subfolder.SubFolders} only %}
                {% endif %}
            {% else %}
                {% if subfolder.SubFolders %}
                    <div id="mod_data" style="margin-bottom: 5px;">
                    {% include 'model_groups/models_table_without_header.twig' with {'models' :subfolder.Models} only %}
                    </div>
                    {% include 'model_groups/folders/subfolders.twig' with {'subfolders' :subfolder.SubFolders} only %}
                {% else %}
                    <div id="mod_data"  style="margin-bottom: 5px;">
                    {% include 'model_groups/models_table_without_header.twig' with {'models' :subfolder.Models} only %}
                    </div>
                {% endif %}
                
            {% endif %}
        {% endif %}
    
    {% endfor %}
    

  • Доступен PhpStorm 2017.3
    0
    Что — то вообще какая-то дичь с форматирование сложных twig файлов (множественные вложенные if) стала, все файлы поломались => отступы уходят вправо и не возвращаются…
  • Delphi со вкусом Cocoa
    0
    Большое спасибо за статью. Интересно было почитать ещё что — нибудь техническое и вкусное про подводные камни на пути при портировании. Ну, и маркетинговую часть интересно послушать, насколько успешен был выход на данную платформу.
  • Финальная версия Vivaldi 1.6 — работаем с вкладками
    0
    Спасибо большое. е заметил, искал где надо галочку поставить, а она уже стояла.
  • Финальная версия Vivaldi 1.6 — работаем с вкладками
    0
    Чего — то не могу найти пункт во вкладках про уведомления
  • Как не нужно использовать паттерн Repository
    0
    Не до конца понимаю выводы поста. Особенно не использовать его с AR, когда как раз он и предлагает решение проблемы автора.
    Repository — Martin Fowler
    A system with a complex domain model often benefits from a layer, such as the one provided by Data Mapper (165), that isolates domain objects from details of the database access code. In such systems it can be worthwhile to build another layer of abstraction over the mapping layer where query construction code is concentrated.


    Как я понимаю на выходе из репозитория и должны быть POxO объекты, что и решило бы проблему независимости от источника данных.
    В последнем проекте использую Idiorm, и стараюсь не возвращать объекты сервиса доступа данных, лиюо Domain Model, либо ViewModel, пример метода:
    public function GetVisitors()
    	{
    		$visitors  = \ORM::for_table( $this->table )->find_many();
    		$arrResult = array();
    		foreach ( $visitors as $visitor ) {
    			$arrResult[] = new Visitor( $visitor->id,
    				$visitor->incoming_by_code,
    				$visitor->from,
    				$visitor->visit_date,
    				$visitor->region,
    				$visitor->district );
    		}
    
    		return $arrResult;
    	}
    
  • Как не нужно использовать паттерн Repository
    +4
    Что вообще за сущность с геттерами и сеттерами без логики? Как раз такой сущность быть не должна.

    Так называемая анемичная модель. Которых да, рекомендуют избегать. Анемичная доменная модель
  • История языков программирования: Delphi — больше, чем просто язык
    0
    А как вы среду в 144 dpi запускаете? Уже замаялся биться с этим High DPI.
  • [SC]Работаем со сканером
    0
    if (_rnd.Next(3) == 0) {
    return null;
    }

    это зачем? никак не могу понять.
  • 1 разработчик. 2 приложения. 3 года
    0
    Большое спасибо за статью! Очень интересно было читать. Хотелось бы увидеть продолжение и по другим проектам.
    А возможно добавить удобоваримый выборочный экспорт событий из приложения? Допустим продаю я авто и хочу покупателю распечатать что я делал, когда… историю авто. Было бы полезно, имхо.
  • Компания Embarcadero Technologies продана компании Idera
    –1
    Мне вот тоже интересно — что она такого умеет?
  • Компания Embarcadero Technologies продана компании Idera
    +1
    Может хоть новые хозяева обратят внимание на IDE и доведут её до ума. Кросплатформенность, мобильные приложения — это всё хорошо, но пишутся то они в IDE все… а там работы там хватает.
  • Моя работа на конкурс Mail.Ru
    +1
    Идея понравилась, было бы интересно пощупать. Не знаю как оно будет на маленьких экранах, где попасть в элемент — это еще та задача, но думаю решаемо.
    А по поводу кнопки… мне кажется нужно поиграться в сторону иконки лупы совмещенной с оптичиским прицелом… Мне кажется, видя оптический прицел, пользователь сможет догадаться что его можно наводить на объекты.
  • История одного факапа Яндекс.Навигатора. В шести действиях с прологом и раскаянием
    +14
    У них просто не было выбора, дабы не распугать оставшихся пользователей приложения.
  • Конкурс для дизайнеров от Почты Mail.Ru
    +1
    Спасибо!!!
  • Конкурс для дизайнеров от Почты Mail.Ru
    0
    То есть без аккаунта на дрибле можно сушить вёсла? (
  • Исследование защиты игры Limbo. Кейген
    +5
    Поддерживаю всех поддерживающих автора ) Спасибо за статью. Если кому — то просто, то не стоит заходить в топик.
    Интересен не сам взлом как таковой — а как логическая задача. Интересно почитать ход мыслей, посмотреть примеры пользование инструментарием.
  • Исследование защиты PVS-Studio
    +1
    Не слушайте других, за статью спасибо!!! Все на словах гуру крэкинга и с чёрными поясами по реверсу.

    Интересно почитать такого рода статьи. Как заметили выше — не все в этом разбираются, поэтому простые примеры читать интересно. А усложнение можно сделать и в следующих постах.
  • Яндекс.Браузер: интерфейс будущего теперь в бете
    +1
    Поддерживаю!!! Tree Style Tab для FF — отличнейшая штука, благодаря её стал чаще FF пользоваться. Открытие вкладок — это графы в поиске информации, отображение пути поиска решения. Открыл статью, там ссылка… открыл эту ссылку — в неё ещё ссылка… Это всё ОДНА ГРУППА!
  • Уязвимость «большого пальца»: я твой палец по фотографии взломаю
    +1
    Ну. как — то не совсем корректно всю биометрию к отпечатку пальца сводить, имхо. Есть сканеры по рисунку кровеносных сосудов — megaobzor.com/kompaniya-Fujitsu-anonsirovala-samyy-malenkiy-skaner-krovenosnyh-sosudov.html.
    Так же, более сложные сканеры, смотрят тепловой спектр пальца — живой объект или нет. А взлом бытовых сканеров — это не показатель судить об индустрии.
  • Недостатки Wordpress — техническая сторона
    0
    Мне кажется на это всё: качество кода, корявые плагины… обращаешь внимание либо при первом знакомстве, либо поддерживая один проект на WP. Если же, идёт постоянная разработка на WP, то все эти огрехи с течением времени скрываются под слоем своего фреймфорка/библиотеки. И тут не важен язык/CMS… Это в любой области так.
    Со временем от проекта к проекту появляются свои абстракции, набор API. Не нравится глобальные переменные? — Спрячьте для себя за каким — нибудь IoC-контейнером, хоть самописным. Generics бы гораздо упростили работу, но что поделать. Также и с сущностями — можно создать базовую сущность, интерфейс для её сохранения…
    В общем, всё это решаем. Да — плохо соответствует канонам «академического программирования», но для рабочих проектов не всегда критично.

  • Нестандартная оптимизация проектов на PHP
    0
    Поддерживаю, очень интересно!
  • Результаты тестирования алгоритмов российских биометрических компаний на мировом рынке
    0
    sonda.ru/press/news/20_01_2015.html — в Киргизии.
    Но в аналогичных структурах и у нас используются.
  • Результаты тестирования алгоритмов российских биометрических компаний на мировом рынке
    0
    Их продукция и в России используется на гос. уровне, как и Папилона.