Pull to refresh
3
0
Ильясов Станислав @Silentium

User

Send message

Семь принципов создания современных веб-приложений

Reading time19 min
Views189K
Эта статья основана на моей презентации с конференции BrazilJS в августе 2014 года. Она базируется на идеях, о которых я писал в блоге недавно, в основном, в связи с UX и производительностью.

Я хочу представить 7 действенных принципов для веб-сайтов, которые хотят применить JavaScript для управления UI. Эти принципы являются результатом моей работы как веб-дизайнера, но также как давнего пользователя WWW.

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

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

  • Должен ли JavaScript использоваться как замена функциям браузера: история, навигация, рендеринг?
  • Умирает ли бэкенд? Нужно ли вообще рендерить HTML?
  • Правда ли, что будущее за приложениями на одной странице (Single Page Applications, SPA)?
  • Должен ли JS генерировать страницы на веб-сайте и рендерить страницы в веб-приложениях?
  • Нужно ли использовать техники вроде PJAX или TurboLinks?
  • Каково точное отличие между веб-сайтом и веб-приложением? Должно ли остаться что-то одно?
Читать дальше →

Как использовать API сайта, у которого нет API?

Reading time4 min
Views81K
У меня достаточно часто появляется задача получить данные от стороннего сайта, при этом далеко не всегда этот сайт предоставляет возможность удобно получить эти данные через API. Единственное решение в таком случае — парсить html содержимое страниц. Когда-то я писал регэкспы, потом появились библиотеки, позволяющие получить нужное содержимое по css-селектору, а сейчас и это кажется сложной задачей, которую хотелось бы упростить.

Сегодня я хочу рассказать вам о моей небольшой библиотеке, позволяющей описать в API-стиле http-запросы и парсить ответ сервера в нужный вам формат.
Читать дальше →

Лучшие плагины для Sublime Text

Reading time5 min
Views645K

WebInspector


Мощный инструмент для дебаггинга JavaScript, полноценный инспектор кода для Sublime. Фичи: установка брейкпоинтов прямо в редакторе, показ интерактивной консоли с кликабельными объектами, остановка с показом стек трейса и управление шагами дебаггера. Все это работает на ура! А еще есть Fireplay от Mozilla, который позволяет подключаться к Firefox Developer tools и максимально простой дебаггер JSHint.



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

Как накормить мозг программиста… или feed your brain

Reading time12 min
Views375K

Введение


Из всех наслаждений, отпущенных человеку в жизни,
самое изысканное — шевелить мозгами.
(Борис Акунин)


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

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

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

Джентльменский набор для Amazon Kindle Paperwhite

Reading time3 min
Views100K

Чтобы настроить и установить все необходимое на любимую читалку Amazon Kindle Paperwhite требуется потратить достаточно много времени. С целью экономии Вашего времени, а также упрощения процесса настройки читалки, я и пишу данную статью. Также добавлены вкусные плюшки помимо стандартных вещей, которые можно сделать с Вашей любимой читалкой, порывшись в интернете… Я включил дополнительные настройки и немного подредактировал программный код. В итоге в мою сборку вошли модифицированные: приложения, игры, ланчер и меню. Кроме ярлыка ланчера, предназначенного для запуска альтернативного меню, на основном экране ничего постороннего нет.

Что входит в сборку:
Jailbreak читалки Kindle Paperwhite;
— русификация клавиатуры;
KUAL — ланчер киндл.
— альтернативное меню;
— словари для перевода текста в книгах с английского и на английский;
— читалки: KOReader и Cool Reader;
— браузеры: SkipStone и Midori;
— другие приложения: блокнот, доска для заметок, напоминалка, просмоторщик картинок, рисовалка, калькулятор, менеджер файлов;
— игры: шашки, шахматы, судоку, сокобан, реверси, гомоку, такузу;
— менеджер задач;
— быстрый вызов: вкл/выкл WiFi, вкл/выкл подсветки экрана, вкл/выкл ночного скринсейвера, вкл/выкл отображения аккумулятора в %, календарь, информация об устройстве.

Все действия со своей читалкой Вы делаете на свой страх и риск. Я никакой ответственности не несу за последствия данных действий. Не испугал Вас? Тогда приступим...
Читать дальше →

Айтишник на отдыхе: а как насчет телескопа?

Reading time10 min
Views140K


