Search
Write a publication
Pull to refresh
-15
0
Антон @Acuna

Разработка ПО

Send message

Дайджест интересных материалов для мобильного разработчика #153 (10-15 мая)

Reading time2 min
Views9.4K
Немного материального дизайна, немного ReactNative, ASO через Google Spreadsheet, новые отчеты App Annie и наконец-то CocoaPods 1.0 — все это и многое другое в новом дайджесте!

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

Архитектура open source-приложений: Как работает nginx

Reading time18 min
Views76K


Мы в «Латере» занимаемся созданием биллинга для операторов связи и рассказываем на Хабре о разработке своего продукта, а также публикуем интересные технические переводные материалы. И сегодня мы представляем вашему вниманию адаптированный перевод одной из глав книги «Архитектура open-source-приложений», в которой описываются предпосылки появления, архитектура и организация работы популярного веб-сервера nginx.
Читать дальше →

Судный день: К чему приводят скрытые ошибки асинхронной обработки данных при росте нагрузки

Reading time9 min
Views24K


В нашем блоге мы рассказываем не только о развитии своего продукта — биллинга для операторов связи «Гидра», но и описываем сложности и проблемы, с которыми сталкиваемся на этом пути. Ранее мы уже описывали ситуацию, в которой бесконтрольный рост таблиц в базе данных одной компании-пользователя нашей системы привел к настоящему DoS.

Сегодня речь пойдет о еще одном интересном случае внезапного сбоя, который сделал «день смеха» 1 апреля этого года совсем не смешным для службы поддержки «Латеры».
Читать дальше →

«Типографские» раскладки клавиатуры

Reading time6 min
Views29K
По просьбам трудящихся коснёмся темы «типографских» раскладок клавиатуры. То есть, как системных средств Windows, так и сторонних программ, позволяющих вводить различные специальные символы с помощью клавиатуры (обычно, правой клавиши Alt, она же AltGr).

Большинство вспомнят раскладку Ильи Бирмана, но она не идеальна для нужд контент-менеджера или дизайнера. Заслуга её в том, что Рунету был продемонстрирован путь создания таких раскладок.

Также в самом начале скажу, что по моему мнению и мнению некоторых моих коллег использование «типографской» раскладки клавиатуры при определённом навыке (который нарабатывается за неделю-две) гораздо эффективнее в смысле соотношения затрат сил и качества набранного текста, чем использование «автоматизированных типографов» вроде лебедевского и других. Проблема в том, что автотипографы всё равно не справляются с типографированием текстов идеально. А как показывает наша практика, искать ошибки в типографированном тексте тяжелее, чем типографировать текст «с нуля». Конечно же, это в меньшей мере относится к случаям, когда необходимо типографировать длинные литературные тексты, где автотипографы справляются относительно хорошо, а затраты на ручное типографирование весьма велики.

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

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

Что делать фрилансеру, если заказчик отказывается платить

Reading time6 min
Views35K
Какой самый большой бич в работе фрилансеров и аутсорсинговых компаний? – Заказчик отказывается платить за выполненную работу. Хуже этой гнили быть ничего не может.

image

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

Бесплатная подборка из 40 эффектов CSS

Reading time4 min
Views85K
В посте собрана подборка различных эффектов и анимации CSS, которые могут пригодиться в работе, а кроме того избавят от необходимости постоянно прибегать к JavaScript. Возможно примеры не самые новые и необычные, но на мой взгляд, полезные.

1. Часы CSS3 с jQuery


Эти часы созданы с использованием одного из основных инструментов CSS3 – rotate и с подключением библиотеки JQuery.



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

Создаем 3D эффекты CSS при наведении с использованием jQuery

Reading time5 min
Views18K
В статье описано, как с использованием jQuery создать 3D эффекты CSS при наведении курсора.



Тут можно Посмотреть, а тут — Скачать

В примерах ниже используются миниатюры, которые при наведении курсора будут отображать определенную информацию CSS. Благодаря jQuery при наведении на изображения, они появляться в свернутом или согнутом виде. Для этих эффектов будет использоваться CSS 3D transforms.

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

Houdini: один из самых впечатляющих проектов в CSS, о котором вы никогда не слышали

Reading time11 min
Views62K


Бывало ли у вас так, что хотелось использовать какую-нибудь фичу из стандарта CSS, но вы этого не делали, потому что она поддерживается не всеми браузерами? Или ещё хуже: её поддерживают все браузеры, но поддержка глючная, противоречивая или вообще несовместимая? Наверняка вы с таким сталкивались, и поэтому рекомендую вам присмотреться к Houdini.

