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

Буквально час назад в сети появилась черновая версия основных положений предстоящей иммиграционной реформы США.

www.scribd.com/doc/136230105/Outline-of-the-Border-Security-Economic-Opportunity-and-Immigration-Modernization-Act-of-2013

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

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

Онлайн обучение программированию

Проект Pplex изначально задумывался как Pplex Programming Language EXchange. Данный проект помогает людям находить себе преподавателей по языкам программирования и различным технологиям (фреймворки, библиотеки). Таким же образом, сервис помогает специалистам, которые готовы делиться знаниями, искать себе учеников. То есть, сайт только помогает нужным людям найти друг друга, а все общение и оплаты проходят вне сайта.

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

Заранее оговорюсь что данная статья не претендует на подробное изучение стандартов WMS или огромных возможностей набора библиотек Geotools. Это лишь простое HOWTO(или если хотите, считайте это учебно-демонстрационной задачей), которого для выполнения своих задач я не нашел ни на Хабре ни где либо еще в полноценном варианте.

Постановка задачи

Задача заключается в том чтобы реализовать WMS отдающий прозрачный слой в формате PNG с нанесенными на него точками координаты которых записаны где-то в базе данных(способ хранения не столь важен). Уже в WMS клиенте этот слой можно накладывать на изображение другой карты.

Кратко о WMS

WMS это Web-сервис предоставляющий доступ к картографической информации по HTTP протоколу. Описание стандарта можно найти здесь http://www.opengeospatial.org/standards/wms. Параметры сервису передаются в Get-запросе. Стандарт WMS предусматривает три типа запроса.

  • GetCapabilities(обязательный) – Данный запрос возвращает информацию о возможностях сервиса, таких как набор слоев, стилей, возвращаемых форматах в виде XML-документа соответствующего XSD приведенному в описании стандарта.
  • GetMap(обязательный) – Основной тип запроса для WMS. Возвращает изображение, заданных в параметрах запроса размеров и формата, географической информации в области координат(BBOX) заданной системы координат.
  • GetFeatureInfo(опциональный) – Этот запрос возвращает более подробную информацию о географических объектах на карте полученной в предыдущем запросе. Не все WMS соответствующие стандарту обязаны поддерживать данный тип запроса. В случае если этот запрос не поддерживается сервис возвращает исключение OperationNotSupported.

Более подробную информацию ищите в документах по ссылке выше.
Читать полностью »

Здравствуйте.
В данной статье представлена концепция написания физического движка для железнодорожного транспорта.
Одна из главных задач, которую должен решать данный физический движок – это расчет взаимодействия между вагонами.
Читать полностью »

От переводчика

На днях в сети появился минисайт minifesto.org со здравой, на мой взгляд, тезисной выжимкой опыта подхода к стартапам (да и к разработке в целом). Манифестность текста смягчается от начала к концу, но это не делает его хуже.

Снова прошу прощения за отсутствие перевода словосочетания “computer science”.
Минифест (манифест разработчиков минималистов)

Кратко

  • Боритесь за закон Парето, следите за тем, чтобы 20% вашего труда давало вам 80% результата;
  • Расставляйте приоритеты, ведь минимализм нужен для того, чтобы делать то, что нужно, а не распыляться по мелочам;
  • Лучшее — враг хорошего: сначала просто сделайте, потом сделайте правильно, потом сделайте лучше;
  • Убивайте в зародыше, не бойтесь начать всё сначала. Чем быстрее ошибётесь, тем быстрее научитесь;
  • Повышайте свою ценность. Постоянно думайте о том, чем можно помочь команде, — и развивайтесь в этом направлении;
  • Сперва основы. Мыслите последовательно, ориентируясь на лучшие практики мира Computer Science;
  • Посмотрите с разных сторон. Простое получается тяжелее, чем сложное, поэтому включайте воображение;
  • Синтаксис — основа взаимодействия. Мы пишем код для людей, а не для машин;
  • Не запутывайте. Старайтесь проектировать слоями, по мере возможности не зависящими друг от друга;
  • Вычищайте оставленное-на-всякий-случай. Минимализм борется с отвлекающим от основного.

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

Не так давно, занявшись изучением ruby, я столкнулся с тем, что не понимаю, что такое class методы, точнее в чем их отличие от instance и зачем они вообще нужны. В учебнике, который я изучаю на данный момент, эта тема была описана не достаточно подробно или я не дочитал до подробного описания, но в любом случае мне стало интересно разобраться и я полез искать ответы в google. Данный пост является всем тем, что мне удалось найти и понять. Конечно, для опытных ruby разработчиков тут интересного мало, но я надеюсь, что смогу помочь таким же новичкам в языке как и я. Если я вас заинтриговал — прошу под кат.
Читать полностью »

Введение

Все, кто когда-нибудь изучал химию, знают, что это наука сложная и в многих моментах не совсем понятная. Например, у учеников средних и старших классов часто возникают проблемы с решением химических задач и уравнений. Поэтому они часто ищут ответ на задание с помощью химических калькуляторов. Но большинство программ этого класса нельзя назвать калькулятором — они не считают, а только проверяют результат в базе данных. Этот способ имеет очень большой недостаток — программа не выдаст результат, если уравнения реакции не будет в базе. Поэтому есть необходимость использовать алгоритм, который даст возможность находить коэффициенты программно. И такой алгоритм существует.Читать полностью »

0. Предисловие

Доброго всем, чего там у вас! Поговорим немного о программировании, а именно, о сохранении настроек. Когда то давно, когда я только начинал писать более-менее приличный софт, я часто сталкивался с проблемой сохранения настроек — в ходе развития софта появлялись все новые и новые опции и каждый раз приходилось добавлять их в функции сохранения/загрузки, придумывать им имена, мучится над структурой хранения… В общем, заниматься не самыми приятными вещами. К тому же, такой подход давал богатую почву для ошибок. Но вот, в один прекрасный день, я открыл для себя Америку, идея пришедшая мне в голову навсегда избавила мои проекты от проблем с настройками. Именно о этой идеи я и хочу вам рассказать.

1. Теория

С чего начинаются все проблемы с сохранением настроек? Верно, с визуальных компонентов. Ведь по сути, все значения динамических настроек хранятся в тех или иных полях визуальных компонентов. Осознав это, я задался вопросом: «А что нам это дает?» А вот что:

  1. У любого компонента есть имя
  2. У любого компонента есть поле для хранения значения
  3. Все компоненты на форме можно легко найти

Три этих свойства решают все наши проблемы! Ведь достаточно просто пройтись по всем визуальным компонентам и запомнить их значения!

2. Выбор хранилища

Что сохранять мы нашли, но как это сохранять? Чаще всего, для сохранения настроек используют реестр или *.ini файлы. Я остановил свой выбор на *.ini файлах. Во-первых, загаживать реестр совершенно ни к чему. Во-вторых, *.ini файлы позволяют легко переносить настройки с одной машины на другую, что очень удобно. Ну и в-третьих, структура этих файлов очень располагает к нашему методу:

[название_блока1]
название_переменной1=значение_переменной1
название_переменной2=значение_переменной2
…
название_переменнойN=значение_переменнойN

[название_блока2]
название_переменной1=значение_переменной1
название_переменной2=значение_переменной2
…
название_переменнойN=значение_переменнойN

…

[название_блокаN]
название_переменной1=значение_переменной1
название_переменной2=значение_переменной2
…
название_переменнойN=значение_переменнойN

Эта структура идеально подходит для хранения наших настроек:

[тип_компонента]
название_компонента=значение

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

Это топик-перевод статьи Eller's Algorithm. В ней рассказывается о способе программной генерации лабиринтов. Дальнейшее повествование идет от лица автора.

 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __  
|__   |__       __ __|__   |   __|  |  |  |  |
|__   |__   |__|   __ __|   __ __      |     |
|        |  |  |     |  |__      |__|  |  |  |
|__|__|  |  |   __|   __|__   |   __|__|  |__|
|   __|  |     |__ __ __|  |  |__|  |     |  |
|  |  |  |  |__|  |__   |  |   __|__ __|  |  |
|  |__    __    __ __    __|  |   __   |  |  |
|  |  |  |  |      __|  |   __|  |  |__|  |  |
|  |     |     |__   |  |  |  |  |  |__    __|
|  |  |__|__|__ __|  |     |  |  |      __|  |
|__ __|  |  |  |__   |__|   __|     |   __ __|
|   __|  |   __|__      |__   |__|  |__    __|
|  |  |     |  |     |__|  |   __    __|   __|
|   __|  |__ __|__|      __|  |  |     |  |  |
|   __ __   |      __|__|  |__   |  |  |__|  |
|__ __ __|__ __|__ __ __ __ __|__|__|__ __ __|

Алгоритм Эллера позволяет создавать лабиринты, имеющие только один путь между двумя точками. Сам по себе алгоритм очень быстр и использует память эффективнее, чем другие популярные алгоритмы (такие как Prim и Kruskal), требуя памяти пропорционально числу строк. Это позволяет создавать лабиринты большого размера при ограниченных размерах памяти.

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

Доброго времени суток, дорогой читатель! Я хочу рассказать, как интегрировать программу на новомодном языке QML с веб-ресурсами.

Сам по себе, QML — это декларативный JavaScript-подобный язык программирования, который входит в фреймворк Qt. Разработчики Qt настроены серьезно и продвигают его как основной инструмент создания интерфейсов. Более того, достаточно много вещей можно сделать не прибегая вообще к C++, в том числе и возможность работы с веб-серверами.

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

Учитывая, что в Qt 5.1, альфа версия которой вышла на этой неделе, включена начальная поддержка Android и iOS, эта тема может быть особенно интересна тем, кто присматривается к Qt или активно ее осваивает. В этой статье я расскажу, как можно организовать работу с веб-ресурсами из приложения на QML на примере API ВКонтакте.

На всякий случай отмечу, что я рассматриваю последнюю стабильную версию Qt 5.0.2. В более ранних версиях каких-то возможностей может не быть.
Читать полностью »


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