Новости информационных технологий - 33275

Одним из основных принципов верстки является гибкость. А именно возможность легко вносить какие-либо изменения и ничего при этом не сломать.

Умение правильно обращаться с margin и padding играет очень большую роль в этом деле.

Основные принципы:

  1. Отступы идут от предыдущего элемента к следующему.
  2. Отступ задается последнему возможному элементу в доме.
  3. Отступы нельзя задавать для независимых элементов ( бэм блок ).
  4. У последнего элемента группы, отступ обнуляется (всегда).

Отступ задается последнему возможному элементу в доме

margin(ы) задаются от предыдущего элемента к следующему, от первого ко второму, сверху вниз, слева направо.

imageimage

Это значит.что такие свойства как margin-left и margin-top не используются ( бывают исключения ). Если нужен отступ сверху, то используется padding-top для родителя. По тому же принципу padding-left для родителя.

image

image

Важно соблюдать осмысленную структуру во всем, можно назвать это семантикой. Отступы идут в направлении потока дом дерева, блок сам себя не толкает.
Читать полностью »

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

[1] Записывайте потраченное время. Первый шаг к тому, чтобы начать эффективно использовать время, заключается в том, чтобы выяснить, сколько времени вы тратите сейчас. В течение нескольких дней, в идеале недель, записывайте все, что вы делаете, так часто, как об этом вспоминаете. Представьте, что вы юрист, который должен четко зафиксировать время, потраченное на различные проекты: работу (в различных ее проявлениях), сон, путешествия, домашние дела, общение с семьей, просмотр телевизора и так далее. Это крайне не просто, хотя и казалось бы не сложной задачей, но у меня получилось далеко не с первого раза, но когда я зафиксировала временные показатели одной недели было очень полезно смотреть куда и сколько времени было потрачено, что помогло для дальнейшей оптимизации и делегирования.

[2] Займитесь математикой.
После того, как вы получили исходные данные, рассчитайте время по нескольким категориям. Каковы ваши ощущения? На что вы потратили слишком много времени, а на что недостаточно? Что вам больше всего нравится в вашем расписании? Что бы вы хотели изменить? Мне удобнее всего было вести данный хронометраж в обычной таблице Excel, где желтым цветом я обозначила те дела, которые мне нравятся и вдохновляют меня. И как вы можете догадаться их было не очень много, ну а если на чистоту это всего 6 дел из 127, теперь я активно работаю над тем, чтобы неприятные дела делегировать по максимуму.
Читать полностью »

Ни одно приложение и BI система на данный момент не может существовать без базы данных, наиболее популярными по крайней мере из бесплатных СУБД являются MySQL и PostgreSQL.

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

Читать полностью »

В прошлой статье [https://habr.com/sandbox/121807/] я рассказал о начале анализа продукта с его валовой прибыли. Продолжим подход "top-down" и разложим на составляющие выручку.
Общая картина теперь будет такой:

Экономика продукта. Анализ выручки - 1

Читать полностью »

Здравствуйте, дорогие хабрачитатели!

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

В С++ существует несколько возможностей передачи массива в функцию.

  1. В С++ массивы можно инициализировать следующим образом:
    int arr[] = {p1, p2, p3, ...}; // длина массива определяется 
    после инициализации

    Как следствие, его можно передать в функцию таким же способом:

    void func(int arr[]){
    //your code
    }
  2. Еще один вариант — передать массив по указателю. Например:
    void func(int* arr){
    //your code
    }
    int arr[5] = {1, 2, 3, 4, 5};

    Мы привыкли обращаться к элементам массива по индексам, но попробуйте скомпилировать и запустить следующие строки:

    int main(){ 
       int arr[5] = {1, 2, 3, 4, 5};
       cout << arr << endl; //в данном случае мы увидим адрес начала массива 
        return 0; //его мы и передаем в массив
    }

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

void func(int* arr, int length){
//your code
}

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

int len(int* arr){
    int count = 0;
    while(*x++ < ?) count++;
    return count;
}

Крайне важно понять критерий по которому мы будем оценивать содержимое. В противном случае, можно получить не совсем то, что ожидалось.
Читать полностью »

Привет, читатель.

Важно для прочтения!

Если ты не против, то изучи ООП и Jav'y прежде, чем учить другие библиотеки. Ибо ты не будешь браться за физику, не выучив математику. Тут то же самое.

Сегодня мы будем писать простейшего бота Telegram, который будет отвечать на команды. Такая статья была, но писали бота на Питоне.

Почему я выбрал именно Jav'y

Java в плане ботов, серверов, плагинов да и вообще программ будет удобнее для меня.

1. Виртуальная машина хоть и долгая, но если обрабатывать события в несколько потоков, то будет работать быстро.(Вообще для многих серверов/мультиплеерных игр в одном потоке не всегда получится обрабатывать события, в Jav'e сделать это гораздо проще)

2. Наличие хорошей документации и Javadoc'ов, которые можно сделать для всех библиотек(не только для системных)

0. А что такое «бот»?

Бот — это профиль в соцсети/мессенджере(в данном случае Telegram) который отвечает на команды.( В любом случае все действия буду происходить после выполнения команды)

Тип чата с ботом — это переписка 1 на 1.

1.С чего же начинать?

Здесь качать библиотеку Telegram(обязательно with-dependiciens)

IDE можно выбрать любую, я бы порекомендовал eclipse.

Импотрируем библиотеку Телеграма и приступаем.
Читать полностью »

Однажды я рассказал, как съездил с докладом на TAdviser SummIT 2018, и что из этого вышло в плане нетворкинга и проверки бизнесовых гипотез для разработчика софта (кому интересно — дам ссылку, а то вдруг сочтут рекламой). Обещал сравнение саммита с двухдневным сколковским Startup Village — выполняю.

image
Читать полностью »

Это перевод статьи Andrew Clark. Оригинальная статься здесь.

Вступление

React Fiber — прогрессивная реализация ключевого алгоритма React. Это кульминационное достижение двухгодичных исследований команды разработчиков React.

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

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

Читать полностью »

Введение

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

Маршрутизация

Маршрутизация сама по себе — поиск маршрута доставки пакета между сетями через транзитные узлы — маршрутизаторы, которые позиционируют себя как многофункциональные устройства для разделения сетей. Вся сеть интернет разделена на крупные автономные системы (AS), которые связываются и узнают друг о друге с помощью внешних протоколов маршрутизации,
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js