Pull to refresh
1
0
Send message

Делаем сервер из Android-телефона

Reading time8 min
Views124K

Некоторое время назад мне пришла в голову интересная идея — превратить свои старые телефоны (их скопилось немало за десять лет) в серверы, в качестве альтернативы покупке Raspberry Pi.


image


На то было несколько причин: во-первых, у телефонов есть батарея, что для сервера практически бесплатный мини-UPS, во-вторых, внутренняя память смартфона (UFS) работает быстрее и надёжнее, чем SD-карта. В-третьих, у телефонов имеется экран, по которому можно отслеживать состояние сервера.


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


TL;DR: в этом посте будут разобраны вопросы установки PostmarketOS на смартфон,
поднятия на нём в качестве примера Docker и веб-приложения в нём.

За длинной версией под кат
Total votes 99: ↑98 and ↓1+128
Comments97

Как законтрибьютить в опенсорс, чтобы не сгореть со стыда

Reading time13 min
Views14K

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


На осеннем TechTrain Андрей Солнцев (asolntsev) и Артем Ерошенко (eroshenkoam) показали на примере Allure и Selenide, как справиться с техническими и психологическими трудностями. Прямо во время доклада они сделали изменения в опенсорсных проектах.



Под катом — расшифровка их доклада и видео с фестиваля. Далее повествование будет от лица спикеров.

Total votes 36: ↑34 and ↓2+50
Comments6

10 интересных репозиториев на GitHub, полезных любому разработчику

Reading time4 min
Views83K
Представляем вам перевод статьи Simon Holdorf, опубликованной на сайте medium.com. В ней вы найдете ссылки на полезные репозитории, с помощью которых можно прокачать навык разработки ПО.


Фото с ресурса Unsplash. Автор: Vishnu R Nair

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

Каждый из них имеет множество звезд на GitHub, что только подтверждает их популярность, актуальность и полезность. Одни репозитории научат вас чему-то новому, благодаря другим вы сможете создать какие-то классные штуки. В целом, используя их, можно основательно прокачать навык разработки программного обеспечения.
Читать дальше →
Total votes 69: ↑64 and ↓5+78
Comments14

30+ парсеров для сбора данных с любого сайта

Reading time10 min
Views452K
30+ парсеров для сбора данных с любого сайта

Десктопные/облачные, платные/бесплатные, для SEO, для совместных покупок, для наполнения сайтов, для сбора цен… В обилии парсеров можно утонуть.


Мы разложили все по полочкам и собрали самые толковые инструменты парсинга — чтобы вы могли быстро и просто собрать открытую информацию с любого сайта.

Читать дальше
Total votes 8: ↑8 and ↓0+8
Comments10

Советские мечты о будущем

Reading time9 min
Views93K


Помните очаровательного котика, которые чихал в заставке советского мультфильма? Мы помним, и нашли его — вместе с ворохом другой рисованной фантастики. В детстве она пугала и обескураживала, поскольку поднимала серьезные, взрослые темы. Настала пора пересмотреть старые мультфильмы, чтобы узнать, о каком будущем мечтали в той стране.
Total votes 138: ↑136 and ↓2+134
Comments144

Скорлупа треснула

Reading time10 min
Views26K
Некоторые мои публикации вызвают у читателей массу вопросов. И не мои тоже. Особенно те, где человек пишет об опыте, выходящем, или выводящем за рамки текущей профессии.

Если эти вопросы сгруппировать и отсортировать, то ключевой звучал так: нафига? Нафига заморачиваться всей этой ерундой, что-то или кого-то измерять, сравнивать, организовывать команду или себя, какие-то методы дурацкие использовать, чушь всякую изучать дополнительную, можно же #простоработать (а чего, пусть хештег будет).

На эту тему – нафига? – очень много сказано во всяких книжках, статьях, видео и т.д. Вас эта информация, я думаю, не вдохновляет. Лично меня эта мотивационная масса тоже не впечатляла, когда я сам, несколько лет назад, задавался тем же вопросом. Ко мне тогда не книги, а люди, вполне конкретные приходили и говорили: ты – руководитель, у тебя коллектив, ты должен использовать передовые методы, чтобы превратить коллектив в команду.

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

А я вот, за каким-то хреном, в один прекрасный момент стал использовать. Почему? И почему вы не используете?

Чтобы это объяснить, придется рассказать небольшую часть своей биографии.
Читать дальше →
Total votes 85: ↑74 and ↓11+63
Comments86

Паттерны и антипаттерны обоснования задач

Reading time19 min
Views26K

Содержание



Когда вы заводите задачу, ее нужно обосновать. Вы должны убедить разработчика, что:

  • это действительно баг;
  • его необходимо исправить;
  • его нужно исправить именно так, как мы сказали.

А то иногда читаешь баги (особенно баги новичков) и задаешься вопросом:

— Почему это баг??

Например, там написано: «Загружаем отчет, получаем 57,6. А должно быть — 57.9».



Если записать обоснование, это решит проблемы:

  • Коллеги отвлекают с вопросами «А почему это баг?», вырывая из контекста.
  • Спустя месяц ты сам забыл, а, собственно, почему это был баг…

См также:
Зачем нужно обоснование в баге — более подробно о том, зачем вообще обоснование.


Через меня прошли сотни начинающих тестировщиков (студентов). Вот как раз на их задачах я и начала задаваться вопросом «А почему это баг?»… Спрашиваешь ребят, а в ответ получаешь «Да это же очевидно!». Ну как-то не очень =))

Через кучу задач и вопросов «А почему?» стали вырисовываться паттерны ответов. Я выделила хорошие и плохие паттерны. О них и хочу рассказать.

Эта статья для:

  • начинающих тестировщиков — узнайте, как грамотно объяснять свою точку зрения;
  • тест-менеджеров — чтобы дать ссылку своим падаванам и потом ссылаться на антипаттерны без дополнительных объяснений.

1. Антипаттерны: плохое обоснование




Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments32

«Банда четырёх» была неправа, а вы не знаете, что такое делегирование

Reading time6 min
Views71K
«Банда четырёх» была неправа, стандартная библиотека Ruby тоже ошибочна, и Rails – также. Но является ли нечто неправильным, если все так делают?

Да.

Книга «Банды четырёх» "Шаблоны проектирования" даёт нам общий словарь для понимания базовых шаблонов ООП. Она помогает нам использовать одинаковую терминологию при обсуждении софта. К сожалению, она же является причиной путаницы.

Они говорят: «композиция прежде наследования». Отлично, в этом есть смысл. Они говорят: «используйте делегирование». Отлично. Хотя в книге нет ни единого примера делегирования.

Делегирование – это приём, которому приписывают возможность внесения гибкости в программы. Обычно говорят, что делегирование – это способ достичь композиции. Но делегирование – это не то, что вы думаете, и «Банда четырёх» ввела вас в заблуждение. Хуже того, почти все упоминания о делегировании содержат лишь совместную работу объектов с пересылкой (forwarding) сообщений. Это примеры вызовов методов, а не делегирования.

Наверняка ваш учитель программирования сказал бы вам, что вам необходимо хорошо понимать основные концепции в программировании. И понимать их правильно.
Читать дальше →
Total votes 19: ↑11 and ↓8+3
Comments26

Корпоративный цейтнот

Reading time22 min
Views30K
Атмосфера на тренинге после обеда всегда напоминала тюлений пляж. В обычной жизни, когда каждый сам регулировал объемы съеденного, такого обжорства не случалось. А здесь, когда тебе и первое, и второе, и компот подадут… И отказываться смысла нет – все оплачено.

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

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

— Коллеги, беда! – запыхавшись, выпалил собственник. – Срочно все в зал!
Читать дальше →
Total votes 113: ↑102 and ↓11+91
Comments136

Очень простой чат-бот для Telegram для самых маленьких

Reading time3 min
Views36K


Есть 100500 способов и инструментов создать простого serverless чат-бота для телеграм. А наш все-равно будет проще, хотя бы по числу кликов в интерфейсе. Сам бот будет написан на Python, а выполнятся будет на serverless движке Swifty.
Читать дальше →
Total votes 30: ↑24 and ↓6+18
Comments12

Книга «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих»

Reading time4 min
Views302K
image Алгоритмы — это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузиться в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время?

Откройте великолепно иллюстрированную книгу, и вы сразу поймете, что алгоритмы — это просто. А грокать алгоритмы — это веселое и увлекательное занятие.
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments75

Конспект доклада «Как стать классным спецом по бд» (HL2018, Data Egret, Илья Космодемьянский)

Reading time2 min
Views15K
Первый конспект лекции с HighLoad был встречен позитивно, поэтому продолжаю.

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

В докладе затронуты вопросы:

  • Кем собственно мы хотим стать?
  • Надо-ли оно нам?
  • Теоретические навыки
  • Практические навыки (технические)
  • Практические навыки (нетехнические)

image
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments12

Как AI вставляет Николаса Кейджа в фильмы и делает порно со знаменитостями

Reading time6 min
Views88K


Теперь нельзя верить политикам, говорящим что-то в YouTube-роликах, и «сливам» секс-видео звёзд. Реддит-юзеры научили AI заменять лица на видео, и в последние недели это так взорвалось, что ни одна знаменитость не осталась нетронутой. Больше всего досталось Нику Кейджу, который, с его экспрессивностью, давно стал золотой жилой для создателей мемов. Благодаря искусственному интеллекту и возможностями машинного обучения это вышло на новый уровень, так что сейчас к технологии присматриваются и в Голливуде. Эффекты иногда получаются лучше, чем в последних блокбастерах. Вот только у некоторых пользователей другие интересы…

Total votes 53: ↑48 and ↓5+43
Comments106

Руководство по плодотворному общению

Reading time7 min
Views3.9K
image

Не так давно на Хабре была новость про принятие «Руководства по приятному общению GNU». Многое в этом кодексе верно, но многие пункты, на мой взгляд, не вполне отвечают духу командной работы и ущемляют права участников.

Давайте попробуем, в рамках вечера пятницы, сформулировать своё «Руководство по плодотворному общению при совместной работе». Как вы видите – разница с руководством GNU начинается даже на этапе целеполагания – на мой взгляд, приятность общения в рамках проекта не самоцель. В рамках проекта мы общаемся для достижения определенной цели – выполнения работы по проекту. Приятно общаться мы будем за чаем с булками.

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

Почему? По определению. Повторюсь: главная цель – эффективная работа над проектом. Общение – это инструмент, который служит для достижения этой цели. Не наоборот.

Дисклеймер:

Опубликованный мной список пунктов отражает моё личное мнение и основан на моих жизненных приоритетах. Если у вас есть отличное от моего мнение – не стесняйтесь поправить меня, предложив свои варианты.

Не все пункты одинаково серьезны – в конце концов, у нас вечер пятницы, не так ли?

Итак:
Читать дальше →
Total votes 9: ↑5 and ↓4+1
Comments31

Карьерные стероиды. Собаки

Reading time11 min
Views19K
Название этого карьерного стероида я взял из знаменитой матрицы BCG (Boston Consulting Group). Матрица простая, применяется для оценки и выработки продуктовой стратегии. Каждый продукт оценивается по двум шкалам – темпы роста рынка и доля на нем.

Всего там категорий четыре.

«Звезды» — продукты, которые имеют высокую долю на быстро растущем рынке. Звездами все хотят заниматься.

«Дойные коровы» — доля высокая, рынок растет медленно. Это, как правило, старые продукты, давно выведенные на рынок и приносящие стабильный доход. Все хотят сидеть на дойных коровах.

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

И, наконец, наша аналогия — «собаки». Низкая доля на рынке, который не растет, или даже стагнирует. Такими продуктами заниматься никто не хочет – усилий надо приложить много, а результата полезного не предвидится.
Читать дальше →
Total votes 48: ↑40 and ↓8+32
Comments33

Разработка через тестирование: улучшаем навыки

