Как стать автором
Обновить
1
0

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

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

Кросс-компиляция в Go

Время на прочтение9 мин
Количество просмотров109K
Несмотря на то, что кроссплатформенность стала фактически стандартным атрибутом практически всех современных языков и библиотек, создавать по-настоящему кроссплатформенный продукт, всё равно было непросто. Компилируемые языки и сопутствующие библиотеки требовали сложной установки и настройки среды сборки и библиотек, а интерпретируемые — обязывали иметь или деплоить в составе необходимую версию интерпретатора. Есть немало проектов, пытающихся сделать этот процесс чуть более простым, но зачастую единственным решением оставалось устанавливать отдельный сервер и компилировать нативно.

В Go кросс-платформенность вышла на тот уровень, когда впервые можно смело отказаться от compile farms, специально настроенных dev-сред, виртуальных машин для сборки или chroot/docker-dev решений. И это ещё один серьезный game-changer, подробнее о котором я и хочу рассказать и показать на примерах
Поехали.


Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии13

Wi-Fi Mesh сети для самых маленьких

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


Недавним постом мы выяснили, что довольно большая часть от аудитории хабра не знает о том, что такое Mesh сети, постараемся это исправить.

Сегодня мы поговорим о:
  • Что такое Mesh Wi-Fi
  • Полноценная Mesh Wi-Fi сеть
  • Зачем такие сети нужны
  • Какие проблемы решает эта технология
  • Плюсы и минусы Mesh сетей
  • Какие технологии и протоколы используются
  • Сравнительная таблица Mesh протоколов
  • Mesh сети и органы власти

Читать дальше →
Всего голосов 93: ↑85 и ↓8+77
Комментарии356

Телефон шпионил за мной, поэтому я нашёл тех, кто использует данные слежения

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

СЛЕЖКА: Американская компания имеет информацию о моём местоположении.

В моём телефоне 160 приложений. Я не знаю, что они делают, но решил это выяснить.

У меня было ощущение, что эти приложения шпионят за мной. Конечно, не прослушивают меня, но постоянно следят за тем, где я нахожусь. Что каждый мой шаг кому-то передаётся: когда я хожу в продуктовый, выпиваю или общаюсь с друзьями.

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

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

Или почти повсюду. Я оставил его дома, когда проходил тест на COVID-19 в апреле.
Читать дальше →
Всего голосов 104: ↑101 и ↓3+131
Комментарии253

Зачем забивать гвозди микроскопом, если есть Alpine Linux?

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

По зову сердца и работе в Digital Design в качестве системного инженера, мне часто приходится сталкиваться с переусложненными программными продуктами и архитектурными конструкциями. Это вызывает страстное желание минимизации и упрощения всего, что попадается под руку, и приводит к восторгу от человеческих решений, просто делающих свою работу, без регистрации и смс.


Так я и познакомился с Alpine Linux.


Неожиданное окно


Этот дистрибутив может вам понравиться по следующим причинам:


  • Если вы любите минимализм и инструменты, ориентированные на выполнение поставленной задачи без лишних свистелок и украшений;
  • Если вы заметили, что имеющиеся «мэйнстримные» дистрибутивы немного (?) раздуты и избыточны;
  • Если вы захотели решить имеющуюся задачу простым способом.

Под «мэйнстримом» я подразумеваю тройку CentOS — Debian — Ubuntu (конечно же, ими мир не заканчивается), да простят меня все верующие в эти замечательные дистрибутивы. При их использовании, периодически, на границе восприятия, возникает колкая мысль – «а может быть можно проще?».

Читать дальше →
Всего голосов 84: ↑83 и ↓1+82
Комментарии111

Собеседование в Яндекс: театр абсурда :/

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

Привет, Хабр!

В прошлой статье меня знатно разбомбили в комментариях, где-то за дело, где-то я считаю, что нет. Так или иначе, я выжил, и у меня есть чем с вами поделиться >:)

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

Как вы думаете, что делают рекрутеры, когда видят "Alexandr, NOT OPEN FOR WORK"? Правильно, пишут "Алексей, рассматриваете вариант работать в X?" Я обычно игнорирую это, но тут мне предложили попытать счастья с Яндекс.Лавкой, и я не смог пройти мимо - интересно было, смогу ли я устроиться куда-нибудь, когда введут великий российский файерволл. К тому же за последние 3 года я проходил только два интервью, и мне показалось, что я не в теме, что нынче требуется индустрии. Блин, я оказался и вправду не в теме. И вы, скорей всего, тоже - об этом и статья.

Читать далее
Всего голосов 531: ↑504 и ↓27+610
Комментарии1270

Nokia N900. Будущее, утерянное в прошлом

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

Смартфон Nokia N900 стал уникальным в своем роде устройством, работавшим на стандартном дистрибутиве Linux и предлагавшим завидную для своего времени комплектацию. Но что же помешало этому карманному ПК войти в современный мир, и можно ли сейчас найти достойные альтернативы?
Читать дальше →
Всего голосов 48: ↑46 и ↓2+67
Комментарии120

AvaloniaUI: особенности на примере MessageBox

Время на прочтение4 мин
Количество просмотров13K
Avalonia ui — восхитительный фреймворк, к которому хочется возвращаться снова и снова. Так давайте же вернемся к нему еще раз и рассмотрим некоторые особенности вместе с моим message box.


Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии17

Whois: практическое руководство пользователя

Время на прочтение32 мин
Количество просмотров172K
Статья рассказывает о работе whois протокола, о существующих клиентских решениях и об особенностях коммуникации с различными whois серверами (а также о выборе правильного whois сервера). Ее основная задача — помочь в написании скриптов для получения whois информации для IP адресов и доменов.

Что такое whois?


Что такое и для чего нужен whois можно прочитать, например, здесь: http://en.wikipedia.org/wiki/Whois.

В нескольких словах, whois (от английского «who is» — «кто такой») – сетевой протокол, базирующийся на протоколе TCP. Его основное предназначение – получение в текстовом виде регистрационных данных о владельцах IP адресов и доменных имен (главным образом, их контактной информации). Запись о домене обычно содержит имя и контактную информацию «регистранта» (владельца домена) и «регистратора» (организации, которая домен зарегистрировала), имена DNS серверов, дату регистрации и дату истечения срока ее действия. Записи об IP адресах сгруппированы по диапазонам (например, 8.8.8.0 — 8.8.8.255) и содержат данные об организации, которой этот диапазон делегирован.

Читать дальше →
Всего голосов 101: ↑97 и ↓4+93
Комментарии31
В твоей жизни настал переломный момент: необходимо написать статью на Хабр. Нужно, конечно, написать её хорошо. И ни в коем случае не написать плохо. Но начинающему автору это полезнейшее наставление слабо помогает (немудрено — нужна конкретика!). Поэтому мы собрали коллекцию хабрастатей о том, как писать технотексты — в них сами хабравчане поделятся тем, что умеют.

Лень или банально нет времени переходить по ссылкам и читать много длинных статей? Для удобства мы скомпилировали самую важную информацию прямо под катом.
Да, это вот тут
Всего голосов 27: ↑23 и ↓4+43
Комментарии24

Знакомство с Go — пишем граббер веб страниц с многопоточностью и блудницами

Время на прочтение11 мин
Количество просмотров71K
Про язык Go от команды Google слышали, наверное, все. А вот пробовали далеко не все, и очень зря — общение с сусликами Go это море удовольствия, в чем я недавно убедился на собственном опыте.
Начинать знакомство с новым языком забавнее всего на жизненном примере, поэтому я, не долго думая, взял первую попавшуюся задачу “из жизни, самой первостепенной важности”:

Есть в интернете сайт http://vpustotu.ru на котором любой желающий может анонимно высказаться о наболевшем. Все высказывания (в дальнейшем буду называть их “цитатами”) сначала попадают в модерацию (аналог “бездны” башорга), где посетители могут оценить полет мысли и проголосовать за цитату в стиле “Ого!” или “Ерунда!”. На странице модерации (http://vpustotu.ru/moderation/) нам показывают случайную цитату, ссылки голосования и ссылку “Еще”, которая ведет на эту же страницу. Пощелкайте, это все очень просто.

И вот возникла задача – срочно, под покровом темноты, загрузить себе полный дамп всех цитат на модерации для дальнейшего секретного исследования. Не будем оценивать житейскую ценность и степень идиотизма задачи, а рассмотрим её с технической точки зрения:

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

Таким образом нужна программа, которая:

  • Должна последовательно обновлять и парсить (разбирать) страницу, записывая цитату.
  • Должна уметь отбрасывать дубликаты.


Логично, что мы понятия не имеем все ли цитаты загружены, но об этом можно косвенно догадаться по большому количеству повторно полученных цитат подряд. Поэтому дополним:

  • Должна останавливаться не только по команде, но и по достижению определенного числа “повторов”, например 500!
  • Так как это, скорее всего, займет некоторое время: необходимо уметь продолжить “с места на котором остановились” после закрытия.
  • Ну и раз уж все-таки это надолго – пусть делает свое грязное дело в несколько потоков. Хорошо-бы в целых 4 потока (или даже 5!).
  • И отчитывается об успехах в консоль каждые, скажем, 10 секунд.
  • А все эти параметры пускай принимает из аргументов командной строки!


Ну, вроде все понятно. Пусть программа ведет два файла – с цитатами и с некими хешами этих цитат, чтобы не повторяться, и перечитывает файл в начале каждого запуска. Ну а дальше в цикле разбирает страницу, выдергивая все новые и новые откровения, пока не получит ctrl-c по лбу или же не встретит определенное количество повторов. Задача ясна, план есть – поехали!
Читать дальше →
Всего голосов 78: ↑74 и ↓4+70
Комментарии30

Парсинг сайта кинотеатра на Golang

Время на прочтение3 мин
Количество просмотров26K
Всем привет, в этой статье мы рассмотрим небольшой пример кода, написанный для сбора данных с сайта на популярном сегодня языке программирования Go.

Эта статья будет особенно интересна тем, кто много слышал о Go, но пока еще не попробовал его самостоятельно.

Для одного из внутренних проектов, нам нужно было собрать данные о фильмах, которые идут в прокате и расписании показов, сейчас рассмотрим первую (простейшую) версию парсера, с которой все и началось.
Читать дальше →
Всего голосов 5: ↑4 и ↓1+7
Комментарии0

Как писать парсеры на JavaScript

Время на прочтение10 мин
Количество просмотров111K
… а именно как писать LL парсеры для не очень сложных структур при помощи конструирования сложного парсера из более простых. Изредка возникает необходимость распарсить что то несложное, скажем некую XML-подобную структуру или какой нибудь data URL, и тогда обычно возникает либо простыня хитрого трудно читаемого кода либо зависимость от какой то ещё более сложной и хитрой библиотеки для парсинга. Здесь я собираюсь совместить несколько известных идей (какие то из них попадались на Хабре) и показать как можно просто и лаконично написать довольно сложные парсеры уложившись при этом в совсем немного строчек кода. Для примера я буду писать парсер XML-подобной структуры. И да, я не буду вставлять сюда картинку для привлечения внимания. В статье вообще картинок нет, поэтому читать будет трудно.

Читать дальше →
Всего голосов 60: ↑56 и ↓4+52
Комментарии53

Кросскомпиляция выполняемых файлов Rust для Windows из Linux

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

Наверное не будет уж очень удивительным если я тут, на IT площадке Хабра, скажу что я иногда балую себя программированием.


Основная OS у меня Linux, но иногда приходится собирать исполняемые файлы и для Windows. И естественно что перегружаться в Windows только для сборки exe не особо хочется. С языками C и C++ проблем нет, давно существует кросскомпилятор MinGW, который прекрасно с этим справляется. Про Python и Java даже упоминать не стоит, кроссплатформенность в них изначально. Но в прошлом году я решил попробовать такой пока что новомодный язык, как Rust. При сборке исполняемого файла при помощи включённого в дистрибутив Rust пакетного менеджера cargo вроде как достаточно задать ключ --target, при помощи которого указать результирующий процессор, архитектуру и ABI и при сборке из Linux в результате получить exe, который будет являться стандартным исполняемым файлом для Windows. Но пытаясь так сделать:


cargo build --target x86_64-pc-windows-gnu

я получил только сообщения об ошибках линкера:


error: linking with `gcc` failed: exit code: 1

[...]

  = note: /usr/bin/ld: unrecognized option '--nxcompat'
          /usr/bin/ld: use the --help option for usage information
          collect2: error: ld returned 1 exit status

error: aborting due to previous error

error: could not compile `foobar`.

Если кому интересно как я это поборол и теперь спокойно могу кросскомпилировать программы на Rust для Windows, не покидая Linux, добро пожаловать под кат.

Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии16

Модульный ноутбук Framework, почти все элементы которого можно апгрейдить, поступит в продажу уже летом

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

Несколько месяцев назад мы публиковали статью об истории модульных устройств — ноутбуков, смартфонов, часов. Это была статья с налетом грусти, ведь ни одно перспективное устройство так и не стало реальностью, за исключением парочки не самых модульных девайсов.

Но, похоже, грустить было рано. Сейчас появилась новость о том, что уже летом в продаже появится полностью модульный ноутбук, который можно будет апгрейдить как душе угодно. Забегая вперед, стоит сказать, что процессор или графический чип заменить нельзя, поскольку они распаяны на плате. Но это не вина компании: современные чипы сплошь BGA и предназначены для распайки на плате. С этим уже вряд ли что-то можно сделать, разве что разработать собственный процессор и видеокарту. Но все остальное менять можно без проблем.
Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Комментарии118

Как скомпилировать Python

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

Привет, Хабр!

Я хочу рассказать об удивительном событии, о котором я узнал пару месяцев назад. Оказывается, одна популярная python-утилита уже более года распространяется в виде бинарных файлов, которые компилируются прямо из python. И речь не про банальную упаковку каким-нибудь PyInstaller-ом, а про честную Ahead-of-time компиляцию целого python-пакета. Если вы удивлены так же как и я, добро пожаловать под кат.

Читать дальше
Всего голосов 24: ↑23 и ↓1+30
Комментарии28

Собираем проект на python3&PyQT5 под Windows, используя PyInstaller

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

Причиной написания статьи, явилось огромное количество постоянно возникающих у новичков вопросов такого содержания: "Как собрать проект c pyqt5", "Почему не работает", "Какой инструмент выбрать" и т.д. Сегодня научимся собирать проекты без мучений и танцев с бубном.


Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии18

ServerLess PHP

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

Накануне запуска курса «Backend-разработчик на PHP» мы провели традиционный открытый урок. В этот раз познакомились с концепцией Serverless, поговорили о её реализации в AWS, разобрали принципы работы, сборки и запуска, а также построили простой TG-бот на PHP на базе AWS Lambda.


Преподаватель — Александр Пряхин, технический директор компании Westwing Russia.




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

Строим собственный serverless на основе Fn

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


Бессерверные вычисления — одна из наиболее заметных тенденций в облачных вычислениях. Основной принцип работы заключается в том, что инфраструктура — забота не DevOps’ов, а поставщика услуг. Масштабирование ресурсов автоматически подстраивается под нагрузку и обладает высокой скоростью изменения.


Другая общая черта — тенденция к минимизации и фокусировании кода, поэтому бессерверные вычисления иногда называют "функция как услуга" (FaaS).

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии14

Интервью с Senior Android Developer Spotify Славой Савицким

Время на прочтение20 мин
Количество просмотров9.6K
Неделю назад у нас выступал Слава Савицкий — Senior Android Developer в Spotify. Слава рассказывал о том, как айтишники живут в Швеции (например, он брал декретный отпуск по уходу за ребенком), о работе в Spotify, о новом приложении Spotify Lite для слабых андроидов, и, конечно, об Андроид-разработке в целом.

Делимся с вами записью и расшифровкой эфира.


Меня зовут Слава Савицкий. Я сегодня буду рассказывать о жизни и работе в Швеции, о Spotify, как устроиться работать, про Spotify Lite, анализ перфоманса Android-приложений. Постараюсь охватить все, что было в анонсе. Не могу отвечать на вопросы о будущем и планах Spotify и разных числах, которые не были опубликованы в публичных документах.

Я из города Саров Нижегородской области. Федеральный ядерный центр, 100 тысяч населения. Как ни странно, в Spotify есть еще один сотрудник из Сарова.

Я закончил мехмат МГУ в 2009 году, с 2006 работал в Институте системного программирования по контракту с компанией Klocwork, канадской; занимался статическим анализом для поиска дефектов. Статический анализ исходного кода – я, по сути, писал компиляторы, которые на выходе давали не объектный код, а сообщения о потенциальных ошибках.

В 2013 году я переехал в Швецию, в Стокгольм, работать в компании Blackberry. Это была моя первая работа с мобильными устройствами. Я писал для системы Blackberry X приложения для работы с мультимедиа – story maker, video editor. Потом я работал в компании Sinch, которая занималась VoIP, SDK для мобильных приложений. После этого работал в одном банке, переписывал социальное приложение для инвесторов. Последние 2.5 года я работаю в компании Spotify, тоже с мобильными приложениями.
Всего голосов 20: ↑17 и ↓3+27
Комментарии12

Нет серверным веб-приложениям

Время на прочтение5 мин
Количество просмотров29K
В 1993 году, когда появилась Всемирная паутина, World-Wide-Web, веб-страницы были представлены статическими HTML-файлами, содержащими ссылки на другие такие же файлы. Но вскоре, благодаря таким технологиям, как CGI, Perl и Python, веб-сайты стали оснащать динамическим функционалом, который серьёзно расширил их возможности.

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

Недавно я пришёл к выводу о том, что я делал всё неправильно. Я собираюсь прекратить писать серверные веб-приложения, а в этой статье хочу объяснить причины, по которым вам стоит принять такое же решение.


Прекратите писать серверные веб-приложения
Читать дальше →
Всего голосов 44: ↑18 и ↓26+3
Комментарии187

Информация

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