Вы прочитали пост о том, что наблюдать на небе, посмотрели сами, показали друзьям и заинтересовались темой. Логичное следующее желание — купить телескоп и смотреть на те же красоты уже хорошо вооруженным глазом. Но эта задача не такая простая, как может показаться, выбор зависит от различных параметров. Поэтому пост с описанием различных оптических схем телескопов, монтировок, думаю, окажется полезным.
Читать дальше →

Топ-10 недооцененных веб-приложений 2011 года

Reading time4 min
Views18K
Мы регулярно натыкаемся на новые веб-приложения, однако не все из них получают заслуженную долю внимания. И в последние дни 2011 года мы хотели бы рассказать о десяти из них, которые, как нам кажется, достойны большей известности.

10. Мини-приложения




Начать список мы решили не с одного, а сразу с набора приложений. Остановимся на тех, которые выполняют одну простую функцию, но выполняют ее отлично. Среди них Every Time Zone (показывает текущее время во всех часовых поясах), Umbrella Today? (сообщает, понадобится ли вам сегодня зонтик) и notepad.cc (минималистичный блокнот). Еще есть Spreeder, который позволяет вам читать текстовую информацию заметно быстрее обычного; SleepyTime — скажет, когда вам нужно лечь спать, чтобы проснуться в оптимальное время; а также SimplyNoise, умеющий генерировать так называемый белый шум.

За кадром осталось еще много “умных” и полезных веб-утилит, для описания которых нам здесь просто-напросто не хватит места. Но вот вам все же несколько вдогонку: 0to255, Mixest, PDFMyURL, и Copy Paste Character.
Читать дальше →

Установка Android CyanogenMod 7 на планшет Amazon Kindle Fire

Reading time2 min
Views21K
Родной интерфейс Fire очень беден. Маркет ограничен в выборе приложений, да и те купить крайне не просто. Можно установить не сложными методами Ice Cream Sandwich Launcher, нормальный «маркет», но удобнее он становится не намного. Есть замечательная open source сборка Android 2.3.3 под названием CyanogenMod. Ее смогли «прикрутить» к Fire достаточно быстро, но она была не на 100% работоспособной, не было звука. И вот вчера все свершилось. Практически полноценный СМ7 на Fire.

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

Создание мультизагрузочного USB HDD или флешки

Reading time5 min
Views740K


Загрузочный USB Flash или HDD накопитель удобен тем, что можно отказаться от использования CD/DVD для установки ОС и использования диагностических программ типа Memtest, MHDD, Acronis TI.

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

