Посмотрев замечательную вводную от Юрия Жлобы, я понял, что писал под YAWS совсем не так, как нужно. Всё-таки без OTP, на чистом erlang, трудно делать серьёзные вещи. Вот и стал копать глубже в инфраструктуру этого языка: узнавать какие есть веб-сервера, библиотеки, концепции и правила. Посему эта заметка будет от новичка для новичка :)
С чего же начать? 🔗Прежде всего основы следует изучить на RSDN (там же и про обработку ошибок). После этого стоит посмотреть видео по ссылке выше.
Дело было вечером, делать было нечего, вот и решил я написать обёртку для Яндекс Диска на python, дабы потом прикрутить скрипты бекапа для своих VPS. Готовое решение можно посмотреть на github или установить через pip: pip install YaDiskClient. Прежде чем начать, как полагается, посмотрел что же уже реализовано. Есть одна библиотека на PHP, которая удовлетворяет всем моим требованиям за исключением языка - хочется всё же работать на питоне. На pypi нашёл наработку от lexich.
Задался я целью сделать себе виртуалочку, куда в дальнейшем переедет блог и демо всяких моих наработок. К тому же и жена себе фотосайтик захотела :) Делов-то: развернуть систему, выбрать имя и перенести проекты. А проектов много, и все они разные - тут и erlang, и django, и ruby… В общем, небольшая тренировочка, хотя дома и так всё успешно работает.
Выбор виртуалки 🔗Остановился я на серверах от DigitalOcean, выбрал самый базовый тариф: 512Mb ОЗУ, 2.
Что-то мне в последнее время честенько приходится ставить postgres. То на новый боевой сервер, то на свою персональную VPS, так что я решил написать заметочку на будущее. Авось и ещё кому-нибудь пригодится :) Процесс установки я буду описывать на голой системе (ubuntu 16.04), и все команды будут от root’а. Так работать, конечно, не принято - все мы знаем, что sudo наше всё, но здесь я ничем не рискую, а пользователя добавлю уже после описанного.
Сегодня пришлось мне повозиться с кодировкой строк. Задача: записать в базу русские буквы. Реализация: Python (MySQLdb) + MySQL + OS X. Не зря я здесь указал платформу ;) Казалось бы, тривиальная задача, ан нет - в таблицу падали крякозябры.
Сначала я грешил на питон с его странными строками (Python 2.7). Известно, что обычная строка там - просто последовательность байтов. Получить юникодную строку можно несколькими способами:
указать в начале файла # -*- coding: UTF-8 -*-, т.
Содержание:
Введение Подготовка данных (ruby) Сервер (Erlang+YAWS) Клиент (JS) Сегодня заключительная статья из серии про Mercator. На этот раз поговорим про клиентскую часть. Из прошлой статьи видно, что после получения информации о странах из БД, эти данные пишутся в js-массив. Таким образом, ответы также есть в этом массиве (мы ведь пока просто играемся ;) ). Но сначала нужно создать объекты стран, которые можно двигать:
function addCountries() { var options = { strokeColor: '#FF0000', strokeOpacity: 0.
Сегодня хотел бы поговорить по поводу того, что же использовать в работе программисту: IDE или текстовый редактор? Я так и не пришёл к единому мнению что же использовать. Есть крупные IDE, которые создаются под язык программирования:
Visual Studio - C++ XCode - Objective-C Delphi - pascal (тут немного сложнее, но для общей картины) Eclipse - Java PHPStorm - PHP PyCharm - Python RubyMine - Ruby Сама идея IDE замечательна: тут и код, и дебаг, и структура модуля и прочие полезные плюшки, но все они далеки от идеала.
Содержание:
Введение Подготовка данных (ruby) Сервер (Erlang+YAWS) Клиент (JS) Это третья статья из цикла об игрушке Mercator - паззл из стран. На мой взгляд, самая интересная часть - Erlang. Почему он, а не, например, Node.js? Мне уже давно хочется познакомиться с миром функционального программирования, а Erlang - наиболее приспособленый для практического применения. Его основная фишка - легковесные потоки, которые выполняются параллельно, друг другу никогда не мешая, т.к. в этом языке нет понятия “переменная”.
Чем старше я становлюсь, тем больше начинаю задумываться о своём участии в open source проектах. Я пользуюсь открытой Ubuntu, шарюсь в интернете через бесплатные браузеры, использую программы, которые кто-то написал и поделился со всеми остальными. Я потребитель! Но ведь я же могу стать и производителем полезного-доброго-вечного. Да, у меня не всегда хватает времени и сил для вклада в общее дело, но уж деньги-то есть. Я стараюсь поддерживать интересные мне проекты - те, которые, как мне кажется, будут полезны многим людям.
Содержание:
Введение Подготовка данных (ruby) Сервер (Erlang+YAWS) Клиент (JS) Итак, у нас есть XML файл с координатами стран, теперь хорошо бы его загнать в базу данных. В нашем случае это PostgreSQL. Делать мы это будем с помощью замечательного языка Ruby. Для этого установим gem для работы с Postgres по имени pg (неожиданно, правда?):
$ gem install pg Но для начала создадим структуру БД:
-- создадим пользователя mercator CREATE ROLE mercator LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION; -- добавим ему схему CREATE SCHEMA mercator AUTHORIZATION mercator; -- последовательность для таблицы стран CREATE SEQUENCE countries_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1; ALTER TABLE countries_seq OWNER TO mercator; -- создадим таблицу стран CREATE TABLE "Countries"( "ID" integer NOT NULL DEFAULT nextval('countries_seq'::regclass), "Name" character varying(50) NOT NULL, -- имя страны "Level" character varying, -- кажется, масштаб, но пока не используется "Polygon" character varying[], -- список полигонов в виде строк "Available" boolean, -- доступность для игры "Answer" character varying(50), -- хранение ответа CONSTRAINT "CountriesID" PRIMARY KEY ("ID" ) ) WITH (OIDS=FALSE); ALTER TABLE "Countries" OWNER TO mercator; Теперь можно попробовать подключиться через пользователя mercator/mercator: