Pull to refresh
8
0
Андрей Бычко @courage_andrey

инженер-программист

Send message

Работа с семантическими сетями с помощью пакета AabSemantics

Level of difficultyEasy
Reading time5 min
Views580

AabSemantics - простой, но функциональный движок для работы с семантическими сетями, написанный под .NET. Под катом - описание проекта и его базовых механик.

Читать далее

Заметки по выбору ноутбука

Level of difficultyEasy
Reading time10 min
Views11K

Данная статья обобщает мои личные заметки по выбору ноутбука — надеюсь, что кому‑то они окажутся полезными. Через мои руки за последние 15 лет прошло 5 личных ноутбуков от 4 производителей (два из них объездили вместе со мной в командировках всю страну). До этого были две «пекарни» на примерно десять лет. Плюс работа сисадмином пару лет (ещё несколько ноутбуков), плюс несколько рабочих ноутбуков, выданных мне как программисту, плюс эникейство для родственников (больше устройств для бога устройств!).

Выбрать нубук, блюпуп и фрешку

Правильная постановка проблемных задач

Reading time2 min
Views1.9K

Добрый день! Все, наверное, видели замечательную короткометражку "Эксперт" (для любителей неповторимых оригиналов - "The Expert") про то, как специалиста просят нарисовать красные линии зелёным цветом. Как бы ни было смешно наблюдать когнитивный диссонанс специалиста, получившего противоречивую задачу, каждый, я думаю, сталкивался с подобным (в той или иной мере) в своей карьере.

Читать как с этим можно жить

Немного о велосипедах

Reading time2 min
Views6.5K
Засели мы как-то с однокурсником в 2014 году пилить стартап. Срок, результат и направленность продукта для данного текста не важны. Важно то, что клиент был мобильным приложением на Java для Android, а сервер – службой, написанной на C#, общавшейся с хранилищем данных. Далее – поучительная история седым старцам (от программирования) на потеху, безбородым юнцам – в назидание.
Читать дальше →

Ещё один способ локализации приложений

Reading time3 min
Views18K
Всем добрый день. Я хочу представить на суд общественности (ещё один) простой способ сделать локализацию приложений. Стандартный механизм с ресурсными сборками меня не устраивает по следующим причинам:

  1. Получая значение локализованной строки в коде, очень хочется полагаться на всю мощь ООП и подсказки компилятора. Очень неприятно собрать проект в вечером в пятницу, а утром в субботу получить звонок от впахивающих overtime QA на тему того, что кто-то невнимательный написал GetResource(«asdf») вместо GetResource(«assf»), и теперь что-то падает или отображается неверно, а проект в понедельник уже сдавать в печать…

  2. (В продолжение предыдущего пункта...) Писать string foo = language.Ui.PromtDialog.AdditionalQuestion просто приятнее, чем string foo = Resources.GetResource(«Ui_PromtDialog_AdditionalQuestion»). Да, в том числе и за счёт подсказок компилятора.

  3. Иногда локализовать нужно не строки, а целые объекты. Например, существительное (строка + род М/Ж/С/Мн) и прилагательное (строка М + строка Ж + строка С + строка Мн). Пихать в ресурсы сериализованную строку, а потом доставать и десериализовать каждый раз? Мсье знает толк в извращениях…

  4. Ресурсный файл — это плоский список строк, а хотелось бы, чтобы данные всё-таки имели более сложную иерархическую структуру, по которой не нужно ползать с помощью Ctrl+F.

  5. Создание нового языка должно быть настолько простым, насколько это возможно. Локализовать приложение должен быть способен человек, умеющий обращаться с компьютером и владеющий нужными языками. И ему для этого не нужны ни Visual Studio, ни возня с созданием ресурсных сборок.

Ещё одно обязательное требование — возможность простой привязки к локализации элементов UI. Желательно — одновременно и WPF, и WinForms.
Читать дальше →

Простые шаги по сокращению кода после применения паттерна «стратегия» с помощью generic-классов

Reading time4 min
Views6.8K
Эта заметка содержит ряд хитростей, позволяющих сократить код, получившийся после применения паттерна «стратегия». Как нетрудно догадаться из названия, все они будут так или иначе связаны с использованием generic-типов.
Это вторая версия статьи. Первая (под названием Набор мелких улучшений работы с паттерном «стратегия» с помощью generic-классов) получилась не очень удачной, так как в ней в духе Ландау и Лифшица было опущено несколько промежуточных шагов, критически важных для понимания хода мысли. Объявляю отдельную благодарность INC_R, сумевшему-таки в комментариях донести до меня этот простой факт.
Читать дальше →

Реализация ООП-наследования в классах, работающих с SQL и MS Entity Framework

Reading time5 min
Views19K
Эта статья посвящена созданию модели данных, которая красиво ложилась бы на SQL и содержала в себе «правильное» ООП наследование. Надо сказать, что эта задача возникала у меня в разное время на разных проектах, и решалась она там тоже по-разному. Названия подходов взяты из сложившейся на соответствующих проектах терминологии.
Читать дальше →

Information

Rating
Does not participate
Location
Warszawa, Warszawa, Польша
Registered
Activity