Search
Write a publication
Pull to refresh
27
0
Михаил Мельник @mike114

User

Send message

Обратная совместимость в iOS SDK

Reading time5 min
Views5.4K

Apple никогда официально не заявляла о несовместимостях между разными версиями своих OS. И всё же каждый крупный релиз они что-то меняют в ядре операционки — фиксят баги и привносят новые. И иногда именно фикс багов, с которыми все привыкли жить, добавляет новых трудностей – в iOS 3 ты не задумываясь добавлял 20 пикселей там, где iOS 4 добавляет их сама, и в итоге твоя модальная вьюшка уезжает на 20 лишних пикселей вверх.

Но это не самая страшная разновидность несовместимостей – их можно продебажить, пофиксить и выпустить новый билд. Также легко устраняется, например, ставшее уже традиционным изменение стандартного контрола для проигрывания видео – в каждой новой iOS Apple что-то добавляет, модифицирует, причём полностью забивая на старый интерфейс без всяких там deprecated за пару версий до выпиливания – так, например, в iOS 3 он был обычной вьюшкой от UIView, а в iOS 4 стал резко вью-контроллером, а старая MPMoviePlayerView исчезла.

Но это тоже подвластно дебагеру, на форумах можно за 10 секунд найти готовый гибридный код фикса такой, что код будет работать везде.

Но относительно новая iOS 5 принесла ещё больше неожиданностей. Об этом свидетельствует хотя бы тот факт, что в последних релизах популярных айфон-приложений обязательно присутствует строчка “Fixed iOS 5 issues” – средний пользователь айпада находит примерно по 10 апдейтов приложений каждый день. Ниже я расскажу о неочевидной проблеме обратной совместимости iOS 4 и iOS 5, с которой мне пришлось столкнуться на своей шкуре и сполна хлебнуть горя.
Читать дальше →

О некоторых особенностях Windows 8 и WinRT(метро)-приложений

Reading time4 min
Views32K
Речь пойдет о новом типе приложений, которые предназначены для новой операционной системы Windows 8 и нового меню “Пуск”.



Хочу сразу отметить, что несмотря на все написанное ниже — технология мне понравилась, однако традиционный подход Microsoft — “сделать все хорошо, но что-нибудь наиболее часто используемое — плохо” — тут наблюдается во всей красе.

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

Прибитый к низу футер своими руками

Reading time10 min
Views223K
Все, кто привык к полноценно оформленным страницам сайтов, предпочитает вид «прибитого» (прилипающего, sticky) к низу футера страницы. Но есть в интернете две беды: нерастущие вниз поля ввода и неприбитые (к низу окна) футеры. Например, когда открываем короткие по высоте страницы типа habrahabr.ru/settings/social — сразу бросается в глаза, что информация, призванная быть в нижней части окна просмотра, прилипает к содержанию и находится где-то посередине, а то и в верхней части окна, когда внизу — пусто.

Так, вместо того, чтобы .
Данное пособие для начинающих верстальщиков покажет, как за 45 минут сделать «прибитый» футер, исправив недоработки даже такого уважаемого издания, как Хабр, потягаться с ним в качестве исполнения своего перспективного проекта.
как сделать, чтобы трава была зелёная, а футеры - прибитыми

Сниппеты для Twitter Bootstrap

Reading time1 min
Views97K
Фреймворк Twitter Bootstrap уже давно стал одним из самых любимых средств ленивых сторонников быстрого прототипирования и разработки интерфейсов, а где популярность там много разных сторонних интересных штук.
На этот раз я случайно попал на пополняющуюся коллекцию сниппетов.
Думаю многим пригодится, сейчас там набор небольшой (23 штуки), но уже достаточно полезный чтобы поделиться.
Кликабельные картинки:

Интерфейс аля gmail



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

Обзор NoSQL систем

Reading time5 min
Views56K
Беспрецедентные объемы данных заставляют разработчиков и бизнес приглядываться к альтернативам реляционных баз данных, используемым вот уже более тридцати лет. В совокупности все эти технологии известны как «NoSQL базы данных».


Основной проблемой является то, что реляционные базы данных не могут справляться с нагрузками актуальными в наше время (мы говорим о high-load проектах). Есть три конкретные проблемных области:
  • горизонтальное масштабирование при больших объемах данных, например как в случае Digg (3 терабайта для зеленых значков, отображаемых, если ваш друг сделал dugg на статье) или Facebook (50 терабайт для поиска по входящим сообщениям) или eBay (2 петабайта в целом)
  • производительность каждого отдельного сервера
  • не гибкий дизайн логической структуры.
Читать дальше →

Креативное использование веб-шрифтов

Reading time14 min
Views33K

С помощью CSS-магии мы можем создавать красивые типографические эффекты и забыть о использовании изображений, в большинстве случаев. В этой статье мы создадим ряд симпатичных примеров веб-типографики, используя плагин jQuery — lettering.js, а также различные приемы CSS. В некоторых примерах мы также добавим переходы при наведении курсора мыши, чтобы сделать их немного более интерактивным.
Читать дальше →

