Как стать автором
Обновить
46
0
Михаил @fastpars

Пользователь

Отправить сообщение

Сделай сам: dll hijacking под MS Office для самых маленьких

Время на прочтение5 мин
Количество просмотров30K
Прошло уже три дня с тех пор, как исследователь Parvez Anwar опубликовал информацию о множественных dll hijacking уязвимостях в продуктах Microsoft Office, а какой-либо реакции не наблюдается. Ни CVE, ни сообщений на специализированных ресурсах, Windows Update не качает свежих патчей. Что ж, может, так и нужно, может быть, это не уявимость, а особенность продукта?
Между тем, эксплуатация этой особенности проста и доступна даже ребенку. И, раз уж производитель пока эту «фичу» не удалил, почему бы не написать о ней небольшую статью.

Речь пойдет о Windows 7. Работает ли это на других версиях — мне на текущий момент неизвестно, нужно проверять. Принцип действия описываемого явления (как и многих других, впрочем) основан на старой доброй технологии COM/OLE/ActiveX.
Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии5

5 практических примеров для изучения фреймворка React

Время на прочтение10 мин
Количество просмотров254K
Перевод статьи «5 Practical Examples For Learning The React Framework», Martin Angelov

Вы вероятно слышали о популярном JavaScript фреймворке от Facebook – React. Он используется на многих популярных веб-сайтах, в том числе в Facebook и Instagram. В этой статье вы увидите 5 практических примеров, построенных при помощи React, которые помогут вам начать работать с этим фреймворком.
Читать дальше →
Всего голосов 20: ↑14 и ↓6+8
Комментарии46

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

Время на прочтение28 мин
Количество просмотров187K
Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.

Читать дальше →
Всего голосов 96: ↑89 и ↓7+82
Комментарии38

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

Время на прочтение10 мин
Количество просмотров75K
Это моя первая статья на хабре, в которой я хотел бы описать свой небольшой жизненный путь от человека с непрофильным образованием, работавшего и строителем-разнорабочим, и сметчиком, и маляром-штукатуром — до андроид-разработчика в небольшой Харьковской компании. Текста будет достаточно много, картинок — поменьше. Поехали!

Детство

image
Читать дальше →
Всего голосов 83: ↑72 и ↓11+61
Комментарии60

Грандиозное тестирование аккумуляторов AA/AAA

Время на прочтение6 мин
Количество просмотров303K
После моего грандиозного тестирования батареек многие просили провести такие же основательные тесты NiMh-аккумуляторов. За четыре месяца я протестировал 198 аккумуляторов (44 модели AA и 35 моделей AAA).



Читать дальше →
Всего голосов 217: ↑215 и ↓2+213
Комментарии73

Чистая архитектура в Go-приложении. Часть 1

Время на прочтение9 мин
Количество просмотров46K
От переводчика: данная статья написана Manuel Kiessling в сентябре 2012 года, как реализация статьи Дядюшки Боба о чистой архитектуре с учетом Go-специфики.



Перед этой статьей я перевел ее прообраз — смотреть здесь. Поскольку в рамках этой статьи будет активно использоваться описанное в статье Дядюшки Боба, то лучше начать с нее… если Вы, конечно, ее еще не читали.

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

В данной части будет описана общая концепция и работа с внутренним слоем.
Итак, начнем ...
Всего голосов 35: ↑27 и ↓8+19
Комментарии11

Как писать Go код, который легко портируется

Время на прочтение6 мин
Количество просмотров17K
(Перевод статьи с советами о написании по-настоящему кросс-платформенного кода в Go)
Go великолепно приспособлен для работы с разными платформами. Моя основная среда разработки на Windows, но я всегда работаю с Linux-системами. Поэтому я естественным образом пытаюсь избегать вещей, которые могут создать проблемы.



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

Недавно я помогал делать Windows-версию очень приятной программы для бекапов, так как хотел изучить альтернативы к zpaq, очень хорошему архиватору с журналированием и фокусом на сжатие. Во время портирования я отметил несколько вещей, которые могут быть полезны другим.
Читать дальше →
Всего голосов 51: ↑36 и ↓15+21
Комментарии9

Ошибки — это значения

Время на прочтение5 мин
Количество просмотров25K
(Перевод статьи из официального блога Go)

Частой темой среди Go программистов, особенно тех, которые только познакомились с языком, является вопрос о том, как обрабатывать ошибки. Разговор часто сводится к жалобам на то, что последовательность
if err != nil {
    return err
}

появляется слишком часто. Недавно мы просканировали все open-source проекты, которые мы только смогли найти и увидели, что этот сниппет появляется лишь раз на страницу или две, гораздо реже, чем многие могли бы подумать. И всё же, если впечатление того, что вы должны всегда писать
 if err != nil
остается, значит, очевидно, что-то тут не так, и мишенью оказывается сам Go.

Это неверно, это вводит в заблуждение и это легко исправить. Наверное происходит следующее — программист, знакомясь с Go, задаёт вопрос — «Как я должен обрабатывать ошибки?», заучивает этот паттерн и тут и останавливается. В других языках, это может быть блок try-catch или другой механизм обработки ошибок. Соответственно, думает программист, там где я бы использовал try-catch в моём старом языке, в Go я просто напечатаю if err != nil. Со временем, в Go коде накапливается много таких сниппетов, и результат выглядит неуклюже.

Но вне зависимости от того, как это объясняется на самом деле, очевиден тот факт, что эти Go программисты упускают фундаментальную идею ошибок: Ошибки это значения.
Читать дальше →
Всего голосов 53: ↑27 и ↓26+1
Комментарии139

Генерация кода в Go

Время на прочтение6 мин
Количество просмотров45K
Перевод статьи Роба Пайка из официального блога Go о автоматической кодогенерации с помощью go generate. Статья немного устарела (была написана перед выходом Go 1.4, в котором и появился go generate), но хорошо объясняет суть работы go generate.
Читать дальше →
Всего голосов 34: ↑26 и ↓8+18
Комментарии26

Разработка менеджера закачек на GO

Время на прочтение8 мин
Количество просмотров30K
Менеджер многопоточных закачек на GO.

http://loafter.github.io/godownloader/
https://github.com/Loafter/godownloader


Вступление


Давным-давно, в году этак 1998, для выхода в интернет я использовал модем на работе у отца. Он его включал вечером после работы и я мог наслаждаться просторами сети интернет на скорости аж 31.2 кбит/c. В то время не было истеричных блогеров, страницы не весили по мегабайту, а в новостных сайтах говорили только правду. Естественно основной интерес представляли ресурсы. Картинки, программы, всякие дополнения к играм, вроде машинок. Как сейчас помню качать через IE было сущим адом. Скачать файл весом больше 500 кб было просто невозможно, древний осел был намного упрямей.
Читать дальше →
Всего голосов 45: ↑42 и ↓3+39
Комментарии38

Изучаем net/context в Go

Время на прочтение11 мин
Количество просмотров62K
Не секрет, что основная ниша использования Go это сетевые сервисы: всевозможные серверы, бекенды, микросервисы, распределенные базы данных и файловые хранилища. Такой класс программ очень активно использует сетевые запросы, весь необходимый функционал для которых есть в стандартной библиотеке, но один аспект разработки сетевых архитектур остается для многих темным пятном — контексты запросов. В этой статье я хочу рассмотреть этот аспект повнимательней и показать, какой это мощный и важный инструмент.


Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии8

Памятка евангелиста PostgreSQL: критикуем MySQL грамотно

Время на прочтение12 мин
Количество просмотров62K
image

Привет, Хабр! Эта публикация — попытка развеять некоторые популярные мифы и легенды о MySQL. Я не ошибся с хабом, так как поводом для написания послужила публикация varanio Возможности PostgreSQL, которых нет в MySQL, и наоборот отсюда же. Сама публикация в части критики MySQL хоть и неидеальна, но вполне корректна, а вот комментарии к ней наводят на грустные размышления.

Вообще говоря, я собирался написать публикацию о возможностях MySQL, которые не реализованы или реализованы в PostgreSQL хуже. Но для того, чтобы не мешать много тем в одну публикацию, и учитывая довольно нелёгкую работу по сравнению того, что я знаю очень хорошо (MySQL) с тем, что я знаю очень плохо (PostgreSQL), такую публикацию я решил отложить на потом и для начала ответить сразу на многие комментарии из публикации varanio.
Читать дальше →
Всего голосов 194: ↑183 и ↓11+172
Комментарии178

Тайна финализаторов в Go

Время на прочтение3 мин
Количество просмотров15K

Финализаторы


Когда сборщик мусора Go готов собрать объект, оставшийся без ссылок, предварительно вызывается функция, называемая финализатором. Добавить такую функцию к своему объекту можно при помощи runtime.SetFinalizer. Посмотрим на него в работе:
Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии12

40 ключевых концепций информационных технологий доступно и понятно

Время на прочтение16 мин
Количество просмотров160K
Представляю вашему вниманию перевод очень ёмкой, и в то же время достаточно краткой (для такого масштаба проблемы) статьи Карла Чео. Я решил, что очень хочу сделать её перевод практически сразу, как только начал читать, и очень рад, что в итоге сделал это.
Для того, чтобы сделать обучение более веселым и интересным, представляю вам перечень важных теорий и концепций информатики, объяснённых с помощью аналогий с минимальным количеством технических деталей. Это будет похоже на очень быстрый курс информатики для всех с целью просто дать вам общее представление об основных концепциях.

Важные замечания:
  • Пункты с неуказанным источником написаны мной самостоятельно. Поправьте меня, если вы заметите какие-то неточности. Предложите лучшую аналогию, если это возможно.
  • Заголовки ссылаются на соответствующие им статьи в Wikipedia. Пожалуйста, читайте эти статьи для более серьезных и детальных объяснений.
  • Аналогии — отличный способ объяснить материал, но они не идеальны. Если вы хотите по-настоящему понять перечисленные концепции, вам следует начать с фундаментальных азов и рассуждать, исходя из них.

Также зацените эту инфографику (вариант на русском), если вы просто начинающий программист.
Читать дальше →
Всего голосов 104: ↑96 и ↓8+88
Комментарии37

Подражай-повторяй-применяй! Английская грамматика на счет три

Время на прочтение4 мин
Количество просмотров44K


Кажется, нас давно тут не было, и мы возвращаемся и возвращаемся не с пустыми руками: та-дам! До определенного момента Lingualeo был отличным способом пополнять словарный запас свежими идиомами и «живой» лексикой спикеров TED. Вы могли развивать навыки, изучая интересный контент. Но сегодня все изменилось.

За следующие 7 минут вы узнаете, чему мы научились у самих себя в детстве, про NLP-парсинг предложений, современные фишки front-end разработки и про новый способ изучать грамматику онлайн.
Читать дальше →
Всего голосов 51: ↑47 и ↓4+43
Комментарии57

19 советов по повседневной работе с Git

Время на прочтение14 мин
Количество просмотров287K


Если вы регулярно используете Git, то вам могут быть полезны практические советы из этой статьи. Если вы в этом пока новичок, то для начала вам лучше ознакомиться с Git Cheat Sheet. Скажем так, данная статья предназначена для тех, у кого есть опыт использования Git от трёх месяцев. Осторожно: траффик, большие картинки!

Содержание:
  1. Параметры для удобного просмотра лога
  2. Вывод актуальных изменений в файл
  3. Просмотр изменений в определённых строках файла
  4. Просмотр ещё не влитых в родительскую ветку изменений
  5. Извлечение файла из другой ветки
  6. Пара слов о ребейзе
  7. Сохранение структуры ветки после локального мержа
  8. Исправление последнего коммита вместо создания нового
  9. Три состояния в Git и переключение между ними
  10. Мягкая отмена коммитов
  11. Просмотр диффов для всего проекта (а не по одному файлу за раз) с помощью сторонних инструментов
  12. Игнорирование пробелов
  13. Добавление определённых изменений из файла
  14. Поиск и удаление старых веток
  15. Откладывание изменений определённых файлов
  16. Хорошие примечания к коммиту
  17. Автодополнения команд Git
  18. Создание алиасов для часто используемых команд
  19. Быстрый поиск плохого коммита

Читать дальше →
Всего голосов 152: ↑149 и ↓3+146
Комментарии62

Легкий способ научиться слепому десятипальцевому набору

Время на прочтение3 мин
Количество просмотров1.2M
Традиционно рекомендации по обучению десятипальцевой печати сводятся к двум советам:
  • тратить нервы на клавиатурные тренажеры вроде пресловутого «Соло на клавиатуре»;
  • заклеить подписи на клавишах.

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

Что если я скажу вам, что есть абсурдно простой, состоящий из одного пункта способ научиться слепой печати без этих дурацких органичений?
 

Читать дальше →
Всего голосов 88: ↑76 и ↓12+64
Комментарии234

Краткий обзор доступных и готовящихся компьютеров на палочке

Время на прочтение2 мин
Количество просмотров17K
Сегодня на рынке представлено уже несколько «компьютеров на палочке» – полноценных компьютеров, размером, не сильно превышающим привычные flash-накопители. Приведу здесь краткий обзор доступных моделей.

Уже продаются


Intel Compute Stick

image
$134
www.amazon.com/Intel-Compute-Stick-Windows-BOXSTCK1A32WFCR/dp/B00W8T61O0

Появился в марте 2015. В какой-то мере стал законодателем стандартов. Процессор — quad-core Intel Atom Z3735F, 2GB RAM (1GB в случае версии с Linux), и 8 или 32GB накопителя eMMC. Вставляется в телевизор или монитор в разъём HDMI, есть порт USB 2.0 port, слот для MicroSD и micro-USB для питания. Встроенный Bluetooth 4.0 для подключения клавиатуры и мыши, 802.11bgn Wi-Fi для интернета.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии23

Первый интерактивный учебник по линейной алгебре

Время на прочтение1 мин
Количество просмотров30K


«Изображение говорит больше, чем тысяча слов», — такой принцип взяли на вооружение авторы учебника «Захватывающая линейная алгебра» ("Immersive Linear Algebra") с полностью интерактивными иллюстрациями. Авторы говорят, что это первый мире учебник такого рода.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии3

Простейший физический движок

Время на прочтение4 мин
Количество просмотров65K
Вас интересуют игры? Хотите создать игру но не знаете с чего начать? Тогда вам сюда. В этой статье я рассмотрю простейший физический движок, с построения которого можно начать свой путь в GameDev'e. И да, движок будем писать с нуля.
Читать дальше →
Всего голосов 42: ↑32 и ↓10+22
Комментарии38

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Зарегистрирован
Активность