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

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

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

Что разработчик никогда не должен делать

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров29K

Перевод статьи разработчика из Южной Кореи.

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

1) Быть перфекционистом

Ничто не идеально, и я уверен, что «идеального кода» не существует тоже.

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

Читать далее
Всего голосов 44: ↑35 и ↓9+32
Комментарии63

Гайд по сплит клавиатурам

Уровень сложностиПростой
Время на прочтение31 мин
Количество просмотров10K

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

Мы стремимся сделать переход на сплит клавиатуру максимально плавным и безболезненным. Понимание того, как они устроены и как их можно адаптировать под свои нужды, снизит барьер входа и поможет преодолеть опасения перед переходом.

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

Указатели в C абстрактнее, чем может показаться

Время на прочтение8 мин
Количество просмотров32K
Указатель ссылается на ячейку памяти, а разыменовать указатель — значит считать значение указываемой ячейки. Значением самого указателя является адрес ячейки памяти. Стандарт языка C не оговаривает форму представления адресов памяти. Это очень важное замечание, поскольку разные архитектуры могут использовать разные модели адресации. Большинство современных архитектур использует линейное адресное пространство или аналогичное ему. Однако даже этот вопрос не оговаривается строго, поскольку адреса могут быть физическими или виртуальными. В некоторых архитектурах используется и вовсе нечисловое представление. Так, Symbolics Lisp Machine оперирует кортежами вида (object, offset) в качестве адресов.
Читать дальше →
Всего голосов 64: ↑61 и ↓3+58
Комментарии98

Основные типы распределений вероятностей в примерах

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров21K

Статистические исследования и эксперименты являются краеугольным камнем развития любой компании. Особенно это касается интернет-проектов, где учёт количества пользователей в день, времени нахождения на сайте, нажатий на целевые кнопки, покупок товаров является обычным и необходимым явлением. Любые изменения в пользовательском опыте на сайте компании (внешний вид, структура, контент) приводят к изменениям в работе пользователя и, как результат, изменения наблюдаются в собираемых данных. Важным элементом анализа изменений данных и его фундаментом является использование основных типов распределений случайных величин, от понимания которых напрямую зависит качество оценки значимости наблюдаемого изменения. Рассмотрим их подробнее на наглядных примерах.

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

Сотрудникам нужны личные кабинеты

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров28K

Во времена «до» мы просто каждый день ходили в офис. Это даже не обсуждалось: «работа из дома» казалась нереализуемой на практике. Чтобы «пойти на работу», нужно было выйти из дома. А потом случилась пандемия.

Теперь, когда она закончилась, даже трёхдневка в офисе вызывает так много споров, что дело доходит до вмешательства профсоюзов
Читать дальше →
Всего голосов 73: ↑70 и ↓3+97
Комментарии119

Разбор алгоритмов генерации псевдослучайных чисел

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

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

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

Мой опыт подготовки к экзамену по английскому CPE (Certificate of Proficiency in English) на уровень С2 и его сдачи

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

Are you suggesting coconuts migrate?
MPHG

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

«Непорядок», — подумал я. Так и родилась идея сдавать экзамен по английскому, но почему именно CPE? А не, скажем, CAE (Cambridge C1) или там TOEFL (американский общий тест на знание английского), IELTS (версия этого же экзамена, но от Cambridge).

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

ОСТОРОЖНО — ТРАФИК, да‑да, под катом будет много картинок, личного мнения автора и его же несмешного юмора (придется потерпеть) — ответ на вопрос в КПДВ тоже там!

Добро пожаловать под кат
Всего голосов 25: ↑24 и ↓1+37
Комментарии35

Допиздержки: думаю, что хостинги РФ подорожают в 2024-м

Время на прочтение9 мин
Количество просмотров13K
image
Молоко по 790 мл? Вот вам пример интереснее. У этого хостера цены те же, только комиссия чуть выросла.

Сейчас идёт серьёзный передел рынка хостингов из-за тенденции ходить в Интернет по паспорту.

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

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

Итак, первое: теперь всем нужно будет интегрироваться с СОРМ и хранить netflow трафика.

Если что, то это:

  • От трёх до пяти миллионов рублей на покупку софта.
  • Примерно один-два человекомесяца разработки на интеграцию.
  • Железо для хранения трафика. У нас получается примерно от 60 терабайт на каждый 1 Гбит/с у пользователя, и это без DDoS-атак.

Всё это ляжет на пользователей, конечно, потому что больше не на кого. То есть на вас.

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

А ещё у всех — инфляция, курс доллара, проблемы с железом, лицензиями, платежами, гениальная схема «Яндекса» по повышению ставок и вообще тяжёлый год.
Читать дальше →
Всего голосов 79: ↑75 и ↓4+103
Комментарии50

10 советов схемотехнику

Время на прочтение20 мин
Количество просмотров119K
Недавно один мой знакомый, начавший интересоваться электроникой и схемотехникой, обратился ко мне с просьбой дать ему какие-то практические советы по разработке электронных устройств. Поначалу этот вопрос немного озадачил меня: как-то так получилось, что для себя я никогда не выделял какие-то перечни обязательных правил проектирования, всё это было у меня где-то на уровне подсознания. Но этот вопрос послужил хорошим толчком для того, чтобы сесть и сформулировать хотя бы небольшой список таких рекомендаций. Когда все было готово, я подумал, что, возможно, это будет интересно почитать кому-то еще, таким образом и получилась данная статья.


Читать дальше →
Всего голосов 158: ↑156 и ↓2+208
Комментарии245

PixelNAS — результат переделки мини компьютера в мобильный NAS

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров13K

Прошло два месяца после первой статьи о переделке мини компьютера в мобильный NAS. На тот момент, было рассказано о рабочем прототипе NAS на базе готового мини компьютера и ещё предстояло поднять железо и доработать софт.

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

Что получилось
Всего голосов 24: ↑23 и ↓1+23
Комментарии100

ПасТильда: ещё одна прошивка

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров5.1K

Существует очень своеобразный прибор Пастильда. Это аппаратный хранитель паролей. Было продано нескольких сотен таких устройств. С 2017 года этот проект стал Open Source(ным). Я составил еще одну прошивку для Пастильды (плата Pas~ r 1.1).

Если у вас есть Пастильда или отладочная плата Olimex-STM32-H407, то я могу прислать вам прошивку аппаратного менеджера паролей с расширенным функционалом.

Читать далее
Всего голосов 12: ↑8 и ↓4+7
Комментарии53

Добавляем деструкторы в C

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров5.3K

В данной статье будет описано создание кастомного аллокатора на си c регистрацией колбеков, которые будут вызваны при освобождении памяти. Нужен для того, чтобы при создании записать туда деструктор, а в конце просто вызвать free, не погружаясь в детали его работы.

read(&publication);
Всего голосов 17: ↑16 и ↓1+20
Комментарии18

От 50 тыс до 1,7 млн пользователей за два года

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

Всем привет! Меня зовут Денис, разработчик приложения Smart Timetable для школьников и студентов. Два года назад мы полностью обновили приложение и все расписания пользователей обнулились.

Читать далее
Всего голосов 18: ↑15 и ↓3+24
Комментарии17

Opera станет китайской: компания из Поднебесной получит основной пакет акций

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

Новым акционером, владеющим контрольным пакетом акций Opera, станет компания Hong Kong Kunlun, дочерняя организация Beijing Kunlun Tech Co., Ltd. Китайцы намерены выкупить 8,47% акций Opera. Общая стоимость сделки составит $80,145 млн. После ее окончания китайская компания будет владеть 53,88% акций Opera Software.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии28

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

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

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

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

Источник
Читать дальше →
Всего голосов 141: ↑141 и ↓0+141
Комментарии162

О том, что происходит, когда в поиске Google используют слово «vs»

Время на прочтение7 мин
Количество просмотров20K
Случалось у вас такое: ищете что-нибудь в Google и вводите после искомого слова «vs», надеясь на то, что поисковик автоматически предложит вам что-то, немного похожее на то, что вам нужно?


Ввод «vs» после искомого слова

Со мной такое бывало.

Как оказалось, это — большое дело. Это — приём, который, при поиске альтернативы чему-либо, способен сэкономить массу времени.
Читать дальше →
Всего голосов 39: ↑37 и ↓2+51
Комментарии15

Переключение контекста и простой вытесняющий планировщик для CortexM

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

image

