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

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

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

Готовим web-приложение под зоопарк версий Android

Время на прочтение9 мин
Количество просмотров27K
Совсем недавно и достаточно неожиданно для самого себя я оказался ответственным за разработку программки для Android. Но ни под Android, ни вообще на Java мне ранее писать не приходилось. Нужно было сделать web-приложение, вроде phonegap и прочих, которое почти полностью работает в компоненте браузера. И все это под версии 2.2 — 4.3 (SDK 8 — 18).

О некоторых выкрутасах Android и костылях под них с точки зрения человека, впервые это все увидевшего, я и хотел бы рассказать. Надеюсь, вышло без HelloWorld, «OMG! Java», и т.п.

Поворот экрана/смена ориентации
Network unreachable
Грузим локальные ресурсы
Мост между Java и JavaScript

Самое интересное с последним пунктом
Всего голосов 33: ↑26 и ↓7+19
Комментарии16

Страсть к программированию. Как я отказался от $300.000, предложенных мне компанией Microsoft, взамен на полный рабочий день на GitHub’е

Время на прочтение4 мин
Количество просмотров71K
< 6. Не слушай своих родителей | 7. Будь универсалом >

Том Престон-Вернер (Tom Preston-Werner)

2008 год был високосным. Это значит то, что 366 дней назад, почти в туже минуту, я сидел в спорт баре “Zeke’s Sports Bar and Grill” на третьей улице в Сан-Франциско. Я обычно не шатался по спорт барам, но тогда был четверг — ночь “У меня может быть Ruby”. Думаю, даже так “У меня может быть _” и сюда можно вставить все, что угодно. ICHR была полузакрытой встречей “Рубистов”, которая обычно и охотно превращалась в ночной запой. Обычно эти ночи проходили также как и мое похмелье под утро, но эта ночь отличалась. Это была ночь, когда родился GitHub.
Читать дальше →
Всего голосов 119: ↑98 и ↓21+77
Комментарии37

Мопед не мой, я просто разместил объяву

Время на прочтение6 мин
Количество просмотров13K
Часто клиенту важен результат: продажи. Методы решения задачи: технологии, реклама, стиль, отбор и влияние на целевую аудиторию, поддержка и продвижение интернет-ресурса являются средством и не интересуют заказчика.

Или он просто не верит в эффективность затеи и жалеет ресурсов.

Тогда студии поступает предложение типа: «сделайте все сами как надо, а с продажи получите процент». Соглашаться или нет? Каждая студия в каждом случае решит самостоятельно.

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

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

Платформа «Атом» от Яндекса — интернет, адаптированный для каждого

Время на прочтение6 мин
Количество просмотров67K
Только что на YaC 2013 Яндекс анонсировал новую платформу «Атом». Она использует множество технологий, которые были созданы для разных задач, чтобы решить одну большую — изменить интернет так, чтобы каждый из нас перестал быть для него абстракцией, а стал человеком со своим характером и интересами.

image

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

Читать дальше →
Всего голосов 109: ↑82 и ↓27+55
Комментарии185

BugsCollector.com — все security баги в одном месте

Время на прочтение3 мин
Количество просмотров4.6K
image 2 с лишним года я старался радовать Хабр статьями (преимущественно, личными) в области информационной безопасности, по большей части в сфере веб. Делился знаниями, получал опыт и отзывы, знакомился с интересными людьми.


Не заметно для себя, сделал самый большой вклад в хаб «Информационная безопасность» за всё время. За это время я сам научился многому, совершенно не сравнить уровень моих знаний тогда и сейчас.

И, работая в этой сфере, я прочувствовал несколько проблем, решения для которых я не мог найти нигде. Я встречал и других людей, которые столкнулись с этим же. Но решения так и не было! И, тогда, я принял решение — решить, в первую очередь, свою проблему, и знать, что я точно помогу многим. Так и родился ресурс с говорящим за себя адресом — bugscollector.com.
Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии19

Тонкости благополучного git-merge

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

Вступительное слово


Считается, что «киллер фичей» СКВ Git является легковесное ветвление. Я ощутил это преимущество в полной мере, ведь я перешел на Git с SVN, где ветвление было достаточно дорогим процессом: для создания ветки нужно было скопировать весь рабочий каталог. В Git все проще: создание ветки подразумевает лишь создание нового указателя на определенный коммит в папке .git/refs/heads, который является файлом с 40 байтами текста, хешем коммита.

Основными командами пользовательского уровня для ветвления в Git являются git-branch, git-checkout, git-rebase, git-log и, конечно же, git-merge. Для себя я считаю git-merge зоной наибольшей ответственности, точкой огромной магической энергии и больших возможностей. Но это достаточно сложная команда, и даже достаточно длительный опыт работы с Git порой бывает недостаточным для освоение всех ее тонкостей и умения применить ее наиболее эффективно в какой-либо нестандартной ситуации.

Попробуем же разобраться в тонкостях git-merge и приручить эту великую магию.

Здесь я хочу рассмотреть только случай благополучного слияния, под которым я понимаю слияние без конфликтов. Обработка и разрешение конфликтов — отдельная интересная тема, достойная отдельной статьи. Я очень рекомендую так же ознакомиться со статьей Внутреннее устройство Git: хранение данных и merge, содержащей много важной информации, на которую я опираюсь.
Читать дальше →
Всего голосов 76: ↑75 и ↓1+74
Комментарии47

Третья версия типографа Муравьёва

Время на прочтение2 мин
Количество просмотров15K
Типограф Муравьева 3.0

Практически пять лет назад я опубликовал на Хабре пост про свой типограф: habrahabr.ru/post/67010. Прошло много времени, он несколько раз обновлялся и получал продолжения в модулях для движков и блогов. Пришло время задуматься о самом лучшем и грамотном инструменте, который будет за вас типографировать текст. Именно по этому я вернулся к своему типографу и все начал заново.

Типограф — инструмент для форматирования текста с использованием норм, правил и специфики русского языка и экранной типографики.



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

О продукте


  1. Типограф получил поддержку Unicode (это позволяет получать на выходе сразу красивый и форматированный текст без HTML-мнемоники). По умолчанию он отключен, нужно вручную включить.
  2. Включил около 70 правил, 30 дополнений и исключений к ним. На сайте есть раздел со всеми общими правилами, там можно подробнее прочитать. Но опять-таки они не все, т.к. есть множество под-правил и условий.
  3. Теперь типограф занимаем всего один файл (EMP.php) и доступен для PHP, но в ближайшее время выйдут версии и для Python (в процессе), Ruby, Perl и JS.
  4. Инструмент бесплатный и всегда будет оставаться таким. Открытый исходный код. При использовании мы не просим ничего указывать, но будет здорово, если расскажете об этом.
  5. Каждое правило можно включить или выключить. Внутри много скрытых правил.
  6. Реализована висящая пунктуация (некоторые это называют оптическим выравниванием).


Читать дальше →
Всего голосов 70: ↑69 и ↓1+68
Комментарии57

JetBrains — разработка под Android для лентяев

Время на прочтение1 мин
Количество просмотров79K
Хотите изучить разработку пoд Android, но лень читать большие книги с кучей теории? JetBrains подготовила курс из 12 уроков для быстрого старта. Темы уроков:

* Getting Started
* UI Designer
* Minimally Interactive
* Lifecycle
* More Activities
* List Views
* HTTP
* Storage
* Menus
* Dialogs
* Preferences
* Publishing
Читать дальше →
Всего голосов 104: ↑93 и ↓11+82
Комментарии54

Китайцы предлагают по 10Тб всем желающим

Время на прочтение1 мин
Количество просмотров165K
Гонка за объёмом предоставляемого облачного хранилища в Китае явно выходит на новый уровень: китайская компания Tencent предлагает всем зарегистрироваться и получить в итоге в своё распоряжение 10 Тб (терабайт) места на своём сервисе бесплатно. В этом смысле потуги Google или Dropbox действительно выглядят неважно — правда, всегда можно задаться вопросом о надёжности или приватности, хотя в этом смысле у Tencent вроде бы дела идут неплохо: она работает с 1998 года и её акции продаются на Гонконгской бирже…

Не обошлось без некоторых условий, которые, впрочем, действительно не трудно соблюсти — требуется зарегистрироваться с Tencent QQ-аккаунтом (получить его можно здесь) на странице акции и скачать мобильный клиент сервиса — доступны версии для Android и iOS. Сразу после этого в распоряжении пользователя оказывается 1 Тб облачного хранилища, который подходит для любых файлов (такой же объём на Flickr разрешают заполнять только фото и видео).

В дальнейшем по мере исчерпания свободного места сервис будет автоматически его увеличивать, пока верхняя планка не упрётся в заявленные 10 Тб в соответствии с приведённой ниже таблицей:



Насколько можно понять, что web-версии или десктопного клиента для сервиса нет, так что речь идёт именно о мобильном хранилище. Время акции также ограничено.
UPD:
Как подсказывают:

Акция щедрости здесь
Всего голосов 48: ↑46 и ↓2+44
Комментарии92

PHP IPC — Межпроцессное взаимодействие в PHP

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

Целью данной заметки является ознакомление PHP-разработчиков с возможностями межпроцессного взаимодействия в данном языке. Заметка не предполагает во всех деталях рассказать о каждой из возможностей, деталях реализации или показать рабочие примеры кода.

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

Хотите узнать больше?
Всего голосов 47: ↑42 и ↓5+37
Комментарии78

Разбор адресов «нечёткими регулярными выражениями»

Время на прочтение7 мин
Количество просмотров31K
Краткое содержание: о библиотеке написанной мною для сопоставления с заданным словарём выражений на естественном языке — в частности, городских адресов.

На деревню дедушке


Сколько существует способов написать адрес — в смысле, географический?

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

Возьмём простой пример:
улица Цветочная — может быть обозначена с сокращением, как «ул. Цветочная» и «Цветочная ул.» — кроме того «ул.» можно пропустить (если Цветочной площади в городе нет), а «Цветочная» можно написать с ошибками «Цвяточная» или «Цвиточная», равно как и «Цветошная» — всё это будет выглядеть недурно!

Пример посложнее:
2-я Конно-армейская улица — здесь душе поэта есть где разгуляться. Номер можно выразить как «2-ая» или просто «2», а можно даже прописью «Вторая» или с сокращением «Втор.» — дефис же между «конной» и «армейской» будет встречаться примерно у 50% опрошенных. До кучи выяснится что «конно-армейская» кому-то показалась длинной и сократилась до «2 Конноарм. ул.»

Другие интересные примеры связаны с именами «ул. Матроса Железняка» (или просто «Железняка»?), «пр. Мориса Тореза» (или «Мариса Тереза»?) а также совсем эпические случаи «ул. 3-я линия второй половины», «дорога на деревню Рыбацкое», «ул. Левый берег реки Ижоры» — прошу простить если и сам я их не осилил написать правильно по памяти.
Читать дальше →
Всего голосов 65: ↑65 и ↓0+65
Комментарии33

Бесплатный образовательный курс «Старт бизнеса веб-студии с нуля» из 6 лекций

Время на прочтение2 мин
Количество просмотров25K
Привет, Хабр! Не так давно совместно с Мегапланом мы запустили комплексный образовательный курс про маркетинг, продажи и клиентский сервис в студии/агентстве, который аудитория, включая хабр, встретила очень хорошо. Мы получили более сотни благодарностей, ответили примерно на двести вопросов по курсу, и в целом все были очень довольны.

Теперь мы продолжаем нашу серию образовательных материалов – и записали новый курс, для молодых компаний и специалистов – «Старт бизнеса студии с нуля». 6 лекций, более 3 часов видео, куча примеров из практики и кейсов.

image

А лекции про бизнес-план и маркетинговую стратегию студии/агентства я читал впервые в практике – и специально для курса подготовил рабочие образцы обоих документов. Они будут интересны и digital-старожилам. Присоединяйтесь – это бесплатно, в рамках большого спецпроекта NetCat для рынка.

Содержание курса:
Читать дальше →
Всего голосов 45: ↑34 и ↓11+23
Комментарии14

8 вещей, которых не должен бояться разработчик

Время на прочтение4 мин
Количество просмотров54K
Изменять код
В процессе разработки программного обеспечения нет такого понятия, как «стагнация». Все, что вы разрабатываете сейчас — просто очередная версия компонента, который вероятно будет меняться в будущем. Изменение является самым распространенным явлением в мире разработки программного обеспечения и вам лучше принять это как факт. Рассчитывайте на возможные изменения всего, что вы разрабатываете и поэтому проектируйте ваш код более модульным. Это упрощает изменения и в тоже время увеличивает качество кода. Старайтесь придерживаться концепций DRY и YAGNI. Вы часто будете в ситуации, когда вы смотрите на ваш код и представляете, что вы могли бы сделать это лучше. Так пусть эта мысль не мешает вам спать. Садитесь сразу за дело и рефакторинг! Если не сделаете это сейчас, вы возможно никогда этого не сделаете. Чем дольше ждете, тем сложнее и дороже это будет. И это может вырасти в лишнюю головную боль, с которой не захочется связываться.
«Хороший код — это код, который легко изменять. Код стремится измениться до момента, когда его уже не легко изменять. Весь код становится плохим кодом». Неизвестный автор.
Читать дальше →
Всего голосов 101: ↑88 и ↓13+75
Комментарии35

Разработка web API

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

Интро


Это краткий перевод основных тезисов из брошюры «Web API Design. Crafting Interfaces that Developers Love» Брайана Маллоя из компании Apigee Labs. Apigee занимается разработкой различных API-сервисов и консталтингом. Кстати, среди клиентов этой компании засветились такие гиганты, как Best Buy, Cisco, Dell и Ebay.

В тексте попадаются комментарии переводчика, они выделены курсивом.

Собираем API-интерфейсы, которые понравятся другим разработчикам


Понятные URL для вызовов API

Первый принцип хорошего REST-дизайна — делать вещи понятно и просто. Начинать стоит с основных URL адресов для ваших вызовов API.

Ваши адреса вызовов должны быть понятными даже без документации. Для этого возьмите себе за правило описывать любую сущность с помощью коротких и ясных базовых URL адресов, содержащих максимум 2 параметра. Вот отличный пример:
/dogs для работы со списком собак
/dogs/12345 для работы с отдельной собакой
Дальше
Всего голосов 235: ↑224 и ↓11+213
Комментарии128

PostgreSQL 9.2 Начало!

Время на прочтение4 мин
Количество просмотров234K
Мне хотелось создать прекрасный объемлющий мануал Getting Start без всякой воды, но включающий основные плюшки для начинающих по системе PostgreSQL в Linux.

PostgreSQL является объектно-реляционной системой управления базами данных (ОРСУБД) на основе POSTGRES, версия 4.2, разработанной в Университете Калифорнии в Беркли департаменте компьютерных наук.

PostgreSQL является open source потомком оригинального кода Berkeley. Он поддерживает большую часть стандарта SQL и предлагает множество современных функций:


Кроме того, PostgreSQL может быть расширен пользователем во многих отношениях, например, путем добавления новых
  • типов данных
  • функций
  • операторов
  • агрегатных функций
  • индекс методов
  • процедурных языков

Читать дальше →
Всего голосов 35: ↑19 и ↓16+3
Комментарии26

Как создать простую Tower Defense игру на Unity3D, часть вторая

Время на прочтение9 мин
Количество просмотров70K
Здравствуйте! Весьма надолго у меня растянулась подготовка материала (жизнь давала изрядных пинков под зад), но вот я справился и готов поделиться продолжением первой статьи с вами.

Часть первая


Неудачный тест физики

В этой части мы:
— оптимизируем код из предыдущей статьи;
— создадим объект «база» и научим её чиниться время от времени;
— добавим пушкам патроны и перезарядку;
— избавимся от «неудобной» переменной gv;

А в конце статьи вас ожидает маленький бонус :)

Всем заинтересовавшимся — добро пожаловать под долгожданный кат!
Читать дальше →
Всего голосов 59: ↑49 и ↓10+39
Комментарии41

Безопасный метод авторизации на PHP

Время на прочтение9 мин
Количество просмотров363K
Примечание: мини-статья написана для новичков

Давайте посмотрим вокруг: форумы, интернет магазины, гостевые книги и т.д. используют регистрацию и последующую авторизацию пользователей. Можно даже сказать, что это почти необходимая функция каждого сайта (только если это не домашняя страничка Васи Пупкина или не визитная карточка, какой-нибудь небольшой компании). Сегодня я хочу поделиться со всеми новичками информацией, о том, как лучше это все реализовать.
Читать дальше →
Всего голосов 37: ↑28 и ↓9+19
Комментарии229
12 ...
70

Информация

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