Pull to refresh
0
0
Сергей Михайлов @smskin

User

Send message

Как я сообщаю маме будет ли дождь на даче?

Reading time2 min
Views6.7K
Ох уж эта чудесная пора — лето! Отдых, любимый дачный участок. Матушка звонит вечно занятому сыну (мне) с просьбой приехать за свежими овощами и вообще навестить старушку. Телефонный звонок всегда имеет примерно один и тот же сценарий разговора. Как здоровье? Сынок, посмотри в интернетах, будет ли дождь. Набирать воду в бак? Знакомо? Я как порядочный сын отвечаю, что здоров, за ягодкой и огурчиками приеду, прогноз погоды посмотрю. Так продолжалось всегда. Смотрю прогноз погоды, синоптики как всегда (или почти всегда) врут, понять прогноз погоды не возможно, перед мамой не удобно. Так было до последнего времени, пока я не задумался над тем, что предвещает дождь помимо стандартных метеорологических событий (циклоны, антициклоны всякие, перемены давления и т.п.). И мне пришла мысль проанализировать тренды частот резонанса Шумана. Что из этого получилось и как я стал предсказывать для мамы дождь лучше любого погодного сайта читайте под катом…
Подробнее
Total votes 9: ↑8 and ↓1+7
Comments12

Dadata.ru проверяет документы и знает все банки

Reading time1 min
Views16K
DaData.ru — сервис автоматической проверки и исправления контактных данных (ФИО, адресов, телефонов, email, паспортов). Плюс javascript-виджет и API подсказок при вводе адреса, ФИО, организации и банковских реквизитов.

С предыдущего релиза мы стали еще круче работать с данными:
  • подсказываем банковские реквизиты,
  • возвращаем геокоординаты в подсказках по адресам,
  • проверяем действительность паспорта,
  • определяем стоимость квартиры.

Свежие подробности
Total votes 30: ↑26 and ↓4+22
Comments52

Laravel. Интернет-ресурсы

Reading time4 min
Views65K

Привет Хабр!

Когда я узнал, что на Хабре у Laravel появился собственный хаб, то сразу понял о чем будет моя первая статья для Хабрахабр. Точнее не статья, а обзор интернет-ресурсов о Laravel, большую часть которых я использую для того, чтобы каждый день радовать участников нашего сообщества свежими новостями. И, конечно же, это не все ресурсы, а только самые интересные и полезные. А если кому-то из вас интересны не только ссылки на интернет-ресурсы, но и сами материалы по Laravel, то с радостью приглашаю к нам в группу ВКонтакте. Так получилось, что за все время своего существования, а это всего 10 месяцев, наша группа стала самым большим и полным в мире ресурсом по количеству материалов о фреймворке Laravel. И другого такого Laravel интернет-ресурса я не знаю.
Читать дальше →
Total votes 63: ↑48 and ↓15+33
Comments43

Как я однажды взломал онлайн-казино

Reading time7 min
Views132K
Вдохновившись рассказом Chikey о том, как он вновь «сломал интернет» Егор прекрати уже ломать все подряд, займись делом каким-нибудь, решил поведать об одной истории с довольно известным за рекой онлайн-казино. Имя этой «организации» не называю, т.к. процентов на 50 уверен, что или совсем не пофиксили, или сделали кривее, чем было до этого.

История очень похожа на взлом Егора, за исключением того, что это не совсем рэйс, вернее, совсем не race condition в чистом его виде. Как оно будет полностью не знаю, я больше практик, чем теоретик. Назовем его «conditional race condition» — хоть и масло масляное, но суть отражает верно.

Как-то вечером, домашние уснули, по ящику одна муть, наши опять проигрывают делать было особенно нечего, на опенсорс решил на сегодня забить, захотелось чего-нибудь сломать. А что ломать (когда Егор уже все сломал), как не банк какой-нибудь или казино (эго, необходимость иногда почувствовать себя крутым парнем, все дела в общем). Это было одно из первых онлайн-казино, которое мне тогда приглянулось в поиске.

