Интересные публикации из тематических хабов на Хабрахабре
Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.
Исходная информация - http://www.habrahabr.ru/text/. Данный дневник сформирован из открытого RSS-источника по адресу http://habrahabr.ru/rss/text/, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты. По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.[Обновить трансляцию]
У компаний с большим портфелем продуктов со временем встает вопрос упрощения работы над ними. В Mail.Ru Group их около 40, не считая мобильных и планшетных версий, а также огромного игрового направления. Наше подразделение Почты и Портала занимается почти половиной из этих сорока. Что вместе с сопроводительными приложениями, мобильными сайтами и промо-ресурсами — за сотню проектов. Сейчас мы ведем их поэтапное обновление и унификацию вокруг нескольких гайдлайнов. На примере одного из них я расскажу о том, как перестроить дизайн-процесс от классического «прототип -> макет -> верстка -> код» для каждого экрана к более эффективному и современному, основанному на фреймворках.
Вашему вниманию будет представлен паттерн для создания «мини-DSL» на Scala для оперирования единицами измерения. Одну из реализаций этого паттерна можно увидеть в стандартной библиотеке Scala, а именно — в scala.concurrent.duration._. Пример из документации по Akka[1]:
implicit val timeout = Timeout(5 seconds)
В данном случае Int неявно конвертируется в объект с методом «seconds», который затем возвращает требуемый функции тип.
Далее будет рассмотрено пошаговое создание «мини-DSL» для оперирования частотой. В конечном итоге планируется получить возможность задавать частоту естественным образом, например, 5 kHz. Читать дальше →
Xamarin — очень многообещающей продукт, который помогает вести кроссплатформенную разработку на Android и iOS на языке C#. На мой взгляд, незаслуженно упускаемый из виду сообществом мобильных разработчиков. Язык C# можно легко заменить на F#, а в качестве платформ взять еще и OSX, и Windows Phone. В общем, возможностей и перспектив масса, самых интересных.
Это уже третья моя статья на хабре, посвященная Xamarin. В ней мы разработаем простое, но наглядное приложение (в жанре Hello Word) с использованием VK.com API. Как обычно, исходники выложены на GitHub и приведены в конце статьи.
Итак, в чем, собственно, принципиальная разница для задач, с которыми придется столкнуться разработчику, создающему native-приложение Android, поддерживающее VK.com, и разработчику, решающему ту же самую задачу с Xamarin? Читать дальше →
Почтовый сервер CommuniGate Pro достаточно известен и популярен в России. Это действительно производительный и очень функциональный почтовый сервер (сейчас, впрочем, уже и VOIP/Messanger/etc). Впрочем, недостатки у него тоже есть. Закрытый код и ощутимо дорогая лицензия. Она ограничивает не только количество пользователей, но время обновлений. К сожалению, далеко не во всех ситуациях покупка обновленной лицензии возможна или целесообразна. Однако интернет меняется, в протоколах находят уязвимости, поддержку старых протоколов отменяют и с этим тоже как-то надо жить.
Задача в том, чтобы дать возможность legacy пользователям отправлять почту с авторизацией и поддержкой TLS1.1/TLS1.2, не внося каких-то серьезных архитектурных изменений в существующую систему. Под катом добавление поддержки TLS1.1+ для старых версий <5.1.3 СommuniGate c помощью Postfix и LDAP. Читать дальше →
Меньше двух недель осталось до Дня ASP.NET 28 февраля. Наша команда уже проверяет звук и печатает бейджики. Наши спикеры дорисовывают свои презентации и оттачивают формулировки. А я расскажу о том, как мы будем способствовать обретению сверхчеловеческих программистских способностей у наших участников.
Мне представляется, что успех разработчика заключается в трех вещах: практических профессиональных знаниях, высокой жизненной энергии и непрерывном образовании (все заметили, что чтобы оставаться на месте приходится бежать?).
Как нам удалось эти бенефиты включить в корзину для участника — читайте под катом. Читать дальше →
03-04 Апреля в Москве и 29-30 мая — в Санкт-Петербурге пройдет серия семинаров CLRium. У данного семинара нет определенной целевой аудитории, мы рады всем. И начинающим свою карьеру, разработчикам, и махровым, повидавшим виды, архитекторам.
Как люди и хотят, у нас будут не просто технические доклады, без воды и маркетинга. У нас будет много тем, одна из которых — настоящая разминка для мозгов. Мы будем по дампам памяти понимать как устроена CLR и как с ней взаимодействовать не привычным для всех способом — напрямую.
У нас будет:
Максимально глубокие, отборные доклады по редко-раскрываемым вопросам
Целый вечер, посвященный исключительно ядру .Net. Как с ним работать «без перчаток», напрямую, со структурами в памяти, без рефлексии.
Чем мы гордимся:
Наш материал не встретишь в сети Интернет: он полностью авторский
Материал освещает самые интересные области .Net, которые почему-то не покрыты материалом.
Мы не берем лишних денег с вас и потому у нас — самая дешевая конференция и всех существующих. 2,000 рублей за два дня — такого не предлагает никто. Это ведь как в магазин сходить.
Анатомия CLR
В данном вопросе я варюсь уже около года и достаточно плотно изучил как устроен CLR в качестве структур данных чтобы рассказать вам о них максимально подробно. Интерес к данному мероприятию должен возникнуть как минимум потому что эта тема практически не освещена в Интернете и знания, которые вы получите, помогут Вам взглянуть на платформу под совершенно новым углом. Также данный раздел знаний по CLR является чрезвычайно интересным. Microsoft с каждым днем давит на нас словом «безопасность». А так ли она безопасна, эта CLR? А так ли много там «магии», позволяющей нам не думать о безопасности? Это авторский проект и является результатом исследований с отладчиком: каково строение.Net объектов в памяти и что с этим можно сделать.
Во-первых мы посмотрим на реальное строение объектов в памяти
Во-вторых мы исследуем структуры данных в памяти, относящиеся к построению виртуальных методов, реализации интерфейсов и классов (этого не было на CLRium #1)
Далее, на основе полученных данных мы построим прокси-тип в памяти
И исследуем возможность сделать множественное наследование в .Net
Также попробуем совместить в одном объекте и Java и .Net объект, запустив одновременно оба рантайма (привет, Xamarin)
После чего, воспользовавшись полученным опытом расшарим объект .Net между процессами так чтобы он одновременно существовал бы в обоих мирах.
Полученные знания мы используем для ответа на вопрос: какие стандартные конструкции языка приводят к проседанию производительности и каким образом?
Подключим компилятор и сделаем собственный JIT с блекджеком .
Добрый день.
Издательство электронного журнала «Радиоежегодник» сделало подарок всем любителям Arduino. Вышел новый номер журнала, полностью посвященный этой платформе. Для любителей Arduino
По всем каналам пролетела новость, небезынтересная для технических специалистов. А также, для разгадывателей головоломок и кроссвордов. Правило, которое иллюстрирует данный факт, говорит: проблема не всегда отыскивается под фонарём, где светло и удобно искать. Уязвимость и «жучки» скрываться могут и на другом уровне поиска. Страхуясь от уязвимостей в программах, надо не забывать, что они могут быть встроены в аппаратуру.
Далее — цитируем «РБК».
«Касперский» раскрыл уникальную американскую шпионскую программу
Агентство национальной безопасности США придумало скрывать шпионские программы в жестких дисках, производимых Western Digital, Seagate, Toshiba и другими ведущими изготовителями, получая таким образом доступ к информации на большинстве компьютеров в мире. Об этом сообщает Reuters со ссылкой на исследование «Лаборатории Касперского» и показания бывших сотрудников АНБ.
Привет, меня зовут Рэймонд, и я пишу плохой код. Ну, не совсем плохой, но я точно не следую всем «лучшим практикам». Однако давайте я расскажу вам, как один проект помог мне начать писать код, которым я могу гордиться.
Как-то в выходной я решил отказаться от использования компьютера. Но ничего не вышло. Я наткнулся на Star Wars API. Этот простой интерфейс основан на REST, и с его помощью можно запрашивать информацию о персонажах, фильмах, космических кораблях и других вещах из вселенной SW. Поиска нет, но сервис свободный. Читать дальше →
Понедельник, 16 Февраля 2015 г. 22:57
+ в цитатник
В данной статье я расскажу, как быстро добавить в ваше приложение для Android боковое меню (aka Navigation Drawer) в стиле Material Design. Для этого мы воспользуемся библиотекой, любезно предоставленной Mike Penz.
У вас получится Navigation Drawer, который:
Соответствует последним рекомендациям по дизайну (Google Material Design Guidelines);
Поддерживает использование нескольких Drawer (можно выдвигать второй справа);
Поддерживает использование бейджей;
Имеет простой и понятный интерфейс (API);
Может выползать как под, так и поверх Status Bar;
Позволяет менять иконки, цвета, бейджи во время выполнения;
Использует AppCompat support library;
Работает, начиная с API 14.
Помимо этого, новички обучатся интеграции сторонних библиотек в свой проект, что крайне полезно, учитывая их грандиозное разнообразие на Github.
Понедельник, 16 Февраля 2015 г. 22:44
+ в цитатник
Хочу более подробно разобрать задачу из публикации «Олимпиады по программированию среди школьников», а также показать, что она действительно нетривиальная. Хотя в результате программа и состоит из трех присваиваний и двух сравнений, прийти к этому результату не так уж и просто, тем более, если нет под рукой справочника по аналитической геометрии.
Понедельник, 16 Февраля 2015 г. 19:55
+ в цитатник
— У нас дыра в безопасности.
— Ну, хоть что-то у нас в безопасности.
Анекдот
Если вы Windows-пользователь, то вам должны быть знакомы всплывающие каждый второй вторник месяца окошки, рапортующие об установке «критических обновлений безопасности». Microsoft прилагает немалые усилия, постоянно работая над исправлениями уязвимостей в своих операционных системах, но оно того стоит: в мире, где число кибератак день ото дня только возрастает, ни одна лазейка в обороне наших компьютеров не должна оставаться открытой для потенциальных злоумышленников.
Недавнее обсуждение в списке рассылки, посвящённого 66192-й SVN ревизии ReactOS, показало как это легко — внести в код ядра критическую уязвимость. Я буду использовать этот случай как пример простой, но влияющей на безопасность ошибки, а также для наглядного представления некоторых мер, которым необходимо подвергать код ядра, если вы действительно хотите получить безопасную систему.
Понедельник, 16 Февраля 2015 г. 19:23
+ в цитатник
Astra Linux Common Edition (релиз «Орел») является «гражданским» аналогом основного продукта линейки операционных систем компании РусБИТех — операционной системы в погонах Astra Linux Special Edition (релиз «Смоленск»). Если распространение ОС специального назначения ограничено, то дистрибутив версии общего назначения доступен для загрузки.
представляет собой операционную систему класса Linux, функционирующую на аппаратной платформе с архитектурой x86-64, включающую в свой состав компоненты свободного программного обеспечения и авторские решения разработчиков операционной системы Astra Linux Common Edition, позволяющие расширить возможности ее применения в качестве серверной платформы или на рабочих местах пользователей.
В статье описан личный опыт использования Astra Linux CE в качестве «домашней» операционной системы. Скриншоты
Понедельник, 16 Февраля 2015 г. 19:15
+ в цитатник
Эта публикация может быть интересна тем, кто собирается заняться или уже занимается разработкой своей первой мобильной игры и при этом ждет от нее какого-то финансового «выхлопа».
Цели статьи
Предостеречь других от повторения собственных ошибок;
Получить взгляд со стороны на извлеченные выводы.
О себе
В недавнем прошлом я несколько лет руководил небольшой веб-студией. Мы старались делать не шаблонные сайты, корпоративные веб-сервисы. Иногда получалось довольно успешно. Также выпустили пару мобильных приложений с привлечением программистов на фрилансе. Прошлой осенью для меня пришло время сменить род деятельности. Вообще я меняю сферу работы примерно каждые 3-4 года, это не самоцель, просто область, в которой добиваюсь каких-либо успехов, начинает быть в тягость.
Решил попробовать себя в сфере разработки мобильных игр. Причем в новом для себя качестве — на уровне собственного стартапа. Так как я уже далеко не в первый раз приступал к набиванию шишек в мало известной для себя области, то знал, что с большой долей вероятности первый проект будет:
дольше, чем я предполагал;
труднее, чем я предполагал;
дороже, чем я предполагал.
Поэтому в качестве первой игры нужна была простая, но оригинальная идея, чтобы с минимальными временными и финансовыми потерями разобраться хотя бы на базовом уровне с подводными камнями сферы мобильного игростроения. Читать дальше →
Понедельник, 16 Февраля 2015 г. 19:02
+ в цитатник
Всем привет!
Сегодня вышла очередная еженедельная сборка браузера Vivaldi под номером 1.0.105.7. Помимо исправленных багов и постепенного улучшения работы браузера, в данной сборке появились и некоторые давно ожидаемые пользователями функции.
Прежде всего, в тестовом пока режиме была добавлена панель закладок, на которой вы можете размещать свои ссылки, указав в настройках панели соответствующую папку из уже имеющихся, или создав свою собственную. Также вы можете поменять размещение данной панели, перенеся её в нижнюю часть окна браузера. Естественно, эту панель можно и совсем отключить, если она не нужна :)
Также данная сборка предлагается и в 32-битной версии для Linux.
По многочисленным просьбам мы добавили возможность открывать закладки или веб-сайты с Экспресс-панели в фоновом режиме кликом средней кнопки мыши (или колёсиком).
Ещё одна хорошая новость для любителей управлять браузером с помощью клавиатуры: мы добавили функцию восстановления недавно закрытой вкладки с помощью клавиатурных команд (CTRL+Z и CTRL+SHIFT+T).
Ну и, наконец, значительно расширился список языков, на которые переведён интерфейс браузера. Теперь список локализаций насчитывает 22 языка, а к имевшимся ранее были добавлены: Читать дальше →
Понедельник, 16 Февраля 2015 г. 19:02
+ в цитатник
Рассмотрим, в качестве примера, следующую ситуацию. У нас имеется класс User с полями, описывающими пользователя. Имеется класс Phone, который является родительским для классов CellPhone и SatellitePhone. В классе User есть поле содержащее список телефонов пользователя. В целях уменьшения нагрузки на БД мы сделали этот список «ленивым». Он будет загружаться только по требованию.
Выглядит это все примерно так
public class User {
...
@OneToMany(fetch = FetchType.LAZY)
private List phones = new ArrayList();
public List getPhones() {
return phones;
}
}
public class Phone {
...
}
public class CellPhone extends Phone {
...
}
public class SatellitePhone extends Phone {
...
}
В такой конфигурации при запросе списка телефонов конкретного пользователя мы можем получить как список проинициализированных объектов-телефонов (например, если они уже есть в кэше), так и список proxy-объектов.
В большинстве ситуаций нам не важно с чем именно мы работаем (реальным объектом или его proxy). При запросе какого-либо поля какого-либо объекта — proxy-объект автоматически проинициализируется, и мы получим ожидаемые данные. Но если нам нужно узнать тип объекта, то все идет наперекосяк. Почему так происходит и как моя команда решила эту проблему
Понедельник, 16 Февраля 2015 г. 17:47
+ в цитатник
Поводом для этой статьи послужил аудит безопасности в одном интернет-проекте. Заказчик попросил разобраться с их системой безопасности и проверить, насколько они подвержены тем или иным атакам. При этом, нас уверяли, что от DDoS-атак они защищены полностью и нет повода беспокоиться, так как они под защитой одного из лидеров рынка – Incapsula.
Тут-то нас и ждало большое удивление — заказчик был абсолютно не защищен.
Давайте разберемся что же произошло, но сначала немного теории. Читать дальше →
Мне понравилась дискуссия, развернувшаяся по поводу этой статьи. Однако мне более интересен немного иной аспект дискутируемой проблемы, а именно: нужна ли система компьютерной алгебры на смартфоне или планшете, или это такой странный таракан в голове околоайтишного инженера? Читать дальше →
Понедельник, 16 Февраля 2015 г. 14:21
+ в цитатник
Ненароком я породил большую дискуссию, касающуюся того, допустимо ли использовать в Си/Си++ выражение &P->m_foo, если P является нулевым указателем. Программисты разделились на два лагеря. Одни уверенно доказывали, что так писать нельзя, другие столь же уверенно утверждали, что можно. Приводились различные аргументы и ссылки. И я понял, что нужно внести окончательную ясность в этот вопрос. Для этого я обратился к экспертам Microsoft MVP и разработчикам Visual C++, общающимся через закрытый список рассылки. Они помогли подготовить эту статью, и я представляю её всем желающим. Для нетерпеливых: этот код не корректен. Читать дальше →
Понедельник, 16 Февраля 2015 г. 13:32
+ в цитатник
Поскольку я давно собрал для себя ЧПУ станок и давно и регулярно эксплуатирую его для хоббийных целей, то мой опыт, надеюсь, будет полезен, как и исходные коды контроллера.
Постарался написать только те моменты, которые лично мне показались важными.