Pull to refresh
14
0
Send message

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

Reading time4 min
Views26K

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

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

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

Читать далее
Total votes 34: ↑33 and ↓1+37
Comments27

Производители умных ТВ зарабатывают на слежке за пользователями больше, чем на самих телевизорах

Reading time4 min
Views69K

Сетевая активность телевизора в программе IoT Inspector. Скриншот: Geoffrey Fowler/The Washington Post

В 2019 году мы рассказывали, что умные телевизоры Samsung, LG, Vizio и TCL ежесекундно снимают «отпечатки» экрана и отправляют на сервер. Это главная причина, почему телевизоры так подешевели в последнее время. Умный телевизор стоит дешевле, чем такой же ТВ без функции Smart TV. Производители нашли новый способ монетизации.

К сожалению, сейчас ситуация только ухудшилась: в 2021 году у некоторых производителей ТВ слежка за пользователями стала не дополнительным, а основным источником дохода.
Читать дальше →
Total votes 78: ↑76 and ↓2+102
Comments320

Базовые концепции аллокаторов

Reading time10 min
Views18K

Находясь в поисках какой-то агрегированной информации о стандартных приёмах, используемых при проектировании кастомных аллокаторов, я обнаружил, что существует достаточное количество статей о том, как аллокаторы работают в C++, каких-то базовых вариантах или наоборот очень специфических версиях, но ничего достаточно общего. Попался только замечательный доклад замечательного Андрея Александреску про неправильную архитектуру std::allocator и собственно базовые концепции построения своего нового самого крутого в мире аллокатора. Эта статья является довольно вольным переводом второй части его выступления с моими небольшими дополнениями. Конечно же, категорически рекомендую посмотреть оригинальный доклад, но, если вы любитель текстовых версий, прошу под кат.

Выделить знания...
Total votes 40: ↑40 and ↓0+40
Comments5

Три ужасные фичи программирования из прошлого

Reading time6 min
Views57K

Я верю в программистское клише о том, что большинство плохих фич имеет причины для существования. Ненавидимый многими оператор goto позволяет быстро и удобно выбраться из глубоко вложенной структуры, если пользоваться им с умом. Определённая степень нестрогости типов позволяет им быть более изящными. Указатели памяти могут заставить вас возненавидеть свою жизнь, но они были критически важны в те годы, когда компьютерное «железо» было слабее современного умного термостата. Список можно продолжать.

Но когда я вспоминаю об этих запылённых старых реликтах, то осознаю, что некоторые старые идеи настолько плохи, что лучше всего было бы сжечь их навечно. В этой статье я расскажу о трёх фичах языков программирования, которые были настоящим кошмаром.
Читать дальше →
Total votes 93: ↑85 and ↓8+100
Comments322

Дефицит специалистов не только в IT — он везде. Но денег не платят

Reading time17 min
Views199K

Когда мы писали про рост зарплат в IT, то выяснили, что они растут из-за дефицита специалистов и выравнивания значений по уровню западных зарплат. Но оказывается, что дефицит есть везде. Абсолютно везде. Не хватает учителей, врачей, строителей, металлургов, водителей, инженеров и даже курьеров. На рынке повальный дефицит специалистов, которым предлагают зарплаты на уровне Молдавии или Республики Косово.

Читать далее
Total votes 368: ↑352 and ↓16+408
Comments1017

Обзор kubenav для управления Kubernetes-кластерами со смартфона

Reading time6 min
Views6.4K

Kubenav — бесплатное приложение с открытым исходным кодом. Его основная цель — предоставление удобного GUI для управления кластером Kubernetes из-под всех возможных платформ. Их ассортимент действительно богат: десктоп-клиенты (для Linux, macOS и Windows), мобильные (для Android и iOS), а также веб-версия.

Читать далее
Total votes 31: ↑31 and ↓0+31
Comments0

Apple анонсировала M1 Pro и M1 Max: гигантские новые SoC на архитектуре ARM с полной производительностью

Reading time6 min
Views56K

Сегодняшний основной доклад Apple Mac был очень насыщенным — компания анонсировала новую линейку устройств MacBook Pro на базе двух различных новых SoC в линейке Apple Silicon: M1 Pro и M1 Max.

M1 Pro и Max представляют собой продолжение прошлогоднего M1, процессора Mac первого поколения Apple, который стал первым этапом для Apple в реализации планов по замене процессоров на архитектуре x86 чипами собственного дизайна. M1 был успешным для Apple, продемонстрировав фантастическую производительность при невиданной доселе энергоэффективности на рынке ноутбуков. Хотя M1 достаточно быстрый, это все еще был небольшой SoC. Он предназначался, в первую очередь, для таких устройств, как iPad Pro. Соответственно, у него более низкий TDP, уступающий более производительным и мощным чипам от конкурентов.
Читать дальше →
Total votes 98: ↑91 and ↓7+115
Comments200

Идеальная светодиодная лампа за 21 рубль

Reading time3 min
Views79K
Удивительно осознавать, что достаточно сложное электронное устройство, которым является светодиодная лампочка, может стоить 21 рубль.

Ещё сложнее поверить, что эта лампочка безукоризненна по всем параметрам.

Читать дальше →
Total votes 174: ↑172 and ↓2+223
Comments204

КОМПАС-3D под FreeBSD в среде Wine на видеокарте nVidia

Reading time4 min
Views11K

Данный пост можно рассматривать как дополнение к "КОМПАС-3D и Linux → Часть 1"

Небольшое отступление.

К фрюхе я неравнодушен давно, года с 1996-го, но использовал её ранее только как серверную ОС. О том, что бы установить FreeBSD на рабочий ноутбук, как -то даже и мысли не возникало. Но времена меняются. С месяц назад я просто почувствовал, что пора... пора расстаться с этим недоразумением под названием Windows и накатил FreeBSD 13.0 на свой рабочий ASUS VX7. Почему не Linux ? Потому, что фрюха - это наше все! О том, как проходил процесс пуско-наладки FreeBSD на отдельно взятом ноутбуке можно написать не один пост, но сейчас вопрос не об этом.

Дело в том, что мне по долгу службы часто приходится иметь дело с 3D моделями, для этой цели пару лет назад была приобретена сетевая лицензия на КОМПАС-3D, а так же оформлена подписка на Fusion 360. После перехода на фрю, оба этих инструмента мне стали недоступны и я вынужден был использовать FreeCAD. К сожалению, приходится констатировать факт - FreeCAD урод от рождения, пользоваться им можно, но крайне тяжело. Это вынудило меня потратить некоторое время на поиски альтернативного решения, а именно - как заставить Fusion 360 или КОМПАС-3D работать под FreeBSD в среде Wine.

Читать далее
Total votes 33: ↑33 and ↓0+33
Comments15

Как я снял спутники Юпитера на ТЕЛЕФОН

Reading time3 min
Views52K

Перед вами первая (в истории?) фотография Юпитера и его спутников, сделанная на ТЕЛЕФОН без использования дополнительных оптических средств, таких как телескоп или внешние объективы. Только штатив, только хардкор.

Читать далее
Total votes 144: ↑139 and ↓5+177
Comments179

Коммерческая разработка

Reading time2 min
Views29K

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

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

Картинка ускоряется, места работы меняются, а проблемы и люди остаются примерно те же самые. Всех их объединяет примерно одно и тоже — проблемы бизнеса. Нужно заработать денег. Я не создаю, я решаю проблемы бизнеса. Если бизнесу дешевле нанять сто человек, а не разработать один красивый алгоритм - он наймет сто человек. Бизнесу по барабану красота и качество технологий, ему абсолютно всё равно на производительность и удобство. Запилить MVP и получить инвестиций побыстрее. Идеалы современного мира.

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

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

Читать далее
Total votes 102: ↑82 and ↓20+86
Comments129

Как отсеять хороших разработчиков при найме

Reading time5 min
Views24K
Нанимать разработчиков – дело непростое: это долгосрочное вложение, их полгода приходится вводить в курс дела и полную отдачу от них получаешь, только если сумеешь удержать на несколько лет. Сегодня на рынке труда идет повальная охота на самых талантливых разработчиков, так что, если хотите быть уверенными, что Facebook, Amazon, Apple, Netflix или Google не начнут обивать пороги ваших сотрудников, нужно остерегаться нанимать слишком способных. Чтобы вам с этим помочь, мы предлагаем несколько советов касательно того, как отсеять лучших из лучших в своем деле и набрать таких, кому больше некуда податься.
Читать дальше →
Total votes 45: ↑33 and ↓12+34
Comments53

«Оптимизируем» функции на уровне AST

Reading time10 min
Views8.2K

Python предоставляет программисту огромное пространство свободы. Увы, обычно это довольно дорогая в плане производительности свобода, зато при правильном применении иногда она позволяет творить сущую магию. Но сегодня мы поговорим не о таких вот «богоугодных» применениях свободы, а о том, что никогда не стоит использовать в прикладном программировании — о модификациях кода на уровне AST.

Запутаться
Total votes 54: ↑54 and ↓0+54
Comments7

Технология Google повышает разрешение изображений до 16 раз без потери качества

Reading time3 min
Views33K

Исследователи Google из команды Brain Team поделились своими достижениями в области масштабирования изображений.

Результаты, мягко говоря, поражают...

Читать далее
Total votes 37: ↑31 and ↓6+33
Comments72

По секрету всему свету, или как Raiffeisen гоняет (не) твои паспортные данные по сети тысячи раз

Reading time2 min
Views34K

Одной унылой ночью мне стало скучно разгребать БИНы российских банков, отчего я решил сделать дублирование операций из своего ныне основного банка в телеграм. Тем более, что качество обновлений оставляет желать лучшего (или это просто я избалован лучшим мобильным приложением от одного там небанка)

Отрицание. Что делают хоть немного люди, когда хотят попользоваться непубличным API? Наверное, идут на GitHub и вводят в строку поиска что-то типа "api service_name". Много что уже заревёр(с/ш)ено, посему велик шанс найти полноценный враппер. Но нет, обнаруживаю только всяку каку с хакатонов.

Гнев. DuckDuckGo'инг тоже не даёт результатов. Неужели никто не пытался автоматизировать работу с Райфом?

Торг. Открываю веб-банк и смотрю через монитор сети (ctrl+shift+e в лисе), куда шлются запросы после каких-либо действий. Ага. Ищу по доменам на гитхабе. Опять ничего. ВАААУ. Уже становится страшно.

Депрессия. Расковырял APK'шку и судорожно ищу по всем файлам наличие "raiffeisen.ru", однако kFind ничего сверхъестественно-полезного не выдаёт. Как и по запросу "api".

Смирение. Достаю свой прошлый телефончик с Android 8.1 на борту, ставлю купленный несколько лет назад для решения похожей задачи с одним там небанком HttpCanary — шикарный клиент для анализа http(s), tcp, udp и web-socket трафиков. Ставлю доверенный сертификат, ля-ля-ля тополя, бюрократия, в общем. Теперь активирую self-vpn и запускаю заветный Raiffeisen.

Принятие. В PiP-окошко с логом всех http-запросов летит первый мусор на всякие уведомления. Прикладываю палец к сканеру, дабы войти в приложение. Ага. Вижу запрос, содержащий "oauth/token". Чую, что что-то связанное с авторизацией. Пускает в приложение. Но вот незадача, никакие данные не отобржаются, типа баланса счетов или истории операций. Окей, смею в тот момент предположить, что это как-то связано с доверенным сертификатом. Тыкаю в раздел операций. Тоже не отображаются данные, но запрос ушёл успешно. Можно отключать анализ и идти разгребать урылы, заголовки и содержимое.

Читать далее
Total votes 81: ↑68 and ↓13+77
Comments63

Пишем дизассемблер виртуальной машины из игры Clock Tower (PS1/PC) для IDA Pro

Reading time16 min
Views6.2K

Всем привет. Тут такое дело: ещё одна моя реверсерская мечта сбылась - я написал процессорный модуль для IDA Pro с нуля, за два дня! Если вы когда-то тоже хотели написать свой модуль, но боялись начать - думаю, моя статья сможет помочь.

В качестве кода, который требуется дизасемблировать, будет выступать код виртуальной машины из очень крутого хоррора, который выходил сначала на SNES, потом на PS1, PC и Wonderswan - "Clock Tower - The First Fear". В игре имеется 9 концовок (sic!), атмосфера гнетущая, а в качестве главного злодея выступает "Scissorman" (человек с руками-ножницами). Заинтересовал? Тогда добро пожаловать...

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments5

Есть ли жизнь после разработки: Как расти, минуя менеджмент

Reading time9 min
Views20K

В российских компаниях классический путь программиста заканчивается на должности тимлида или tech lead. Дальше — всё больше менеджера, всё меньше инженера. Хочешь расти в компании — берись за управление людьми, нравится тебе это или нет.

Но что, если есть другой путь? Опыт западных компаний показывает, что можно дать программисту остаться в разработке, а в менеджеры брать тех, у кого есть желание. И это не пойдёт компании в убыток. Наоборот — разработчик сможет вносить больший вклад в работу компании и наработать уникальную экспертизу. А ещё не выгорит от бесконечных code review. В этой статье Иван Круглов расскажет, как разработчику расти, минуя менеджмент.

Читать далее
Total votes 27: ↑26 and ↓1+41
Comments13

Трудные коллеги

Reading time8 min
Views37K

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

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

На что мой руководитель резонно мне ответил:

— ${zloy_stas}, таких, как этот Г., в твоей работе будет много; если ты будешь увольнять каждого, кто тебе не понравился лично, ты быстро перестанешь быть руководителем. Твоя задача — не детей с ними крестить, а извлекать из них пользу и уметь с ними работать. Пусть этот Г. будет для тебя таким менеджерским челленджем.

Это был очень хороший урок, и действительно, умение работать с не очень приятными людьми — важный и нужный навык для любого руководителя. И я встретился по жизни еще не с одним «трудным» подчиненным. 

Поговорим сегодня о поведении, а точнее о тех психологических проблемах, с которыми мне приходилось сталкиваться на практике. Это будет разговор про ситуации и проблемы, которые не всегда фатальны; про людей, которые ещё могут быть полезны. При этом мы все знаем, что делать с совсем неподходящими людьми ;)

Читать далее
Total votes 101: ↑79 and ↓22+85
Comments97

Information

Rating
Does not participate
Registered
Activity