Существует множество решений для флешек (например, http://eee-pc.ru/wiki/софт:usb_multiboot), но, как правило, они не работают с USB HDD. На хабре я нашел только статью об установке Win7 с USB HDD, но год назад попытки воспроизвести это не увенчались успехом. Для установки Windows 7 с флешки существует MS Win7 DVD Tool, но он опять же не работает с HDD. Поэтому давайте создадим свой мультизагрузочный USB HDD с помощью GRUB4DOS.

Нам понадобится:
  • USB HDD (все описанное должно работать и для флешек).
  • ОС Windows (естественно можно аналогично сделать это и из ОС на базе Linux, но у меня сейчас нет возможности проверить работоспособность и наличие «подводных камней»).
  • Материнская плата (BIOS) с поддержкой загрузки с USB накопителей. Если загрузка с USB не поддерживается, можно использовать Plop, об этом ниже.


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

Инструкция по гарантийной замене Amazon Kindle

Reading time5 min
Views43K
На Хабре уже была статья о гарантийном возврате Amazon Kindle, но я хочу ее немного расширить и дополнить, так что это будет вторая версия.

Для тех, кто не в курсе, поясняю, что компания Amazon осуществляет гарантийную бесплатную замену своей знаменитой читалки, даже если она повредилась по вашей вине (чаще всего — неосторожное падение и разбитый экран в результате). Вы могли купить читалку напрямую в Амазоне, а могли и в любом другом магазине — дела это не меняет. Однако, есть трудности: бесплатная замена осуществляется только по США и Европе, так что если вы житель прочих окрестностей, добро пожаловать под
хабракат

Кастомные социальные кнопки

Reading time5 min
Views74K
Недавно участвовал в разработке одного проекта — фото конкурса. По задумке, рейтинг фото альбомов должен формироваться из суммы всех публикаций в социальных сетях: Facebook, Вконтакте, Twitter. Т.е. общий рейтинг фотоальбома расчитывается:
Рейтинг фотоальбома = кол-во «Share» в Facebook + кол-во «Сохранить» в Вконтакте + кол-во «Retweet» в Twitter

На макетах, вид кнопок несколько отличался от предоставляемых социальными сетями плагинов, формируемых функциями api. В частности вид счетчиков:
image
Помимо несоответствий с дизайном, каждый плагин формирует излишний хтмл код, а хотелось бы лаконичный.

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

Итак:
  • количество лайков будем получать от REST сервисов каждой социалки
  • кнопки рисуем свои и обрабатываем событие click

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

Спать мало, но правильно?

Reading time7 min
Views904K
Навеяно этим постом от юзера case. Пост не новый, и на главную он не попал.
Но я вот наткнулся на него сегодня и решил написать кое-что о сне. Уверен, что это будет полезно многим хабравчанам, да и случайным читателям тоже.
Читать дальше →

Роль сна в контексте личной эффективности

Reading time2 min
Views31K
Оказывается, физиология полезная наука, если слушать, понимать и делать практические выводы. Расскажу своими словами не претендуя на академичность и научную достоверность.

Роль сна в контексте личной эффективности

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

Отсюда простое прямое правило и не очень очевидное правило обратное, про которое мы и поговорим далее.

Прямое правило: сколько поработал, столько и поспал.
Обратное правило: сколько поспал, столько и поработал.

Если ты ночью поспал 3 часа и «бодрячком» поехал на работу, то в твоем наличии «кассета магнитофона», которая свободна только на 3 часа.
Читать дальше →

Основы фотографии: выдержка, диафрагма, ГРИП, светочувствительность

Reading time6 min
Views412K

Введение


Часто люди приобретают цифровые зеркальные камеры в погоне за качеством снимков, но при этом не имеют представления о технических моментах съемки. В основном это касается тех, кто до зеркалки держал в руках исключительно компактные фотоаппараты и пользовался автоматическими режимами (которые, к слову, весьма продвинутые в современных камерах).

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

Изначально я планировал написать одну статью, но по ходу дела понял, что объем получается слишком большой и решил разбить ее на несколько частей. В этой главе рассмотрю такие понятия как выдержка, диафрагма, ГРИП и светочувствительность, как эти параметры влияют на результат съемки. На очереди статья про типы и параметры объективов, работу со вспышками и советы по съемке в различных условиях.
Читать дальше →

Яндекс.Склонятор

Reading time2 min
Views25K
Яндекс выпустил XML-склонятор русских имен. Сервис по адресу export.yandex.ru/inflect.xml?name=Вася%20Пупкин берет имя и выдает его склонения в такой форме:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <inflections>
  3.   <original>&#1042;&#1072;&#1089;&#1103; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;</original>
  4.   <inflection case="1">&#1042;&#1072;&#1089;&#1103; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;</inflection>
  5.   <inflection case="2">&#1042;&#1072;&#1089;&#1080; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1072;</inflection>
  6.   <inflection case="3">&#1042;&#1072;&#1089;&#1077; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1091;</inflection>
  7.   <inflection case="4">&#1042;&#1072;&#1089;&#1102; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1072;</inflection>
  8.   <inflection case="5">&#1042;&#1072;&#1089;&#1077;&#1081; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1099;&#1084;</inflection>
  9.   <inflection case="6">&#1042;&#1072;&#1089;&#1077; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1077;</inflection>
  10. </inflections>
Пользуйтесь на здоровье :)

Склонятор стал 17-м мини-проектом сборника Яндекс.Нано.

P. S. Обнаружил на Хабре единственную девушку-участницу разработки проекта :)

10 способов обезоружить заказчика

Reading time4 min
Views1.2K
Представление проекта клиенту — это один из наиболее мучительных моментов в креативном процессе. В этой статье мы раскроем лучшие ответы на неприятные выпады и щекотливые вопросы, которые, будучи заданными клиентом, порой могут сорвать в целом эффективное решение.

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

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

— У сотрудника нашей бухгалтерии есть прекрасная идея на этот счет
Да ну?

Continuous Delivery в Яндексе. Как разогнать свой цикл разработки, используя только Open Source решения

Reading time8 min
Views58K
Перед тестированием всегда стояли и стоят две задачи – помочь команде поддерживать высокий уровень качества разработки и делать это, не задерживая весь процесс. И это справедливо не только для наших проектов в Яндексе, где мы работаем над очень большим количеством сервисов. Часто основная задача и вовсе формулируется как увеличение скорости тестирования при сохранении должного уровня качества. Скорость процесса разработки, приверженность ценностям частых и быстрых релизов – это основополагающие факторы для успеха любого продукта. У команды больше возможностей маневра, команда быстрее находит и исправляет ошибки, быстрее получает фидбек. Как же ускоряться, не теряя качества, как достичь дзена непрерывной доставки изменений?



Сегодня мы покажем, что Continuous Delivery — это просто и весело! А пользу от него можно получить, встроив его даже частично. Мы в тестировании Яндекса уже несколько лет используем подобный подход для наших библиотек с открытым исходным кодом — Allure Framework или Yandex QATools. Процесс прост, значительно масштабируем и может применяться как для огромных команд из одного человека, так и для маленьких командочек из десятков человек. А самое главное — весь инструментарий доступен в Open Source!

Кстати, до 30 сентября можно подать заявку и поступить в нашу Школу автоматизации процессов разработки в Питере. Обучение в ней бесплатное и будет состоять не только из курса лекций — обязательным этапом станет командная работа над учебным проектом.

А теперь вернёмся к теме. Представьте картину: уютное рабочее место, вы пишете код, добавляете юнит-тесты и отправляете изменения в систему контроля версий, а через пару часов они «выезжают» на боевые сервера. И все при этом работает.
Читать дальше →

Как отметить день программиста на работе и сделать всех довольными?

Reading time10 min
Views67K
Всем привет! Хотела бы поделиться своим опытом организации праздника в честь «дня программиста» (и не только) на работе и в рабочее время. В отличии от других праздников, таких как Новый год, 23 февраля и 8 марта, день программиста мало кто официально отмечает на работе. В современном мире, где очень много IT компаний, труд программистов для мира IT трудно переоценить. И не только для него. Благодаря [-им-]нам работают сайты и мобильные приложения, работают внутренние интранет ресурсы, CRM и CMS системы и много чего еще.

Так же стоит отметить, что на прошедшей неделе, 9 сентября, прошел еще и день тестировщика. Т. е. на неделе аж целых 2 важных IT-события. В современной жизни в большой IT-компании, где пишется код энтерпрайз уровня, работа специалистов QA отдела ценится не меньше работы программистов, чей результат тестируется. Работа тестировщиков стоит на страже качества программных продуктов, бережёт нервы пользователей и делает весь наш мир чуть-чуть более упорядоченным и логичным, а клиентов довольными.

А еще в июле проходил день системного администратора, который так же не все отмечают на официальном уровне.
Читать дальше →

Gearman — сервер очередей: использование в проектах на PHP

Reading time9 min
Views82K
Не так давно была замечательная статья, описывающая общие принципы работы с сервером очередей Gearman. Мне бы хотелось продолжить материал, дополнив его некоторыми деталями практического применения, а именно:
— установка и управление сервером
— управление очередью — что возможно и как
— PECL и PEAR php-расширения для работы с Gearman
— мониторинг сервера
— примеры кода
— передача данных порциями
— организация параллельных вычислений в PHP

Интересно? Прошу под кат
Читать дальше →

Data Mining. Оптимизация заказов товаров в аптеке (аптечном пункте)

Reading time6 min
Views18K
В небольшом аптечном пункте существует потребность гибкой системы заказов лекарственных средств и пара-фармацевтических товаров чувствительной к постоянным колебаниям рынка. В рамках современной действительности одиночные аптечные пункты не обладают достаточными складскими помещениями (материальными комнатами), что накладывает свой отпечаток и заставляет человека, ответственного за заказы, делать их ежедневно из сводного прайс-листа по нескольким поставщикам, не допуская дублирования, по минимальным ценам, исключая товары с неподходящими сроками годности. При этом общая номенклатура составляет несколько десятков тысяч единиц.

Мы живем в современном мире, где рутинные операции за нас выполняет компьютер. Поэтому Вы можете сказать: «Давайте используем компьютер, и он сделает всю черную работу за нас!». «У вас же есть база данных, содержащая статистику продаж различных лекарств?» – продолжите Вы – «Так почему же не использовать эту статистику для прогноза продаж и создания автоматической заявки на требуемые препараты?»
Читать дальше →

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity