Pull to refresh
1
0
Send message

Вариативные функции в Go

Reading time3 min
Views9.2K
fade by clockbirds

Команда Mail.ru Cloud Solutions перевела статью о вариативных функциях в Go. Ее автор рассказывает, чем вариативные функции отличаются от обычных и как их создавать.
Читать дальше →
Total votes 14: ↑9 and ↓5+9
Comments4

От комментария на Хабре к уязвимости в антивирусе Dr. Web

Reading time3 min
Views24K
Относительно недавно на хабре появилась статья «Стилер паролей в антивирусном ПО Avira Free Antivirus» от пользователя Veliant. Автор обнаружил, что в стандартной поставке упомянутого антивируса присутствует компонент, который позволяет простым образом извлечь пароли из хранилища браузера Chrome.

В комментариях произошла дискуссия, можно ли считать это уязвимостью. Но меня зацепил один комментарий автора:
нельзя ли это было реализовать например в виде DLL, которая при вызове её API проверяла бы цифровую подпись вызывающей программы?

Дело в том, что буквально перед этим я исследовал несколько программ, которые точно так же полагались на проверку цифровой подписи. И такую проверку было очень легко обойти.


Цифровая подпись файла соответствует только самому исполняемому файлу, но работающая программа это не только исполняемый файл. Существует несколько способов повлиять на работу программы, не меняя исполняемый файл: можно подменить библиотеки, которые загружаются или сделать инъекцию кода прямо в памяти.

Я посмотрел на профиль автора: «Работает в: Доктор Веб». А что если посмотреть, не используется ли в продуктах этой компании проверка, о которой говорит автор? Я решил посмотреть и, спойлер, нашел уязвимость, которая позволяет повысить свои привилегии до системных пользователю Dr.Web Security Space для Windows.
Читать дальше →
Total votes 79: ↑78 and ↓1+101
Comments42

Рабочий кабинет инженера в третьем поколении

Reading time5 min
Views25K
Моё почтение, Господа и Дамы! В связи с продвижением удалённой работы в массы многие делятся своей организацией рабочих мест.

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



!Осторожно! В статье от заголовка до самого конца есть ирония, самоирония и специфическая подача материала.

Читать дальше →
Total votes 31: ↑29 and ↓2+41
Comments121

Критика 1С

Reading time16 min
Views68K
Хотелось бы, чтобы эту статью прочитали сотрудники фирмы 1С: программисты, разработчики конфигураций, всякие начальники отделов, и может быть даже самый главный.

Я хочу критиковать 1С платформу и конфигурации, потому что есть проблемы, а в сети какая-то тишина, как будто всех все устраивает. Простите, но не устраивает. Хочу, чтобы статью прочитали обычные программисты 1С (не сотрудники фирмы 1C), и может быть даже поддержали меня.
Читать дальше →
Total votes 134: ↑120 and ↓14+106
Comments183

Симуляция физического мира

Reading time9 min
Views29K


Как бы вы подошли к симуляции дождя, ну или любого другого продолжительного физического процесса?

Симуляцию, будь это дождь, поток воздуха над крылом самолёта или же падающий по ступенькам слинки (помните игрушку-пружинку радугу из детства?), можно представить, если знать следующее:

  1. Состояние всего в момент начала симуляции.
  2. Как это состояние меняется из одного момента времени в другой?
Total votes 33: ↑32 and ↓1+31
Comments31

Ваш язык программирования — отстой

Reading time54 min
Views139K
1 Почему JavaScript отстой
• 1.1 Плохая конструкция
• 1.2 Система типов
• 1.3 Плохие функции
• 1.4 Отсутствующие функции
• 1.5 DOM
2 Почему Lua отстой
3 Почему PHP отстой
• 3.1 Исправлено в поддерживаемых в настоящее время версиях
4 Почему Perl 5 отстой
5 Почему Python отстой
• 5.1 Исправлено в Python 3
6 Почему Ruby отстой
7 Почему Flex/ActionScript отстой
8 Почему скриптовые языки отстой
9 Почему C отстой
10 Почему C++ отстой
11 Почему .NET отстой
12 Почему C# отстой
13 Почему VB.NET отстой
15 Почему Objective-C отстой
16 Почему Java отстой
• 16.1 Синтаксис
• 16.2 Исправлено в Java 7 (2011)
• 16.3 Модель
• 16.4 Библиотека
• 16.5 Обсуждение
17 Почему Backbase отстой
18 Почему XML отстой
19 Почему отстой XSLT/XPath
20 Почему CSS отстой
• 20.1 Исправлено в CSS3
21 Почему Scala отстой
22 Почему Haskell отстой
23 Почему Closure отстой
24 Почему Go отстой
• 24.1 Базовые средства программирования (базовый язык)
• 24.2 Взаимосовместимость
• 24.3 Стандартная библиотека
• 24.4 Набор инструментальных средств
• 24.5 Сообщество
25 Почему Rust отстой
• 25.1 Безопасность
• 25.2 Синтаксис
• 25.3 Конструкция API и система типов
• 25.4 Сообщество
• 25.5 Набор инструментальных средств

Почему JavaScript отстой


Учтите, что некоторые положения относятся не к самому JavaScript, а к программным интерфейсам веб-приложений (https://developer.mozilla.org/en/docs/Web/API).

Плохая конструкция

• Каждый скрипт исполняется в едином глобальном пространстве имён, доступ в которое возможен в браузерах с оконным объектом.
• Camel-регистр никуда не годится:

XMLHttpRequest
HTMLHRElement

Читать дальше →
Total votes 314: ↑167 and ↓147+20
Comments353

Лжеотождествление электровиолончели

Reading time5 min
Views17K
Когда Алексей TheShade Шипилёв рассказывал про особенности поведения Java-строк с нулевым значением хэшкода, он приводил в качестве примера строку "лжеотождествление электровиолончели". Когда FindBugs предупреждает вас о проблемах с вычислением абсолютного значения хэшкода, равного Integer.MIN_VALUE, он приводит примеры строк, имеющих такой хэшкод — "polygenelubricants" или "DESIGNING WORKHOUSES". Откуда взялись эти примеры? Как самому составить красивую строку с заданным наперёд хэшкодом?

Различных хэшкодов существует 232 — немногим более четырёх миллиардов, а слов в человеческом языке — порядка ста тысяч. Найти одно слово с нужным хэшкодом почти нереально, а вот сочетание из двух слов вполне можно. Если добавить ещё вариации вроде предлогов, то появится выбор.

Перебирать все возможные комбинации долго, но можно процесс оптимизировать, выполнив несложные преобразования над формулой хэшкода строки. Давайте напишем генератор словосочетаний с заданным хэшкодом. Писать будем на чистой Java 8, в модном нынче функциональном стиле.
Читать дальше →
Total votes 64: ↑62 and ↓2+60
Comments11

Android для разработчиков

Reading time5 min
Views22K
Доброго времени!
Мы издали книгу Харви, Пола и Эбби Дейтелов:

image

Прототип: Android for Programmers: An App-Driven Approach (2nd Edition) (Deitel Developer Series) Paperback – January 6, 2014

В основу книги заложен принцип разработки, ориентированной на приложения, — концепции разработки продемонстрированы на примере полностью работоспособных приложений Android, а не фрагментов кода. Каждая глава начинается с вводной части, в которой вкратце описано разрабатываемое приложение. Затем приводятся результаты тестирования приложения и обзор технологий, применяемых в процессе его разработки. Далее выполняется подробный анализ исходного кода приложения. Исходный код всех приложений доступен на сайте www.deitel.com/books/AndroidFP2. Во время чтения книги мы рекомендуем держать исходный код открытым в среде разработки.
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments25

300 потрясающих бесплатных сервисов

Reading time11 min
Views1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Total votes 341: ↑325 and ↓16+309
Comments107

Первая сборка Opera 29 с синхронизацией вкладок

Reading time1 min
Views19K


Недавно мы писали про бету Opera 28, а значит пришло время для сборки Opera 29 Developer. И если в бете мы наконец-то включили синхронизацию закладок по умолчанию (а значит запустим её скоро в финале), то в этой сборке Opera 29 мы пошли дальше и научили синхронизацию видеть вкладки с других устройств.
Читать дальше →
Total votes 31: ↑22 and ↓9+13
Comments96

Экспорт Избранного на Хабре в PDF. Версия 2.0

Reading time3 min
Views27K
Доброго времени суток, хабражители!



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

Представляю вам новую версию программы закачки статей с Хабра, Гиктаймс и Мегамозг в формате PDF.

Новый проект называется HabraParse.

Проект состоит из библиотечки, которая парсит сайты, и скрипта, использующего лишь часть возможностей этой библиотеки. Скрипт написан на python3, для его работы потребуются модули docopt, requests и weasyprint (все их легко можно установить командой pip install name).

На текущий момент в скрипте имеются следующие возможности:
  • скачать статью по её ID;
  • скачать список URL избранного для заданного пользователя;
  • скачать статьи из избранного в папку в формате PDF или HTML (пока реализация HTML не на высоте, поэтому по умолчанию используется формат PDF, но он работает значительно дольше).


Использование опций --gt/--mm позволяет сохранять статьи с GeekTimes.ru и Megamozg.ru.

Краткое описание параметров скрипта
Usage:
  ./habraparse.py save_favs_list [--gt|--mm] <username> <out_file>
  ./habraparse.py save_favs [--gt|--mm] [-cn --save-html --limit=N] <username> <out_dir>
  ./habraparse.py save_post [--gt|--mm] [-c --save-html] <topic_id> <out_file>

По умолчанию все команды работают с проектом HabraHabr.ru.
При задании опций --gt/--mm скрипт будет работать с GeekTimes.ru/Megamozg.ru.

Команды:
  save_favs_list - сохранение в файл <out_file> списка URL избранного для пользователя <username>
  save_favs - сохранение в папку <out_dir> статей из избранного для пользователя <username>
  save_post - сохранение в файл <out_file> статьи с заданным ID



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

Читать дальше →
Total votes 48: ↑46 and ↓2+44
Comments53

[LibGDX] Создаем клон Flappy Bird — Zombie Bird

Reading time127 min
Views197K
Доброго времени суток %username%. Не давно наткнулся на хороший туториал по созданию клона игры Flappy Bird используя LibGDX и этот туториал мне понравился своей простотой и детализацией.

Я отдаю себе отчет, что тема создания клонов данной игрушки изъела себя, но возможно кому-то пригодится еще один хороший туториал.

Туториал разбит на 12 дней, содержит множество картинок, полотен кода и исходный код разбит по дням. Кому интересно, добро пожаловать под кат.
Подробнее
Total votes 111: ↑102 and ↓9+93
Comments29

Визуальные закладки в Opera 25 для компьютеров

Reading time1 min
Views40K


Когда я вспоминаю какие-то моменты, то представляю их себе и как будто вижу снова. Так работает моя память. Так же и с вещами, которые я нахожу в интернете. Все эти видео, картинки или песни, которые я нашёл — визуальные воспоминания для меня. Сегодня мы представляем вам Opera с новыми возможностями. И одна из них особенно важна для меня — это закладки. Но не простые, а с изюминкой.
Читать дальше →
Total votes 56: ↑40 and ↓16+24
Comments128

Сравнительный обзор Android-браузеров

Reading time7 min
Views316K


Привет, Хабр. Мы подготовили для вас сравнительный обзор 10 браузеров под Android, оцениваемых по функциональности, производительности, дизайну. Уместно отметить, что мобильных браузеров гораздо больше десяти. Их слишком много, чтобы сделать полноценный Топ 2014 года в масштабах одной публикации. Вместо того, чтобы полагаться только на популярность (или скорость работы), в шорт-лист вошли приложения, который представляет весь спектр реализуемых в мобильных браузерах технологий, включая новичков, ещё не собравших большую аудиторию пользователей (по материалам статьи The best Android browsers, 2014 edition: design, features, and performance)
Читать дальше →
Total votes 83: ↑64 and ↓19+45
Comments99

Самодельный автономный летающий аппарат из Android смартфона

Reading time7 min
Views46K

Развлекаться с автономным летательным аппаратом – это, конечно, весело, но создавать их самому еще интереснее! Эта статья адресована тем, кто хочет разработать свой собственный интеллектуальный коптер и содержит набор простых инструкций, как достичь результата с использованием смартфона на Android, OpenCV, C++ и Java. Ну а если вы сможете пройти первые шаги и пожелаете далее совершенствовать свой аппарат – в конце поста вы найдете полезную ссылку и пищу для размышления.
Читать дальше →
Total votes 55: ↑51 and ↓4+47
Comments8

Быстрое создание графических ресурсов от mdpi до xxhdpi

Reading time1 min
Views18K
Часто ли вам приходилось изменять размер графики для разных разрешений устройств. В моем случае это происходило часто, и для этого я нашел решение. Подкатом видео как это делать.
Подробности
Total votes 12: ↑9 and ↓3+6
Comments13

С 100000000 днем в году!

Reading time1 min
Views22K
image
Поздравляем всех разработчиков с Днем Программиста!

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

Для тех, кто хочет научиться чему-то новому в программировании, мы рады предоставить полный набор бесплатных учебных курсов.
Для тех, кто хочет повторить успех пермских студентов и стать чемпионами мира, мы рады представить новый сезон Imagine Cup 2015
Для тех, кто уже создает новый ИТ-хит в стартапе, мы рады предоставить бесплатные облачные ресурсы

Ну и наконец для тех, кто хочет выиграть подписку MSDN на год, мы предлагаем простую возможность:
Читать дальше →
Total votes 69: ↑46 and ↓23+23
Comments34

Выбираем генератор статических сайтов

Reading time8 min
Views77K
облачное хранилище

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

Первая публикация в этом цикле будет посвящено сравнительному анализу генераторов статических сайтов.
Читать дальше →
Total votes 62: ↑49 and ↓13+36
Comments65

Чем забит мой жесткий диск

Reading time3 min
Views91K

Сегодня хочется воздать по заслугам программе-долгожительнице SequoiaView — приложению, созданному в начале двухтысячных годов Техническим университетом Эйндховена (Нидерланды). Приложение получилось настолько практичным, лаконичным и удобным, что уже более 10 лет выручает всех, у кого вдруг внезапно закончилось место на диске, а сейчас как раз позарез нужно расчистить пару десятков гигабайт, чтобы поставить новую игру, скачать фильм или просто забить это место в очередной раз мелким мусором.
Читать дальше →
Total votes 73: ↑53 and ↓20+33
Comments125

App Studio – новая версия онлайн конструктора приложений от Microsoft

Reading time9 min
Views49K


Привет Всем!

Представляю вашему вниманию новый инструмент от Microsoft «Windows App Studio» — конструктор для создания приложений. Сегодня расскажу о том, как обычному пользователю стало доступно создание приложений для Windows и Windows Phone. И немного о том чем этот инструмент может быть полезен разработчику.
Читать дальше →
Total votes 40: ↑31 and ↓9+22
Comments5
1

Information

Rating
Does not participate
Registered
Activity