Не секрет, что экономят на программистах, тестировщиках и т.д. все или почти все. Я делаю временами аудиты, да и по роду деятельности такого иногда насмотришься, что волосы дыбом. Но тут-то казино! С возможностью вывода (выигранных) вечнозеленых и т.д. Т.е. контора должна вроде соответствовать.

Завел себе аккаунт, и поехали…
Читать дальше →
Total votes 132: ↑110 and ↓22+88
Comments73

50+ лучших дополнений к Bootstrap

Reading time5 min
Views202K


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

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →
Total votes 123: ↑111 and ↓12+99
Comments25

LeakCanary — помощник в поиске утечек памяти

Reading time3 min
Views32K

Никому не нравятся креши с OutOfMemoryError


Работая над Square Register, мы рисуем подпись клиента используя битмап-кеш. Поскольку этот битмап размером с экран устройства, у нас было очень много OutOfMemory крешей во время создания его.

image

Мы пробовали несколько подходов ни один из которых не решил проблему:
  • Использовали Bitmap.Config.ALPHA_8
  • Ловили OutOfMemoryError, вызывали сборку мусора и пробовали снова (подглядели в GCUtils),
  • Мы не рассматривали вариант с размещением битмапов вне кучи Java. К счастью Fresco еще не существовало,


Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments7

Вы неправильно пишете животных

Reading time5 min
Views380K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде.

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Total votes 442: ↑438 and ↓4+434
Comments352

Автоматическая генерация ресурсов для приложений Android с помощью скриптов для Adobe Photoshop

Reading time11 min
Views12K

Предисловие


При разработке для Android, как известно, нужно закладываться на то, чтобы создавать ресурсы подо все возможные пиксельные плотности. Изначально таких плотностей было только три: ldpi, mdpi и hdpi. Однако прогресс на месте не стоит: пиксельные плотности экранов растут до невменяемых значений, а Google тем временем тихой сапой приставляли буковку «x» и уже добрались до xxxhdpi, получив в итоге целых шесть основных конфигураций экрана. Это означает, что если играть по правилам, то нужно сохранять полдесятка ресурсов на одну иконку. Но и это еще не все, ведь некоторые ресурсы имеют несколько различных состояний. Кнопки на панели действий (action bar) имеют два состояния, и это еще куда ни шло, но обычные кнопки их имеют куда больше.

Выходов несколько: можно замучить художника, можно плюнуть на поддержку многих плотностей и надеяться, что система их как-нибудь сама отмасштабирует, а можно воспользоваться тем, что программисты любят делать больше всего: автоматизацией. Есть разные инструменты, которыми можно осуществить это дело. Самым продвинутым, наверное, является Android Asset Studio. Это очень толковый инструмент, но, разумеется, иконки там рисуются только для стандартных случаев, а, если нужно сделать кнопки со своими уникальными стилями, он тут нам не помощник. И вот тут нас выручит поддержка скриптов в небезызвестном инструменте: Adobe Photoshop. Ради того, чтобы упростить весь процесс, ваш покорный слуга для себя написал несколько инструментов на подобный случай и теперь делится ими с читателями. Как их использовать, и как они работают, я и описываю далее. Все исходники лежат на BitBucket, а здесь я расскажу основные моменты и покажу некоторые хитрости работы со скриптами Photoshop, которые могут быть неочевидны начинающим. На всякий случай отмечу, что писал их для Photoshop CS6.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments11

Runscope: удобный тул для тестирования API

Reading time3 min
Views32K

Back-end не всегда функционирует так идеально, как указано в API-спецификации. Например, кто-нибудь забывает внести обязательный параметр в JSON-строку выдачи или вместо «0» решает вписать null. Если такие данные проникают в мобильное приложение, последствия могут быть самые неприятные.
Сегодня я расскажу об инструменте, который используется для выявления таких случаев. Это Runscope.
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments8

Information

Rating
Does not participate
Location
Петрозаводск, Карелия, Россия
Date of birth
Registered
Activity