Как стать автором
Обновить
0
0

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

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

Как мы проектируем и прототипируем всякую фигню

Время на прочтение8 мин
Количество просмотров37K


Главный враг раздолбайства — план.

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

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

Подобный подход рождает несколько довольно странных выводов. Например, если речь идёт о новом сайте – явно, что все тексты должны быть готовы до начала работ по дизайну. При работе с игрой виртуальные прототипы (в симуляциях) работают только на последних этапах балансировки, вначале же куда важнее быстро собрать на бумаге. Если уж говорить шире, то мы знаем, что новый XCOM (и XCOM2) тестировали и тестируются как настолки, а потом уже гонятся на компьютер.

Может показаться, что прототипировать — это вроде как не очень нужно. Херак-херак — и в продакшн. На самом деле, это чертовски важно в любом процессе; например, по заветам юзабелистов — это 70% работы. Вопрос только в том, как это можно делать.

Я не претендую на истину в этом вопросе, и мне очень интересен ваш опыт. Давайте сначала расскажу, какие мы вывели для себя вещи в прототипировании, а потом попрошу вас рассказать о своих прототипах и процессах проектирования.
Читать дальше →
Всего голосов 46: ↑43 и ↓3+40
Комментарии49

Релиз Javascript фреймворка Qooxdoo 1.0

Время на прочтение2 мин
Количество просмотров2.3K
qooxdooВышел первый стабильный релиз свободного графического Ajax-фреймворка Qooxdoo (произносится ['ku:ksdu:]), использующего JavaScript и предоставляющего почти всё необходимое для создания web-приложений с десктопоподобным интерфейсом. По словам разработчиков, web-приложения при помощи Qooxdoo можно создавать даже без знания HTML, CSS и DOM модели.

Фреймворк запускается в большинстве браузеров (Internet Explorer, Firefox, Safari, Opera и Chrome). Чтобы получить представление о работе фреймворка можно взглянуть на тестовую среду и демо-приложения, демонстрирующие в интерактивном режиме возможности qooxdoo, такие как многочисленные виджеты, Drag&Drop интерфейс, диспетчеры компоновки, визуальные темы, поддержку организации работы многоязычного интерфейса. Для разработчиков особый интерес представляет поставляемый в составе пакета инструментарий, полностью охватывающий процесс разработки, включая валидацию кода, компиляцию JavaScript, юнит-тесты, автоматическое тестирование GUI и средства отладки аналогичные Firebug.
Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии46

Nano — миниатюрный JavaScript фреймворк

Время на прочтение3 мин
Количество просмотров6.2K
Привет, читатель. Есть много прекрасных и мощных JavaScript-фреймворков. JQuery, MooTools, ExtJS, и множество других. Они кроссбраузерны и громадны. И пользоваться ими — одно удовольствие.

Но иногда, бывает, хочется написать какой-нибудь небольшой скриптик на 5 килобайт и как-то совесть мучает подключать JQuery, который весит в сжатом виде 75 килобайт. И каждый раз начинаешь писать свой мини-фреймворк:
var dom = {
	id  : function (id)  { return document.getElementById(id); },
	tag : function (tag) { return document.getElementsByTagName(tag); },
};


Вроде бы, больше для начала и не надо. А потом вспоминаешь про createElement, легкий способ присвоить CSS, наследование, расширение прототип. И в общем каждый раз пишешь свой велосипед.
В этот раз я решил написать миниатюрный фреймворк, который можно было бы без зазрений совести подключать даже к самым маленьким проектам. В сжатом виде он весит всего 4 килобайта (в 20 раз меньше JQuery).
И в нём есть еще одно преимущество по сравнению со всеми современными фреймворками — полный отказ от устаревших браузеров, за счёт чего в эти 4 килобайта вместилася половина JQuery.

Итак, приветствуйте, JavaScript-фреймворк Nano

Читайте актуальную вторую часть!



Читать дальше →
Всего голосов 82: ↑72 и ↓10+62
Комментарии158

Чек-лист разработчика языка программирования

Время на прочтение4 мин
Количество просмотров23K
Итак, Вы собираетесь создать новый [] функциональный, [] императивный, [] объектно-ориентированный, [] процедурный, [] стековый, [] мультипарадигменный, [] быстрый, [] статически-типизированный, [] динамически-типизированный, [] чистый, [] богатый, [] не-искусственный, [] наглядный, [] простой для новичков, [] простой даже для не-программистов, [] абсолютно непостижимый язык программирования.

Не получится. И вот почему.
Читать дальше →
Всего голосов 220: ↑189 и ↓31+158
Комментарии77

Let's Encrypt: получение сертификата по шагам

Время на прочтение4 мин
Количество просмотров468K
В данной статье будет описан реальный способ получения сертификата от Let's Encrypt в ручном режиме для его дальнейшей установки на веб-сервер Windows (IIS/Microsoft Azure) или Linux (полностью ручной режим). Из-за отсутствия официального клиента под Windows для генерации сертификата будет использоваться дистрибутив Linux.



Данная статья обновляется с создана для тех, кто хочет управлять процессом создания сертификата в полностью ручном режиме. В статье пошаговая инструкция процесса, чтобы вы уже смогли оперативно создать и начать пользоваться своим сертификатом.
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии49

Обход блокировок adblock, и блокировка обхода блокировки

Время на прочтение2 мин
Количество просмотров92K
В статье рассматривается один из эффективных методов противодействию adblock, и обход этого метода. Этот круг вечен – но, похоже, рекламщики вырвались вперёд!



Как-то раз на одном сайте администрация вежливо попросила пользователей добавить сайт в исключения адблока. Я, как сознательный пользователь, это сделал – но появившаяся реклама через какое-то время стала совсем не похожа на допустимую рекламу, и я включил адблок снова. К моему удивлению, реклама не исчезла – и я стал разбираться, в чём тут дело.
Читать дальше →
Всего голосов 44: ↑36 и ↓8+28
Комментарии114

Полезности для разработчика

Время на прочтение1 мин
Количество просмотров21K
Всем привет!

Наш проект был создан на хакатоне, прошёл много испытаний, и мы пришли к тому, чего хотели, но в самом начале ещё не знали.

Stash — сообщество разработчиков, где можно делиться своими полезными наработками в виде сниппетов, получить отзывы, помочь другим улучшить код или найти полезное решение своих задач.

В общем-то, сниппетные сайты были и раньше, но мы решили, что это можно сделать лучше. И сделали.


Читать дальше →
Всего голосов 41: ↑27 и ↓14+13
Комментарии29

Когда нет сил ждать Record'ы

Время на прочтение3 мин
Количество просмотров18K
Думаю, многие C# разработчики с нетерпением ждали в C# 6.0 появления первичных конструкторов и record'ов и были огорчены тем, что эта фича была отложена до 7-й версии. Под конец рабочего четверга желание иметь неизменяемые типы во что бы то ни стало пересилило во мне терпение и я решил написать утилиту, генерирующую их. Кому интересно — прошу под кат.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии54

TemplateEngine.Docx — OpenSource .NET шаблонизатор docx документов

Время на прочтение7 мин
Количество просмотров48K


В разработке корпоративных приложений очень часто приходится решать задачу выгрузки данных в документы — от небольших справок до больших отчетов.

Хочу поделиться нашим opensource-решением для генерации docx документов, которое позволяет заполнять документы по шаблону, оформление которого можно менять в Word без переписывания кода.

Для начала — немного вводных.

Что нам было нужно от шаблонизатора


  • Шаблон создается в Word и сразу видно, на что будет похож результирующий документ, шаблон без лишнего мусора.
  • Результирующий документ после скачивания содержит все необходимые данные, не подтягивая их с внешних источников.
  • Возможность заполнять списки, таблицы, и иногда еще и таблицы с вложенными в них списками.
  • Шаблон можно доверить секретарю клиента, чтобы он мог сменить логотип, реквизиты компании, или как-либо еще подкорректировать оформление. И все это уже после сдачи проекта, не модифицируя наш код.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии21

Быстрая разработка CRUD на Java: дауншифтинг с «1С: Предприятие»

Время на прочтение8 мин
Количество просмотров25K
В связи с последними событиями на мировой арене и понижением курса национальной валюты, для программистов на «1С: Предприятие» наступают непростые времена. Многих увольняют, одновременно усиливается конкуренция со стороны новичков, которых на рынке появилось довольно много — на что не пожалуешься, так как, работая преподавателем в учебном центре при МГТУ им. Баумана, я и сам приложил к этому руку, выдавая свидетельства щедрой рукой.

Вместе с тем, открываются перспективы по освоению других языков, так как работа на зарубежного заказчика внезапно вновь стала выгодной. Также возрос интерес к открытому программному обеспечению на всех уровнях технологического стека, а больше всего, к “импортозамещающим” СУБД типа PostgreSQL, MySQL.

Оказавшись в очередной раз на межпроектной развилке, я получил немного свободного времени, чтобы рассказать о своем опыте реализации нескольких проектов на Java, и о том, каково оно было, после многих лет разработки на 1С. Смысл послушать есть хотя бы потому, что количество просмотров резюме Java разработчика по моим оценкам сейчас раз в 5 больше резюме 1Сника.

Рассказать хочу на примере 2 моих OpenSource проектов, выкладываемых на GitHub:

№1. Реализует базовую функциональность быстрой разработки, доступную в 1С.
№2. Реализует механизм формирования отчетов с пользовательскими настройками типа “сводная таблица”, упрощенный аналог СКД (системы компоновки данных в 1С).

Для начала, по первому проекту.
Читать дальше →
Всего голосов 20: ↑11 и ↓9+2
Комментарии39

Непересекающиеся множества и загадочная функция Аккермана

Время на прочтение14 мин
Количество просмотров39K
Речь пойдёт о простой структуре данных — системе непересекающихся множеств. Вкратце: даны непересекающиеся множества (например, компоненты связности графа) и по двум элементам x и y можно: 1) узнать, находятся ли x и y в одном множестве; 2) объединить множества, содержащие x и y. Сама структура очень проста в реализации и описывалась много раз в различных местах (например, есть хорошая статья на хабре и ещё кое-где). Но это один из тех удивительных алгоритмов, написать который ничего не стоит, а вот разобраться, почему он работает эффективно совсем нелегко. Я постараюсь изложить относительно простое доказательство точной оценки на время работы этой структуры данных, придуманное Зейделем и Шариром в 2005 (оно отличается от того ужаса, который многие могли видеть в других местах). Конечно, сама структура тоже будет описана, а попутно разберёмся причём здесь обратная функция Аккермана, о которой многие знают только, что она оооочень медленно растёт.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии3

Достаточно Git-а, чтобы быть (менее) опасным

Время на прочтение23 мин
Количество просмотров131K
imageТы просто-напросто ненавидишь Git? Ты абсолютно счастлив с Mercurial (или, фу, с Subversion), но раз в месяц тебе приходится отважно сталкиваться с Git, потому что каждый, даже его чертова собака, теперь использует GitHub? Тебя терзают смутные подозрения, что половина всех команд Git на самом деле удалят всю твою работу навсегда, но ты не знаешь какие именно и не хочешь проводить три недели, углубляясь в документацию?

Хорошие новости! Я написал тебе этот изумительный Интернет-пост. Я надеюсь, что смогу размазать достаточно Git-а по твоему лицу, чтобы понизить вероятность сделать что-то непоправимое, а так же уменьшить твой страх что-то сломать. Этого должно быть также достаточно, чтобы сделать документацию Git немного более понятной; она крайне тщательно и глубоко проработана и очень глупо, если ты все еще не прочитал половину.

Я постараюсь излагать коротко, но также, чтобы это было потенциально полезно тем людям, кто вообще никогда не сталкивался с контролем версий, поэтому повсюду будет разбросан 101 совет. Не бойся! Я не думаю, что пользователи Mercurial понятия не имеют, что такое патч.
Но подожди! Там еще...
Всего голосов 131: ↑103 и ↓28+75
Комментарии365

50 лучших дизайнов рассылок (и как самому делать так же круто) (Часть 3)

Время на прочтение3 мин
Количество просмотров4.8K
Сегодня публикуем третью часть перевода статьи о лучших дизайнах рассылок, здесь первая часть, а здесь вторая. В этих 10 примерах особое внимание уделяется стилю и организации макета, в котором много информации. Ждём вас на конференции, посвященной email-маркетингу MailCon уже в эту пятницу, и с удовольствием обсудим приведённые в статье кейсы в комментариях!

21. Выдерживайте стиль


Минималистичный дизайн в примере от Elizabeth Lies помогает донести идею ясно и эффективно. Поскольку миссия бренда в том, чтобы показать простоту жизни в дороге, то и использование простого шрифта и понятных изображений создаёт у читателя ясную картину о миссии бренда и о его стиле.



Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии3

Дистанционный работник – мечта работодателя

Время на прочтение4 мин
Количество просмотров17K


Как правильно оформить сотрудника? Сегодня работодатели привыкли выбирать между трудовым и гражданско-правовым договорами. Между тем, уже пару лет как появилась возможность взять на работу «дистанционного работника». Этот вариант имеет свои весомые преимущества: сотрудник не обязан постоянно сидеть в офисе, но остается на «коротком поводке» трудового договора. Давайте разберемся, подойдет ли такой вид сотрудничества именно вам, и поймем, как избежать возможных проблем.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии20

jQuery-плагин для организации компонентов на странице

Время на прочтение2 мин
Количество просмотров20K
JBlocks — небольшой jQuery-плагин (~100 строк) для организации компонентов на странице.

Строится на трех основных принципах:

  • опиши поведение компонента в декларации;
  • разметь компонент в html с помощью специальных атрибутов;
  • общайся со экземплярами компонента через АПИ.

Если вам интересна тема декларативного javascript — прошу под кат.
Читать дальше →
Всего голосов 29: ↑21 и ↓8+13
Комментарии74

Google+: скорее жив, чем мертв

Время на прочтение4 мин
Количество просмотров14K


Просвещаться относительно того, что зарубежные SEO эксперты думают об эффективности сервиса Google+ как инструмента продвижения, — занятие увлекательное: сайт, обещающий открыть читателю «6 причин зарегистрироваться на Google+ сегодня», соседствует в поисковой выдаче со статьей с жизнеутверждающим названием «Крах Google+ и его последствия для SEO сферы». В конечном итоге, приходится составлять собственное мнение на личном опыте — благо, опыта хватает.

С Google+ мы проработали около года, с самого начала включив его в число социальных сервисов, которые было решено активно использовать для продвижения продуктов компании. Мы были готовы быстро изменить политику, если мрачные слухи об умирающем сервисе подтвердятся и затраты на создание контента не будут окупаться. Но Google+ приятно удивил нас в нескольких отношениях.

Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

MJX X600 — первый бюджетный уличный гексакоптер с функцией возвращения без GPS

Время на прочтение4 мин
Количество просмотров17K
В прошлой статье я писал о маленьком гексакоптере MJX X800, стоимостью около 30$, который мне очень понравился. Поэтому сегодня я хочу рассказать о его старшем брате — MJX X600. В этом коптере производитель продолжил внедрение своих инноваций, значительно увеличил размер и при этом сохранил интересную цену. Наиболее же интересной функцией в новинке стал модуль возврата домой, который впервые реализован без использования GPS, что и позволило существенно снизить стоимость.

Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии5

Интегрируем оплату через Paypal в web-приложение

Время на прочтение21 мин
Количество просмотров74K
В данной статье рассмотрена интеграция разовых платежей, а также оплаты по подписке с помощью Paypal в веб-приложение. Примеры реализованы на PHP, но, в принципе, без особых проблем то же самое можно сделать с помощью других технологий. Данный метод выбран как компромисс между простотой и гибкостью. Это попытка написать руководство, которое поможет быстро разобраться в теме и интегрировать оплату через Paypal в свой проект.

Статья ориентирована в основном на тех, кто раньше с этой системой не работал. Знатоки Paypal вряд ли найдут здесь для себя что-то новое. Но, возможно, они укажут на недостатки данного метода или посоветуют, как можно было бы по-другому это реализовать.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии29

Использование ownCloud 7 в полевых условиях

Время на прочтение15 мин
Количество просмотров163K
owncloud image Прочитав статью "Делаем backup Google или паранойя по поводу санкций. Owncloud и другие открытые решения", я решил, что пора дать второй шанс ownCloud'у после крайне неудачного опыта с 5 версией. В итоге оказалось, что за сей короткий промежуток времени ownCloud приобрел вполне добротный вид и способна работать в качестве повседневного инструмента — обнаруженные проблемы либо не существенны, либо имеют решение. Те, кто не знаком с ownCloud, могут узнать о его ключевых особенностях, к примеру, на официальном сайте или на opennet.ru. В этой статье я НЕ расскажу о том, как надо устанавливать ownCloud и как потом его с нуля настроить, потому что уже достаточно об этом писано-расписано-переписано, да и установка не представляет собой ничего сложного, я лишь кратко упомяну важные детали. Под катом будет информация о том, что же интересного умеет ownCloud, какие приложения в apps.owncloud.com мне показались стоящими внимания, затрону интеграцию с KDE и Android, а также скажу пару слов о подводных камнях и интересных местах, ну а в конце подведу итоги для тех, кому лень столько читать. ownCloud на своём сервере я использую в одиночестве, поэтому администрирование пользователями и всё сопутствующее будет описано крайне скудно. Осторожно: много картинок.
Читать дальше →
Всего голосов 54: ↑51 и ↓3+48
Комментарии73

Нагрузочное тестирование «по-быстренькому»

Время на прочтение3 мин
Количество просмотров211K
Может кому будет интересно как «по-быстрому» провести нагрузочное тестирование своего веб-приложения.
Подробности под катом
Читать дальше →
Всего голосов 86: ↑82 и ↓4+78
Комментарии40
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность