Как стать автором
Обновить
11
Карма
0
Рейтинг

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

Написание компилятора на Haskell + LLVM

Время прочтения 20 мин
Просмотры 6.7K
Haskell *Компиляторы *Функциональное программирование *DIY или Сделай сам
Туториал
✏️ Технотекст 2021

На работе я пишу почти исключительно на Python, с университетской скамьи остались некоторые знания C/C++, в одном pet-project использовал Haskell. С таким багажом знаний я взялся за написание компилятора на основе LLVM - зачем и что получилось я уже рассказывал в предыдущей статье.

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

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

Читать далее
Всего голосов 35: ↑35 и ↓0 +35
Комментарии 2

Как настроить python в Linux под свой проект?

Время прочтения 4 мин
Просмотры 10K
Python *Разработка под Linux *
Туториал

Привет, Хабр! Меня зовут Дмитрий Алексеев, я Data Scientist и являюсь участником профессионального сообщества NTA. Сегодня расскажу как использовать python и Linux «в связке», и как это поможет облегчить вам жизнь.

Читать далее
Всего голосов 25: ↑13 и ↓12 +1
Комментарии 16

Функциональный поиск событий с помощью cats-effect

Время прочтения 13 мин
Просмотры 813
Блог компании OTUS Программирование *Scala *
Перевод

Достижение максимальной выразительности и абстракции домена при сохранении точности протокола актора с помощью библиотеки endless4s Scala.

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

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 0

Как я случайно обошёл блокировку Google Pixel и получил за это $70 тысяч

Время прочтения 8 мин
Просмотры 72K
Информационная безопасность *Разработка под Android *Реверс-инжиниринг *Сотовая связь
Перевод

Я обнаружил уязвимость, похоже, затронувшую все телефоны Google Pixel: вы можете дать мне любое заблокированное устройство Pixel, и я верну его вам разблокированным. Баг устранили в обновлении безопасности 5 ноября 2022 года.

Проблема позволяла атакующему с физическим доступом к телефону обойти меры защиты экрана блокировки (отпечаток пальца, PIN и так далее), получив полный доступ к устройству пользователя. Уязвимость зафиксирована как CVE-2022-20465; она может затронуть и устройства Android других производителей. Мои рекомендации по патчу и сырой баг-репорт, отправленные Google, можно найти здесь: feed.bugs.xdavidhu.me.
Читать дальше →
Всего голосов 192: ↑189 и ↓3 +186
Комментарии 156

Семь грехов численной линейной алгебры

Время прочтения 6 мин
Просмотры 8K
Блог компании SkillFactory Математика *Читальный зал Научно-популярное
Перевод

image


В численной линейной алгебре нас интересуют точное и эффективное решение задач и понимание чувствительности задач к возмущениям. К старту флагманского курса по Data Science делимся материалом от профессора Ника Хигэма о семи грехах линейной алгебры, из-за которых теряется точность/эффективность или информация о чувствительности [к возмущениям] оказывается недостоверной.

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

Asterisk. Доставка SIP Message после возврата абонента из off-line'а

Время прочтения 9 мин
Просмотры 1.6K
IT-инфраструктура *Asterisk *

В предыдущих статьях я описал как настроил и собрал GSM <> SIP систему на базе Asterisk. В этой статье расскажу как быть с входящими SMS, если получатель не в сети.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 7

Так все же, насколько быстры каналы в Linux?

Время прочтения 26 мин
Просмотры 21K
Высокая производительность *Настройка Linux *Программирование *Процессоры
Перевод

В этом посте будет проанализировано, как каналы Unix реализуются в Linux. Для этого мы напишем и в несколько итераций оптимизируем тестовую программу, которая записывает и считывает данные через канал.  

Читать далее
Всего голосов 96: ↑91 и ↓5 +86
Комментарии 31

Почему всё ломается даже у хороших программистов? Часть 2/2