Reading time5 min
Views13K
Тестирование важный навык, которым должен обладать каждый разработчик. Тем не менее, некоторые делают это неохотно.

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

image

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

Предположим, вы создаете приложение для погоды. Вы писали код несколько дней или недель, поэтому знаете код от и до.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments25

«Я три года борюсь с синдромом самозванца» — 10 вопросов программисту, выпуск 7

Reading time6 min
Views58K



Антон Рубановскому (tunikov) 29 лет, он из Питера. Еще три года назад Антон был нулёвым гуманитарием-раздолбаем, и в поисках денег попал в ИТ. «Последние несколько лет моей жизни проходят в погоне за знаниями. Надеюсь, что когда-нибудь наступит момент, когда я смогу выдохнуть и сказать: «ну все, я — программист!».

Антон начал с фронтенда, потом полез в серверную часть, изучил Django и написал на нем первый сайт. «Это немного приблизило меня к самоощущению программиста, но осталось много всего другого, что я не знал. Например, незакрытый гештальт по Java (начинал свое обучение я именно с него, но потом как-то незаметно перешел в веб). Я сдал экзамен в Oracle и стал лучше понимать принципы ООП. Но выяснилось, что этого мало — теперь планирую сдавать OCP и, возможно, Java EE».

За относительно короткий срок Антон успел побывать фронтендером, бэкендером и мобильным разработчиком, освоить ФП, поработать и в продуктовых компаниях, и в аутсорсных корпорациях. Сейчас он Senior Developer в Luxoft.
Читать дальше →
Total votes 50: ↑38 and ↓12+26
Comments140

«Любой уважающий себя айтишник занимается технологиями и в свободное время» — 10 вопросов программисту, выпуск 6

Reading time6 min
Views35K


Завершающий выпуск «10 вопросов» из Берлина. На этот раз беседуем с Артемом Никитиным, который живет в Берлине, но по-прежнему регулярно летает в Москву. До переезда занимался тестированием бэкенда в Qiwi, а в августе 2015-го согласился на приглашение HERE Technologies. Первый разговор с новым работодателем состоялся во время путешествия в Гонконг — в отеле Mira. В том самом, где Сноуден давал знаменитое интервью Guardian, которое изменило всю его жизнь. Совпадение? Артем не уверен и хочет как-нибудь проверить еще раз.

Новая должность в Here называется System Engineer, что в России в зависимости от команды может называться DevOps, сисадмином или SRE. В Here Артем отвечает за CI и все вокруг этого.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments28

Личный опыт: от идеи и чистого листа до черновой версии сайта

Reading time8 min
Views5.5K
Доброго времени суток.

Меня зовут Дмитрий, мне через пару месяцев 30 лет из которых около 10 лет я «тыжпрограммист» и пол года назад я решил создать что-то свое (хромое, косое, вторичное, но мое).

Пару дней назад я общался со знакомым студентом и в нем я узнал себя образца 2009 года — те же проблемы, те же мысли. Данный текст является компиляцией нашего разговора и переписки ночью 24 сентября. Были упущены личные моменты и конкретные примеры, но текст стал более логичным и обобщенным.

Что помогло одному человеку, возможно поможет другому.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments9

Туннели и VPN, устойчивые к DPI

Reading time10 min
Views160K
Мы живем в интересное время. Я бы даже сказал, в удивительное. По одну сторону мы видим неких лиц, которые очень хотят знать, о чем между собой разговаривают другие люди, и очень хотят указывать им, что можно читать, а что нельзя. С другой стороны граждане, которые хотят отстоять свои права тайны личной переписки и свободного получения информации, и не хотят, чтобы факты этой самой переписки и получения этой самой информации были использованы против них. Бонусом страдает огромное количество сторонних сайтов, сервисов и бизнесов, которых задевает «ковровыми блокировками».

Но нет, эта статья не об обществе, а о технологиях.

image
Читать дальше →
Total votes 104: ↑100 and ↓4+96
Comments175
1

Information

Rating
Does not participate
Registered
Activity