Обновить
-6
@Track77read⁠-⁠only

Пользователь

Отправить сообщение

Они смеются над твоими колбеками или async/await «для бедных»

Время на прочтение3 мин
Охват и читатели39K
У вас проект на .NET 4.0 и вам надоела «лапша» из колбеков? Вы бы хотели использовать async/await в своем проекте, но тимлид грозит небесной карой за смену платформы? Если установка патча на фреймворк и студию для вас являются допустимым решением, то вам сюда. Если нет, то существует другое решение.


(для гуру: внутри корутины на yield'ах)
Читать дальше →

Иконкомания или боязнь неиспользования иконок

Время на прочтение5 мин
Охват и читатели60K
«И эти дурацкие иконки! Пиктограмма — это знак, который ни на одном человеческом языке невозможно объяснить. Не зря же появилась речь!»
Джеф Раскин.

Сегодня, какой бы продукт не проектировался, почти всегда уместно или нет — используются иконки. Заказчики требующие использования иконок в интерфейсе настолько свыклись с ментальностью повсеместного использования иконок, что это обстоятельство можно принимать за культурный феномен. Того же принципа придерживаются почти все разработчики.
Почему так получилось? Что в иконках не так? Можно ли без них обойтись?
Давайте попробуем разобраться.

Читать дальше →

Как крупные корпорации убивают маленькие стартапы

Время на прочтение6 мин
Охват и читатели183K
В этой статье я хочу рассказать историю одного стартапа, который я запустил 10 лет назад, о первых продажах, о «взлете», который так и не случился, и о том, как все это кануло в Лету (река «Забвения»).

В начале 2000-х популярным направлением для самодеятельности была разработка программного обеспечения. Интернет еще был не так популярен, как сейчас, а софт ставили все кому не лень и всякий разный. Тогда я был хорошим, можно сказать, сильным программистом на C++. Никакие самые сложные задачи не могли остановить меня. И я подумал, а не сделать ли что-то свое, потому что перспектива работать на контору, которая программировала всякую «муть» для довольно «далеких» (в плане понимания необходимости ПО) заказчиков меня не сильно вдохновляла. Ведь жизнь проходит, энтузиазм не вечен (а если и вечен, то не у всех), а написать в резюме, что я 10 лет программировал на FoxPro для региональных филиалов не самого крупного банка – не было моей целью.
Поэтому я силой мысли нарисовал себе мечту (примерно как на картинке) и начал потихоньку к ней идти.


Читать дальше →

90 рекомендаций по стилю написания программ на C++

Время на прочтение20 мин
Охват и читатели431K
От переводчика. Искал в интернете простой и легко применимый гайдлайн по написанию программ на C++. Мне понравился один из вариантов, и я решил его перевести и опубликовать. Если хабрапользователи хорошо встретят этот топик, могу перевести и другие связанные документы, а также гайдлайны по написанию кода от других компаний.

1 Введение


Настоящий документ содержит рекомендации по написанию программ на языке C++.

Рекомендации основаны на установившихся стандартах, собранных из различных источников, личного опыта, частных требований и потребностей определённых проектов, а также почерпнутых из источников (см. ниже).

Но для появления ещё одного списка рекомендаций, помимо указанных источников, есть несколько причин. Основная причина — их излишняя обобщённость, поскольку зачастую требуется задать частные правила (в особенности правила именования). Данный документ содержит комментарии, что делает его более удобным в использовании при проведении ревизий кода, чем другие уже существующие документы. К тому же, рекомендации по программированию обычно вперемешку содержат описания проблем стиля и технических проблем, что не совсем удобно. Этот документ не содержит каких-либо технических рекомендаций по C++, делая упор на вопросах стиля.
Читать дальше →

API ВКонтакте и XDocument для самых маленьких

Время на прочтение5 мин
Охват и читатели12K
Доброе время суток.

Я хочу еще раз поговорить о простейших способах работы с API ВКонтакте и очень надеюсь, что эта статья может стать отправной точкой для начинающих разработчиков. Мы будем работать с довольно разнообразным методом messages.getHistory, а с помощью XDocument получать фотографию. Всех, кто научился проходить авторизацию и хочет опробовать работу с API, прошу под кат.
Читать дальше →

За что HTML-верстальщики так не любят веб-дизайнеров

Время на прочтение4 мин
Охват и читатели117K
За время своей работы верстальщиком, мне довелось иметь дело с кучей разных макетов как от новичков дизайна (или порой просто левых людей), так и до профессионалов. И за это время я успел набрать приличную выборку наиболее типичных багов в макетах, которых не в состоянии избежать даже маститые специалисты. Сразу оговорюсь — в некоторых организациях есть внутренние «требования к дизайн-макетам», и по идее, при несоответствии дизайна этим требованиям, он должен без вопросов отправляться на доработку, но реалии таковы, что зачастую проще самому внести нужные правки, чем гонять документ туда-сюда по трекеру. Но даже в этих «требованиях» упомянуты далеко не все очевидно возможные «косяки». Постараюсь привести наиболее популярные и универсальные (без личностной привязки). Да, кстати, все баги привожу под использование фотошопных psd — ну уж де-факто это стандарт в веб-макетах. Да и не попадались мне ещё макеты в векторе (и надо сказать, слава богу).
Читать дальше →

Универсальный код C# под .NET и JavaScript

Время на прочтение19 мин
Охват и читатели36K

Введение


Приветствую вас, хабравчане. В данном топике я хотел бы осветить подробности разработки на C# под разнородные целевые платформы, в первую очередь такие как .NET и браузер (JavaScript). В качестве примера желающие могут изучить веб-сервис по обработке фотографий gfranq.com, в котором реализована клиентская и серверная обработка фотографий с помощью фильтров, а также функциональность коллажей на основе материала, описанного в данной статье.

Так как я не умею подбирать картинки для привлечения внимания, то она будет по теме:


Технические подробности под катом

Как написать сценарий продающего видеоролика-трейлера

Время на прочтение4 мин
Охват и читатели47K


Всем привет!

Если вы собрались самостоятельно делать рекламный видеоролик-трейлер для своей программы или сервиса — этот пост подскажет вам один из возможных путей создания продающего сценария.

Информация в данной статье является экстрактом нашего опыта, накопленного за несколько лет производства рекламных видеороликов в Alconost. Мы видим сценарии продающего видео именно так и надеемся, что эти знания могут быть полезны и вам.

Итак, вам нужен сценарий для ролика-трейлера, который за пару минут рассказал бы зрителю о продукте, при этом не утомил и в итоге помог принять правильное решение — скачать пробную версию, зарегистрироваться в системе, заполнить форму предварительного заказа (нужное подчеркнуть).

Читать дальше →

Как подключить сторонний браузер в приложении на C#

Время на прочтение3 мин
Охват и читатели101K
image

В определенный момент мне стало некомфортно использовать стандартный контрол WebBrowser, предлагаемый Visual Studio.
Причин было несколько:
1. Использовался IE-движок, что само по себе уже сильный аргумент.
2. Кривая работа с JS.
3. Отсутствие масштабирования.
4. Если запустить на машине, где стоит IE6, то все его «достоинства» переносятся на приложение.

В итоге был начат поиск альтернативных решений.
Было рассмотрено 2 SDK. xulrunner(Mozilla) и Awesomium(Chrome)

Подключение обоих происходит примерно одинаково, но на всякий случай опишу оба.
Читать дальше →

Сложно о простом или особенности Linq to objects

Время на прочтение6 мин
Охват и читатели5.1K
LINQ to objects сейчас прочно вошел в нашу жизнь, победоносными шагами ступая по всему стеку .net приложений. В этой статье я бы хотел привести примеры нескольких не очевидных вещей, с которыми довелось столкнуться, работая с LINQ. Интересно — прошу под кат.
Читать дальше →

Создание инсталлятора с помощью WiX. Часть 3

Время на прочтение15 мин
Охват и читатели32K
В этот раз мы создадим кое-что посложнее, чем установочный пакет из первой статьи. Научимся вносить изенять шаги установки и создавать собственные диалоги установщика.

Читать дальше →

Создание инсталлятора с помощью WiX. Часть 2

Время на прочтение6 мин
Охват и читатели26K
В прошлый раз мы научились создавать простой инсталлятор. Прежде чем двинуться дальше, от простого к сложному, давайте научимся управлять этим самым сложным. А именно — научимся разбивать проект на части с тем, чтобы упростить сопровождение и внесение изменений.

Читать дальше →

Использование async и await в C# — лучшие практики

Время на прочтение8 мин
Охват и читатели230K

Ключевые слова async и await, введённые в C# 5.0, значительно упрощают асинхронное программирование. Они также скрывают за собой некоторые сложности, которые, если вы потеряете бдительность, могут добавить проблем в ваш код. Описанные ниже практики пригодятся вам, если вы создаёте асинхронный код для .NET приложений.
Читать дальше →

Самый ценный совет по программированию, который я получил

Время на прочтение1 мин
Охват и читатели16K
«Год или два, с момента начала работы в Bell Labs, я работал в паре с Кеном Томпсоном над интерактивным графическим языком, разработанным Джерардом Хольцманом (Gerard Holzmann). Я печатал быстрее, поэтому я сидел за клавиатурой, а Кен стоял позади меня. Мы работали быстро, и когда компилятор выдавал ошибку, я рефлективно начинал закапываться в проблему, изучая стек вызовов, вывод программы, запускал отладчик и так далее. Но Кен просто стоял рядом и думал, игнорируя меня и код, который мы только что написали. Вскоре я заметил закономерность: Кен зачастую понимал, в чем проблема, раньше меня и произносил: „Я знаю, что не так“. Обычно он был прав. Я понял, что Кен выстраивал ментальную модель кода и, когда что-то ломалось, это была ошибка в модели. И думая о том, как эта проблема могла возникнуть, он выяснял, в каком месте модель была неверна или где наш код мог неправильно эту модель отразить.
Читать дальше →

Обмен данными между web-приложением и MantisBT

Время на прочтение4 мин
Охват и читатели7.2K
Используя Mantis для учета заявок от абонентов, часто приходилось сталкиваться со следующими сложностями:
1) При добавлении новой заявки приходится вносить или копипастить часть информации из карточки клиента в Mantis, что во-первых, лень, а во-вторых, потенциально может привести к искажению информации.
2) Не всегда получается оперативно прочитать предыдущие заявки по этому абоненту, во-первых, потому что лень, во-вторых, см. пункт первый, относительно искаженной информации.

Для решения этой задачи воспользуемся API от Mantis — mantisconnect.php.
Читать дальше →

14 возможностей ReSharper по навигации и редактированию

Время на прочтение8 мин
Охват и читатели44K
Инструменты – средство усиления вашего таланта. Чем они лучше и чем лучше вы ими владеете, тем больше вы сможете сделать.
Энди Хант и Дейв Томас «Программист-прагматик. Путь от подмастерья к мастеру»

DISCLAIMER: это не заказная и совершенно не проплаченная статья (JetBrains, я ни на что не намекаюJ). Здесь представлены лишь возможности популярного расширения для VisualStudio (а иногда и аналогичные возможности самой студии), которые я лично использую в повседневной деятельности.
Читать дальше →

Бесплатные книги

Время на прочтение3 мин
Охват и читатели61K
Несколько книг по разным темам, которые находятся в открытом доступе.

Основы программирования
Читать дальше →

10 приемов, разрушающих хрупкую красоту кода

Время на прочтение19 мин
Охват и читатели103K
Статья приводится в сокращении из-за ограничения на объем материала.

Для меня программирование — это не только технология, но и, во многом — искусство. И, поэтому, большое значение имеет красота кода.

Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:
  1. Объявление всех переменных в начале программы;
  2. Возврат результата функции через ее параметр;
  3. Отсутствие локальных функций;
  4. Отсутствие else if;
  5. Использование параллельных массивов;
  6. Хранение размера массива в отдельной переменной;
  7. Доступ к свойствам объекта через obj.getProperty() и obj.setProperty(value);
  8. Использование рекурсии для вычисления факториалов и Чисел Фибоначчи;
  9. Отсутствие именованных параметров функции;
  10. Невозможность объявления объектов «на лету».
Наверняка, в некоторых местах вы будете со мной несогласны — ведь чувство красоты у всех разное.


Объявление всех переменных в начале программы


В двух словах:

Переменные должны объявляться в начале логического блока, в котором они используются, а НЕ в начале функции или программы.


Читать дальше →

Барьеры памяти и неблокирующая синхронизация в .NET

Время на прочтение7 мин
Охват и читатели67K

Введение


В этой статье я хочу рассказать об использовании некоторых конструкций, применяющихся для осуществления неблокирующей синхронизации. Речь пойдёт о ключевом слове volatile, функциях VolatileRead, VolatileWrite и MemoryBarrier. Мы рассмотрим, какие проблемы вынуждают нас воспользоваться этими языковыми конструкциями и варианты их решения. При обсуждении барьеров памяти вкратце рассмотрим модель памяти .NET.
Читать дальше →

Обустраиваем рабочее место программиста в деревне

Время на прочтение12 мин
Охват и читатели173K
В последнее время на Хабре участились публикации на тему переездов программистов в самые разные места — от Силиконовой долины до российской глубинки.
Я в свое время сделал выбор — деревня недалеко от города, и в моей жизни и профессиональной деятельности выпало дважды инсталлировать рабочее место программиста в деревнях, инсталлировать полностью, включая создание нормальных условий для жизни.

Если интересны подробности: электрика/Интернет/отопление/водоснабжение с нуля — прошу под кат (сори, много фоток).
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Одесса, Одесская обл., Украина
Зарегистрирован
Активность