Pull to refresh
7
0

42

Send message

Один бинарник, любое окружение. Магия чистого C

Reading time5 min
Views35K


Как мы представляем себе кроссплатформенность? Мы пишем программу на языке, который либо компилируется в исполняемый файл отдельно для каждой поддерживаемой платформы, либо использует разновидность виртуальной машины вместо бинарника (и тогда эта среда должна присутствовать в целевых системах). Есть также и низкоуровневые языки, на которых писать серьёзные программы менее удобно, чем на высокоуровневых монстрах со своими компиляторами или рантаймами, но зато такие программы менее требовательны к предустановленному софту или наличию ОС в принципе, как и менее разборчивы в архитектуре. И всё же, есть возможность писать один и тот же код и собирать один и тот же бинарь под все популярные архитектуры и ОС (и даже bare metal), и эта возможность появилась благодаря гениальной Justine Tunney. Она написала Cosmopolitan, библиотеку на C, позволяющую исполнять один и тот же код на любой машине, подобно Java… но без какого-либо предустановленного интерпретатора или виртуальной машины! Один и тот же скомпилированный файл может исполняться как минимум в любом дистрибутиве Linux, на Mac OS, Windows NT, FreeBSD, OpenBSD, и NetBSD и на bare-metal на x86 и ARM*. Это настоящая магия.

Переход с виртуальных машин на контейнеры LXC: причины, преимущества и готовая инструкция к применению

Reading time4 min
Views29K
О чем мы расскажем:

— Почему мы решили перейти на LXC контейнеры?
— Как создать контейнер и запустить на нем хост на базе Битрикс?

Для кого это будет полезно:

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

Почему надо создавать модули для nginx

Reading time15 min
Views15K
Nginx — это веб-сервер, который решает десятки бизнес-задач, гибко настраивается, масштабируется и работает почти на всех ОС и платформах. Список функций, возможностей и решаемых проблем из коробки можно расписать в небольшой брошюре. Но порой, ряд бизнес-задач можно решить, только разработав собственные модули для nginx. Это модули, которые ориентированы на бизнес и содержат некоторую бизнес-логику, а не только обобщенное системное решение.



Вообще все в nginx — это модули, которые когда-то кем-то были написаны. Поэтому писать модули под nginx не только можно, но и нужно. Когда это необходимо делать и зачем, расскажет Василий Сошников (dedokOne) на примере нескольких кейсов.

Поговорим о причинах, которые побуждают писать модули на C, об архитектуре и ядре nginx, анатомии HTTP-модулей, о C-модулях, NJS, Lua и nginx.conf. Это важно знать не только тем, кто разрабатывает под nginx, но также тем, кто использует nginx-конфиги, Lua или другой язык внутри nginx.

Примечание: статья написана на основе доклада Василия Сошникова. Доклад постоянно модернизируется и обновляется. Информация в материале довольно техническая и, чтобы извлечь максимум пользы, читателям необходимо иметь опыт работы с кодом nginx на среднем уровне и выше.

За 2018 год разработчики проекта KDE получили больше $ 0,5 млн. пожертвованиями. И не только они…

Reading time2 min
Views20K
image

Жизнь многих коллективов разработчиков свободного программного обеспечения преисполнена аскетизма, преодоления сложностей и препятствий, и часто сообщества выживают исключительно за счет альтруистических убеждений и самоотверженности своих участников. Не всем популярным свободным продуктам удается найти стабильный и надежный источник финансирования. Однако, иногда судьба дарит заслуженные подарки. Так в этом году произошло с проектом KDE. Дважды.

KDE — организация и международное сообщество вокруг нее, разрабатывающее свободное программное обеспечение: среду рабочего стола Plasma и набор приложений KDE Applications. Основным источником средств для проекта служит сбор пожертвований и целевые кампании по фандрайзингу.

image


15 октября 2018 некоммерческая организация KDE e.V., курирующая развитие проекта KDE, сообщила о получении пожертвования в $300 000 на 22-летие проекта от другого сообщества энтузиастов — Handshake.org. Причем 100 тысяч долларов, из полученных 300 тысяч, пойдут на развитие свободного офисного пакета Calligra.
Читать дальше →

Несколько советов по Angular

Reading time16 min
Views36K

