Интересно почитать… Блог в котором есть много интересной информации…

26 февраля 2016

Как конвертировать валюту в VirtuaeMart 1.x

Категория: программирование — dmitriano @ 19:31

Три года думал как в VirtuaeMart 1.x конвертировать валюту, оказалось что всё очень просто. VirtuaeMart берет курсы валют на сайте ЕЦБ по адресу http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml (файл administrator/components/com_virtuemart/classes/currency/convertECB.php), и в PHP коде функция конвертации выглядит следующим образом (файл libraries/user/product_parser.php):

function FormatProductPrice($price, $product_currency)
{
    global $CURRENCY_DISPLAY;

    $converted_price = $GLOBALS['CURRENCY']->convert($price, $product_currency);

    return $CURRENCY_DISPLAY->getFullValue($converted_price);
}

чтобы product_currency бралось из базы при листинге продуктов надо добавить соответствующее поле в запрос в файле administrator/components/com_virtuemart/html/shop_browse_queries.php:

// These are the names of all fields we fetch data from
$fieldnames = ... , `#__{vm}_product`.`mdate`, `#__{vm}_product`.`cdate`, `attribute`, `product_currency`";

и в administrator/components/com_virtuemart/html/shop.browse.php добавить сточку

$products[$i]['product_currency'] = $db_browse->f('product_currency');

(далее…)

29 января 2016

Сборка проекта в Visual Studio 2015

Категория: программирование — dmitriano @ 20:37

Сначала надо взять исходники (репозитории) с сервера, для этого запускаем Visual Studio и открываем закладку Team Explorer, там нажимаем на зеленую вилку и потом на Clone и вводим URL: https://git.developernote.com/angle.git и выбираем папку на диске, например D:\Repos\angle, после чего жмем на кнопку Clone (см. рисунок 1) и вводим логин/пароль, когда студия будет запрашивать.

Потом двойной клик на репозиторий (рисунок 2) и двойной клик на solution (рисунок 3):

SNAGHTML2b49833SNAGHTML2b6540cSNAGHTML2b7addf

(далее…)

4 января 2016

Как поменять телефон на сайте

Категория: программирование — dmitriano @ 20:39

Заходим в phpMyAdmin через админку хостинга:

SNAGHTMLb537838

(далее…)

2 декабря 2015

Visual Studio Emulator for Android не ставится без Hyper-V

Категория: программирование — dmitriano @ 22:53

Visual Studio Emulator for Android не ставится без Hyper-V:

Visual Studio Emulator for Android setup

Нужно ставить такие опции в BIOS-е как SLAT (Second Level Address Translation), Hardware-assisted virtualization, Data Execution Prevention (DEP), однако на старых машинах может быть только опция Virtualization = Enable/Disable, которая похоже в этом случае не помогает.

Соответствующие настройки в Windows:

Hyper-V

(далее…)

VS2015 Update 1 ставится криво

Категория: программирование — dmitriano @ 22:46

Сегодня поставил VS2015 Update 1, после завершения установки он мне выдал следующее сообщение:

VS2015 Update 1

Visual Studio 2015 Update 1
Microsoft Visual Studio 2015 XAML Visual Diagnostics — ENU : The installer failed. Package failed. Error code: 0x80070643
C#/.NET (Xamarin) : This product did not download successfully:

Common issues in Visual Studio 2015 setup:
https://support.microsoft.com/en-us/kb/3039361

Скачал Microsoft File Checksum Integrity Verifier, следующая команда

fciv.exe -sha1 vs2015.com_enu.iso

показывает baad3cebab7a5834d8f78f7d02e4880c010f3ba9, что соответствует Visual Studio Community 2015 RTM, если смотреть Visual Studio 2015 ISO Files SHA-1 Values

23 ноября 2015

Собираем OpenCPN под VS2013 Win32

Категория: программирование — dmitriano @ 1:06

Делаем всё по инструкции, ставим на винду Cmake, POedit, нужен ли NSIS непонятно, скачиваем и стоим wxWidgets-3.0.2 (обе конфигурации debug и release), затем прописываем переменные окружения:

переменные окружения

(далее…)

9 мая 2015

Алгоритм объединения объектов на плоскости

Категория: программирование — dmitriano @ 15:10

Google Maps умеет объединять объекты при уменьшении масштаба см. рисунки. Причем если посмотреть на последнюю картинку, то не очень понятно, почему получилось 7 + 4, а не 8 + 3 например. Google Maps объединяет несколько объектов в один, но задача поиска областей занимаемых группами объектов выглядит гораздо более сложной, причем рисовать область с четкой границей наверное сложнее, чем сделать заливку цветом с прозрачностью обратно пропорциональной средней плотности объектов в данной точке, при этом не очень понятно, имеет или эта полупрозрачная заливка практическое применение.

То есть в идеале задача ставится так: по заданному набору точек на плоскости (или на эллипсоиде и т д.) получить набор многоугольников содержащих скопления точек. Скопление это транзитивное замыкание по расстоянию, то есть если расстояние от A до B меньше заданного и расстояние от B до C меньше заданного, то A, B и C принадлежат к одному скоплению. Либо можно определить скопление как область в которой плотность распределения точек больше заданного значения, при этом нужно как-то определять плотность распределения. Также надо учитывать, что могут получиться вырожденные случаи, когда A B и C лежат на одной прямой.

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

image

(далее…)

27 февраля 2015

Установка MS Visual Studio 2013 на ноутбук с Windows 8.1

Категория: программирование — dmitriano @ 15:57

После установки на ноутбук с Windows 8.1 Visual Studio 2013 выдала мне следующее:

Установка MS Visual Studio 2013 на ноутбук с Windows 8.1

“Виртуализация оборудования отключена на этом компьютере. Необходимо включить ее в параметрах BIOS. Дополнительные сведения см. в статье MSDN по адресу "http://go.microsoft.com/fwlink/?LinkId=252010".” Радует то, что вроде как это сообщение относится только к эмулятору Windows Phone 8.0, поэтому всё остальное, по идее, должно работать нормально, теоретически.

Также в процессе установки VS наглухо заглючил McAfee антивирус и заблокировал работу всех браузеров, поэтому пришлось его сносить.

8 января 2015

Windows 8.1 developer license

Категория: программирование — dmitriano @ 2:11

Сегодня после установки MS Visual Studio 2013 получил следующее:

image

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

14 ноября 2014

Добавление темы в WPF контрол

Категория: программирование — dmitriano @ 16:37

Во-первых, для подключения ThemeManger-а к контролу, в конструкторе надо добавить следующие строки:

public partial class AlarmsPage : UserControl
{
    public AlarmsPage()
    {
        InitializeComponent();

        ThemeManager.ApplyTheme(this, ThemeManager.CurrentTheme);
        ThemeManager.OnThemeChanged += (s, e) =>
        {
            ThemeManager.ApplyTheme(this, ThemeManager.CurrentTheme);
        };
    }
}

понятное дело, что этот код можно вынести в отдельный метод.

(далее…)

15 октября 2014

Использование ListView для отображения real-time данных.

Категория: программирование — dmitriano @ 16:58

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

В коде на C++ CLI есть массив vector<TNativeItem> содержащий несколько тысяч элементов и полностью меняющийся много раз в секунду. Нужен WPF контрол, который будет его отображать. Предположительно ListView обращается по индексу только к видимым элементам (в отличии от DataGrid и TreeView), поэтому он наилучший кандидат. Нужно реализовать ICollection (или ICollectionView) который будет хранить элементы только видимого диапазона, остальные делать нулями, причем при выходе элемента за границы видимого диапазона элемент должен зануляться (см 1). Разбивать элементы на страницы (как это делает VirtualizingCollection) не надо, так как мы их не загружаем с удаленного севера в данном случае, а создаем managed обертки для C++ объектов. За счет этого при обновлении всего массива на C++, будет обновляться только видимый диапазон managed объектов, что позволит достичь приемлемой производительности.

(далее…)

11 октября 2014

Ограничения WPF DataGrid

Категория: программирование — dmitriano @ 12:13

Как работает стандартный DataGrid

DataGrid это обычный ItemsControl, который биндится к ICollection, подписывается на нотификацию об изменении коллекции INotifyCollectionChaged и на нотификацию об изменении каждого элемента INotifyPropertyChanged, таким образом, если у нас, например, несколько тысяч элементов в коллекции, то соответственно DataGrid подпишется на INotifyPropertyChanged несколько тысяч раз. Если говорить точнее, то DataGrid биндится к ICollectionView, но тем не менее, для DataGrid необходим доступ к  элементу коллекции по индексу (random access). DataGrid по умолчанию использует VirtualizingPanel для реализации UI Virtualization (создаются только видимые ряды), но Data Virtualization не поддерживается, это означает, что все данные должны сидеть в ICollection и биндится будут все элементы, независимо от того видимы они или нет (об этом много статей в интернете). DataGrid поддерживает сортировку и фильтрацию через ICollectionView, что удобно в тривиальных случаях.

(далее…)

28 ноября 2013

Компилируем примеры по DirectX под VS2012

Категория: программирование — dmitriano @ 20:36

Сначала нужно скачать старый DirectX SDK (June 2010) и прописать к нему пути:

C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;C:\Projects\Src
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86

ну а потом открыть свойства файла *.tx и выбрать там вот это (вместо HLSL Compiler):

(далее…)

11 октября 2013

Публикация в WordPress через SSL (HTTPS) при помощи Windows Live Writer

Категория: программирование — dmitriano @ 11:11

Если в wp-config.php установлен следующий флаг:

define('FORCE_SSL_ADMIN', true);

и используется сгенеренный вручную сертификат, то Windows Live Writer выдаёт вот такую ошибку при подключении:

image

Интересно, что установка сертификата эту задачу не решает.

(далее…)

25 июля 2013

Вредоносный код на веб-сервере (Joomla 1.5 + VirtueMart 1.1.x)

Категория: программирование — dmitriano @ 8:44

Вредоносный кодУ меня есть один старый сайтик, который работает на Joomla 1.5 + VirtueMart 1.1.x, обновляться до 3.0 мороки много, но видимо придется, может быть после этого его заражать будут меньше. Сегодня обнаружил в корневом каталоге новые файлы. PHP запущено под nobody, поэтому чтобы найти все новые файлы рекурсивно я использую команду (по SSH):

find . -user nobody -iname "*.php"

(далее…)

11 июля 2013

Как правильно править тему WordPress

Категория: программирование — dmitriano @ 23:22

Если я поставил какую-то тему WordPress, и потом её поправил, то все правки будут потеряны при обновлении. Чтобы этого не происходило WordPress предлагает создавать Child Theme. Однако не факт, что этот Child Theme будет выдавать что-то осмысленное после обновления, если тема изменилась основательно.

(далее…)

21 мая 2013

Разбираемся почему не работает Apache OFBiz.

Категория: программирование — dmitriano @ 20:54

Итак, после установки Apache OFBiz при заходе на сайт через браузер по адресу http://gate:8080/ecommerce/control/main он выдаёт следующее:

image

(далее…)

18 мая 2013

Ставим Apache OFBiz на Ubuntu Server 12.4 LTS

Категория: программирование — dmitriano @ 14:12

Использовал предпоследнюю версию http://www.apache.org/dyn/closer.cgi/ofbiz/apache-ofbiz-11.04.02.zip. Новая версия Apache OFBiz 12.04.01, выпущенная в Апреле 2013, сходу не заработала, см ниже.

Ставим JDK 1.6, для чего скачиваем jdk-6u45-linux-i586.bin отсюда http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html, вот вроде инструкция для установки JDK6 на Ubuntu: http://www.devsniper.com/ubuntu-12-04-install-sun-jdk-6-7/. Этот jdk-6u45-linux-i586.bin судя по всему просто на просто самораспаковывающийся архив, таким образом JDK 6 ставится так же как и JDK 7. В общем, делаем следующее:

# ./jdk-6u45-linux-i586.bin
# mkdir /usr/lib/jvm
# cd /usr/lib/jvm
# mv /home/murat/work/jdk1.6.0_45/ .
# su - murat
$ export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45
$ echo $JAVA_HOME
$ $JAVA_HOME/bin/java -version
$ cd ofbiz
$ ./ant

(далее…)

5 апреля 2013

Меняем стиль списка категорий VirtueMart

Категория: программирование — dmitriano @ 22:10

Ну, во первых, выясняем, что нам нужно разобраться со стилем sublevel:

image

идем где он находится с помощью команды


(далее…)

30 марта 2013

Ставим Git клиент на Ubuntu Server 12.4

Категория: программирование — dmitriano @ 13:08

Git клиент ставится одной командой

sudo apt-get -y install git

Затем инициализируем репозиторий и добавляем проект

cd ~
git config --global user.email "you@example.com"
git config --global user.name "user"
git init
git add www/private/

модифицируем файл

nano www/private/wholesale-list.php

коммитим изменения

git commit www/private/ -m "first change"

(далее…)

Older Posts »

SlogPost.ru