Murgab

/ программирование


В разделе программирование
Андрей Баксаляр  :: 7 ноя 2015, в 08:52

Небольшая памятка для себя + кому-то может пригодиться.

Иногда требуется «засечь» время и посмотреть, сколько выполняется та или иная «тяжелая» задача в Linux'овом терминале (для этого подходит встроенная команда time). Но если time по каким-то причинам не подходит, то может пригодиться такой метод подсчета времени выполнения команд и блоков кода в bash-скриптах:

START=$(date +%s.%N)

# здесь блок кода, время выполнения которого считаем

END=$(date +%s.%N)
DIFF=$(echo "$END - $START" | bc)

echo Начало выполнения задачи — $START
echo Задача выполнена — $END
echo Итоговое время выполнения задачи — $DIFF

В начале в переменную START складывается текущее время (форматированный вывод команды date, количество секунд + наносекунд с начала эпохи Unix), затем выполняется блок кода или «тяжелая» задача, далее в переменную END снова записывается текущее время. Ниже обе временные метки выводятся в консоль, плюс выводится разница между START и END, сложенная в DIFF.


Случается иногда такая необходимость, выдернуть все нужные ссылки со страницы в браузере, а ссылок тысяча и вручную это делать, мягко говоря, нерационально. Задачу легко автоматизировать, используя возможности JavaScript и метода map. Как это работает:

  1. Жмем F12, чтобы увидеть консоль разработчика в современном браузере (Chrome / Firefox). Или запускаем эту самую консоль другим методом, который нравится лично вам.

  2. Затем пишем в консоли следующую команду:

<Array.prototype.slice.call(document.querySelectorAll('a')).map(function (el) { return el.href })

Если на странице подключен JQuery, то команда упрощается до:

$.map($('a'), function (el) { return el.href })

Жирным выделено место, куда мы вставляем необходимый селектор. Например, в моем случае с выдиранием большого количества ссылок на ютубе, селектор был таким: .yt-lockup-title > a (выбор всех непосредственных дочерних элементов h3 с классом yt-lockup-title). Вот что получается в итоге:

Получение всех ссылок со страницы

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

Array.prototype.slice.call(document.querySelectorAll('.yt-lockup-title > a')).map(function (el) { console.log(el.href) } )

Потом удобно закинуть этот список в текстовый файл и скормить какому-нибудь консольному youtube-dl командой:

youtube-dl --batch-file='links.txt'

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


В разделах программирование и софт
Андрей Баксаляр  :: 23 апр 2015, в 13:06

...то отца русской демократии спасет простая команда:

a2enmod php5

Элементарно, но потратил впустую некоторое количество времени, чтобы найти где косяк. Видимо, из каких-то соображений безопасности модуль PHP в Apache не включается автоматически после установки первого. Надеюсь, данная заметка сэкономит вам 10 минут.

Пока комментариев нет, будь первым!


В разделах политика и программирование
Андрей Баксаляр  :: 22 апр 2015, в 23:20

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

Премьер-министр Сингапура Ли Сяньлун рассказал на форуме Smart Nation о создании в стране первой смарт-нации, а также о шагах, с помощью которых это возможно осуществить (технологии для пожилых, инновации в транспорте и безопасность данных), и последней написанной им программе.

Премьер-министр Сингапура Ли Сяньлун

«40 лет назад, после того как я получил степень по математике, по совету отца я начал изучать информатику. Он сказал: за этим будущее, и оказался прав. Поэтому я поставил министра Вивиана Балакришнана главой Офиса программы смарт-нации. Он был глазным хирургом, но поскольку сейчас не может оперировать, увлекается сборкой простых роботов, часов, беспроводных устройств, созданием приложений. Его основная работа — заведовать министрством окружающей среды и водных ресурсов. Поэтому он создает свои приложения на API министерства. Заодно он проводит своеобразное «пользовательское тестирование».

Премьер-министр Сингапура Ли Сяньлун

Я тоже пользуюсь подобными инструментами, по крайней мере, пользовался ранее, в своем последнем приложении. Несколько лет назад, например, я написал программу — решатель для судоку на Си. Поэтому я немного отстал. Мои дети в IT, двое из них окончили Массачусетский технологический институт. Один из них просматривал книгу и сказал: „вот, прочитай это“. Там было сказано: „Изучай Хаскель во имя добра“. Когда-нибудь, после моей отставки, эта книга переместится с книжной полки ко мне в руки».

Очевидно, что руководство страны играет здесь далеко не последнюю роль...

Пока комментариев нет, будь первым!


В разделах программирование и софт
Андрей Баксаляр  :: 14 мар 2015, в 14:47

На сайте informationisbeautiful.net вывешена крайне интересная инфографика, сравнивающая разные программные продукты по объему кодовой базы. От Photoshop 1.0, Quake 3 и Windows 3.1 до кода, обеспечивающего работу Большого адронного коллайдера, самолета Боинг 787 или Фейсбука.

Проекты, отсортированные по объемам кодовых баз

Наглядно виден гигантский прогресс и титанический рост затрачиваемых человеко-часов в самой технологичной отрасли и крупнейшем секторе индустрии на сегодняшний день — IT.

Полностью инфографику посмотреть можно на данной картинке.


В разделах бизнес, программирование и софт
Андрей Баксаляр  :: 19 фев 2015, в 03:00

Пингвины смотрят на север

OpenNET пишут (цитирую наиболее интересное для меня):

Организация Linux Foundation опубликовала ежегодный отчёт (PDF, 360 Кб, 17 стр.) с анализом прогресса развития ядра Linux и оценкой вклада индивидуальных разработчиков и коммерческих компаний в разработку и рецензирование кода...

Темп развития Linux продолжает увеличиваться: в среднем каждый час в ядро принимается 7.71 изменений (год назад фиксировалось в среднем 7.14 изменений в час, два года назад — 6), в день — 185 (год назад 171) изменений, в неделю — 1300 (1200). На подготовку нового выпуска ядра в среднем уходит 66 дней, год назад этот показатель составлял 70 дней, два года назад — 80 дней.

С момента выпуска 3.11 наибольший вклад в развитие ядра внесли корпорации Intel, Red Hat, Linaro, Samsung, IBM, SUSE, Texas Instruments, Vision Engraving Systems и Google. На первое место в рейтинге впервые вырвалась компания Intel, c 7 на 4 место переместился Samsung. Oracle занимает 14 место, AMD — 15, NVIDIA — 16, ARM — 19, Cisco — 21.

По число новых разработчиков лидирует компания Intel, из которой к работе над ядром подключилось 147 новых участников. Далее следуют Samsung — 48 новых участников, IBM — 47, Google — 43, Huawei Technologies — 37, Red Hat — 32

80% всех вносимых в ядро изменений сделаны разработчиками, которые получили оплату за данную работу. В прошлом году доля оплачиваемых разработчиков также составляла 80%, а в позапрошлом — 75%. Только 11.8% (в прошлом году — 13.6%, в позапрошлом 14.6%) изменений созданы на голом энтузиазме и не имеют принадлежности к корпорациям.

Пингвины смотрят на север

Причины участия компаний в разработке Linux-ядра:

  • Компании, подобные IBM, AMD, ARM, Intel, SGI, MIPS, Freescale, HP, Broadcom, NVIDIA и Fujitsu, заинтересованы в достойной работе Linux на их оборудовании;
  • Дистрибьюторам, таким как Red Hat, Novell, Oracle и MontaVista, важно, чтобы Linux-ядро было как можно более функциональным;
  • Такие компании как Sony, Cisco и Samsung поставляют Linux в виде компонента своей продукции, такой как видеокамеры, телеприставки и мобильные телефоны. Участие в разработке Linux-ядра позволяет обеспечить дальнейшее использование Linux в качестве базиса для своих продуктов.

Наиболее значительный вклад среди индивидуальных разработчиков привнес H Hartley Sweeten, совершивший 1.1% от всех изменений в ядре. На втором месте Al Viro с 1% изменений. На третьем Takashi Iwai с 0.9% изменений.… На 10 и 30 самых активных разработчиков в сумме приходится 8.2% и 17% изменений.


В разделах программирование и юмор
Андрей Баксаляр  :: 10 дек 2014, в 08:34

Все по канонам…

Православный кодинг

Еще смешное про языки программирования:

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

Книга «Язык Ада»

Например, известны случаи, когда старушки, увидев книгу с надписью «Язык Ада», либо орали на весь город, либо падали в обморок...


В разделе программирование
Андрей Баксаляр  :: 5 дек 2014, в 06:38

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

Скриншот программы Zeal

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

Скриншот программы Zeal

С самой программой никакой документации не поставляется — это лишь оболочка. Но скачав и запустив Zeal, в его опциях вы найдете «репозитарий», в котором можно будет выбрать необходимые справочники (в терминологии Zeal — это «Docsets»). Отметили, нажали Download и приложение все сделает в автоматическом режиме, выкачав базы из Сети.

При желании можно скачивать эти самые Docsets отдельно, файлами, по прямым ссылкам здесь. Перед вами доступный ассортимент:

Доксеты для программы Zeal

Очень удобно, рекомендую!

Небольшой хинт для тех, кто принял Zeal на вооружение: можно использовать фильтры по языкам при поиске статей. Например, мне нужно найти справку по функции time из языка PHP. Для этого я набираю первые буквы названия языка — ph, ставлю двоеточие, и затем набираю time. Т.е. вводя «ph:tim...» я тут же получаю справку по time именно из PHP, без примеси аналогичных функций из других языков.

Если нет необходимости иметь под рукой локальные справочники, рекомендую также обратить внимание на крайне удобный и полезный сервис devdocs.io.


Логотип Online Compiler

Открыл сегодня для себя такую штуку, как онлайн-компиляторы. Вот этот вот - поддерживает компиляцию кода pascal, C++, Fortran, Java и Basic. Просто вставляете код в окошко - нажимете Compile и забираете exe-шник под Windows или исполняемый бинарник под Linux.

Может кому-то пригодится.

2 / 2
Это последняя страница

Войти через...


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

Популярное


Соациализируемся


Также найти меня можно в других злачных местах:

Все еще использую электронную почту:
andreybaksalyar@ya.ru