Прошло уже достаточно времени с выхода обновленного Angular. В настоящее время множество проектов завершено. От "getting started" множество разработчиков уже перешло к осмысленному использованию этого фреймворка, его возможностей, научились обходить подводные камни. Каждый разработчик и/или команда либо уже сформировали свои style guides и best practice либо используют чужие. Но в тоже время часто приходится сталкиваться с большим количеством кода на Angular, в котором не используются многие возможности этого фреймворка и/или написанного в стиле AngularJS.


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

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

Как обойти SMS-идентификацию при подключении к публичным Wi-Fi сетям?

Reading time4 min
Views97K
В 2014 году начали свое действие постановления правительства РФ №758 №801, обязывающие владельцев публичных WiFi сетей настроить на роутерах идентификацию пользователей через паспортные данные, sms или портал гос. услуг. Нежелание владельцев кафе тратиться за Captive portal'ы поспособствовало некоторым провайдерам в распространении своих точек доступа с платной sms-авторизацией. У меня возникло желание проверить, можно ли подобную sms-авторизацию обойти.

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

Иван Тулуп: асинхронщина в JS под капотом

Reading time24 min
Views56K
А вы знакомы с Иваном Тулупом? Скорее всего да, просто вы еще не знаете, что это за человек, и что о состоянии его сердечно-сосудистой системы нужно очень заботиться.

Об этом и о том, как работает асинхронщина в JS под капотом, как Event Loop работает в браузерах и в Node.js, есть ли какие-то различия и, может быть, похожие вещи рассказал Михаил Башуров (SaitoNakamura) в своем докладе на РИТ++. С удовольствием делимся с вами расшифровкой этого познавательного выступления.



О спикере: Михаил Башуров — fullstack веб-разработчик на JS и .NET из Luxoft. Любит красивый UI, зеленые тесты, транспиляцию, компиляцию, технику compiler allowing и улучшать dev experience.

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

Как уже сейчас пощупать транзакции в MongoDB

Reading time7 min
Views16K

Летом 2018 года (т.е. прямо сейчас, на момент написания данной статьи) случилось невероятное — в MongoDB завезли честные ACID транзакции. С выходом четвёртой версии этой документ-ориентированной СУБД, её можно использовать для чуть более серьёзных приложений.


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


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

Погнали!

Мониторинг JavaScript-ошибок с помощью window.onerror

Reading time7 min
Views24K
Материал, перевод которого мы сегодня публикуем, посвящён обработке JS-ошибок с помощью window.onerror. Это — особое событие браузера, которое вызывается при появлении неперехваченных ошибок. Здесь мы поговорим о том, как перехватывать ошибки с помощью обработчика события onerror, и о том, как отправлять сведения о них на сервер разработчика веб-сайта. Этот обработчик можно использовать в качестве основы собственной системы сбора и анализа информации об ошибках. Кроме того, он является одним из важнейших механизмов, применяемых в библиотеках, ориентированных на работу с ошибками, таких, как raven-js.

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

Роскомнадзор угрожает 15-ти хостинг-провайдерам. WhatsApp и Viber тоже могут заблокировать

Reading time3 min
Views52K

Москва, 30 апреля 2018 года

Почти неделю количество заблокированных IP-адресов в реестре Роскомнадзора сохраняется примерно на одном уровне: около 16,4 млн (выгрузка ежечасно обновляется на GitHub). Охота за Telegram продолжается: Россия стала пятой страной в мире, которая запретила этот мессенджер, вслед за Ираном, Оманом, Пакистаном и Китаем.

28 апреля регулятор удалил из чёрного списка две крупные подсети Amazon и таким образом уменьшил количество заблокированных IP-адресов более чем на три миллиона: с 17,8 млн до 14,6 млн. Он пообещал разблокировать и остальные подсети хостинг-провайдеров, «чтобы избежать ограничения доступа к добропорядочным интернет-ресурсам». Но дело практически не сдвинулось с мёртвой точки: каждый день Роскомнадзор разблокирует несколько десятков отдельных IP, но вместо них помещает в реестр несколько десятков новых.

Ситуация далека от спокойной. Значительная часть подсетей Amazon недоступна из России. То же самое касается других крупных хостеров. И Роскомнадзор в любой момент может нанести новый удар по российскому интернету, если заблокирует доступ к десяткам зарубежных хостинговых компаний. По крайней мере, такую угрозу сегодня высказал заместитель руководителя ведомства Вадим Субботин.
Читать дальше →

Учёные рассчитали самый длинный в мире прямой сухопутный маршрут: 11 241 км

Reading time3 min
Views43K

Иллюстрация Патрика Андерсона, на которой он в 2012 году предположил самый длинный возможный прямой маршрут по морю

В декабре 2012 года в подреддите /r/MapPorn разгорелась любопытная дискуссия. Один из пользователей под ником Kepleronlyknows (Патрик Андерсон) опубликовал изображение с картой мира, на котором изобразил прямой судоходный маршрут. Патрик высказал гипотезу, что это самый длинный прямой маршрут, который можно проложить по воде на нашей планете. Без единого поворота вы проплывёте по прямой около 32 000 километров, стартовав в районе Пакистана и финишировав на Камчатке. Абсолютно прямой маршрут проходит мимо Африки, Южной Америки и через Тихий океан до самой России.

Конечно же, автор произвёл расчёт по интуиции. Он предложил форумчанам проверить его гипотезу и найти более длинный маршрут, если таковой существует. Или попробовать доказать, что именно этот маршрут — самый прямой.
Читать дальше →

Девять вопросов о работе с памятью в V8

Reading time6 min
Views22K
Как известно, JavaScript-движок V8 весьма популярен. Он применяется в браузере Google Chrome, на нём основана платформа Node.js. В материале, подготовленном Мэттом Зейнертом, перевод которого мы публикуем сегодня, приведено девять вопросов, посвящённых особенностям того, как V8 работает с памятью. Каждый вопрос содержит фрагмент кода, который нужно проанализировать и найти ответ, наиболее точно описывающий потребление памяти этим кодом или представленными в нём структурами данных. Ответы на вопросы снабжены комментариями.

image

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

Financial Times: как трейдеры пытаются выжить в условиях заката HFT-торговли

Reading time5 min
Views8.9K


Издание Financial Times проследило историю развития высокочастотного трейдинга от эпохи его расцвета до сегодняшнего дня, когда дела HFT-торговцев не всегда идут хорошо. Ниже — рассказ о том, как они адаптируются к изменениям рынков и давлению регулирующих органов.
Читать дальше →

Рассказ о том, как я ворую номера кредиток и пароли у посетителей ваших сайтов

Reading time11 min
Views170K
Продолжение: Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
Представляем вам перевод статьи человека, который несколько лет воровал имена пользователей, пароли и номера кредитных карт с различных сайтов.


То, о чём я хочу рассказать, было на самом деле. Или, может быть, моя история лишь основана на реальных событиях. А возможно всё это — выдумка.

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

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

Docker в продакшене: обновление

Reading time13 min
Views32K

Уточнение от переводчика: пост, перевод которого вы видите перед собой, был написан 23 февраля 2017 года, по мотивам исходного поста Moby/Docker в продакшене. История провала, перевод которого (за авторством olegchir) здесь, на Хабре, вызвал живые обсуждения. Просьба читать, делая поправку на дату написания — оригинальный текст написан почти год назад!


Относиться к тексту можно по-разному. Попробуйте, наслаждаясь утренним кофе, посмотреть на себя через призму восприятия автора, и подумайте, как бы он, с его опытом и отношением к работе, отреагировал, услышав тот или иной совет по поводу Docker?


Предыдущая статья Moby/Docker в продакшене. История провала оказалась хитом. Сегодня, после долгих обсуждений, сотен отзывов, тысяч комментариев, встреч с различными людьми, с крупными игроками, ещё большего количества экспериментов и большего числа сбоев, пришло время опубликовать обновления картины.


Мы рассмотрим уроки, извлеченные из всех последних общений и статей, но, для начала — уточнение, напоминание и немного контекста.


Отказ от ответственности: предполагаемая аудитория


Большое количество комментарием показло, что мир делится на людей всего 10 типов:


1) Любители


Обычно поддерживают тестовые или хобби-проекты, где нет реальных пользоваталей. Могут полагать, что использование бета-версии Ubuntu — нормально, и называют все “стабильное” устаревшим.


Я не всегда делаю рабочий код, но когда я это делаю, он работает на моей машине
Нельзя его винить: на его-то машине код работает.

какой второй тип?

11 библиотек (наборов компонентов) для Vue, о которых стоит знать в 2018-м

Reading time5 min
Views59K
11 библиотек (наборов компонентов) для Angular, о которых стоит знать в 2018-м
11 библиотек (наборов компонентов) для Vue, о которых стоит знать в 2018-м
11 библиотек (наборов компонентов) для React, о которых стоит знать в 2018-м

В предыдущей статье мы рассказывали о популярных библиотеках для React. Сегодня представляем вашему вниманию 11 библиотек для Vue, на которые стоит обратить внимание в этом году.


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

V8 под капотом

Reading time14 min
Views33K
Ведущий разработчик Яндекс.Деньги Андрей Мелихов (также редактор/переводчик сообщества devSchacht) на примере движка V8 рассказывает о том, как и через какие стадии проходит программа, прежде чем превращается в машинный код, и зачем на самом деле нужен новый компилятор.



Материал подготовлен на основе доклада автора на конференции HolyJS 2017, которая проходила в Санкт-Петербурге 2-3 июня. Презентацию в pdf можно найти по этой ссылке.
Читать дальше →

Как работает JS: о внутреннем устройстве V8 и оптимизации кода

Reading time11 min
Views172K
[Советуем почитать] Другие 19 частей цикла
Часть 1: Обзор движка, механизмов времени выполнения, стека вызовов
Часть 2: О внутреннем устройстве V8 и оптимизации кода
Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними
Часть 4: Цикл событий, асинхронность и пять способов улучшения кода с помощью async / await
Часть 5: WebSocket и HTTP/2+SSE. Что выбрать?
Часть 6: Особенности и сфера применения WebAssembly
Часть 7: Веб-воркеры и пять сценариев их использования
Часть 8: Сервис-воркеры
Часть 9: Веб push-уведомления
Часть 10: Отслеживание изменений в DOM с помощью MutationObserver
Часть 11: Движки рендеринга веб-страниц и советы по оптимизации их производительности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 13: Анимация средствами CSS и JavaScript
Часть 14: Как работает JS: абстрактные синтаксические деревья, парсинг и его оптимизация
Часть 15: Как работает JS: классы и наследование, транспиляция в Babel и TypeScript
Часть 16: Как работает JS: системы хранения данных
Часть 17: Как работает JS: технология Shadow DOM и веб-компоненты
Часть 18: Как работает JS: WebRTC и механизмы P2P-коммуникаций
Часть 19: Как работает JS: пользовательские элементы

Перед вами — второй материал из серии, посвящённой особенностям работы JavaScript на примере движка V8. В первом шла речь о механизмах времени выполнения V8 и о стеке вызовов. Сегодня мы углубимся в особенности V8, благодаря которым исходный код на JS превращается в исполняемую программу, и поделимся советами по оптимизации кода.


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

Подготовка произвольного LTE модема для работы с сим-картой для модема Yota на примере Huawei E3272

Reading time3 min
Views150K
Главным мотиватором для создания этой статьи послужило то, что чтобы восстановить тот небольшой набор шагов, что будет приведен чуть ниже, я потратил много часов, пообщался с двумя представителями Йоты и перелопатил миллион форумов, блогов и подобных ресурсов (в т.ч. достаточно бесполезный пост на хабре по моему модему). Надеюсь, текст ниже сэкономит кому-то силы и время.

image


Сразу к главному. Несмотря на то, что в интернетах пишут, что всё должно работать само собой и сразу, для того, чтобы ваша сим-карта от модема (а не планшета и смартфона, там другая история!) йоты заработала внутри произвольного модема, вам надо проделать следующее:
  1. Разлочить модем, если он привязан к оператору (перепрошивка не требуется!).
  2. Вставить симку и добиться того, что б он подключился к базовой станции и зарегистрировался в сети Йота.
    • Для этого необходимо убедиться, что есть покрытие LTE от йоты (3G не подходит!), вот карта покрытия, но реальное покрытие больше, надо проверять на местности;
    • убедиться, что модем работает на йотовских частотах LTE: band-7;
    • и перевести модем в режим 4G.

  3. Установить соединение, используя правильные параметры.


Теперь по порядку.

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

Укрощаем Yota вместе с Zyxel

Reading time2 min
Views47K
Думаю многие счастливые обладатели высокоскоростного интернета от Yota сталкивались с этими двумя проблемами:

1. Соединение с интернетом пропадает полностью
2. Соединение как бы есть, но его нет (очень-очень низкая скорость)

Ниже способы борьбы с ними. Сразу отмечу, что решения для тех, у кого роутер Zyxel и usb-модем Yota.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity