Pull to refresh
0
0
Glum Psyche @GlumPsyche

Software Developer

Send message

Linux для смартфонов, часть 1. Забытое (и не очень) прошлое

Reading time7 min
Views22K
Уж сколько раз твердили Хабру, что не в меру интригующие заголовки приводят скорее к противному разочарованию, чем к повышенному интересу читателей — и всё равно здесь появляется статья о том, что готов релиз Fedora Linux для смартфонов. При внимательном прочтении выясняется, что не для смартфонов, а всего лишь для смартфона — причём смартфона довольно редкого и «в любом военторге» не продающегося, к тому же откровенно посредственного в аппаратной части. Правда, разработчики обещают в неопределённом будущем выкатить прошивку ещё для парочки малопопулярных смартфонов, но это принципиально ничего не меняет.

image

Так, но ведь это один отдельно взятый дистрибутив. Может, есть (или были) какие-то другие, более удачные разработки? Точно были, и точно есть! Ок, давайте посчитаем пингвинов в зоопарке вспомним историю, а заодно оценим перспективы нынешних проектов.
Читать дальше →
Total votes 14: ↑13 and ↓1+17
Comments27

Бьярне Страуструп о контроле над языком, удалении старых функций, заимствованиях у Rust и многом другом

Reading time27 min
Views18K

Этим летом на онлайн-конференции C++ Russia побывал самый почетный гость, какой только может быть на мероприятии по C++: создатель этого языка Бьярне Страуструп. Мы поговорили с ним о контроле над языком, нововведениях, удалении старых функций, о том, почему у языка нет четкой экосистемы, и как так получилось, что у С++ нет стандартной сетевой библиотеки.


А поскольку сообщество C++ вечно обсуждает Rust, не обошлось и без вопроса о заимствованиях между этими языками.



Бьярне не нуждается в представлении, но у него столько активностей и заслуг, что попробуем перечислить:


  • написал множество публикаций, в том числе книги «Язык программирования С++» и «Программирование: Принципы и практика использования C++»
  • работает управляющим директором в отделе технологий компании «Морган Стенли» в Нью-Йорке
  • преподает в Колумбийском университете
  • принимает активное участие в работе комитета по стандартизации C++
  • состоит в Национальной академии инженерии США, IEEE, Ассоциации по вычислительной технике. Исследует программирование в области распределенных вычислений, инструменты развития ПО и языки программирования.
  • магистр и заслуженный профессор Орхусского университета и доктор по направлению «Информатика» Кембриджского университета, почетный член научного сообщества Колледжа Черчилля, заслуженный профессор Санкт-Петербургского ИТМО

Вопросы ему задавали Сергей Платонов (С++ программист, организатор С++ Siberia) и Сергей Федоров (руководитель разработки бэкенда Яндекс.Лавки). Под катом — перевод, а также видеозапись интервью для тех, кто хочет послушать на английском.

Total votes 43: ↑40 and ↓3+53
Comments23

Валидация данных в C++ с использованием библиотеки cpp-validator

Reading time10 min
Views11K


Казалось бы, валидация данных — это одна из базовых задач в программировании, которая встретится и в начале изучения языка вместе с "Hello world!", и в том или ином виде будет присутствовать в множестве зрелых проектов. Тем не менее, Google до сих пор выдает ноль релевантных результатов при попытке найти универсальную библиотеку валидации данных с открытым исходным кодом на C++.

Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments4

Отечественный микроконтроллер К1986ВК025 на базе процессорного ядра RISC-V для приборов учета электроэнергии

Reading time11 min
Views45K
Добро пожаловать в эпоху RISC-V!

Решения на базе открытого стандарта системы команд RISC-V всё чаще появляются на рынке. Уже в серийном производстве микроконтроллеры от китайских коллег, интересные решения предлагает Microchip с FPGA на борту. Растет экосистема ПО и средств разработки для данной архитектуры. Кажущиеся ранее непоколебимыми лидеры все чаще встречаются в объявлениях о перепродаже, а молодые стартапы привлекают многомиллионные инвестиции. Компания Миландр так же ввязалась в эту гонку и сегодня начала поставку заинтересованным предприятиям инженерных образцов своего нового микроконтроллера К1986ВК025 на базе процессорного ядра RISC-V для приборов учета электроэнергии. В общем картинки, характеристики и прочая информация, а так же немного хайпа под катом.


Читать дальше →
Total votes 99: ↑99 and ↓0+99
Comments148

Посадите программиста в поток. Защищайте. Не мешайте. Наслаждайтесь

Reading time5 min
Views36K
Нужна справка на каждого ребенка. Да, и согласие на обработку персональных данных. От каждого из родителей. Пусть и анкету каждый заполнит. Статистический отчет о том, сколько мальчиков и девочек. Да, и по возрастам. И по районам прописки. Ну и по школам. Разделите там, пожалуйста, обычные школы, лицеи и гимназии. Нет, педсовет пропускать нельзя. Это всего 4 часа. Раз в неделю. Да, всем педагогам надо прийти. Конечно, вам нужно работать еще и в детских садах. Каждому из вас. Трижды в неделю. И костюмы ваши нам не нравятся, нужно меньше красок – чего как попугаи-то?

Так, а почему новых постановок нет? Где победы на конкурсах? Что значит два месяца бегаете бумажки собираете? Какое еще творчество? И почему у вас на него времени нет? Какого еще секретаря вам нанять? Что значит «я ухожу»? Вы серьёзно думаете, что справитесь без нас? Что ж, удачи.

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

Случай запал в душу, т.к. я как раз проводил эксперимент (в очередной раз) по избавлению других творческих людей – программистов – от непрофильной, но «такой важной, нужной и обязательной работы» — успеванию в срок.
Читать дальше →
Total votes 87: ↑75 and ↓12+82
Comments118

Как устроена графика в Linux: обзор различных сред оформления рабочего стола

Reading time13 min
Views109K
Эта статья о том, как устроена графика в Linux и из каких компонентов она состоит. В ней много скриншотов с различными реализациями сред рабочих столов. 

Если вы не сильно различаете KDE и GNOME или различаете, но хотели бы узнать, какие еще есть альтернативы, то эта статья для вас. Она обзорная, и хотя в ней много названий и немного терминов, материал будет также полезен начинающим и только посматривающим в сторону Linux.

Тема может заинтересовать и продвинутых пользователей при настройке удаленного доступа и при реализации тонкого клиента. Часто встречаю вполне матерых линуксойдов с утверждениями «на сервере только командная строка, и графику подробнее изучать не планирую, так как это всё нужно для простых пользователей». Но даже знатоки Linux с большим удивлением и радостью открывают для себя опцию «-X» у команды ssh (а для этого полезно понимать работу и функции X-сервера).

Источник
Читать дальше →
Total votes 141: ↑141 and ↓0+141
Comments162

Часть 5. Карьера программиста. Middle. Кризис. Первый релиз

Reading time8 min
Views24K
Продолжение рассказа «Карьера программиста».

2008-ой год. Глобальный экономический кризис. Казалось бы, при чем тут фрилансер-одиночка из глубокой провинции? Оказалось, что даже мелкий бизнес и стартапы на Западе, также обнищали. А это были мои непосредственные и потенциальные клиенты. Ко всему прочему, я наконец защитил диплом специалиста в университете и других занятий, кроме как фрилансить — у меня не оставалось. До кучи, я расстался со своим первым клиентом, который приносил постоянный доход. И следом за ним, рухнули и мои отношения с потенциально будущей женой. Все как в том анекдоте.
Наступила “черная полоса”, в тот момент, когда должна была наступить пора возможностей и роста. Пора, когда амбициозные молодые люди рвутся строить карьеру и впахивают за пятерых, молниеносно получая повышение. У меня было все наоборот.

Один на один, с фриланс-биржей oDesk и редкими заказами, протекала моя жизнь. Я по-прежнему жил с родителями, хотя мог позволить себе жить отдельно. Но жить одному мне не понравилось. Поэтому мамкины борщи и папкины сто грамм, скрашивали серые будни.
Когда-никогда я встречался со старыми друзьями из универа, поговорить за жизнь, да поделиться новостями. Компания СКС из третьей части этого рассказа сделала pivot и перекочевала во фриланс. Теперь Илон и Ален, также как и я, просиживали штаны дома у компа, добывая деньги для существования. Вот так мы и жили: без целей, перспектив и возможностей. Внутри меня все бунтовало, я категорически был несогласен с происходящим. Это был system error в моей голове.

Первой попыткой что-то изменить, был масштабный по замыслу веб-сервис.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments5

Завязывайте со своим «Хабр не торт». Хабр — это феномен

Reading time6 min
Views17K


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

Но потребность знать, что вообще происходит в индустрии есть. Хочется знать, что происходит, кого и что волнует, что люди думают о новых технологиях, и какой вообще сейчас дух у сообщества. Вот здесь Хабр и заменил мне тусовку в офисе. И новости, и исследования, и мнения, и сотни комментариев от коллег по цеху.
Читать дальше →
Total votes 126: ↑77 and ↓49+72
Comments93

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

Reading time8 min
Views33K


Когда я был студентом в Питерском IT Вузе, я долгие годы вынашивал идею изучить некоторые разделы в медицине, чтобы лучше понять мои проблемы со здоровьем, и изучать медицину сразу на английском языке. Эта идея выстрелила очень сильно (не смотря на трудности с языком в самом начале), и уже через пару лет я гуглил исключительно на английском, читал webmd и medicalnewstoday, решал задачки из американского аналога ЕГЭ (Advanced Placement Psychology и Biology), использовал Амазон как отправную точку при выборе книг, а также заглядывал в справочник The Merck Manual.

У меня сложилось впечатление, что в западной медицине психотерапия основана на КПТ (CBT), а психоанализ уже давно ушел в узкую частную практику. Опытный врач НИКОГДА не будет рекомендовать психоанализ как лечение. Однако, когда я начал общаться с моими знакомыми из СПБ (все они — достаточно хорошо образованные и занимаются интеллектуальным трудом), то оказалось, что 4 из 4 (100%) считают, что психоанализ — это основа (фундамент) психотерапии. У меня случился очень большой разрыв шаблона, и я попытался разобраться…
Читать дальше →
Total votes 46: ↑33 and ↓13+30
Comments85

Гугл-программисты. Как идиот набрал на работу идиотов

Reading time4 min
Views173K
В стародавние времена я, на постоянной основе, занимался техническими собеседованиями – отбирал кандидатов на должность программиста в компанию. У меня была простая, понятная, шикарная методика (не мной придуманная). Чувак сначала проходил длинное собеседование по куче разнообразных вопросов, потом решал несколько задач. На бумаге, как мы делали в ВУЗе.

Оглядываясь назад, понимаю – отбор действительно работал шикарно. Все, кого я тогда отобрал, стали уважаемыми в нашей деревне специалистами. Больше половины из них давно открыли собственный it-бизнес, в самых разных сферах – от 1С до разработки CRM-систем.

Вот этот опыт и замутил моё сознание. Настолько, что я решил поменять методику – подумал, что дело не в ней, а во мне. Я есть великий специалист по техническим собеседованиям.
Читать дальше →
Total votes 318: ↑229 and ↓89+208
Comments648

Линус Торвальдс, Бьёрн Страуструп и Брендан Грегг контрибьютят в мой хобби-проект. Зачем?

Reading time8 min
Views70K

Смотрите сами: вот проект, вот история коммитов.



Список контрибьюторов с главной страницы репозитория:



Ссылки на аватарках ведут на странички профилей реальных людей.


Всё на месте. Кроме плашечки "Verified" как здесь:





Знатоки Git и GPG, не торопитесь проматывать ленту: эта статья не про необходимость подписывать свои коммиты. Она про неявные допущения, которые мы делаем, пользуясь "интуитивно-понятными" монстрами GitHub и GitLab и доверяя им контроль доступа к нашим репозиториям.

Читать дальше →
Total votes 158: ↑154 and ↓4+201
Comments67

Наш первый обзор отключения Интернета в Беларуси

Reading time4 min
Views51K
9 августа в Беларуси произошли общенациональные отключения интернета. Вот первый обзор того, что наши инструменты и наборы данных могут рассказать нам о масштабах этих отключений и их влиянии.
Читать дальше →
Total votes 57: ↑48 and ↓9+61
Comments193

Почему лезвия бритвы затупляются после бритья?

Reading time12 min
Views72K


Вы когда-нибудь задавались вопросом, как работают те или иные предметы, окружающие нас каждый день. Как холодильник охлаждает продукты, как микроволновка возвращает им былое тепло, как работает Wi-Fi, почему окна не пропускают капли дождя и т.д. Кому-то подобные вопросы могут показаться немного детскими, наивными и даже слегка бесполезными. Оно работает и все тут, а как — уже не имеет значения. Тем не менее, ученые из МТИ (Массачусетский технологический институт, США) решили ответить на один из таких вопросов, а именно — почему стальные бритвы затупляются после бритья? Какие механические процессы протекают в процессе бритья, как волос человека, будучи в 50 раз мягче стали, повреждает ее, и какое практическое применение данного исследования? Ответы на эти необычные вопросы мы найдем в докладе ученых. Поехали.
Total votes 104: ↑101 and ↓3+131
Comments136

Boost.DI: внедрение зависимости в С++

Reading time15 min
Views27K
«Не звони нам. Мы позвоним тебе сами.» — принцип Голливуда

Внедрение зависимости (Dependency Injection — DI) означает передачу (внедрение) одной или более зависимости какому-либо объекту (клиенту, компоненту) таким образом, что после внедрения эта зависимость становится частью состояния объекта. Это немного напоминает паттерн проектирования Стратегия, с той лишь разницей, что стратегия задаётся лишь однажды — в конструкторе. DI позволяет создавать более слабо-связанную архитектуру приложения, которая лучше поддаётся поддержке и тестированию.

Итак, ещё раз плюсы:
  • Уменьшает связность компонент (отделяет бизнес-логику от создания объекта)
  • Позволяет писать более поддерживаемый код (в одни и те же объекты мы легко можем внедрять разные зависимости)
  • Позволяет писать более тестируемый код (мы можем легче использовать стабы и моки)


Без внедрения зависимости С внедрением зависимости
class example {                         
public:  
    example()                           
        : logic_(new logic{})           
        , logger_(                      
            logger_factory::create()    
          )                             
    { }  
         
    int run() const;                    
         
private: 
    shared_ptr<ilogic> logic_;          
    shared_ptr<ilogger> logger_;        
};                             

 class example {
 public:
     example(shared_ptr<ilogic> logic
           , shared_ptr<ilogger> logger)
       : logic_(logic), logger_(logger)
     { }

     int run() const;

 private:
     shared_ptr<ilogic> logic_;
     shared_ptr<ilogger> logger_;
 };


Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments2

Как перезапустить закон Мура программными методами. Ускорение софта в тысячи раз

Reading time8 min
Views56K
Профессор Никлаус Вирт был прав. Создатель языка Pascal, соавтор технологии структурного программирования, лауреат премии Тьюринга в 1995 году заметил:

«Замедление программ происходит куда быстрее, чем ускорение компьютеров»


С тех пор это высказывание считается законом Вирта. Он фактически нивелирует закон Мура, согласно которому количество транзисторов в процессорах удваивается примерно с 1965 года. Вот что пишет Вирт в статье «Призыв к стройному софту»:

«Около 25 лет назад интерактивный текстовый редактор умещался всего в 8000 байт, а компилятор в 32 килобайта, тогда как их современные потомки требуют мегабайтов. Стало ли всё это раздутое программное обеспечение быстрее? Нет, совсем наоборот. Если бы не в тысячу раз более быстрое железо, то современное программное обеспечение было бы совершенно непригодным».

С этим трудно не согласиться.
Читать дальше →
Total votes 68: ↑54 and ↓14+62
Comments468

Насколько современные Линуксы отличаются друг от друга

Reading time9 min
Views40K
Более 15 лет я работаю в компании Fast Reports и по роду своей деятельности мне часто приходится иметь дело с Linux, ведя поддержку одного из продуктов. С Linux я знаком несколько дольше — впервые установил Slackware в 1997 году. Соответственно, обладая некоторым опытом, хочу поделиться с вами мнением, чем, на мой взгляд, современные дистрибутивы Linux отличаются друг от друга. Всё описанное в статье является субъективным мнением и не претендует на абсолютную истину.
Читать дальше →
Total votes 29: ↑19 and ↓10+15
Comments74

Функциональное программирование: дурацкая игрушка, которая убивает производительность труда. Часть 2

Reading time8 min
Views21K
Сегодня мы представляем вашему вниманию продолжение перевода материала о вреде так называемого «функционального» программирования.


Читать дальше →
Total votes 61: ↑36 and ↓25+11
Comments19

Функциональное программирование: дурацкая игрушка, которая убивает производительность труда. Часть 1

Reading time10 min
Views87K
Возможно, вы уже слышали о так называемом «функциональном» программировании. Возможно, вы даже подумываете о том, что вам стоит его как-нибудь попробовать.

Ни в коем случае этого не делайте!



Функциональное программирование полно недочётов, оно не подходит для реальных проектов. Его применение приведёт к резкому падению производительности труда. Почему это так? Давайте выясним.

▍→ Часть 2
Читать дальше →
Total votes 168: ↑100 and ↓68+32
Comments403

Как скомпилировать декоратор — C++, Python и собственная реализация. Часть 2

Reading time12 min
Views5.9K

Декораторы — одна из самых необычных особенностей Python. Это инструмент, который полноценно может существовать только в динамически типизированном, интерпретируемом языке. В первой части статьи мой товарищ Witcher136 показал, как в С++ реализовать наиболее приближенную к эталонной (питоновской) версию декораторов.


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


Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments9

Как скомпилировать декоратор — C++, Python и собственная реализация. Часть 1

Reading time6 min
Views8.3K

Данная серия статей (как выяснилось, целых две) будет посвящена возможности создания декоратора в языке С++, особенностям их работы в Python, а также будет рассмотрен один из вариантов реализации данного функционала в собственном компилируемом языке, посредством применения общего подхода для создания замыканий — closure conversion и модернизации синтаксического дерева. Вторая часть уже доступна: здесь.



Дисклеймер
В данной статье под декоратором понимается не паттерн проектирования, а декоратор в Python — способ изменить поведение функции. Декоратор в Python это функция, применяемая к другой (декорируемой). Функция-декоратор создает замыкание (новую функцию), вызывающее декорируемую функцию внутри себя и делающее что-то еще нужное программисту (логгирование вызовов, захват ресурсов и т.д.), а интерпретатор Python затем «привязывает» к названию целевой функции получившееся замыкание.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments8

Information

Rating
Does not participate
Location
Таганрог, Ростовская обл., Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Mobile Application Developer
Git
C++
Qt
Cmake
Linux
PostgreSQL
SQLite