Pull to refresh
26
0.2

Программист

Обзор Arachni: фреймворк для поиска уязвимостей в веб-приложениях

Reading time 6 min
Views 4.1K

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

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 2

Кто рождается в споре?

Level of difficulty Easy
Reading time 7 min
Views 1.7K

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

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

Поспорить
Total votes 6: ↑4 and ↓2 +2
Comments 5

Flutter под капотом

Reading time 11 min
Views 32K
Всем привет! Меня зовут Михаил Зотьев, я работаю Flutter-разработчиком в Surf. Мне, как, наверное, большинству других разработчиков, которые работают с Flutter, больше всего нравится то, как просто создавать с его помощью красивые и удобные приложения. Чтобы войти во Flutter разработку, нужно совсем немного времени. Недавно я работал в геймдеве, а теперь полностью переключился на кроссплатформенную мобильную разработку на Flutter.

В чём простота? С помощью десятка базовых виджетов можно собирать вполне приличные пользовательские интерфейсы. А со временем, когда багаж используемого скопится вполне приличный, вряд ли какая-то задача поставит вас в тупик: будь то необычный дизайн или изощренная анимация. А самое интересное — скорее всего вы сможете этим пользоваться, даже не задумываясь над вопросом: «А как оно вообще работает?».

Поскольку у Flutter открытые исходники, я решил разобраться с тем, что же там под капотом (on the Dart side of the Force), и поделиться этим с вами.


Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Comments 15

Как работает Flutter

Reading time 18 min
Views 57K


Как Flutter работает на самом деле?


Что такое Widgets, Elements, BuildContext, RenderOject, Bindings?..


Сложность: Новичок


Вступление


В прошлом году (прим: в 2018), когда я начал свое путешествие в сказочный мир Flutter, в Интернете было очень мало информации по сравнению с тем, что есть сегодня. Сейчас, несмотря на то, что уже написано много материалов, лишь небольшая их часть рассказывает о том, как на самом деле работает Flutter.


Что же такое Widgets (виджеты), Elements (элементы), BuildContext? Почему Flutter быстрый? Почему иногда он работает не так, как ожидается? Что такое деревья и зачем они нужны?


В 95% случаев при написании приложения вы будете иметь дело только с виджетами, чтобы что-то отображать на экране или взаимодействовать с ним. Но неужели вы никогда не задумывались, как вся эта магия работает внутри? Как система узнает, когда обновить экран и какие части должны быть обновлены?


Содержание:


Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 6

Маленькие задачи, а доверия ещё меньше

Reading time 6 min
Views 8.5K


Почему делегирование обязанностей лучше, чем распределение задач


Доверие — высочайшая форма мотивации. Оно выявляет в людях самое лучшее.

Стивен Р. Кови, «Семь навыков высокоэффективных людей»

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

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

«Наконец-то, у нас появился Винсент, я могу поручить ему заняться A и B; Тед будет делать C, D
и E, Джен займётся F, G и H, а я смогу добраться до I, J, K, L и M».

Самое важное здесь то, что A и B были крупными задачами, например, целыми продуктами или большими системными библиотеками. На их создание и поддержку уходило всё твоё время. Они были делегированной ответственностью, а не просто задачами. Было просто при этом и управлять людьми. Если ты не справляешься, то начальник тебе об этом скажет.
Читать дальше →
Total votes 51: ↑47 and ↓4 +43
Comments 8

Выбираем канал для точки доступа Wi-Fi. Исчерпывающее руководство

Reading time 9 min
Views 282K
2,4 ГГц — это плохо. 5 ГГц — это хорошо. 6 ГГц — это ещё лучше, но послезавтра. Все это знают, кого я тут учу, в самом деле. Всё это хорошо, только делать-то что, когда ты такой, как умный, открываешь какой-нибудь Wi-Fi Explorer, а там сатанизм и этажерки, как на скриншоте?



Шаг первый — поплакать. Шаг второй — нырнуть под кат. Вопрос простой, а ответ — нет.
Когда это нас останавливало?
Total votes 111: ↑110 and ↓1 +109
Comments 234

О структуре параллельных вычислений или доводы против оператора «Go»

Reading time 23 min
Views 10K


Каждый язык, поддерживающий параллельные (конкурентные, асинхронные) вычисления, нуждается в способе запуска кода параллельно. Вот примеры из разных API:


go myfunc();                                // Golang

pthread_create(&thread_id, NULL, &myfunc);  /* C with POSIX threads */

spawn(modulename, myfuncname, [])           % Erlang

threading.Thread(target=myfunc).start()     # Python with threads

asyncio.create_task(myfunc())               # Python with asyncio

Есть много вариантов нотации и терминологии, но одна семантика — запустить myfunc параллельно основной программе и продолжить родительский поток выполнения (англ. "Control Flow")

Читать дальше →
Total votes 30: ↑19 and ↓11 +8
Comments 50

Amazon уличили в копировании топ-продуктов

Reading time 6 min
Views 34K


Какой страшный сон предпринимателя? Что его продукт сделают лучше, дешевле, и начнут продавать без его ведома! Но такой страшный сон может стать настоящим кошмаром. Если копировать его вещь вдруг начнет самый могущественный ритейлер планеты. Он вдруг сам себя сделает твоим основным конкурентом, и фактически закончит твой бизнес одним движением мизинца.


Такое случилось с основателем Allbirds Тимом Брауном. О его перспективном обувном стартапе мы уже рассказывали год назад. Экологически чистые, простые кроссовки из шерсти овец-мериносов, без пластика и всего остального, за $95. Но, на их беду, они отказались торговать своей обувью на Amazon. Предпочли развивать свой сайт и свой бренд (благо, получили на это больше $80 млн инвестиций). И вот месяц с лишним назад Amazon вдруг начинает выпускать точно такие же с виду кроссовки. С теми же «пёрками». Только по $45.

Читать дальше →
Total votes 45: ↑40 and ↓5 +35
Comments 193

Создаю глобальную базу знаний по элементам питания

Reading time 2 min
Views 26K
Тестирую элементы питания на профессиональном оборудовании. Цель охватить большую часть рынка элементов питания Европы и России.

На данный момент протестированы более 230 аккумуляторов и батареек. Сделано более 1000 тестов. Израсходовано 4 ящика батареек и несколько месяцев жизни.

Результатом проделанной работы стала база знаний по аккумуляторам и батарейкам. Под катом рассказываю почему я решил создать базу знаний и как это было сделано.


Читать дальше →
Total votes 139: ↑139 and ↓0 +139
Comments 81

Information

Rating
1,855-th
Registered
Activity