Google выпускает J2ObjC, open-source конвертер кода Java в Objective-C для iOS-приложений

Reading time1 min
Views32K
Google представили выпуск open-source проекта J2Objc, собственный конвертер из исходного кода на Java в Objective-C для приложений на iPhone/iPad.

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

IMAP: трудности перехода

Reading time7 min
Views45K

Какие грабли зарыты в IMAP



Уже некоторое время IMAP работает в Почте Mail.Ru в полную силу, и я готов рассказать о том, с какими проблемами мы столкнулись при его запуске. Часть из них была связана с особенностями самого протокола и с его историей, другие были обусловлены спецификой взаимодействия IMAP с нашим хранилищем. Отдельная категория трудностей вызвана многообразием почтовых клиентов.

За подробностями — добро пожаловать под кат.
Читать дальше →

Легкий способ провалить тестирование

Reading time3 min
Views17K
Иногда тестирование не приносит нужного результата. То есть работа кипит, фичи проверяются, баги чинятся, даже какая-то статистика собирается, но после релиза оказывается, что продукт напичкан дефектами, как подсолнух семечками, — и пользователи, что характерно, плюются.
Кто виноват? Все виноваты, конечно, — и руководители, и программисты, и аналитики, но они сами пусть учат свои уроки.
Ну и тестировщики.
Тоже.
Виноваты.
Да?
Да. И дело часто не в технических каких-то проблемах, а во вполне человеческих. Нет, бывает, конечно, что восстание машин ломает все планы, или что изначально планы были невыполнимы. Но даже и в не форс-мажорной ситуации у тестировщика достаточно способов провалить тестирование, работая в поте лица.
Читать дальше →

Работа с новой версией Google Analytics v2 на примере Android приложения

Reading time4 min
Views26K
Не так давно был анонсирован новый SDK Google Analytics (далее GA) под мобильные платформы под версией 2. Сейчас он находится в состоянии бета-версии. Но любой может попросить Google дать доступ к инструментарию.



Мы в своём проекте уже попробовали новую версию, адаптированную под мобильные приложения. И я спешу поделиться впечатлениями и рассказать об использовании SDK на примере приложения под Android.
Читать дальше →

Проверь свой T-SQL код!

Reading time3 min
Views24K
SqlCodeGuard В далёком 2005 году я менял стек технологий с Java на .NET и поначалу в Visual Studio мне очень не хватало возможностей, которыми располагала IntelliJ IDEA. Пробуя различные плагины к студии, я остановился на ReSharper'е и по сей день его использую. Недавно стало интересно, есть ли похожие продукты для работы с SQL Server, а точнее с T-SQL кодом хранимых процедур. Собственно про один такой продукт я и хочу рассказать в этой статье.

Итак, SqlCodeGuard – это бесплатный addin для SQL Server Management Studio для статического анализа T-SQL кода. Ну и плюс пара-тройка других возможностей.

Основные возможности под хабракатом...

Искусственный интеллект как совокупность вопросов

Reading time4 min
Views77K
image
Когда мы рассуждаем о сильном искусственном интеллекте, то мы понимаем, что это не изолированный вопрос, не вещь в себе, а вопрос ответ на который подразумевает объяснение всех явлений, которые связаны с мышлением человека. То есть, ответив на вопрос о природе интеллекта, мы неизбежно должны будем ответить на такие вопросы как:

  • Что есть информация?
  • Как мозг представляет знания?
  • Что такое язык?
  • Какова роль языка в мышлении?
  • Как совершаются поступки?
  • Как осуществляется планирование?
  • Какова природа фантазий и воспоминаний?
  • Что такое мотивация?
  • Какова природа эмоций?
  • Откуда берется многообразие эмоциональных оценок?
  • Что есть смысл?
  • Как рождается мысль и какова ее природа?
  • Что такое внимание?
  • Что есть любовь?
  • Что есть гармония и красота?

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

Кто заказывал такси на Дубровку?

Reading time10 min
Views8.3K
Недавно мне довелось познакомиться с создателями сервиса GetTaxi, так что в этой статье я расскажу о том, как он появился и работает, а заодно проведу небольшую экскурсию по их офису.

Начать стоит с того, что компания совсем молодая. Ей едва исполнилось два года, но этот возраст — прям с самого рождения; осознанный и дееспособный возраст чуть меньше — около года. Все началось на земле обетованной, в Израиле — именно там находится главный офис компании и именно там создателям Шахару Вайсеру и Рои Мору впервые пришла идея как-нибудь “по-новому” организовать работу такси. Судя по всему, им это удалось — сейчас GetTaxi пользуется на родине большой популярностью, а сам сервис получил финансирование в размере 30 миллионов $, что позволило ему развиваться ещё более динамично. Недавно сервис появился в Москве и вот с этого места я начну поподробней.
Читать дальше →

Как обойтись без капчи?

Reading time2 min
Views130K
К сожалению, на многих сайтах без особой необходимости используют капчи. Хотя можно побороть спам и незаметными для пользователя способами. Особенно, капчу больно видеть на небольших коммерческих сайтах в форме обратной связи, поскольку, капча заметно снижает конверсию таких сайтов. Для больших сайтов, которые могут специально спамить, такие методы не применимы. Однако, в большинстве случаев, без капчи можно обойтись

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

Обзор JS-фреймворков. Путешествие через джунгли JavaScript MVC. Ч. 2

Reading time15 min
Views124K
(Окончание перевода статьи Эдди Османи о сравнении и выборе библиотеки для проекта со значительной ролью JS на клиенте.)
Содержание первой части:

■ Что такое MVC или, лучше сказать, MV*?
■ Когда нам нужен MV*-фреймворк JS?
■ Где же мы будем нуждаться в MV*, а где нет?
■ Проблема выбора: слишком много вариантов?
■ TodoMVC: общее приложение для обучения и сравнения
■ Предложенные нами критерии выбора фреймворка
■ Dojo и усложнение фреймворков на JavaScript
■ Коллекция TodoMVC (фреймворки, на которых сделаны реализации тестового приложения Todo)
Читать дальше →

Немного о многопоточном программировании. Часть 1. Синхронизация зло или все-таки нет

Reading time12 min
Views70K
Мне по работе часто приходится сталкиваться с высоконагруженными многопоточными или многопроцессными сервисами (application-, web-, index-server).
Достаточно интересная, но иногда неблагодарная работа — оптимизировать все это хозяйство.
Растущие потребности клиентов часто упираются в невозможность просто заменить железную составляющую системы на более современную, т.к. производительность компьютеров, скорость чтения-записи жестких дисков и сети растут много медленнее запросов клиентов.
Редко помогает увеличение количества нодов кластера (система как правило распределенная).
Чаще приходится запустив профайлер, искать узкие места, лезть в source code и править ляпы, которые оставили коллеги, а иногда и сам, чего греха таить, много лет назад.
Некоторые из проблем, связаных с синхронизацией, я попытаюсь изложить здесь. Это не будет вводный курс по многопоточному программированию — предпологается, что читатель знаком с понятием thread и context switch, и знает для чего нужны mutex, semaphore и т.д.
Читать дальше →

Перевод: Чему я научился за 30 лет программирования

Reading time5 min
Views78K
Оригинальная статья Джона Грэхем-Камминга.
Переведено и опубликовано с разрешения автора.


Я занимаюсь программированием уже более 30 лет, начиная с машин, уже устаревших (на процессорах Z80 и 6502) до современных, используя языки BASIC, ассемблера, C, C++, Tcl, Perl, Lisp, ML, occam, arc, Ruby, Go и многие другие.

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

Сравнительный анализ CMS: охота на оптимальную систему для создания корпоративных сайтов

Reading time14 min
Views95K
Здравствуйте!

Хочу поделиться результатом собственного исследования, проводимого мной на протяжении недели в среде существующих CMS. Цель у меня была проста и прагматична — выбрать лучшую систему для создания корпоративных сайтов. Такая необходимость возникла в связи с постоянно растущим количеством заказов на сайты. С одной стороны, это не может не радовать, а с другой — заставляет максимально тщательно и с полной ответственностью отнестись к выбору движка, которому и предстоит сопутствовать не слишком опытному программисту в вопросе создания сайтов.
Читать дальше →

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

Reading time28 min
Views86K
Постепенно в грязных подвалах мозга начинается структурироваться информация по госзакупкам и знаменитому 94 ФЗ. Довелось поработать со стороны заказчика и со стороны исполнителя, а также изучить опыт организации взаимодействия государства и бизнеса в США.
image

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

Нервных попрошу не смотреть.

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

Будущее в организации мероприятий

Reading time3 min
Views6.3K
Добрый день, уважаемые посетители Хабра.

В этом посте я хочу рассказать Вам о новых технологиях в организации мероприятий. Так уж получилось, что шесть лет назад imageя, дипломированный IT специалист, системный администратор с 10-летним стажем, сильно изменил свою жизнь и открыл свой собственный бизнес – Агентство Праздников «Князевъ». Как это так получилось – долгая история, и совсем не для этого поста. Скажу лишь, что новая работа захватила меня целиком, и за эти годы мы выросли из маленькой начинающей компании в ведущее агентство по организации корпоративных и частных мероприятий Санкт-Петербурга. И, несмотря на то, что новый бизнес был довольно далёк от IT мира, все эти годы я читал Хабр пытался применять в новой работе все инновации, которые находил, использовать все доступные мне устройства и гаджеты. О некоторых из них, например, о машине, делающей облака заданной формы, или о танцующих роботах, я бы и хотел Вам рассказать.
Дальше, давай видео!

Information

Rating
Does not participate
Location
New South Wales, Австралия
Date of birth
Registered
Activity