Pull to refresh
16
Karma
0
Rating

Швея мотористка

Почему МойОфис Таблицы это неудобно и не для всех

Software
Sandbox

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

И сделав к Таблицам первый подход и воспроизведя типичный для пользователя Excel поток задач я ощутил... приступы фрустрации. Не все посчитают описанные впереди проблемы критичными, но я уверен что для определенного круга людей повседневная работа в МойОфис Таблицы будет крайне некомфортна или просто невозможна.

Читать далее
Total votes 91: ↑87 and ↓4 +83
Views 28K
Comments 131

Португалия, Кипр, Нидерланды. 3 простые истории поиска работы с релокейтом

getmatch corporate blog IT-emigration Urbanism


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


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

Читать дальше →
Total votes 23: ↑18 and ↓5 +13
Views 14K
Comments 18

Внутри российского процессора Байкал М

Reverse engineering *Manufacture and development of electronics *Computer hardware CPU IT-companies
✏️ Technotext 2021

В 2014 году компания Байкал Электроникс приобрела лицензию на самое передовое на тот момент процессорное ядро. После череды инцидентов, повлиявших на дальнейший исход событий, в октябре 2019-го года компания официально представила широкой общественности первый российский процессор общего назначения, реализованный на архитектуре ARM. Создатели решают назвать своё уникальное отечественное детище «Baikal-М».

Читать далее
Total votes 84: ↑76 and ↓8 +68
Views 50K
Comments 242

Тренируемся дома по программе Пола Уэйда. Часть Четвёртая: Мостик или Секрет Бронированного Позвоночника

Reading room Health
Translation

Программа Тюремных Тренировок — это эффективные методы обучения по работе со своим весом. Многие из этих забытых, но действенных техник — находятся на грани исчезновения. Современный бодибилдинг поменял наше мышление, навязав ложные убеждения. Поэтому мы сняли этот фильм в Алькатрасе, вернувшись во времена, когда «Скала» была крупнейшей тюрьмой для особо опасных преступников. Пожалуй, это самое правильное место, чтобы показать методы тренировок заключённых.

Приступить к тренировке
Total votes 38: ↑33 and ↓5 +28
Views 47K
Comments 15

Электронная почта и работа с ней в Java-приложениях

Java *
Sandbox

Disclaimer
Статья написана для новичков и тех, кому хочется шаг за шагом понять как устроена работа с электронной почтой из Java-приложений. Желающие быстро понять как отправлять электронные письма из Spring-приложений могут сразу переходить к 3 части.


Эту статью я решил написать, потому что не нашел русскоязычных источников про работу c электронной почтой из Java, описывающих имеющиеся библиотеки достаточно полно. На хабре существует статья, посвященная очень узкой задаче по чтению писем (и выводу их содержимого в консоль) и статья с how-to по отправлению
письма с вложениями при помощи Spring Email. Также существует несколько статей (например) на тематических ресурсах, которые приводят порядок действий при работе
с электронной почтой. В этих источниках мне не хватало объяснения основ, на которых стоит
электронная почта и взгляда с высоты на существующие библиотеки для работы с почтой в Java.


Для таких же лапкообразных, как я, написана эта статья. Она дает общие представления о работе электронной почты, разъясняет основные сущности библиотеки Jakarta Mail и дает советы о том, как работать с электронной почтой в Spring-приложениях.

Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Views 26K
Comments 2

Retry и Circuit Breaker в Kubernetes с помощью Istio и Spring Boot

Домклик corporate blog Kubernetes *
Translation

Каждому service mesh-фреймворку абсолютно необходимо уметь обрабатывать сбои в межсервисном взаимодействии. К ним также относятся таймауты и HTTP-коды ошибок. Я покажу, как с помощью Istio настроить механизмы retries (повторных попыток) и circuit breaker (автоматического выключения). Мы проанализируем взаимодействие между двумя простыми Spring Boot-сервисами, развёрнутыми в Kubernetes. Но вместо основ рассмотрим более сложные вопросы.


Читать дальше →
Total votes 31: ↑30 and ↓1 +29
Views 6.4K
Comments 3

Дайджест главных новостей мобайла и ASO за месяц

Development of mobile applications *Mobile App Analytics *
Sandbox

