Search
Write a publication
Pull to refresh
68
0
Nagg @Nagg

Разработчик

Send message

«Что нового в Swift 2?» на примерах

Reading time16 min
Views37K


Swift 2 сфокусировался на улучшении самого языка, взаимодействия с Objective-C и повышении производительности компилируемых приложений. Новые возможности Swift 2 представлены в 6 различных областях:

  • фундаментальные конструкции языка, такие, как enum , scoping (область действия), синтаксис аргументов и т.д.
  • сопоставление с образцом (pattern matching)
  • проверка доступности (availability checking)
  • расширения (extensions) протокола
  • управление ошибками (error handling)
  • взаимодействие с Objective-C

Я буду рассматривать новые возможности Swift 2, сопровождая их примерами, код которых находится на Github.
Читать дальше →

Легендарные книги Амазона. Продолжение темы «Elements of Programming Interviews: The Insiders' Guide»

Reading time1 min
Views9.7K
Добрый день, Хабр!

В начале лета мы уже говорили об одной из легенд Амазона «Elements of Programming Interviews: The Insiders' Guide».

imageКнига продолжает занимать первые места в рейтинге Амазона, но в сентябре 2015 года авторы выпустили еще одну книгу, которая тоже сразу стала бестселлером.

Elements of Programming Interviews in Java: The Insiders' Guide
Читать дальше →

Критическое отличие компиляции дерева выражений в Visual Studio 2015

Reading time3 min
Views15K
После перехода на Visual Studio 2015 столкнулся с неприятным и довольно критичным отличием в компиляции одного и того же кода старой версией студии и новой.

Суть его состоит в том, что при генерации дерева выражений Visual Studio 2015 немного по другому генерирует результат, а именно вставляет операнд Convert() для явного приведения типов, которые могут в общем-то приводиться неявно.
Читать дальше →

Три шага, которые помогут в борьбе с недостатком мотивации

Reading time4 min
Views23K


Послушайте.
Я все прекрасно понимаю.
Вылезти из-под одеяла с утра нелегко.

Чтобы этого не делать, найдется множество оправданий, но «У меня сегодня просто нет мотивации» – это уже чересчур.

Так вот что я дальше сделаю:
Я расскажу о том, почему сказать такое – это глупость.
И я помогу вам справиться с недостатком мотивации.
Идет?
Читать дальше →

Как исправить осанку с помощью Kickstarter'а: подборка интересных «неврологических» проектов

Reading time5 min
Views21K
Заболевания спины и позвоночника — массовая проблема и сегодня, и в обозримом будущем, и каждый по-своему будет ее решать в зависимости от опыта, знаний, советов врачей или друзей. В качестве превентивной меры мы также вольны выбирать хоть электронные корректоры, хоть специальные датчики дыхания, хоть подушки с пульсометром, хоть корсеты, и на все это когда-то собирались деньги на краудфандинговых площадках.



Под катом — немного ссылок, гифок, фотографий и подробностей
Читать дальше →

Как работает реляционная БД

Reading time51 min
Views559K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →

Не пора ли реляционным базам данных на свалку истории?

Reading time10 min
Views32K
Здравствуйте, меня зовут Дмитрий Карловский и я… антиконформист, то есть человек, который не держится за свои привычки и всегда готов их поменять, если в том есть необходимость. Например, как и многие разработчики, я начинал изучение баз данных с реляционных. Хотя реляционная алгебра и довольно красива в своей простоте, я постоянно ловил себя на мысли, что пытаюсь впихнуть круглую фигуру в квадратное отверстие и получалось как-то не герметично.



Нет, я не буду рассказывать вам про MongoDB или ещё какую неполноценную «убийцу SQL». Статей на тему «SQL vs NoSQL» сравнивающих на самом деле реляционные субд с документными и так полно:


Но у большинства из них есть фатальный недостаток — авторы просто не в курсе, что моделей данных в СУБД есть куда больше, чем два упомянутых: от узкоспециализированных «словарей», то универсальных «графов». А популярные «реляционные» и «документные» находятся лишь где-то по середине между универсальностью и специализированностью.

Давайте сравним типичных представителей упомянутых типов СУБД (от большего к меньшему).

  • Популярность: Oracle, MongoDB, Redis, HBase, OrientDB.
  • Функциональность: OrientDB, Oracle, MongoDB, HBase, Redis.
  • Скорость: очень сильно зависит от задачи, данных и реализации приложения. Я пересмотрел кучу бенчмарков, везде всё по разному.
Читать дальше →

Как беларус 3d принтер растаможивал

Reading time2 min
Views16K
В настоящее время наблюдается бум интереса к новому виду техники — 3d принтерам. Не обошел этот интерес и меня. Долгое время присматривался к моделям типа RipRap на китайских сайтах, но цена в более, чем 500$ отпугивала. Тогда казалось, что главная проблема будет только в превышении лимита 200 евро для товаров личного потребления, но реальность оказалась другой.

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

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

Reading time8 min
Views19K


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

Как же наполнить свой повседневный ритм жизнь этой небольшой, но весьма весомой изюминкой — следовать своей мечте?
Читать дальше →

Грокаем RxJava, часть третья: Реактивность с пользой

Reading time5 min
Views50K
В первой части мы прошлись по основам RxJava. Во второй части я показал вам потенциал операторов. Но, быть может, всего показанного мною всё ещё недостаточно для того, чтобы убедить вас. В таком случае я покажу вам ещё несколько полезностей RxJava, которые должны стать решающим аргументом в мою пользу.

Обработка ошибок


До настоящего момента мы полностью игнорировали такие методы Observable, как onComplete() и onError(). Данные методы вызываются в момент, когда Observable прекращает порождать новые данные — либо потому, что ему нечего больше порождать, либо потому, что произошла ошибка.
Самый первый наш Subscriber следил за onCompleted() и onError(). Давайте сделаем что-нибудь полезное в этих точках:

Observable.just("Hello, world!")
    .map(s -> potentialException(s))
    .map(s -> anotherPotentialException(s))
    .subscribe(new Subscriber<String>() {
        @Override
        public void onNext(String s) { System.out.println(s); }

        @Override
        public void onCompleted() { System.out.println("Completed!"); }

        @Override
        public void onError(Throwable e) { System.out.println("Ouch!"); }
    });

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

Редактор Urho3D (часть 1)

Reading time5 min
Views18K
Продолжаем разбираться с движком Urho3D. На этот раз я хочу остановиться на редакторе. Он достаточно прост в использовании, но некоторые моменты определенно требуют пояснений, а официальная документация их не раскрывает. Ну и заодно напишем небольшую игрушку. Приступим.


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

Основы Urho3D

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

image

Что это за зверь?


Не будет преувеличением сказать, что Urho3D по возможностям сопоставим с Unity3D и работать с ним так же легко. При этом он бесплатен без каких-либо оговорок (лицензия MIT), доступен для многих платформ (Windows, Linux, Mac OS X, Android, iOS, Raspberry Pi, HTML5), невероятно быстр и легковесен. Позволяет писать игры на AngelScript (синтаксис похож на C#), LUA и C++. Если вы заинтересовались, то добро пожаловать под кат.
Читать дальше →

Warning'и для фрилансера

Reading time7 min
Views19K
Краткий перечень «граблей» и не совсем очевидных истин, с которыми мне пришлось столкнуться за почти 12 лет удаленной работы техническим и научным журналистом.
Читать дальше →

Android Process: Я тебя породил, я тебя и …

Reading time12 min
Views40K


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

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

Прошлое и настоящее SSL-сертификатов

Reading time9 min
Views38K


Появление SSL


SSL (Secure Sockets Layer), семейство транспортных криптографических протоколов, известно примерно с 1994 года (первые работы по использованию средств криптографии в качестве транспорта для уже известных протоколов проводились и раньше).

Последний протокол семейства, SSL v3, в июне 2015 года в RFC7568 объявлен устаревшим. Взамен него надлежит использовать новые версии семейства SSL, протоколы TLS (Transport Layer Security) версии 1.2 или старше (на момент написания этого текста).

Оба протокола используют так называемый сертификат открытого ключа стандарта X.509, который не вполне корректно принято называть сейчас SSL-сертификатом. Стандарт известен с 1988 года. Сертификат открытого ключа, успешно использовавшийся на протяжении всего прошедшего времени, успел продемонстрировать свои сильные и слабые стороны (о них сказано ниже).
Читать дальше →

Рендеринг в MAPS.ME

Reading time9 min
Views16K


Всем привет! Сегодня я бы хотел рассказать о рендеринге, который не имеет отношения к компьютерным играм, анимационным фильмам или промышленным системам проектирования. Речь пойдет о движке для рендеринга карт в реальном времени для проекта MAPS.ME. В данном посте я опишу общие принципы работы движка и некоторые грабли, на которые мы наступили (и те, которые успешно обошли). Если вы занимаетесь рендерингом больших объемов данных, в особенности картографического характера, наш опыт, надеюсь, будет полезен в ваших проектах или, по крайней мере, любопытен. Всех заинтересовавшихся прошу под кат.
Читать дальше →

Быстрый фильтр каталога для интернет-магазинов на основе битмапов Redis

Reading time4 min
Views62K


Не секрет, что каждый интернет-магазин должен помогать пользователям найти то, что им нужно. Особенно, если товаров у вас много (> 10). На помощь приходит каталогизация товаров, но разбить товары по категориям — полдела. Товары внутри категории нужно уметь фильтровать по их свойствам. Особенно, если товары у вас разношёрстные, например, одежда, электроника, ювелирные изделия и т.д. И тут любой разработчик, пишущий свой e-commerce продукт, сталкивается с неприятными реалиями жизни: у товаров могут быть совершенно разные свойства, у некоторых товаров они могут отсутствовать, некоторые товары по одному свойству могут попадать под разные значения (цвет платья то ли синий, то ли голубой, соответственно, неплохо бы его показать и по синему и по голубому цвету). Проще говоря, у вас EAV. Бывает ещё, что EAV вам диагностирует заказчик ближе к концу разработки, а то и просит добавить фильтр по динамическим свойствам уже после релиза.
Читать дальше →

Литературно-фантастические новинки 2014 года. Чем пополнить домашнюю библиотеку фантастики

Reading time5 min
Views83K


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

И если в суете будней вы подзабросили чтение книг, то это вы зря. Высокие технологии пока не задушили писательское ремесло (надеемся, этого и не произойдёт), и ежегодно выходит немало интересных книг, достойных того, чтобы выкроить полчаса-час в день на чтение. Быть может, эти книги станут для вас некой отправной точкой. Кстати, в конце ноября теперь уже прошлого года Урсула Ле Гуин сказала:

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

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

Погода в доме и на улице — как обеспечить здоровый микроклимат вокруг себя?

Reading time5 min
Views11K


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

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

Быстрый старт Data Binding в Android

Reading time8 min
Views67K

Введение


Профессионально андроид-разработкой занимаюсь чуть больше года, до этого разрабатывал по Windows Phone и мне понравилась возможность связывать данные из вью модели с самим View при помощи механизма Bindings. А после изучения RX, многие задачи стали решаться более чисто, вью-модель полностью отделилась от View. Она стала оперировать только моделью, совсем не заботясь о том, как она будет отображаться.

В Android такой строгости я не заметил, Activity или Fragment как простейшие представители контроллера чаще всего имеют полный доступ как ко View, так и к модели, зачастуя решая, какой View будет видим, решая таким образом чисто вьюшные задачи. Поэтому я довольно радостно воспринял новость о появлении Data Binding в Android на прошедшем Google IO.



Пока что это только бета релиз, но уже можно протестировать функционал и увидеть направление, в котором двигаются разработчики из Google.
Читать дальше →

Information

Rating
4,436-th
Registered
Activity