Рубрика «Песочница» - 39

В многопоточных приложениях иногда возникает необходимость создать producer/consumer очередь. Наилучший вариант это использовать для этого готовую библиотеку. Если по каким-то причинам этого сделать нельзя, то такую очередь можно реализовать самому. Как правило, для этого используются механизмы синхронизации mutex и condition variables.

Интерфейс синхронизации различается от среды к среде, поэтому приходится либо писать высокоуровневую обертку, либо брать за основу интерфейс какой-то среды и реализовать его для других. К примеру, можно взять за основу интерфейс pthread, и для Windows реализовать функции pthread_mutex_* и pthread_cond_*, на основе которых уже построить очередь.

Существует более легкий способ. Он заключается в том что можно создать сокет пару (socketpair) или трубу (pipe) из двух связанных дескрипторов, отдать пишущий конец трубы поставщику (producer), а читающий конец отдать всем потребителям (consumers). Читать полностью »

Здравствуйте, уважаемые читатели!

Эта статья написана мной после прочтения публикации «Baking Pi – Operating Systems Development» — очень хорошего курса по азам ассемблера для ARM на примере RasPI.

Надеюсь, будет интересно, так что добро пожаловать под кат.
Читать полностью »

Моя короткая история, как я создавалискал для себя удобный интерфейс для ведения контактной базы.

Об авторе

Уже год я являюсь совладельцем и руководителем маленькой (но перспективной) компании по дистрибуции бризеров. Перед этим долгое время в разных ролях работал в крупном франчайзи 1С, давно не программист, но постоянно поддерживаю свои компетенции в актуальном состоянии.

Весь учет пока веду самостоятельно.
Читать полностью »

Стоит задача сделать карту с федеральными округами РФ на картах яндекса. В данной статье я не стараюсь открыть Америку, но думаю этот материал поможет вам сэкономить время на создание подобной карты.
Читать полностью »

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

Стояла задача отправить клиенту заполненную анкету на сайте. Задача травиальная, но было две проблемы:
1) Количество заполняемых полей больше пятидесяти
2) Сама анкета на бассурманком языке

Первой мыслью было стандартное присвоение каждому полю уникального названия, после чего копипаст формы в шаблол письма с заменой полей на переменные вида $_POST['value_name']

Но, там же еще и чекбоксы с радио-инпутами… Их тоже как-то надо проверять… Кароче, че-то мне эта затея не понравилась и написал простой, но полезный скриптик, который может кому-то пригодится:

function sendForm()
{
$("input[type=text]").each(function(){
   $(this).replaceWith('<span style="color:green;">'+$(this).val()+'</span>');
});
$("textarea").each(function(){
   $(this).replaceWith('<span style="color:green;">'+$(this).val()+'</span>');
});
$("input[type=checkbox]:checked").each(function(){
   $(this).replaceWith('<span style="color:green; font-weight:700;">X</span>');
});
$("input[type=radio]:checked").each(function(){
   $(this).replaceWith('<span style="color:green; font-weight:700;">X</span>');
});
return $('form').html(); 
}

Если кому-то не нравится буква «Х» то можно заменить ее на ✔, но не проверял как оно работает.
Смысл скриптика, думаю, понятен — заменяем все введенные данные на значения, а потом возвращаем ВСЮ форму. Что дальше с ней делать уже зависит от конкретной задачи — отправлять письмом или заносить в базу, но таким образом можно сэкономить кучу времени. Буду рад, если кому-то пригодится мое решение.
Читать полностью »

— Ах да, мы изучали бизнес-процессы и получили результат: анализ бизнес-процессов показал, что процессов по-факту нет!
— Да что вы говорите, серьёзно?
— И поэтому мы создали для заказчика ДОКУМЕНТ.
Потому что по-факту, когда анализ бизнес-процессов показывает, что процессов нет — у тебя ДОКУМЕНТ НИ О ЧЁМ.
А когда ты имеешь документ ни о чём — ты спокойно называешь его «СТРАТЕГИЯ».
Все довольны, идём дальше.

(С) Степан Эрнстович Внедряй!

Всем кто работает с конкретным клиентом, знакома проблема расплывчатости рамок при строгих ограничениях сроков и бюджета на реализацию?

Эта проблема имеет две ключевые причины:
Читать полностью »

Плюсам FollowSymLinks уделено немало статей, я хочу поведать об опасности его неправильной настройки.

Речь пойдет о серверах под Apache.

FollowSymLinks — инструмент «второго взлома». Нужен как минимум аккаунт (свой или взломанный на сервере) и желательно php.

Что делает FollowSymLinks? Делает при просмотре в браузере ссылку (symlink) идентичной файлу, на который она указывает. Плохо то, что FollowSymLinks никак не проверяет кому принадлежит файл. При этом сам Apache, имеет доступ к веб файлам всех пользователей.

Приступим!

Смотрим какой у нас путь к нашему скрипту на сайте (http://nash.site/)
пусть это будет /home/nash/public_html/view/some.php
Читать полностью »

Бэкап базы данных и сайта средствами Web-сервера - 1
Добрый вечер, %username%.

Появилась необходимость делать бэкапы сайта и БД, все это делается стандартными средствами Web-сервера.
Читать полностью »

Всем привет. Хочу представить очередной велосипед написанный на PHP с использованием Document Object Model. В чем его отличие от остальных трёхколёсных представителей того же вида? На самом деле отличий не так уж и много, он сочетает в себе лучшее из многих. Например:

1. Полное разделение html и php.
2. Никаких дополнительных меток в шаблонах типа

<!-- BEGIN:block --> <!-- END:block -->

3. Возможность встраивать в верстку содержимое других файлов шаблона, как из php, так и используя специальный тэг в верстке.
4. Возможность создавать любой html-тэг на лету.
5. Возможность сохранение в html файл все что было сгенерировано и собрано.
6. Проверка существования html-файла запрашиваемой страницы перед тем как генерировать шаблон.

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

Сервис Яндекс.Музыка появился на свет уже довольно давно, как и его приложения в AppStore и GooglePlay, но только совсем недавно он был выпущен на платформу Windows Phone.

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

«В чем же заключается сам баг», — спросите вы. А я отвечу: в версии на Windows Phone можно слушать любую песню любого исполнителя абсолютно бесплатно, в обход подписки. Алгоритм действий, на самом деле, очень прост:
Читать полностью »


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