Каждый месяц готовлю подборку основных новостей мобайла для Checkaso. Решила, что стоит поделиться русскоязычной версией с Habr. В этом выпуске: iOS 14 привел в негодование разработчиков и помог Pinterest побить дневной рекорд загрузок, измененные правила App Store, попытки Facebook манипулировать Apple, грядущее обновится Google Play Console и другие нашумевшие истории.


Неожиданная iOS 14, кастомизация экрана, виджеты бустят Pinterest


Внезапно (!) вышла новая iOS 14 – многие разработчики не успели подготовиться к релизу и были возмущены. Из важного для маркетинга и ASO: «мини-приложения», автоисправления в поиске, фичер-карточки (можно почитать про плюсы и минусы здесь). Из неожиданного: виджеты главного экрана стали большой новостью. После выхода iOS 14 приложения для кастомизации главного экрана за несколько дней установили около 5,7 миллионов пользователей. Лидером стал Pinterest, который за день побил дневной рекорд загрузок – 616 000 установок.

Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 759
Comments 0

How to “sew up” the retina and should it be done?

Клиника офтальмологии доктора Шиловой corporate blog Biotechnologies Lazers Health
Translation
Imagine the situation — you live in peace, nothing hurts and does not blush, wear glasses or lenses, or do not use anything and see perfectly — and you accidentally get an appointment with an ophthalmologist. For example, because of conscription into the army, because of pregnancy, or just for a dispensary examination. And suddenly you will find out that your retina is “full of holes” or stretched and is about to break.

And they recommend you to “sew it on”. And you doubt — and this is exactly what you need? And how safe is it? But nothing bothers — then why? Or maybe they want to earn money on me? And the first thing you start is to read posts on the Internet, what a “independent” expert like Google will say.

And in the future everything depends on your discipline and attention to your own health. You can get to the ophthalmologist-laser specialist, who will be the last resort, and he will do preventive laser coagulation.

Or «forget it» for everything and continue to live as before — nothing bothers you. What is the risk?

Read more →
Total votes 3: ↑3 and ↓0 +3
Views 1.2K
Comments 0

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

Website development *Programming *Functional Programming *Rust *Elixir/Phoenix *
Translation

КДПВ


Если разделять языки программирования по популярности, то они делятся на три эшелона. Первый эшелон включает мейнстрим-языки, такие как Java, JavaScript, Python, Ruby, PHP, C#, C++ и Objective-C. Несмотря на то, что некоторые из ведущих языков возможно увядают, вам лучше знать один или несколько из них, если вы хотите иметь возможность легко найти работу.


Языки второго эшелона пытаются пробиться в мейнстрим, но ещё не добились этого. Они доказали свою состоятельность путем создания сильных сообществ, но они до сих пор не используются большинством консервативных IT-компаний. Scala, Go, Swift, Clojure и Haskell — языки, которые я бы отнёс ко второму эшелону. Некоторые компании используют эти языки для отдельных сервисов, но широкое применение встречается редко (за исключением Swift, который начинает обгонять Objective-C в качестве основного языка для iOS). Go и Swift имеют хорошие шансы на переход из второго эшелона в первый в течение ближайших двух-трёх лет.


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


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


Читать дальше →
Total votes 77: ↑67 and ↓10 +57
Views 152K
Comments 146

Использование android.os.Binder для организации асинхронного взаимодействия в Андроиде

Development for Android *
Одна из естественных и первых задач при разработке под Андроид – организация асинхронного взаимодействия. Например, обращение к серверу из некоторой активности и отображение на ней результата. Трудность состоит в том, что за время обращения к серверу поверх может быть открыта другая активность или другое приложение, исходная активность может быть безвозвратно завершена (пользователь нажал Back) и т. д. Вот получили мы результат от сервера, но активность «неактивна». Под «активна», в зависимости от обстоятельств, можно понимать, например, что находится между onStart и onStop, onResume и onPause (или, как у нас в проекте, между onPostResume и первым из onSaveInstanceState и onStop). Как понять, завершена активность окончательно (и результат нужно отдать сборщику мусора) или лишь временно неактивна (результат нужно хранить, и отобразить, как только активность станет активной)?

Удивительно, но в документации, интернетах, при личном общении я ни разу не встречал корректного и приемлемо универсального способа. Хочу безвозмездно поделиться решением, которое мы применяем два с половиной года в мобильном интернет-банкинге. Приложение установлено (как часть более крупной системы) у нескольких сотен банков, на данный момент имеет около миллиона пользователей.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Views 19K
Comments 31

Как накормить мозг программиста… или feed your brain

Programming *
Sandbox

Введение


Из всех наслаждений, отпущенных человеку в жизни,
самое изысканное — шевелить мозгами.
(Борис Акунин)


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

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

В данной публикации мы рассмотрим, как правильно питаться для жизнеобеспечения мозга и как его разогнать ноотропами (в случае аврала необходимости).
Читать дальше →
Total votes 213: ↑163 and ↓50 +113
Views 359K
Comments 145

Java Logging: история кошмара

Java *

Вступление


Тернист и извилист путь Java-платформы к правильному способу записи строчек в лог-файлы. История logging в Java довольно познавательна в плане изучения особенностей Open Source, в том числе его взаимодействия с корпорациями и единичными программистами. Я собираюсь рассказать столько, сколько возможно, об истории развития Java logging, а также о том, к чему все пришло и как жить дальше.
Вперед и с песней!
Total votes 148: ↑146 and ↓2 +144
Views 123K
Comments 89

И снова про сортировки: выбираем лучший алгоритм

Algorithms *
Sandbox
Недавно на хабре в очередной подняли тему алгоритмов сортировки, а именно был хорошо описан метод Timsort.

Он, имея сложность не более O(n log n), ускоряется в случае сортировки частично упорядоченных данных и имеет сложность O(n), если данные изначально отсортированны. Но это не единственный алгоритм с такими заявленными свойствами. Существует еще как минимум два более-менее известных метода с похожей сложностью — это Smoothsort и сортировка Шелла.

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

Читать дальше →
Total votes 117: ↑114 and ↓3 +111
Views 137K
Comments 32

Шахматные задачи на мат в один ход: решение на языке Haskell

Haskell *
10 февраля сего года состоялся февральский конкурс по функциональному программированию, который был посвящён Дню научного работника. Несмотря на то, что в конкурсе приняло участие всего лишь 4 человека (с причиной этого я ещё буду разбираться), результаты хороши — по крайней мере двое участников представили достаточно хорошее решение, которое подходит в большинстве случаев. А задача была проста — написать программу, которая для заданной шахматной задачи на мат в один ход ищет этот самый ход (а ходов может быть и несколько, конечно). Ну а на затравку конкурсантам была дана простейшая задача:



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

Что ж, понеслись...
Total votes 68: ↑66 and ↓2 +64
Views 4.4K
Comments 19

Functional thinking: Thinking functionally, Часть 1

Programming *
Translation
Давайте на мгновение представим, что Вы — дровосек. И благодаря своему лучшему топору в округе, вы являетесь самым продуктивным дровосеком в лагере. Но однажды появляется некто, начинающий расхваливать достоинства новой парадигмы в рубке леса — бензопилы. В силу убедительности продавца, Вы покупаете бензопилу, но не знаете как она работает. Прилагая неимоверные усилия, пробуете вырвать или раскачать дерево, применяя на практике свою новую парадигму. И быстренько делая вывод, что эта самая новомодная бензопила — ерунда, возвращаетесь к привычному делу — рубить лес топором. А затем кто-то приходит и показывает как заводить бензопилу.

Эта история может показаться Вам знакомой, поставив функциональное программирование на место бензопилы. Проблема в совершенно новой парадигме программирования — не изучение нового языка. Более того, синтакс языка — это всего лишь детали. Вся тонкость же — научиться мыслить иначе. Это то, почему я оказался тут — заводящий бензопилы и “функциональный” программист.

Итак, добро пожаловать в Functional thinking. Эта серия исследует предмет функционального программирования, но не несет исключительной направленности описать функциональные языки. Как я покажу дальше, написание кода в функциональном стиле касается дизайна, компромиссов, разных повторно используемых кусков кода и служит основой для иных догадок. Насколько это окажется возможным, я попытаюсь показать концепции функционального программирования в Java (или близких к Java языках) и перейду к другим языкам, чтобы осветить возможности, отсутствующие на данный момент в Java. Я не полезу сразу в дебри, рассказывая о довольно необычных вещах, таких как монады (monads). Напротив, я постепенно проведу Вас через новый путь мышления.