С каждым годом курсовые для моих студентов становятся все объемнее. Например, в этом году одним из заданий была разработка метеостанции, ведь только ленивый не делает метеостанции, а студенты они по определению не ленивые, поэтому должны её сделать. Её можно быстро накидать в Cube или собрать на Ардуино, но задача курсового не в этом. Основная задача — самостоятельно, с нуля разобраться с модулями микроконтроллера, продумать архитектуру ПО и, собственно, закодировать все на С++, начиная от регистров и заканчивая задачами РТОС. Кому интересно, здесь пример отчета по такому курсовому


Так вот, появилась небольшая проблема, а именно, бесплатный IAR позволяет делать ПО размером не более 30 кБайт. А это уже впритык к размеру курсового в неоптимизированном виде. Анализ кода студентов выявил, что примерно 1/4 часть их приложения занимает FreeRtos — около 6 кБайт, хотя для того, чтобы сделать вытесняющую переключалку и управлялку задачами хватило бы, наверное… да байт 500 причем вместе с 3 задачами (светодиодными моргунчиками).


Эта статья будет посвящена тому, как можно реализовать Очень Простой Планировщик(он же SST), описанный в статье аж 2006 года и сейчас поддерживаемый Quantum Leaps в продукте Qp framework.


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


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


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

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

Автоматизированное создание диаграмм в xkcd-стиле: из серьёзного в забавное

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

Перевод поста Виталия Каурова "Automating xkcd Diagrams: Transforming Serious to Funny".
Скачать файл, содержащий текст статьи, интерактивные модели и весь код, приведенный в статье, можно здесь.
Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.

Утром в понедельник я наткнулся на интересный вопрос, опубликованный в Mathematica Stack Exchange, с нехитрым заголовком — "создание графиков в xkcd-стиле". Из-за популярности веб-комиксов xkcd Рэндалла Манро (Randall Munroe), я ожидал, что люди добавят себе несколько закладок этой страницы и с десяток up-vote. Тогда я ещё не знал, как всё обернётся. Сложно предсказать вирусность какого-то мема, однако если удалось создать такой, то весьма здорово наблюдать, как растёт его популярность и как он распространяется в интернете. Через два дня этот пост имел уже более 100 тысяч просмотров, двести up-vote и 150 закладок; стали возникать ответы и схожие посты в других разделах Stack Exchange, в Twitter разразился небольшой ураган по этому поводу, появлялись обсуждения в Hacker News и reddit. Тут я приведу оригинал поста Amatya с примером изображения в xkcd-стиле:

«Я получил электронное письмо, на которое я захотел ответить с графиком в xkcd-стиле, но я не мог справиться с этим. Всё, что я рисовал, выглядело как надо, однако я не мог придумать такой команды для Plot Legends, чтобы сделать фрагменты текста плавающими. Может, есть какие-то идеи, как можно было бы создать графики в xkcd-стиле? Когда всё выглядит рисованным от руки и неточным. Думаю, рисование таких странных кривых в Mathematica должно быть трудным в реализации.»

Walking back to my front door at night

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

Осторожнее с редактированием bash-скриптов

Время на прочтение2 мин
Количество просмотров64K
Предположим, я написал такой bash-скрипт с названием delay.sh. Как думаете, что он делает?

#!/bin/bash
sleep 30
#rm -rf --no-preserve-root /
echo "Time's up!"

Похоже, он ожидает 30 секунд, а затем выводит сообщение на экран. Здесь никаких фокусов — он делает именно это. Там есть опасная команда в середине, но она закомментирована и не выполняется.

Представьте, что я снова запускаю этот скрипт, но теперь мне не хочется ждать 30 секунд — это слишком долго. Я открываю вторую консоль, меняю sleep 30 на sleep 3, затем сохраняю файл. Как думаете, что будет теперь?

Ну, через 30 секунд скрипт удалит все мои файлы.
Читать дальше →
Всего голосов 201: ↑195 и ↓6+250
Комментарии201

Бокс-непросыпайка для SMD и прочей мелочевки

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


Написанием данной околотематической статьи побудили меня затянувшиеся изоляционные меры и сопутствующие им скука и желание себя чем-то занять. Прошу отнестись как к «пятничной развлекательной» статье. Но, может быть кому-то будет и полезно! Никаких ардуин, только фанера и силикон!
Читать дальше →
Всего голосов 63: ↑63 и ↓0+63
Комментарии54

Информация

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