Это новая рабочая группа W3C, которой поставлена амбициозная задача — навсегда решить описанную выше проблему. Сделать это планируется с помощью нового набора API, который впервые даст разработчикам возможность самостоятельно расширять CSS, а также предоставит инструменты для подключения к процессу создания макета и применения стилей в ходе работы браузерного движка.

Но что конкретно кроется за этими обещаниями? Это хотя бы хорошая затея? И как всё вышесказанное поможет нам, разработчикам, создавать сайты сегодня и завтра?

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

8 явных признаков успешной жизни, не имеющих никакого отношения к деньгам или славе

Reading time4 min
Views19K
image

Неосторожность может привести к тому, что вы, руководствуясь неверными мотивами, станете преследовать ложные цели. Зачастую стремления людей ассоциируются с накоплением денег или достижением определенного положения.
Хотя ничего дурного в каждой из этих задач нет, выполняя их, вы можете сбиться с правильного пути. Если бы деньги и слава не были частью уравнения, как бы вы определили успех?
Читать дальше →

«Прозрачный» Squid с фильтрацией HTTPS ресурсов без подмены сертификатов (x86)

Reading time9 min
Views263K
Не секрет, что в больших конторах тема фильтрации Интернета довольно актуальная. С этой задачей справляется немало программных и аппаратных решений. Но в настоящее время все те сайты, которые мы резали ранее, работают по протоколу HTTPS, т.е. порт 443. Как известно, данный протокол проследить, прослушать и т. п., невозможно. А любой кеширующий фильтрующий прокси-сервер, редиректор и т. п. фильтрует только HTTP, т.е. порт 80. Как же резать Вконтакте, Одноклассники, iphide.info и многие другие подобные сайты? Как блокировать доступ к личной почте в организации, если использование оной запрещено порядками в организации? Да, можно фильтровать по IP адресам, но они частенько меняются, да и на многих ресурсах несколько IP адресов. Блокировать их на уровне файрвола как-то совсем не православное решение, и не совсем удобное.

И вот, совсем недавно, мне один товарищ рассказал, что он поднимает у себя в конторе кеширующий прокси с фильтрацией HTTPS, меня это заинтересовало.
Читать дальше →

7 секретов взросления (и да, пора бы уже!)

Reading time4 min
Views19K
image

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

Если бы программисты делали блины (по кошерным методологиям)

Reading time3 min
Views73K

Waterfall


Заказчик сообщает, что хочет блинов. Компания выделяет проджект менеджера, который говорит: «Говно вопрос! Наша компания специализируется по производству блинов! Мы сделаем вам офигенских блинов за две тысячи человеко-часов!»

Далее начинается аналитическая фаза. Бизнес-аналитик берет эксперта, и они денно и нощно заседают в офисе заказчика, потребляют халявный кофе и пончики, а также тщательно записывают бизнес-требования вплоть до толщины блинной корочки с точностью до микрона. Документы записываются на фирменных бланках компании, после чего заверяются подписью директора компании-заказчика, директора компании-исполнителя, стороннего консультанта по блинному производству, а также печатью Папы Римского. После окончания аналитической фазы на проект остается 1000 часов.
Читать дальше →

Почему некоторым людям везёт намного больше, чем другим?

Reading time7 min
Views29K
image

Известный киноактёр и телеведущий Джеймс Скотт Бамгарнер, более известный под псевдонимом Джеймс Гарнер, недавно ушёл из жизни в возрасте 86 лет. Многие люди считают, что он был великим человеком, и любят рассказывать истории про его жизнь. Как парень, не имеющий никакого актерского опыта и не любящий выступать перед публикой, смог заставить влиятельного голливудского агента заняться его карьерой? Повезло?
Читать дальше →

Реализация пошаговой работы PHP-скрипта с помощью AJAX

Reading time5 min
Views48K
Искал более-менее простое и универсальное средство для организации пошаговой работы скрипта, но так ничего и не нашел. Даже вопрос в QA задал, везде только общие фразы. Поэтому решил сам сделать такой инструмент.

Для чего это вообще нужно?


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

Хотелось бы разбить обработку файла на несколько частей и запускать скрипт в работу уже по частям.
image
Принцип реализации давно известен — обмен данными между сервером и клиентом:
Клиент запускает скрипт, тот выполняет несколько итераций и возвращает клиенту номер строки, на которой он остановился. После этого клиент делает новый запрос, в котором передает скрипту этот номер и скрипт продолжает работу дальше.
Читать дальше →

Как оживить контент если он утратил актуальность

Reading time4 min
Views4.3K


Все когда-то должно обновляться: почтовый ящик, гардероб, прическа и музыкальная коллекция. К сожалению, контент не является исключением. Каждая статья похожа на буханку хлеба, у которой есть свойство черстветь. Может не так быстро, как хлеб, но все же. Обновить контент занимает меньше времени и сил нежели создать новый, так что не ленитесь и приступайте к делу! Как именно «оживить» контент вы узнаете из наших советов.
Читать дальше →

Как превратить нелестно отзывающихся о вас клиентов в постоянных покупателей

Reading time4 min
Views4.4K


Многим компаниям кажется, что отрицательный отзыв о продукте, контенте или о самой компании – это крах. Тем не менее, при правильном подходе к такого рода отзывам или комментариям, вы можете превратить их в возможности привлечь постоянных клиентов.

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

Идеальный UI фреймворк

Reading time22 min
Views96K

Здравствуйте, меня зовут Дмитрий Карловский, и я… архитектор множества широко известных в узких кругах фреймворков. Меня никогда не устраивала необходимость из раза в раз решать одни и те же проблемы, поэтому я всегда стараюсь решать их в корне. Но прежде, чем их решить, нужно их обнаружить и осознать, что довольно сложно находясь в плену привычек, паттернов, стереотипов и "готовых" решений. Каждый раз сталкиваясь с проблемами в реализации задачи, я задумываюсь "что, блин, не так с этим инструментом?" и, конечно же, иду пилить свой инструмент: функцию, модуль, библиотеку, фреймворк, язык программирования, архитектуру ЭВМ… стоп, до последнего я ещё не докатился.


Речь сегодня пойдёт о JS-фреймворках. Нет, я не буду рассказывать про очередное готовое решение, не в том цель поста. Я лишь хочу посеять в ваших головах несколько простых идей, которые вы не встретите в документации ни к одному популярному фреймворку. А в конце мы постараемся сформировать видение идеальной архитектуры построения пользовательского интерфейса.


Взгляд под другим углом

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

Правим баг без исходных кодов

Reading time9 min
Views39K
image

В предыдущей статье мы разобрали, как реверс-инжиниринг может помочь в получении каких-либо преимуществ перед остальными пользователями. Сегодня мы поговорим ещё об одном применении обратной разработки — исправлении багов в отсутствии исходных кодов приложения. Причин заниматься подобными вещами может быть целое море — разработка программы давным-давно заброшена, а её сорцы автор так и не предоставил общественности / разработка ведётся совершенно в другом русле, и авторам нет никакого дела до возникшего у вас бага / etc, но их объединяет общая цель — исправить сломанный функционал, который постоянно вам досаждает.

Что ж, ближе к делу. Есть такая широко известная в узких кругах программа под названием «Govorilka». Как объясняет её автор, это ничто иное, как «программа для чтения текстов голосом». По сути, так оно и есть. При помощи неё было озвучено множество популярных и не очень видео, рапространившихся по всей сети. Программа имеет консольную версию под названием «Govorilka_cp», которую удобно вызывать из своих собственных приложений, что, собственно, я и сделал в одном из своих проектов.

К сожалению, в процессе распространения моего софта был обнаружен довольно странный момент — на некоторых машинах говорилка падает абсолютно на любых фразах, причём падение было вызвано не моим взаимодействием с данной программой, а самой говорилкой. В попытках выяснить как можно больше деталей о происходящей ошибке я обнаружил, что на двух, казалось бы, совершенно одинаковых системах говорилка ведёт себя противоположным образом — на одной она стабильно работает без каких-либо ошибок, а на другой — падает на каждой переданной ей в качестве аргумента фразе. Эта ситуация мне изрядно поднадоела, и я решил во что бы то ни стало разобраться с данной проблемой.

Учитывая, что говорилка не обновлялась уже несколько лет, а сам автор оставил вот такое «послание» на своём сайте

image

, я понял, что надеяться мне не на кого, и решать проблему придётся самому.

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

Добавление оператора диапазона в PHP

Reading time14 min
Views17K
image
На картинке — Ancient Psychic Tandem War Elephant © Adventure Time

В этой статье будет рассмотрен процесс внедрения в PHP нового оператора. Для этого будут выполнены следующие шаги:

  • Обновление лексического анализатора: он будет знать о синтаксисе нового оператора, что позволит потом превратить его в токен.
  • Обновление парсера: система будет знать, где может использоваться этот оператор, а заодно какова его приоритетность и ассоциативность.
  • Обновление этапа компиляции: здесь происходит обработка (traverse) дерева абстрактного синтаксиса (AST) и извлечение из него кодов операции.
  • Обновление виртуальной машины Zend: во время выполнения скрипта она используется для обработки интерпретации нового кода операции для оператора.

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

Information

Rating
5,825-th
Date of birth
Registered
Activity