Время прочтения 12 мин
Просмотры 16K
Программирование *Управление разработкой *Управление проектами *Управление продуктом *

После несерьёзной статьи на серьёзную тему Job Safety Driven Development стоит рассказать о том, почему даже опытные и добросовестные программисты волей случая могут попадать в схожие ситуации. Сначала захотелось написать, почему программисты ошибаются вообще ("Почему ошибаются программисты?" Часть 1 и Часть 2), но оказалось, что это слишком разные темы. Потом оказалось, что и на эту тему получился очень длинный текст. Пришлось разбить его на части. В первой части мы рассмотрим обычные случаи, которые знакомы многим крупным компаниям. И дополним понятие «серебряная пуля» понятием «золотая шестерёнка».  Во второй части поймём, какую цену вам, скорее всего, придётся заплатить за «золотую шестерёнку», я приведу немного своего опыта. Как всегда, попробую писать простым языком, понятным широкой аудитории.

Читать далее
Всего голосов 32: ↑31 и ↓1 +30
Комментарии 44

15 лучших и бесплатных инструментов компьютерного криминалиста

Время прочтения 4 мин
Просмотры 28K
Блог компании T.Hunter Информационная безопасность *

Добрый день Хабр. Сегодня, мы с вами окунемся в «О дивный мир» форензики. В данной статье Мы решили собрать программы, которые помогут Вам в проведении расследований и, что немаловажно, будут при этом бесплатными.

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

Читать далее
Всего голосов 39: ↑37 и ↓2 +35
Комментарии 9

Лямбда-исчисление в 397 байтах

Время прочтения 22 мин
Просмотры 14K
Программирование *Математика *
Перевод

Лямбда-исчисление — это язык программирования с единственным ключевым словом. Это асфальтовая топь Тьюринга, обнаруженная научным руководителем Тьюринга. В этом посте я расскажу о совершенно новой 397-байтной реализации двоичного лямбда-исчисления в виде Linux ELF для x86-64. Также в нём представлены удобно портируемый код на C и собранные двоичные файлы APE для других платформ.
Читать дальше →
Всего голосов 70: ↑69 и ↓1 +68
Комментарии 13

Алгоритм Дейкстры. Разбор Задач

Время прочтения 7 мин
Просмотры 25K
Блог компании OTUS Занимательные задачки Python *Алгоритмы *


Поиск оптимального пути в графе. Такая задача встречается довольно часто и в повседневной жизни, и в мире технологий. Справиться с такими вызовами помогает подход, который должен быть в арсенале каждого программиста — алгоритм Дейкстры.

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

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

Знакомство с p-адическими числами. Часть 2, практическая

Время прочтения 13 мин
Просмотры 2.9K
Haskell *Математика *Функциональное программирование *


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


Мы поговорим об эффективном внутреннем представлении p-адических чисел, о базовых алгоритмах и методах работы с ними, а также о двух классных инструментах в системе типов языка Haskell: о типах-литералах (type literals) и семействах типов (type families).

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

PROOF OF STAKE – это скам

Время прочтения 16 мин
Просмотры 100K
Криптография *Алгоритмы *Распределённые системы *
Recovery mode
Перевод

Proof of Stake (PoS) – это мошенничество. Когда я говорю это, я имею в виду, что PoS 1) заявлен как система консенсуса, и 2) фактически неспособен на самом деле обеспечить консенсус.

Читать далее
Всего голосов 118: ↑99 и ↓19 +80
Комментарии 475

Легализация удаленки на зарубежную компанию без бухгалтера. Step by step guide 2021

Время прочтения 7 мин
Просмотры 9.2K
Карьера в IT-индустрии Удалённая работа
Из песочницы

Преимущества удаленной работы на зарубежного заказчика с получением выплат в валюте очевидны, но после заветного офера встает вопрос об оформлении. Многим зарубежным компаниям, не имеющим представительства в России, не выгодно оформлять сотрудника, находящегося в другой стране, в штат из-за дополнительного налогообложения, юридических сложностей и проч. Гораздо выгоднее (причем для обеих сторон) взаимодействовать с заказчиком как ИП (индивидуальный предприниматель). Ниже я на своем примере опишу все шаги от открытия ИП до вывода средств на счет физического лица, не переключайтесь.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 29

GPT для чайников: от токенизации до файнтюнинга

Время прочтения 13 мин
Просмотры 22K
Семантика *Программирование *Машинное обучение *Natural Language Processing *
Туториал
✏️ Технотекст 2022

К моему удивлению, в открытом доступе оказалось не так уж много подробных и понятных объяснений того как работает модель GPT от OpenAI. Поэтому я решил всё взять в свои руки и написать этот туториал.

Читать далее
Всего голосов 31: ↑30 и ↓1 +29
Комментарии 5

Собеседования джунов — вся жесть вопроса

Время прочтения 6 мин
Просмотры 84K
Программирование *.NET *Алгоритмы *Карьера в IT-индустрии Интервью

После 2-х лет разработчиком на С# в небольшой английской компании в сфере строительства, я решил выяснить свою стоимость как специалиста на рынке труда Великобритании. Несмотря на то, что большинство вакансий представляют собой примерно одно и то же: «Требуется человек-оркестр с 10+ лет опыта для очень интересной работы», — я специально выбирал позиции исключительно младшего разработчика не содержащих цифр 5+, 10+ и 15+ в описании. Как это было — читайте дальше.

Читать далее
Всего голосов 95: ↑87 и ↓8 +79
Комментарии 237

А вы знаете, где используется Haskell?

Время прочтения 4 мин
Просмотры 19K
Блог компании Typeable Программирование *Haskell *Функциональное программирование *

Всем привет! Мы хотим продолжить серию постов на тему “где используются эти ваши странные языки программирования”. В прошлый раз мы рассказали про Лисп, а сегодня продолжим разговор про функциональные языки и обратим внимание на Haskell.  Он является основным языком разработки в Typeable и, конечно, мы не смогли пройти мимо такой темы.

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

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

Читать далее
Всего голосов 39: ↑38 и ↓1 +37
Комментарии 27

Разбор вступительных заданий в Школу Программистов hh.ru 2021

Время прочтения 6 мин
Просмотры 10K
Блог компании HeadHunter Python *JavaScript *Java *

Привет! Подошел к концу двенадцатый набор в Школу Программистов hh.ru. Самое время рассказать, как Петр Васильевич раздавал премии менеджерам, кто вышел победителем из "Релиза до выходных" благодаря ролевому помощнику, и как впервые в истории Школы нам пришлось облегчить условия вступительного задания прямо во время набора. 

В этой статье будет подробный разбор заданий свежего набора в Школу Программистов hh.ru.

Поехали разбираться
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 13

Как я пишу на LaTeX в Emacs быстрее, чем от руки

Время прочтения 17 мин
Просмотры 21K
Блог компании SkillFactory Программирование *LaTeX *Emacs *Читальный зал
Перевод


Когда Жиль Кастель задокументировал метод ведения математических записей в Vim в реальном времени, многие захотели добиться тех же скорости и удобства ввода LATEX в Emacs1.

Я работаю на LaTeX весь день: уравнения пишу так же быстро, как на бумаге. И даже быстрее. Почему? За размышлением всегда следует работа пальцев. И это — та ситуация, когда количество переходит в качество. Хотя мои рекомендации — лишь 90 % решения.
Читать дальше →
Всего голосов 53: ↑51 и ↓2 +49
Комментарии 9

Си должен умереть

Время прочтения 21 мин
Просмотры 105K
Информационная безопасность *Программирование *Системное программирование *Компиляторы *C *
Из песочницы

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

Попробуем понять, что же такое этот противоречивый язык Си - благословение или проклятие?

Читать далее
Всего голосов 232: ↑194 и ↓38 +156
Комментарии 643

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность