Рубрика «Программирование» - 1072

Честно говоря, не понимаю почему данная новость прошла мимо Хабра, с учетом всех-Raspberry Pi любителей.

7 числа на официальном сайте Raspberry Pi была опубликована следующая новость:

На Games Britannia в Шеффилде мы сегодня анонсировали запуск соревнования по программированию для детей и молодежи. Со временем мы планируем сделать такие соревнования еженедельными, но этот будет длиться 8 недель, совпадая со школьными каникулами в северном полушарии.

Краткое изложение:

  • Две возрастные категории: 13 и младше, и от 14 до 18.
  • Награды за первое место в $1,000 и по $200 за вторые места в каждой из категорий.
  • Цель проста: мы хотим, чтоб вы впечатлили судей своей программой, которую вы написали для Raspberry Pi.

Цель проста: мы хотим, чтоб вы впечатлили судей своей программой, которую вы написали для Raspberry Pi. Если у вас пока нету Raspberry Pi, вы все-равно можете поучаствовать — просто используйте один из общедоступной эмуляторов платформы. (Больше информации в следующем сообщении!)
Читать полностью »

Введение

Не раз сталкивался в своей практике с компонентными моделями, которые как-то, хоть и отдаленно, а некоторые и весьма сильно напоминают реализацию MS COM'а. Многие компании имеют в своем арсенале подобные вещи, используемые в разработке продуктов компании. В некоторых компаниях это «допиленная» реализация MS COM'а для собственных нужд, в некоторых своя, написанная с нуля и, конечно же, кроссплатформенная, так как кроссплатформенность -это, пожалуй, один из самых весомых аргументов перед начальством на выделение ресурсов, когда кто-то решил написать что-то подобное, а писать подобные вещи всегда интереснее, чем повседневную логику и т.д. Так же и сам написал под нужды одного из проектов некоторую модель, смотрящую одним глазом на — MS COM. Нужды проекта привели к реализации модели, которая могла существовать только в рамках одного процесса и все компоненты могли жить в динамических библиотеках (dll/so) так же как и COM InProc сервера. Как некоторая переработка и выделение только самого необходимого для обеспечения компонентности было опубликовано в моей предыдущей статье Попытка написания своей компонентной модели на C++.
Реализовав пару подобных InProc моделей появилось желание написать нечто, что переступает границу процесса, т.е. модель с использованием IPC, к тому же в комментариях к предыдущей статье именно этого и хотели видеть другие участники.
Немного забегая вперед, скажу, что статья не является описанием некоторой законченной компонентной модели с поддержкой IPC/RPC, а всего лишь описывает некоторую идею реализации Proxy/Stub'ов. Самого же IPC в приведенной реализации не будет, тесты будут проведены в рамках одного процесса. Идея доведена до момента, когда вызов Proxy формирует некоторый буфер для отправки в другой процесс, а Stub на основе буфера вызывает соответствующий метод реализации. Если проложить некоторый транспорт для передачи этого самого буфера, то уже получится законченная модель.
Вся реализация построена на шаблонах и макросах. Да, макросах! Макросы — это зло, но в данном случае некоторые вещи без них не получатся.
Итак, господа эстеты, если Вам все же интересно и вы не испытываете большой неприязни к шаблонам и дурно пахнущим макросам, то Читать полностью »

Встреча FProg 2012 07 в Петербурге
В четверг, 12 июля 2012 года в 19:00 в петербургском офисе компании Яндекс при поддержке компании JetBrains и журнала «Практика функционального программирования» пройдёт очередная встреча FProg. Встреча состоится накануне программистского конкурса ICFP Contest 2012.

Обязательная запись на встречу для доступа в офис осуществляется на странице встречи через Twitter-аккаунт.

Темы докладов:

  • Евгений Котельников. Зависимые типы в Haskell
  • Ян Малаховски. Введение в Agda
  • Андрей Власовских. Команда spb-archlinux на ICFP Contest 2009

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

[Почти] MVC подход к реализации пользовательского интерфейса в Delphi. Часть 3. Объекты
В предыдущих частях статьи (1, 2) я показал, каким образом можно организовать работу с внутренними данными приложения и пользовательским интерфейсом через одну точку входа — модель. Изменения модели автоматически отражались в пользовательском интерфейсе. При этом для упрощения в качестве модели я использовал простые property класса формы, setter которых может привести GUI интерфейс к текущему состоянию модели. В данной части статья я покажу, как интерфейс может реагировать на изменения самих объектов внутри приложения.
Читать полностью »

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

Сегодня почему-то не сдержался, увидев топик Из гадкого утёнка в лебедя, или как исправить криворукий код и решил его исправить по-своему. Тем более автор попросил дать ссылки на другие варианты решений.

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

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

Сегодня почему-то не сдержался, увидев топик Из гадкого утёнка в лебедя, или как исправить криворукий код и решил его исправить по-своему. Тем более автор попросил дать ссылки на другие варианты решений.

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

Привет, уважаемый читатель!

Все разработчики программ рано или поздно сталкиваются с проблемой падения программы у пользователя. Но далеко не все при этом могут получить доступ к конкретному компу, на котором что-то идёт не так, запустить там gdb и повторить падение. И даже получить информацию от пользователя бывает крайне сложно: в багтрекер (или техподдержку) приходит сообщение а-ля «программа падает, что делать?», а вот технической информации, так важной для разработчика, пользователь не прилагает к своему сообщению. Да ещё и не каждый напишет об этом! Просто перестанет пользоваться программой — и всё.

Некоторые ОС предлагают отправить краш-репорт разработчикам. Но! Разработчикам ОС, а не Вам, то есть совсем не тем людям, которым это действительно нужно! И тут на помощь приходят собственные краш-репорты, которая Ваша программа должна бы отправить на Ваш сервер. Но как их сделать? Как правильно обработать SEGFAULT и при этом отправить вразумительную информацию разработчику?
Читать полностью »

image

О чём это?

Многие начинают писать проект для работы с 1 малой задачей, не подразумевая, что данная история приведёт к многопользовательской системе управления, ну допустим, контентом или упаси, производством. И всё вроде здорово и классно, всё работает, пока не начинаешь понимать, что тот код, который написан — состоит целиком и полностью из костылей и хардкода.Читать полностью »

Появилась потребность разместить свои ролики, которые были бы доступны как бля меня, так для родственников из других городов, для этих целей, решил попробовать использование известного движка для организации видео-хостинга – PHPmotion, в этой заметке приведу процесс установки на OS Debian 6 Squeeze, установка происходила внутри контейнера OpenVZ.

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

Я собрал здесь некоторые не очень очевидные факты о заглавных и строчных буквах, с которыми может столкнуться программист в работе. Многие из вас переводили строки во «все заглавные» (uppercase), «все строчные» (lowercase), «первую заглавную, а остальные строчные» (titlecase). Ещё более популярна операция сравнения без учёта регистра. В мировом масштабе такие операции могут быть весьма нетривиальны. Пост построен в виде «сборника заблуждений» с контрпримерами.

1. Если я переведу строку в uppercase или lowercase, число Unicode-символов не изменится.

Нет. В тексте могут попасться строчные лигатуры, которым не соответствует один символ в верхнем регистре. Например, при переводе в uppercase: fi (U+FB00) -> FI (U+0046, U+0049)

2. Лигатуры — изврат, ими никто не пользуется. Если их не учитывать, то я прав.

Нет. Некоторым буквам с диакритикой нет точного соответствия в другом регистре, поэтому приходится использовать комбинированный символ. Скажем, в языке африкаанс есть буква ʼn (U+0149). В верхнем регистре ей соответствует комбинация из двух символов: Заглавные и строчные буквы (U+02BC, U+004E). Если вам попадётся транслитерация арабского текста, вы можете столкнуться с Заглавные и строчные буквы (U+1E96), которой в верхнем регистре также нет односимвольного соответствия, поэтому придётся заменять на Заглавные и строчные буквы (U+0048, U+0331). В ваханском языке есть буква Заглавные и строчные буквы (U+01F0) с аналогичной проблемой. Вы можете возразить, что это экзотика, однако на африкаанс в википедии 23000 статей.

3. Ну хорошо, но давайте считать комбинированный символ (с участием modifying или combining code points) одним символом. Тогда длина всё же сохранится.

Нет. Есть, например, в немецком языке буква «эсцет» ß (U+00DF). При переводе в верхний регистр, она превращается в два символа SS (U+0053, U+0053).
Читать полностью »


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