Предлагаем вашему вниманию коллекцию полезных CSS-сниппетов, в которых вы можете разобраться за 30 секунд, а то и быстрее.
Пользователь
Вывод табличных данных в консоль, файл или MS Excel в стиле потоков C++
st << "#" << "Property" << "Value" << "Unit";
enum {nr = 10};
for (int i = 0; i < nr; i++) {
st << i + 1 << "Prop" << i << "Unit";
}
Результат будет выглядеть так:
![](https://habrastorage.org/webt/yb/sv/lr/ybsvlr4ea9x_6fxztmc5q6ppnm4.png)
Must-have документация для мобильного разработчика. Часть 1
![](https://habrastorage.org/webt/m8/t1/yy/m8t1yy5kwujket1nvg5zze6iozk.jpeg)
Как быстро спроектировать сайт с помощью CSS Grid
![image](https://habrastorage.org/getpro/habr/post_images/aa1/0c5/d03/aa10c5d039851d49c0d8df0fefc21932.gif)
Модуль CSS Grid — это фантастический инструмент для создания макетов веб-сайтов. Он позволяет вам экспериментировать с макетами быстрее, чем любой другой инструмент, которые я пробовал.
В этой статье я научу вас, как это сделать.
Во-первых, я объясню HTML и CSS, которые нам нужны для этой задачи, которую я разбил на четыре части. Как только вы с этим разберетесь, мы перейдем к экспериментам с макетами.
Если вы совершенно не знакомы с CSS Grid, вам может понадобиться просмотреть мою предыдущую статью Учим CSS Grid за 5 минут.
10 приемов по созданию красивых бизнес презентаций из 2017 года
ВАЖНО: здесь я пишу только про бизнес презентации для чтения — не для публичных выступлений. Это важно понять, так как техники разные в этих двух форматах. Под форматом «бизнес презентаций для чтения» я подразумеваю такие документы как коммерческие предложения, спонсорские пакеты, инвестиционные презентации проектов, презентации продуктов, которые в большинстве случаев отправляются исключительно по электронной почте.
В этой статье я расскажу о наиболее распространенных ошибках в дизайне и поделюсь своими 10 приемами по созданию поистине крутых презентаций. Почти все примеры, которые я привожу ниже, — это выдержки из реальных кейсов, которые мы реализовали.
Здесь важно отметить, что 10 приемов актуальны на 2017 год (и ближайшие месяцы 2018).
Начнем с самого важного при создании презентации:
11 бесплатных шрифтов с кириллицей
![image](https://habrastorage.org/web/ef9/fbb/727/ef9fbb727d474c6f94a46ce40872657c.png)
1. Arimo
![image](https://habrastorage.org/web/228/540/b2f/228540b2f3224c54b121dd5904b5661a.png)
Дизайнер: Стив Мэттэсон – увлеченный дизайнер из штата Колорадо. Более 25 лет Мэттэсон разрабатывает шрифты, самыми крупными проектами стали дизайны для Android, Citrix, Microsoft, Nextel и Xbox.
![image](https://habrastorage.org/web/db6/3fe/574/db63fe574d524cceb98dd28f8fa54775.png)
Типы: Regular, Regular Italic, Bold, Bold Italic
Лицензия: Apache License, Version 2.0
Скачать шрифт
Arimo – без засечек, разработанный специально для работы с Arial. Шрифт слегка сжат по ширине. При небольшом кегле буквы тонкие и классические. Изящные черты достигаются при увеличении размера символов. Шрифт адаптирован для чтения на экране и отлично подойдет для документов на разных платформах.
Сравнение структур разделов GPT и MBR
В этой статье мы сравним структуры разделов GPT и MBR; GPT означает GUID Partition Table, а MBR — Master Boot Record. Начнём с того, что разберём сам процесс загрузки.
В следующих главах выделяются различия между стилями разделов GPT и MBR, в том числе приводятся инструкции, как осуществить преобразование между двумя стилями, и советы, какой из них выбрать.
Шаблоны проектирования с человеческим лицом
Шаблоны проектирования — это способ решения периодически возникающих проблем. Точнее, это руководства по решению конкретных проблем. Это не классы, пакеты или библиотеки, которые вы можете вставить в своё приложение и ожидать волшебства.
Как сказано в Википедии:
В программной инженерии шаблон проектирования приложений — это многократно применяемое решение регулярно возникающей проблемы в рамках определённого контекста архитектуры приложения. Шаблон — это не законченное архитектурное решение, которое можно напрямую преобразовать в исходный или машинный код. Это описание подхода к решению проблемы, который можно применять в разных ситуациях.
Будьте осторожны
- Шаблоны проектирования — не «серебряная пуля».
- Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
- Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.
В статье приведены примеры на PHP 7, но пусть вас это не смущает, ведь заложенные в шаблонах принципы неизменны. Кроме того, внедряется поддержка других языков.
О технических аспектах внешней и внутренней мотивации
Одной из проблем текущего образования является низкий уровень мотивации учащегося. Не секрет, что большая часть выпускников престижных (и не только) вузов идет работать не по полученной специальности. Основная причина, по мнению авторов, кроется в том, что за время обучения учащийся не был достаточно заинтересован в предмете обучения. В результате уровень его внутренней мотивации, после выхода из стен учебного заведения недостаточен для того, чтобы устроиться на работу, где могли бы быть полезны полученные знания.
Рассмотрим мотивацию как силу, толкающую студента на повышение собственного уровня развития. Допустим, имеется курс информации некоторого объема и определенной длительности, которым должен овладеть студент. Представим, что студент находится на некотором текущем уровне знаний, и задача преподавателя — повысить уровень знаний студента на некоторую «высоту» , за определенное время (рисунок 1).
![](https://habrastorage.org/files/359/d27/185/359d27185d574b3c862388e1d53773f5.png)
Рисунок 1: Действие различных сил на студента
Условно можно сравнить задачу с подъемом тела по наклонной плоскости (будем считать трение о поверхность равным нулю). На студента в этот момент действуют две силы:
- Сила мотивации , задача которой заключается в том, чтобы студент достиг более высокого уровня знаний;
- Сила деградации , которая будет определять стремление студента вернуться на текущий уровень развития. Будем считать, что сила деградации постоянна и не зависит от уровня знаний студента
Гороскоп для разработчиков
Если по счастливому совпадению вы нашли что-то общее с персонажами, напишите в комментариях.
Авторские иллюстрации подготовлены Антоном , за что ему огромное спасибо!
Самые полезные приёмы работы в командной строке Linux
Как выглядят типичные трудовые будни системного администратора, который сидит на Linux? Если абстрагироваться от всего, кроме набираемых на клавиатуре команд, то окажется, что команды эти постоянно повторяются. Всё выходит на уровень автоматизма. И, если даже в работе есть что улучшать, привычка противится новому. Как результат, немало времени уходит на то, чтобы делать так, как привычнее, а не так, как быстрее, и, после небольшого периода привыкания – удобнее. Помнить об этом, сознательно вводить в собственную практику новые полезные мелочи – значит профессионально расти и развиваться, значит – экономить время, которое можно много на что потратить.
![image](https://habrastorage.org/getpro/habr/post_images/845/928/8f7/8459288f755535c7435eb0961a4a9e9a.png)
Перед вами – небольшой список полезных приёмов работы с командной строкой Linux. С некоторыми из них вы, возможно, уже знакомы, но успели их позабыть. А кое-что вполне может оказаться приятной находкой даже для знатоков. Хочется надеяться, что некоторые из них будут вам полезны и превратятся из «списка» в живые команды, которыми вы будете пользоваться каждый день.
Я написал самую быструю хеш-таблицу
В конце концов я должен был к этому прийти. Когда-то я опубликовал статью «Я написал быструю хеш-таблицу», а потом ещё одну — «Я написал ещё более быструю хеш-таблицу». Теперь я завершил работу над самой быстрой хеш-таблицей. И под этим я подразумеваю, что реализовал самый быстрый поиск по сравнению со всеми хеш-таблицами, какие мне только удалось найти. При этом операции вставки и удаления также работают очень быстро (хотя и не быстрее конкурентов).
Я использовал хеширование по алгоритму Robin Hood с ограничением максимального количества наборов. Если элемент должен быть на расстоянии больше Х позиций от своей идеальной позиции, то увеличиваем таблицу и надеемся, что в этом случае каждый элемент сможет быть ближе к своей желаемой позиции. Похоже, такой подход действительно хорошо работает. Величина Х может быть относительно невелика, что позволяет реализовать некоторые оптимизации внутреннего цикла поиска по хеш-таблице.
Если вы хотите только попробовать её в работе, то можете скачать отсюда. Либо пролистайте вниз до раздела «Исходный код и использование». Хотите подробностей — читайте дальше.
Как написать свою клавиатуру для Android
Поиск уязвимости методом фаззинга и разработка шеллкода для её эксплуатации
![](https://habrastorage.org/files/e9d/d68/60d/e9dd6860d8e04b8db5b89b2dacd07ef6.jpg)
Некорректное завершение работы программы в ходе фаззинга позволяет сделать предположение о наличии уязвимости.
В этой статье мы:
- продемонстрируем, как фаззить обработчик JSON-запросов;
- используя фаззинг, найдём уязвимость переполнения буфера;
- напишем шеллкод на Ассемблере для эксплуатации найденной уязвимости.
Разбирать будем на примере исходных данных задания прошлого NeoQUEST. Известно, что 64-хбитный Linux-сервер обрабатывает запросы в формате JSON, которые заканчиваются нуль-терминатором (символом с кодом 0). Для получения ключа требуется отправить запрос с верным паролем, при этом доступа к исходным кодам и к бинарнику серверного процесса нет, даны только IP-адрес и порт. В легенде к заданию также было указано, что MD5-хеш правильного пароля содержится где-то в памяти процесса после следующих 5 символов: «hash:». А для того, чтобы вытащить пароль из памяти процесса, необходима возможность удалённого исполнения кода.
Как за пару недель увеличить скорость чтения в 2 раза
![image](https://habrastorage.org/files/cbf/6a2/7e7/cbf6a27e7154419791dffb7f43f6b574.gif)
Скорочтение важный навык в сегодняшнем скоростном мире. Если Вы хотите добиться выдающихся результатов в карьере или в изучении наук вам прийдется прочитать большое количество литературы, как технической так и художественной. Для того чтобы поглощать большие объемы информации нужно уметь быстро читать.
Как прокрастинировать эффективно: 6 полезных онлайн-сервисов
![](https://habrastorage.org/files/922/9fa/fb6/9229fafb63fc4d8f956db303662cb913.jpg)
Прокрастинация — явление, жертвой которого становятся все, даже животные не могут ему противостоять. Несколько лет назад проблему ярко описал Тим Урбан на страницах своего блога Wait But Why. И раз уж прокрастинация неизбежна, стоит постараться извлечь пользу и из неё — я составил подборку из шести онлайн-сервисов (и их альтернатив), которые помогут научиться чему-то новому, даже когда работать нет никаких сил.
Enum-Всемогущий
Вводная
Очень часто, мы используем инструменты строго по назначению, запрещая себе делать шаг влево или вправо. Но что если мы немного 'забудемся'? Что, если мы посмотрим на привычные нам вещи под другим углом? В этой статье собраны подходы использования перечислений и проведен небольшой эксперимент над ними. Сарказм, юмор и немного филосовских вопросов. Кому интересно, добро пожаловать под кат.
Прокрастинация. Как посадить в клетку демона, который мешал двигаться к цели
![image](https://habrastorage.org/getpro/habr/post_images/2f4/240/989/2f4240989169872af117ec827783ac72.jpg)
Автор иллюстрации — John Kenn
Почему больше времени уходит на изучение редких аутоиммунных заболеваний, чем на поиск хорошего врача, а грязная посуда кажется важнее, чем составление бизнес плана?
Прокрастинация — преступление, в котором виновен каждый.
Главный ингредиент успеха — действие. Поддаваться прокрастинации — то же самое, что вообще ничего не делать. Еще одна проблема в том, что мы все-таки выполняем задуманное. Да, мы откладываем до последнего и ждем дедлайна, но все же беремся за дело. И это плохо, ведь появляется ложная уверенность в завершении задачи независимо от времени начала действий.
Еще хуже когда сроков нет вообще. Как долго мы сможем откладывать, пока возможность не будет упущена окончательно?
У жизненных целей нет дедлайна, а значит и нет последствий его срыва. Так что откладывать мы можем бесконечно и не принимать никаких действий. Но без действий не будет и результатов.
Проектная папка дизайнера. Создаём бекапы
Изучив комментарии к предыдущему посту о проектной папке, решил перестроить процесс, связанный с версиями файлов и их хранением. Умные люди говорили, что в наше время неправильно дублировать файлики вручную, создавая архив версий, а нужно пользоваться современными технологиями Git, Subversion и подобными. В этом посте напишу о системе к которой пришёл и с удовольствием теперь пользуюсь. Я стал спокойнее, лучше ем и крепче сплю, ведь теперь я совсем не переживаю за рабочие файлы и их сохранность. Осталось стать хорошим дизайнером.
Ломаем Android. Как глубока кроличья нора?
Мой первый Android телефон Galaxy Note N7000 был приобретен сразу после анонса в октябре 2011 года. Благодаря одному немецкому умельцу под ником bauner, у меня была возможность использовать последнюю версию CyanogenMod (ныне LineageOS). До тех пор, пока полтора года назад телефон не умер от китайской автомобильной зарядки.
Замену искал долго и остановился на Kyocera (да, они и телефоны выпускают) KC-S701. Он отличается брутальным внешним видом и отсутствием сенсорных кнопок. О root доступе к телефону я тогда даже и не задумывался, полагая, что нынче каждый телефон тем или иным способом имеет возможность получения root. И найдется умелец, который сможет под него портировать CyanogenMod. Я ошибался.
За полтора года было выпущено всего одно обновление — фикс падения ядра от специально сформированного ping пакета. А Android KitKat уже год назад был не первой свежести. Root доступ на этот телефон так никто и не получил, и никакой информации о нем не было. Отмечу, что тоже самое железо используется в американской версии телефона Kyocera Brigadier E6782, в котором по-умолчанию активизирован режим fastboot и нет ограничения на запуск неподписанных ядер (именно запуск, а не прошивку, и только при использовании непропатченного bootloader'а, CVE-2014-4325) и присутствует возможность загружаться в эти режимы путём зажатия кнопок телефона. Стараниями Verizon (а может Kyocera?) версия Android на Brigadier была обновлена до Lollipop.
Итак, я решил разобраться с процессом получения root на Android самостоятельно.
Информация
- В рейтинге
- Не участвует
- Откуда
- Минск, Минская обл., Беларусь
- Зарегистрирован
- Активность