Эта и пара следующих частей выступят в роли быстрой экскурсии по предметам, связанным с функциональным программированием, включая базовые концепции. Некоторые из этих концепций в дальнейшем будут рассмотрены более детально в то время, как я буду постепенно расширять контекст применения на протяжении всей серии. В качестве отправной точки нашей экскурсии я покажу Вам две разные реализации решения задачи. Одна написана в императивном стиле и другая — с некоторыми функциональными особенностями.
Читать дальше →
Total votes 74: ↑66 and ↓8 +58
Views 15K
Comments 102

Торрент лекций Лекториум

Studying in IT
image

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

Дабы облегчить дальнейшее скачивание лекций выкладываю некоторые из ник как торренты.

Читать дальше →
Total votes 133: ↑131 and ↓2 +129
Views 34K
Comments 102

Тестирование в Java. Spock Framework

Java *TDD *
Tutorial

В предыдущих статьях на примерах JUnit и TestNG я упоминал о test-driven development(TDD) и data-driven testing(DDT). Но есть еще один активно набирающий популярность подход, behaviour-driven development(BDD). Это такое развитие TDD техники, при котором на тест смотрят не как на тестирование каких-то компонентов системы, а как на требования к функционалу. Если TDD оперирует такими понятиями, как тест или метод, то для BDD это спецификация и требования. Про эту технику уже говорили на хабре ранее:

Этот подход применим используя и JUnit, и TestNG. Но есть и другие инструменты заточенные именно под BDD. В этой статье я расскажу про такой фреймворк. Называется он Spock Framework и сочетает в себе не только принципы BDD, но и достоинства Groovy. Да-да, именно Groovy. И хотя используется Groovy, используется он и для тестирования Java кода. Примерами использования могут служить Spring, Grails, Tapestry5. Интересно? Тогда читаем дальше.
Читать дальше →
Total votes 42: ↑36 and ↓6 +30
Views 65K
Comments 9

Полезные занятия для программиста

Programming *
Многие наверняка ищут такие занятия, которые были бы как приятными для самого человека, так и полезными в плане развития некоторых навыков. Для программистов, да и вообще людей с сидячей работой, эти занятия должны быть своими.

1) Жонглирование.

Жонглирование — прекрасная вещь, полезная как для здоровья, так и для души. Какая польза может быть от жонглирования?
Для начала это хорошее упражнение для глаз, снимающее с них напряжение, что немаловажно, учитывая постоянную работу за компьютером. Затем, это физическая нагрузка(пусть и небольшая) как на руки, так и на ноги(в начале придется постоянно нагибаться, чтобы поднимать падающие снаряды). Ну и в конце концов это моральное удовлетворение от того, что у вас получается манипулировать предметами в воздухе. Жонглирование не требует никаких приспособлений. Достаточно трех(для начала двух) предметов такой формы, чтобы удобно было ловить и подкидывать вверх, желательно не слишком легких, но и не тяжелых.
Читать дальше →
Total votes 138: ↑110 and ↓28 +82
Views 13K
Comments 160

Паттерны ООП в метафорах

Programming *
Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно.
Статья предназначена исключительно для новичков, так что «старожилы» ничего нового для себя не узнают. В основном статья описывает известные паттерны из книги «Приемы объектно-ориентированного программирования. Шаблоны проектирования.», но более популярным и простым языком.
Читать дальше →
Total votes 214: ↑201 and ↓13 +188
Views 528K
Comments 86

Что такое анти-паттерны?

Designing and refactoring *
Анти-паттерны — полная противоположность паттернам. Если паттерны проектирования —
это примеры практик хорошего программирования, то есть шаблоны решения определённых задач. То анти-паттерны — их полная противоположность, это — шаблоны ошибок, которые совершаются при решении различных задач. Частью практик хорошего программирования является именно избежание анти-паттернов. Не надо думать, что это такая непонятная теоретическая фигня — это конкретные проблемы, с которыми сталкивался практически каждый разработчик. Кто осведомлен, тот и вооружён! Рассмотрим же несколько расрпотранённых анти-паттернов в программировании.
Да, рассмотрим!
Total votes 157: ↑147 and ↓10 +137
Views 119K
Comments 103
1

Information

Rating
Does not participate
Registered
Activity