Модераторы: Snowy, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проект Музыкальный школьный звонок, Нужна помощь в доделке проекта 
:(
    Опции темы
уни
Дата 4.8.2010, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



Суть проекта см. тут:
http://vkontakte.ru/club18953849

Мой опыт кодера можно оценить коду парсера, который я приложил к тексту поста.
Этот парсер используется для считывания данных настроек и расписаний из внешних текстовых файлов.

Требования:
- знание среды NetBeans + IDE ME Platform SDK;
- понимание работы с svn;
- писание программы на русском языке (на код есть дальнейшие планы);
- понимание принципов ООП, творческий подход в его использовании;

Новички только приветствуются. Буду обкатывать, делиться знаниями бесплатно.

Задачи:
1. Доделать программу (у меня не хватает сил уже охватить всё одному, хотя я могу).
2. Найти дешёвые совместимые телефоны.
3. Начать реализацию продукта в школах, лицеях, гимназиях России.

Сейчас проект находится на стадии переделки - изменения движка планировщика звонков.

Всё что думаете пишите в теме. Лазить в личку мне нет интереса... если она тут есть.
Если наберутся желающие - дам код для разбора полётов.

Присоединённый файл ( Кол-во скачиваний: 18 )
Присоединённый файл  Parser.7z 5,32 Kb
PM MAIL   Вверх
уни
Дата 4.8.2010, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



В качестве обкатки и подбора народа могу предложить другой совместный проектик: Функциональный калькулятор.
Мой парсер - это по сути сейчас что-то вроде целочисленного интерпретатора. Добавив немного кода он может превратиться в функциональный калькулятор, поддерживающий тип плавающей точки.

Это очень просто сделать... и если кто хочет узнать как это делается, получить опыт такого рода кодинга, то могу посодействовать.
Потом легче будет перейти к предлагаемому проекту Школьного звонка, где этот парсер - одна из составных частей.

Парсер написан на основе грамматики. Может вычислять такие вещи:

-----
Вася = 1:
Паша = 2;
Люди = Вася + Паша;

СашаМаша = "любовь морковь";

Возраст = СколькоЛет( Вася );
Людей = СколькоЧеловек( Вася, Маша );
-----

Операторы целочисленные: + * / - (и унарный минус тоже) ^
Реализована поддержка функций с произвольным количеством переменных.

В общем, простой примитивный интерпретатор.
Типы переменных можно добавлять какие угодно.
PM MAIL   Вверх
W0LF
Дата 4.8.2010, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: нет
Всего: 20



уни, поясните пожалуйста, это Вы работу предлагаете или совместный проект? просто нужно знать, куда тему переносить.


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
уни
Дата 5.8.2010, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



Я всё предлагаю, в т.ч. обсуждение кода на J2ME.
Тот, кто возьмётся сможет продать эту систему в своём городе.

У меня уже есть школа, которая ждёт новой версии музыкального звонка. Я еле еле успеваю до 1 сентября.
Там 4 года проработал другой Музыкальный школьный звонок и я возьму оттуда бумажку об эксплуатации опытного образца.
С этой бумажкой можно продвигать его дальше.

Мне не жалко поделиться кодом и деньгами, т.к. это просто моё хобби... у меня есть собственное предприятие ООО "Слава" в г. Нижневартовске.

Идея вообще - распространить этот звонок на все школы, оборудованные радиоузлом (системой проводного вещания).

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

Насчёт кода J2ME, то мне есть очень много, что пообсуждать, т.к. J2ME и мобильная платформа - это очень убогие вещи, загоняющие нормального программера в очень жёсткие рамки возможностей (я промышленный кодер модулей и систем АСУ).

В частности, мне нужно оптимизировать работу paint() на холсте, т.к. сейчас его обработка занимает 4 секунды. Это связано правда не с самим рисованием, а обработкой необходимых данных для интерфейса.
PM MAIL   Вверх
уни
Дата 5.8.2010, 06:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



Тот, кто ещё не понял для чего я использую мобильник, посмотрите РЭ для прошлой версии звонка:
http://rapidshare.com/files/411114244/Shko..._manual.7z.html

С MIDP и J2ME всё получилось проще и удобнее. До этого звонок был писан на ассемблере AVR моим другом.
Самое главное достоинство - не нужно никаких дополнительных разрешений для установки звонка, т.к. мобила в отличие от своего производства, всё уже прошла.
PM MAIL   Вверх
ivanovpv
Дата 5.8.2010, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 1
Всего: 28



Цитата(уни @  4.8.2010,  19:31 Найти цитируемый пост)
- писание программы на русском языке (на код есть дальнейшие планы);

Я в шоке - оказывается Java не ругается на идентификаторы на русском...  smile Я лично не переношу русские идентификаторы еще со времен легендарного Ершола. Не думаю что вам имеет смысл наступать на те же самые грабли - это все равно что пытаться стать врачом не зная латыни. Английский нравится вам или нет - это язык которым должен владеть программер.

Цитата(уни @  4.8.2010,  19:31 Найти цитируемый пост)
Всё что думаете пишите в теме

1) Идея вроде ничего, правда не уверен, что что-то подобное уже есть. 
2) По чесноку - качество кода - ужасающее. Ну да ладно если работает почему бы и нет?  smile 
3) Ну а насчет заработать... Обычная цена за J2ME программку максимум $10 (минус комиссия контент агрегаторов и проч. сволоты) - так шта чтобы получить что-то более менее приличное нужно продать ну хотя бы тысячу экземпляров. 



--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
уни
Дата 5.8.2010, 09:52 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



ivanovpv, слабо владеете интуицией - это раз. Второе - Вы невнимательны, если бы Вы заранее подумали, что перед Вами не простой товарищ, то заглянули бы по ссылке, что я дал.

Вот группа, которую я создал для сопровождения программы и устройства:
http://vkontakte.ru/club18953849

Прочтите там всё, посмотрите картинки и самое главное видео ролики.
Я собрал целый музей звонковой техники: отечественные и импортные устройства со всего мира.

Моя идея уникальна. Пока. Я имею в виду простоту реализации. Музыкальных звонков практически нет, т.к. никому почему-то не приходит в голову делать такие. Все автоматизируют старые звонки громкого боя.

Ещё скажу, что по специальности я не программист, а ембеддер. У меня высшее радиотехническое образование. Это означает, что мне нет труда оценить аналоги других производителей. Пока я видел только 2 достойных звонковых автоматов - все они импортные и ни один из них не музыкальный. Там вообще нет музыкальных, только в России я нашёл один похожий проект.

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

Не вижу смысла писать это на английском.

Цитата

Я в шоке - оказывается Java не ругается на идентификаторы на русском...

Учите матчасть. Уже давно и не только ява поддерживает уникод. Я вообще начал пользоваться русским языком с C#.

Поддержка компилятором уникода создана ИМЕННО ДЛЯ ТОГО, чтобы развивать образное мышление в программировании на родном языке при писание кода для внутреннего рынка. Такой рынок существует... если им интересоваться по-настоящему.

Что касаемо кода парсера. Он создан прежде всего для образовательных целей. Вот аналог для J2ME, оценить разницу:
Код

package org.json.me;

/*
Copyright (c) 2002 JSON.org
 
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
 
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 
The Software shall be used for Good, not Evil.
 
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
 */

/**
 * A JSONTokener takes a source string and extracts characters and tokens from
 * it. It is used by the JSONObject and JSONArray constructors to parse
 * JSON source strings.
 * @author JSON.org
 * @version 2
 */
public class JSONTokener {
    
    /**
     * The index of the next character.
     */
    private int myIndex;
    
    
    /**
     * The source string being tokenized.
     */
    private String mySource;
    
    
    /**
     * Construct a JSONTokener from a string.
     *
     * @param s     A source string.
     */
    public JSONTokener(String s) {
        this.myIndex = 0;
        this.mySource = s;
    }
    
    
    /**
     * Back up one character. This provides a sort of lookahead capability,
     * so that you can test for a digit or letter before attempting to parse
     * the next number or identifier.
     */
    public void back() {
        if (this.myIndex > 0) {
            this.myIndex -= 1;
        }
    }
    
    
    
    /**
     * Get the hex value of a character (base16).
     * @param c A character between '0' and '9' or between 'A' and 'F' or
     * between 'a' and 'f'.
     * @return  An int between 0 and 15, or -1 if c was not a hex digit.
     */
    public static int dehexchar(char c) {
        if (c >= '0' && c <= '9') {
            return c - '0';
        }
        if (c >= 'A' && c <= 'F') {
            return c - ('A' - 10);
        }
        if (c >= 'a' && c <= 'f') {
            return c - ('a' - 10);
        }
        return -1;
    }
    
    
    /**
     * Determine if the source string still contains characters that next()
     * can consume.
     * @return true if not yet at the end of the source.
     */
    public boolean more() {
        return this.myIndex < this.mySource.length();
    }
    
    
    /**
     * Get the next character in the source string.
     *
     * @return The next character, or 0 if past the end of the source string.
     */
    public char next() {
        if (more()) {
            char c = this.mySource.charAt(this.myIndex);
            this.myIndex += 1;
            return c;
        }
        return 0;
    }
    
    
    /**
     * Consume the next character, and check that it matches a specified
     * character.
     * @param c The character to match.
     * @return The character.
     * @throws JSONException if the character does not match.
     */
    public char next(char c) throws JSONException {
        char n = next();
        if (n != c) {
            throw syntaxError("Expected '" + c + "' and instead saw '" +
                n + "'.");
        }
        return n;
    }
    
    
    /**
     * Get the next n characters.
     *
     * @param n     The number of characters to take.
     * @return      A string of n characters.
     * @throws JSONException
     *   Substring bounds error if there are not
     *   n characters remaining in the source string.
     */
    public String next(int n) throws JSONException {
        int i = this.myIndex;
        int j = i + n;
        if (j >= this.mySource.length()) {
            throw syntaxError("Substring bounds error");
        }
        this.myIndex += n;
        return this.mySource.substring(i, j);
    }
    
    
    /**
     * Get the next char in the string, skipping whitespace
     * and comments (slashslash, slashstar, and hash).
     * @throws JSONException
     * @return  A character, or 0 if there are no more characters.
     */
    public char nextClean() throws JSONException {
        for (;;) {
            char c = next();
            if (c == '/') {
                switch (next()) {
                    case '/':
                        do {
                            c = next();
                        } while (c != '\n' && c != '\r' && c != 0);
                        break;
                    case '*':
                        for (;;) {
                            c = next();
                            if (c == 0) {
                                throw syntaxError("Unclosed comment.");
                            }
                            if (c == '*') {
                                if (next() == '/') {
                                    break;
                                }
                                back();
                            }
                        }
                        break;
                    default:
                        back();
                        return '/';
                }
            } else if (c == '#') {
                do {
                    c = next();
                } while (c != '\n' && c != '\r' && c != 0);
            } else if (c == 0 || c > ' ') {
                return c;
            }
        }
    }
    
    
    /**
     * Return the characters up to the next close quote character.
     * Backslash processing is done. The formal JSON format does not
     * allow strings in single quotes, but an implementation is allowed to
     * accept them.
     * @param quote The quoting character, either
     *      <code>"</code>&nbsp;<small>(double quote)</small> or
     *      <code>'</code>&nbsp;<small>(single quote)</small>.
     * @return      A String.
     * @throws JSONException Unterminated string.
     */
    public String nextString(char quote) throws JSONException {
        char c;
        StringBuffer sb = new StringBuffer();
        for (;;) {
            c = next();
            switch (c) {
                case 0:
                case '\n':
                case '\r':
                    throw syntaxError("Unterminated string");
                case '\\':
                    c = next();
                    switch (c) {
                        case 'b':
                            sb.append('\b');
                            break;
                        case 't':
                            sb.append('\t');
                            break;
                        case 'n':
                            sb.append('\n');
                            break;
                        case 'f':
                            sb.append('\f');
                            break;
                        case 'r':
                            sb.append('\r');
                            break;
                        case 'u':
                            sb.append((char)Integer.parseInt(next(4), 16));
                            break;
                        case 'x' :
                            sb.append((char) Integer.parseInt(next(2), 16));
                            break;
                        default:
                            sb.append(c);
                    }
                    break;
                default:
                    if (c == quote) {
                        return sb.toString();
                    }
                    sb.append(c);
            }
        }
    }
    
    
    /**
     * Get the text up but not including the specified character or the
     * end of line, whichever comes first.
     * @param  d A delimiter character.
     * @return   A string.
     */
    public String nextTo(char d) {
        StringBuffer sb = new StringBuffer();
        for (;;) {
            char c = next();
            if (c == d || c == 0 || c == '\n' || c == '\r') {
                if (c != 0) {
                    back();
                }
                return sb.toString().trim();
            }
            sb.append(c);
        }
    }
    
    
    /**
     * Get the text up but not including one of the specified delimeter
     * characters or the end of line, whichever comes first.
     * @param delimiters A set of delimiter characters.
     * @return A string, trimmed.
     */
    public String nextTo(String delimiters) {
        char c;
        StringBuffer sb = new StringBuffer();
        for (;;) {
            c = next();
            if (delimiters.indexOf(c) >= 0 || c == 0 ||
                c == '\n' || c == '\r') {
                if (c != 0) {
                    back();
                }
                return sb.toString().trim();
            }
            sb.append(c);
        }
    }
    
    
    /**
     * Get the next value. The value can be a Boolean, Double, Integer,
     * JSONArray, JSONObject, Long, or String, or the JSONObject.NULL object.
     * @throws JSONException If syntax error.
     *
     * @return An object.
     */
    public Object nextValue() throws JSONException {
        char c = nextClean();
        String s;
        
        switch (c) {
            case '"':
            case '\'':
                return nextString(c);
            case '{':
                back();
                return new JSONObject(this);
            case '[':
                back();
                return new JSONArray(this);
        }
        
        /*
         * Handle unquoted text. This could be the values true, false, or
         * null, or it can be a number. An implementation (such as this one)
         * is allowed to also accept non-standard forms.
         *
         * Accumulate characters until we reach the end of the text or a
         * formatting character.
         */
        
        StringBuffer sb = new StringBuffer();
        char b = c;
        while (c >= ' ' && ",:]}/\\\"[{;=#".indexOf(c) < 0) {
            sb.append(c);
            c = next();
        }
        back();
        
        /*
         * If it is true, false, or null, return the proper value.
         */
        
        s = sb.toString().trim();
        if (s.equals("")) {
            throw syntaxError("Missing value.");
        }
        if (s.toLowerCase().equals("true")) {
//#if CLDC!="1.0"
//#             return Boolean.TRUE;
            //#else
            return JSONObject.TRUE;
            //#endif
        }
        if (s.toLowerCase().equals("false")) {
//#if CLDC!="1.0"
//#             return Boolean.FALSE;
            //#else
            return JSONObject.FALSE;
            //#endif
        }
        if (s.toLowerCase().equals("null")) {
            return JSONObject.NULL;
        }
        
        /*
         * If it might be a number, try converting it. We support the 0- and 0x-
         * conventions. If a number cannot be produced, then the value will just
         * be a string. Note that the 0-, 0x-, plus, and implied string
         * conventions are non-standard. A JSON parser is free to accept
         * non-JSON forms as long as it accepts all correct JSON forms.
         */
        
        if ((b >= '0' && b <= '9') || b == '.' || b == '-' || b == '+') {
            if (b == '0') {
                if (s.length() > 2 &&
                    (s.charAt(1) == 'x' || s.charAt(1) == 'X')) {
                    try {
                        return new Integer(Integer.parseInt(s.substring(2),
                            16));
                    } catch (Exception e) {
                        /* Ignore the error */
                    }
                } else {
                    try {
                        return new Integer(Integer.parseInt(s, 8));
                    } catch (Exception e) {
                        /* Ignore the error */
                    }
                }
            }
            try {
                return Integer.valueOf(s);
            } catch (Exception e) {
                try {
                    return new Long(Long.parseLong(s));
                } catch (Exception f) {
//#if CLDC!="1.0"
//#                     try {
//#                         return Double.valueOf(s);
//#                     }  catch (Exception g) {
//#                         return s;
//#                     }
//#else
                    return s;
//#endif
                }
            }
        }
        return s;
    }
    
    
    /**
     * Skip characters until the next character is the requested character.
     * If the requested character is not found, no characters are skipped.
     * @param to A character to skip to.
     * @return The requested character, or zero if the requested character
     * is not found.
     */
    public char skipTo(char to) {
        char c;
        int index = this.myIndex;
        do {
            c = next();
            if (c == 0) {
                this.myIndex = index;
                return c;
            }
        } while (c != to);
        back();
        return c;
    }
    
    
    /**
     * Skip characters until past the requested string.
     * If it is not found, we are left at the end of the source.
     * @param to A string to skip past.
     */
    public void skipPast(String to) {
        this.myIndex = this.mySource.indexOf(to, this.myIndex);
        if (this.myIndex < 0) {
            this.myIndex = this.mySource.length();
        } else {
            this.myIndex += to.length();
        }
    }
    
    
    /**
     * Make a JSONException to signal a syntax error.
     *
     * @param message The error message.
     * @return  A JSONException object, suitable for throwing
     */
    public JSONException syntaxError(String message) {
        return new JSONException(message + toString());
    }
    
    
    /**
     * Make a printable string of this JSONTokener.
     *
     * @return " at character [this.myIndex] of [this.mySource]"
     */
    public String toString() {
        return " at character " + this.myIndex + " of " + this.mySource;
    }
}


Добавлено через 13 минут и 34 секунды
Стоимость одного устройства у меня начинается с цифры 10 000 руб. Себестоимость около 3500-4000 тыс без учёта затрат на кодинг.
Эта вещь одноразовая. Поставил в школе и далее только сопровождение. Поэтому это больше шабашка, дополнительная работа.

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

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

Школ, лицеев и других всевозможных учебных заведений, где используется упорядочение работы, очень много по стране. Пожарники обязали в каждой школе иметь систему оповещения. Поэтому почти везде должен стоять усилок с микрофоном. Вот к этому усилку и подключается звонок.
PM MAIL   Вверх
ivanovpv
Дата 5.8.2010, 10:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 1
Всего: 28



Цитата(уни @  5.8.2010,  10:52 Найти цитируемый пост)
ivanovpv, слабо владеете интуицией - это раз. Второе - Вы невнимательны, если бы Вы заранее подумали, что перед Вами не простой товарищ, то заглянули бы по ссылке, что я дал.

Ну канешна - издалека видно, что Вы товарисч очень непростой - я это заметил сразу и уже оценил ваши бицепцы/трицепцы и уровень владения уконтакте  smile 
Цитата(уни @  5.8.2010,  10:52 Найти цитируемый пост)
По поводу русского языка. Я тот товарищ, которому по уровню образования и опыта дано такое право и обязанность изменять существующие стандарты. 

Да-да был уже такой академик Ершов - верной дорогой идете! Упуть как грится, флаг в руки да барабан на шею  smile Да и с чего вы взяли что здесь одни недоумки и неучи собрались? Эт вы зря дарагой сибиряк... Оченно зря  smile 

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

Добавлено через 10 минут и 50 секунд
Цитата(уни @  5.8.2010,  10:52 Найти цитируемый пост)
Учите матчасть. Уже давно и не только ява поддерживает уникод.

Поддерживает уникод и писать идентификаторы это разные вещи. У вас идентификаторы на Win-1251, но никак не на UTF - засуньте их в строчный javac и получите фигу. Так что сначала оттранслируйте их в UTF-8 или UTF-16, а потом развивайте теории


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
уни
Дата 5.8.2010, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



ivanovpv, вы бы чего толкового сказали...

Да, я разносторонний человек и этим интересен. Я положил на это много труда и за это меня уважают, кто знает как это всё достаётся.
Вы обратили внимание только на тело, а на два моих высших образования? Это больше имеет значения в данной теме. Они оба технические.

ВКонтакте для меня - удобная СУБД. Где ещё можно так удобно складировать медиа инфу? На этом движке (это форума)?
Для меня вконтакте - инструмент. Очень удобный. Попробуйте мыслить о таких вещах с точки зрения пользы тоже. Где ещё можно разместить так просто информацию о своём проекте? Разместить аудио, видео, фото материалы и при этом можно привлечь аудиторию? Те же школы тоже есть вконтакте. Я немного увлекался аяксом и поэтому оценил по достоинству эту среду. Пользуюсь вот.

Я уважаю родной язык, в отличие от вас и не коверкаю слова. Мне нужно, чтобы меня понимали также и через мой код. Если он писан по-русски, то его внедрение в мозг проще в разы.

Добавлено через 2 минуты и 31 секунду
Цитата

Да и с чего вы взяли что здесь одни недоумки и неучи собрались?
 Эти слова на вашей совести и это лично ваше мнение smile я под ним не подписывался и умолчание делать не собираюсь.
PM MAIL   Вверх
уни
Дата 5.8.2010, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



Я не только сибиряк. Около 9 лет прожил НА Украине, 9 лет - на Урале и остальное время на севере. Моя родина - Украина smile
Вот такой я сибиряк.
PM MAIL   Вверх
ivanovpv
Дата 5.8.2010, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 1
Всего: 28



Цитата(уни @  5.8.2010,  11:36 Найти цитируемый пост)
Да, я разносторонний человек и этим интересен. Я положил на это много труда и за это меня уважают, кто знает как это всё достаётся.
Вы обратили внимание только на тело, а на два моих высших образования? Это больше имеет значения в данной теме. Они оба технические.


И что? Вы так на этом акцентируете как будто кругом неучи, я только это и имел ввиду. Не надо выпячивать так себя любимого у себя в деревне вы наверное крутой перец - не спорю будьте им, молодца. Но здесь в сети, где оч. много разных людей надо быть чуточку скромнее. Таких здесь каждый первый, не исключая и меня любимого  smile 
Цитата(уни @  5.8.2010,  11:36 Найти цитируемый пост)
Я уважаю родной язык, в отличие от вас и не коверкаю слова. Мне нужно, чтобы меня понимали также и через мой код. Если он писан по-русски, то его внедрение в мозг проще в разы.


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

Вообще это уже мало имеет отношения к J2ME - так что если нет конкретных вопросов (которых и не было), просьба закрыть тему.


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
уни
Дата 5.8.2010, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



ivanovpv
Цитата

Поддерживает уникод и писать идентификаторы это разные вещи. У вас идентификаторы на Win-1251, но никак не на UTF - засуньте их в строчный javac и получите фигу. Так что сначала оттранслируйте их в UTF-8 или UTF-16, а потом развивайте теории

А вы уверены ;) может быть попробуете сначала, а потом будете критиковать действительность.

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

Для компилятора совершенно безразлично на чём писать, хоть на иврите, хоть на идише. Он понимает только нолики и единички - и это его основа. Понимание важно для ЧЕЛОВЕКА. Чем быстрее поймёшь код, тем лучше. Думаю, что никто тут спорить не будет, что он не думает на английском или тут есть насколько его знающие люди? И какой процент их из общего числа русскоговорящих программеров? А зачем заниматься двойной работой? Вы задавайте иногда себе такие вопросы.

Все мои файлы UTF-8. Уж мне-то это известно, т.к. я не могу их в Far'е просто так просматривать, а работа компилятора уж тысячу раз просмотрена в отладочном окне, специально выводящего его потоковый вывод.

Добавлено через 2 минуты и 31 секунду
Цитата

Да откуда вы знаете что есть мой родной язык? И где это я и что коверкаю? Далеко бы я ушел если бы со своими индусами пытался общаться по русски или с итальянцами/австрияками по нижегородски? Если вы выходите за пределы своей деревни/города - будьте добры соответствовать стандартам установленным не вами. Не хотите - ваше дело и дальше плюйте против ветра, только потом не жалуйтесь что будет опплеваны.
 Будьте внимательны. Я специально делал оговорку по внутренний рынок, о существовании которого Вы видимо не подозреваете.
А он велик и работы там много. У меня есть ещё идеи, которые будут покруче школьных звонков. Кто работал в нашей промышленности, видел, что в России поле автоматизации вообще не пахано.

Добавлено через 5 минут и 20 секунд
Encoding в проекте у меня сразу было UTF-8.
PM MAIL   Вверх
уни
Дата 5.8.2010, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



То, что тут Вы назвали "фигой", выглядит вот так (это старая версия парсера проходит обкатку):
user posted image
PM MAIL   Вверх
ivanovpv
Дата 5.8.2010, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 1
Всего: 28



Цитата(уни @  5.8.2010,  12:10 Найти цитируемый пост)
А вы уверены ;) может быть попробуете сначала, а потом будете критиковать действительность.


Действительность жестче, читайте внимательнее про javac - на всякий случай сообщаю что это родной компилятор java
user posted image


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
уни
Дата 5.8.2010, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



ivanovpv Тот, кто работает с консолью, должен кроме вывода показать и задание.
Я честно скажу, что не пробовал компилить проект без IDE, но судя по тому, что я показал выше... у меня нет сомнений в том, что компилятором java должны поддерживаться разные кодировки.

Покажите те ключи консольного стандартного компилятора, которые вы использовали для сборки проекта.
Я использовал, думается мне, не менее стандартную среду от Sun и jdk.

Как говорится, rtfm:
Код

[C:\]$ javac.exe
Usage: javac <options> <source files>
where possible options include:
  -g                         Generate all debugging info
  -g:none                    Generate no debugging info
  -g:{lines,vars,source}     Generate only some debugging info
  -nowarn                    Generate no warnings
  -verbose                   Output messages about what the compiler is doing
  -deprecation               Output source locations where deprecated APIs are used
  -classpath <path>          Specify where to find user class files and annotation processors
  -cp <path>                 Specify where to find user class files and annotation processors
  -sourcepath <path>         Specify where to find input source files
  -bootclasspath <path>      Override location of bootstrap class files
  -extdirs <dirs>            Override location of installed extensions
  -endorseddirs <dirs>       Override location of endorsed standards path
  -proc:{none,only}          Control whether annotation processing and/or compilation is done.
  -processor <class1>[,<class2>,<class3>...]Names of the annotation processors to run; bypasses default discovery process
  -processorpath <path>      Specify where to find annotation processors
  -d <directory>             Specify where to place generated class files
  -s <directory>             Specify where to place generated source files
  -implicit:{none,class}     Specify whether or not to generate class files for implicitly referenced files
  -encoding <encoding>       Specify character encoding used by source files
  -source <release>          Provide source compatibility with specified release
  -target <release>          Generate class files for specific VM version
  -version                   Version information
  -help                      Print a synopsis of standard options
  -Akey[=value]              Options to pass to annotation processors
  -X                         Print a synopsis of nonstandard options
  -J<flag>                   Pass <flag> directly to the runtime system


  -encoding <encoding>       Specify character encoding used by source files
PM MAIL   Вверх
eugine_s
  Дата 5.8.2010, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: нет
Всего: 17



Цитата(уни @  5.8.2010,  11:44 Найти цитируемый пост)
То, что тут Вы назвали "фигой", выглядит вот так (это старая версия парсера проходит обкатку):

Не, ivanovpv прав - лучше с русским не баловаться. Геммороя набересь только. Хотя, я так понимаю, что уже поздно. 

P.S. Я бы не взялся с таким кодом работать...
PM MAIL   Вверх
уни
Дата 5.8.2010, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



eugine_s И правильно делаете, что боитесь последствий. Я последствия вижу и достаточно хорошо владею инструментарием, чтобы делать такого рода эксперименты.

Компиляция сама по себе - это ещё не всё. И балуюсь я с уникодом, а не с русской кодировкой. Могут быть проблемы при сопровождении больших проектов, если SVN или CVS не поддерживают уникод и тому подобное... в том же духе.
PM MAIL   Вверх
ivanovpv
Дата 5.8.2010, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 1
Всего: 28



Цитата(уни @  5.8.2010,  14:32 Найти цитируемый пост)
Покажите те ключи консольного стандартного компилятора, которые вы использовали для сборки проекта.

Проще не бывает
Код

javac Parser.java

Цитата(уни @  5.8.2010,  14:32 Найти цитируемый пост)
Как говорится, rtfm:

Не понял йумора - это я и сам могу почитать про ключики компилятора - спасибо, пронимает не по децки  smile 

Цитата(eugine_s @  5.8.2010,  14:33 Найти цитируемый пост)
P.S. Я бы не взялся с таким кодом работать... 

Я в общем то же самое и сказал стартеру, но завязалась длинная и скушная переписка.


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
уни
Дата 5.8.2010, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



ivanovpv О чём можно профессионально разговаривать с человеком, который в упор не видит ЧТО ему показывают? А?
Если Вы никогда не пользовались ключом -encoding, то ничего страшного в этом нет, только не надо на этой основе делать неверные выводы... а тем более в этом упорствовать.
Я ж Вам сказал:
Цитата(уни @  5.8.2010,  11:10 Найти цитируемый пост)
Encoding в проекте у меня сразу было UTF-8.

Эта галка в проекте прямо переходит в этот ключ для компилятора.
А если бы Вы были чуть опытнее, то поняли бы мою другу подсказку:
Цитата(уни @  5.8.2010,  11:44 Найти цитируемый пост)
То, что тут Вы назвали "фигой", выглядит вот так (это старая версия парсера проходит обкатку)
 Тут в упор видна отладка. Это означает, что когда я поставил в проекте галку "Включать отладочную информацию", то в объектный файл записалась информация из моего "уникодированного проекта". Если отладочная даже информация поддерживает уникод, то что говорить о всём остальном?

Цитата(ivanovpv @  5.8.2010,  10:22 Найти цитируемый пост)
Поддерживает уникод и писать идентификаторы это разные вещи. У вас идентификаторы на Win-1251, но никак не на UTF - засуньте их в строчный javac и получите фигу. Так что сначала оттранслируйте их в UTF-8 или UTF-16, а потом развивайте теории

Для приличия эти слова можно было бы забрать обратно, чтобы не вводить народ в заблуждение. Я как видите, последовал вашему совету и "засунул" код, но вот с такими ключами:
javac -encoding UTF-8 ...

Такой вот юмор. Это, кстати, мой первый и единственный проект на j2me.
PM MAIL   Вверх
eugine_s
Дата 5.8.2010, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: нет
Всего: 17



уни, на самом деле пишите - как хотите. 
Но Вам уже сказали, что так писать не есть хорошо, а послушаться или нет - дело Ваше. Лично у меня такой код вызывает отвращение, как думаи и vanovpv и большинства java программеров. 

Думаю с этим разобрались? 

Теперь к сути вопроса. Собственно, тема называется "Проект Музыкальный школьный звонок, Нужна помощь в доделке проекта". В чем нужна помощь? 
PM MAIL   Вверх
уни
Дата 5.8.2010, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



eugine_s Мне нужен планировщик. Посмотрите видео тут:
BellMinder Basic Tutorial - http://vkontakte.ru/video-18953849_148488416
(источник - http://www.bellminder.com/Downloads/tabid/53/Default.aspx)

Это можно сказать ТЗ. Нужно нечто похожее. Мне нужно графическое окно, которое выглядело бы как календарь и там можно было бы создавать годовой план расписания звонков. В виду ограниченности окна - это делать по месяцам.
Есть исходник, на основе которого можно это дело провернуть: CalendarWidget от Alessandro La Rosa.
Я начал было переделывать его под себя (русифицировать интерфейс сам), да нашёл баги и проблемы в другом пока месте.

Найдите в сети эти 2 файла календаря. Поглядите на него, потом поглядите видео, что я указал.
Я более подробно распишу ТЗ. Там будет рассказана функциональность, public методы и синтаксис выходного файла для экспорта. Подумаю и о внутренней структуре.

Нужно каждому числу назначать цвет - расписание. Расписания будут передаваться в конструкторе при создании окна. Вот как я это обычно делаю:
Код

    // Обработчик команд
    public void commandAction( Command команда, Displayable элемент ) {
        // Работаем с Главным меню
        if ( элемент == Меню ) {
            // Обработка команд
            if ( команда == List.SELECT_COMMAND ) {
                switch ( Меню.getSelectedIndex() ) {
                    case ЭЛЕМЕНТ_МОНИТОР:
                        ( new MonitorForm( Мидлет, Меню, МенеджерРасписаний, Настройки ) ).Отобразить();
                        break;

                    case ЭЛЕМЕНТ_НАСТРОЙКИ:
                        ( new SettingsForm( Мидлет, Меню, МенеджерРасписаний, Настройки ) ).Отобразить();
                        break;

                    case ЭЛЕМЕНТ_ПЛАНИРОВЩИК:
                        ( new PlannerForm( Мидлет, Меню, Настройки ) ).Отобразить();
                        break;

                    case ЭЛЕМЕНТ_РАСПИСАНИЯ:
                        ( new SchedulesForm( Мидлет, Меню, МенеджерРасписаний, Настройки ) ).Отобразить();
                        break;

                    case ЭЛЕМЕНТ_МЕЛОДИИ:
                        ( new FileBrowserForm( Мидлет, Меню, Настройки ) ).Отобразить();
                        break;

                    case ЭЛЕМЕНТ_ОПРОГРАММЕ:
                        ( new AboutForm( Мидлет, Меню ) ).Отобразить();
                        break;
                }
            }
        }

        // Выход из программы
        if ( команда == КомандаВыйти ) {
            Мидлет.notifyDestroyed();
        }

        // Тест
        if ( команда == КомандаТест ) {
            new Thread (
                new Runnable() {
                    public void run () {
                        МенеджерРасписаний.ЗагрузкаРасписанийИзФайла();
                    }
                }
            ).start();
        }
    }


( new PlannerForm( Мидлет, Меню, Настройки ) ).Отобразить();

Это вызов Планировщика. Ему передаются данные для работы (ссылка на объект класса Настройки), сам объект Мидлет для получения ссылки на дисплей и так на всякий и Меню - это окно, в которое нужно возвратиться. У меня есть шаблоны некоторые для работы меню, которые едины для всего проекта, но для графики нет каких особых ограничений, кроме единообразного вида.

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

Вот такая работа. Оплачиваемая. Если так не любите русский, можно на английском, но чтобы работало.

Я пока начал продумывать функциональность - как удобнее это дело всё сделать. Набросок, который сейчас выводится (слева - окно монитора - другого графического окна):
user posted imageuser posted image
Тут нужно заметить, что в используемом коде уже есть вся арифметика с датами и сильно себя мучить не нужно.
Арифметика с датами, это правильное положение чисел месяца в зависимости от количества дней в месяце и их положении относительно дней недели. Это уже сделано до нас ;)

Это сообщение отредактировал(а) уни - 5.8.2010, 17:07
PM MAIL   Вверх
ivanovpv
Дата 5.8.2010, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 1
Всего: 28



Цитата(уни @  5.8.2010,  16:17 Найти цитируемый пост)
Для приличия эти слова можно было бы забрать обратно, чтобы не вводить народ в заблуждение. Я как видите, последовал вашему совету и "засунул" код, но вот с такими ключами:
javac -encoding UTF-8 ...

Забрал. Я кстати и не претендовал на знание особенностей поведения Java при работе с кириллическими идентификаторами. Уже писал:
Цитата(ivanovpv @  5.8.2010,  09:59 Найти цитируемый пост)
Я в шоке - оказывается Java не ругается на идентификаторы на русском...  smile Я лично не переношу русские идентификаторы еще со времен легендарного Ершола. Не думаю что вам имеет смысл наступать на те же самые грабли - это все равно что пытаться стать врачом не зная латыни. Английский нравится вам или нет - это язык которым должен владеть программер.


Так что - посыпать голову пеплом не буду.



--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
уни
Дата 5.8.2010, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



ivanovpv, должен не спорю. А вот как Вы думаете, на каком языке писались программы для управления нашими ракетами? Нашими космическими аппаратами? Нашими системами противовоздушной обороны?
Вы ЦУП наш видели? Большой такой экран. На каком языке там всё написано? Я обучался управлению С-300, в т.ч. изучал её мозг и там кодинг на русском языке и по русским понятиям.

Или вы хотите упростить работу импортным спецслужбам? Они будут читать все наши коды как свои родные. Это нормально?
Так ли уж все программеры обязаны писать на английском с такой точки зрения? А если Вы не видели других сфер, можно ли однозначно утверждать, что это плохо? Я думаю, что нет.
PM MAIL   Вверх
ivanovpv
Дата 5.8.2010, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 1
Всего: 28



Цитата(уни @  5.8.2010,  17:35 Найти цитируемый пост)
ivanovpv, должен не спорю. А вот как Вы думаете, на каком языке писались программы для управления нашими ракетами? Нашими космическими аппаратами? Нашими системами противовоздушной обороны?
Вы ЦУП наш видели? Большой такой экран. На каком языке там всё написано? Я обучался управлению С-300, в т.ч. изучал её мозг и там кодинг на русском языке и по русским понятиям.


Я видел мозги МИГ-29 и мне снесло голову тем как он херово был написан - естественно по русски. А причина ведь проста и ясна как божий день - программеров владеющих тем самописным языком раз-два и обчелся. А для того, чтобы стать хорошим программером - нужна среда, коловращение среди себе подобных. Чем их больше тем быстрее учится кодер, тем он лучше становится. А если рядом с тобой 2-3 урукхая - сам таким урукхаем и останешься.

Вам не приходило в голову, что потому то мы в ж*пе, что все время изобретали велосипеды - там где они давно уже изобретены? Зачем тратить мозги и время на придумывание кондового, но *своего*! Вот сейчас будем видимо и национальную ОС "изобретать" - потратим хренову гору народного бабла, а зачем? Чем было бы хуже для страны если бы мозги С-300 были бы написаны на Си или Java? В упор не вижу здесь ничего криминального. А так ведь кто-то разрабатывал язык, писал компилятор, документацию, учил программеров и проч. - иными словами разбазаривал народное добро.

Цитата(уни @  5.8.2010,  17:35 Найти цитируемый пост)
Или вы хотите упростить работу импортным спецслужбам? Они будут читать все наши коды как свои родные. Это нормально?

Это уже паранойя  smile Неужели вы всерьез полагаете, что написав на "нашем" языке вы что-то скроете от врагов? Вы как-то недооцениваете буржуев...



--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
уни
Дата 5.8.2010, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



ivanovpv Этот поток мысли мне уже больше нравится. Уже совсем не много осталось до понятия того, что каждый неанглоязычный программер тратит как минимум пару лет своей жизни на освоение английского языка... умножьте это на десятки тысяч программеров - это всё жизни, это всё потерянное время. Вот почему мы в том самом месте, о котором Вы справедливо указали.

Как вы думаете, на что тратит эти самые года англоязычный товарищ, которому не нужно каждый раз нагружать мозг переводами с родного на английский и обратно? А? Может быть это та самая причина, по которой они не там, где вы справедливо указали?
Вам не приходит в голову, что словарь русского языка несколько богаче английского? И что программер тем и занимается, что описывает окружающую действительность терминами языка. Не легче, используя ООП описывать окружающий мир своими словами? Может быть вы просто зомбированы тем состоянием дел, которое сложилось исторически и не видите истинных причин и следствий? А?

И представьте себе в мировом масштабе, что каждый человек должен сначана учиться английскому, чтобы использовать инструментарий... это нормально? Нет скажу я вам. Если мы хотим экономить время и для своего внутреннего рынка делать программные продукты, то нам не нужен ни английский ни какой другой язык. Русского для этого всегда хватало. Создавать новую ось и компилятор не обязательно. Процесс этот уже пошёл, достаточно внедрить поддержку уникода везде и всё. Между прочим, MSIL поддерживает уникод, а значит .NET можно использовать вместе со всеми его языками для писания на русском ;) Что я и делал на C#.
PM MAIL   Вверх
ivanovpv
Дата 5.8.2010, 20:06 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 1
Всего: 28



уни, ну дожили... 

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

Надоело  smile 


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
уни
Дата 5.8.2010, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



ivanovpv У меня богатый для моего возраста жизненный опыт и я видел достаточно кода, чтобы утверждать, что сопровождение русского кода куда удобнее при писании программ для внутреннего рынка ;) Примеров для этого у меня достаточно. Причём сопровождение бывает разное.

Вы сами-то читаете книжки в оригинале? ;)
Все программеры, кто хочет быть в теме, должен уметь читать форумы, книги, статьи и прочую лабуду, его окружающую, в оригинале фирм производителей. Остальные ждут переводов... smile И кто тут ещё хочет меня убедить в том, что причина отставания в чём-то другом? Хе-хе... не надо быть наивными. Сопровождение англоязычных кодов - это целая книгопечатная индустрия, а у нас в стране некоторые не особо ответственные товарищи занимаются простым дублированием на русский хелпов забугорных проектов, технологий, языков и прочего.
Ведь все знают, что на оригинале в подавляющем большинстве случаев написано правильно и более полно, а переводные книжки... порою просто бездумно слизаны.
Взять тот же J2ME. Подскажите какую-нить нашу книжку, которую все бы однозначно признали толковой ;)

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

Куда ни кинь в любую другую сферу программерства - везде так. Про промышленность я вообще молчу. Технологии сокрыты за всеми замками... и у кого тут занавес? Пусть изучают русский, мы ведь ничего им не говорим про их коды - читаем и пишем и ничего. Вот и они ничего не скажут. Будут изучать русский, если код достойный. Я ведь подключаю англоязычные библиотеки и что с того? Мне это не трудно. А почему это им трудно будет? Чем они лучше нас? Пусть потрудятся и на нас.

Меняйте мировоззрение. Ведь в конце концов на чём написан продукт не так важно, важно насколько он выполняет свою функцию и достигнуты ли цели.

Я считаю несправедливым, что у нас в резюме знание английского для программера обязательно, а у них в резюме знание китайского нет smile Надо бы уравнять всех в возможностях.
PM MAIL   Вверх
уни
Дата 5.8.2010, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



Добавлю ещё, что космические туристы именно так и поступают, как я сказал - изучают русский, т.к. иначе их не допустят к нашим аппаратам ;) И можно требовать за это дело 20 млн баксов. Это ведь реально не так ли?
PM MAIL   Вверх
jk1
Дата 5.8.2010, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: нет
Всего: 75



Цитата

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


уни, не могу с вами согласиться. Положим, есть начинающий американский программист и он видит слово "Futex". Оно для него смысловой нагрузки не несет, потому как это термин. Его нужно осваивать вне зависимости от языка.

По теме:  мне гораздо удобнее писать код на английском языке. Почему? потому что когда мне нужно угадать название метода в незнакомом API, я его угадываю сходу, а не трачу время на подбор падежа или склонения. Мне приходилось писать и русифицированных языках программирования, так что есть с чем сравнить.

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


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
уни
Дата 5.8.2010, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



jk1, Вы его угадываете, т.к. уже потратили своё биологическое время на изучение английского. А ведь когда-то Вы могли бы сказать совсем по-другому: я не настолько знаю английский, но если бы было по-русски, то метод писался бы так. ;) Я прав или прав, или прав?
Я вообще это всё завёл к тому, что человек мыслит образами, а не словами. Если я вам сказал СТОЛ, то закрытыми глазами у вас в мозгу возникнет ЧТО? Вид стола ведь, а не TABLE или СТОЛ - словами, так ведь? Даже те, кто немного владеет английским при употреблении слова TABLE сначала переведут его на русский, а потом уже поймут что это такое. А может это не тэйбл вовсе, а таблица? Узок товарищ английский в образном понимании. Операторы оформить - это да, краток.

Есть ещё один интересный психологический пример. Попробуйте прочитать это бегло.
Цитата

«По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета, не иеемт занчнеия, вкокам пряокде рсапожолена бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы не чиатем кдаужю бкуву по отдльенотси, а все солво цликеом».

Сможет ли кто также бегло читать подобную английскую абракадабру? Сможет, но на это надо очень много времени. jk1, Вы я думаю, уж точно знаете что код чаще читается, чем пишется, а потому было бы логичным его писать удобно для читающего. Тому есть разные удобные приёмы, некоторые описаны в книжке "Совершенный код". В наше время нужно уметь быстро ориентироваться по коду, найденному в рунете и инете. Мой код может быть "понят" даже при диагональном взгляде, т.к. все слова там понятны даже непрограммисту.

И нет тут никакой ксенофобии. Это практика долгая. Мне надоело писать на английском и мучить свой мозг. Очень много кода я пишу в качестве опыта для себя. Также мне не нравится, когда мой мозг занят переводами вместо того, чтобы изучать алгоритмы. Я на соседнем форуме приводил жизненный пример из моей трудовой практики, когда я работал на металлургическом заводе, где было два варианта кода - один на русском, другой на английском писанным итальянцами... чего уж говорить, что сопровождать русский код нет особых проблем - это получается естественно. Эти коды - промышленные, управляющие контроллерами, сопровождающими процесс проката горячего металла.


PM MAIL   Вверх
уни
Дата 6.8.2010, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



Ну и чтобы совсем добить русскую тему и почему я так за неё взялся. Пришлось мне как-то писать заказную программу для Роспайпа. Это была программа для гидравлического и статического расчёта труб для систем водоотведения. Надо ли говорить, что писать нужно было по ГОСТам, т.к. эти расчёты приведены в регламентирующих документах. Все понятия там русские, а писал я на Дельфе. И вот мне нужно было придумать удобный код, чтобы обращаться к ОГРОМНОМУ количеству параметров.

Оцените степень извращения при писании кода на английском для внутреннего потребления:
Код

  TCalcVariables = class(TObject)
  public                                                        
// --= / [ Начало списка параметров] / =--
// --= / [ Общие параметры ] / =--
    MinerDiameter                                  : TVariable; // Dвнутр - Внутренний диаметр трубопровода
    ExternalDiameter                               : TVariable; // Dнаруж - Наружный диаметр трубопровода

// --= / [ Параметры статического расчёта ] / =--
    ShellDepth                                     : TVariable; // s      - Толщина оболочки
    CorrugationWidth                               : TVariable; // Lв     - Ширина гофра
    CorrugationStep                                : TVariable; // Lш     - Шаг гофра
    PipelineDepthFilling                           : TVariable; // Hтр    - Глубина засыпки трубопровода, считается от поверхности земли до уровня горизонтального диаметра
    ShortlivedElongationModulusOnPipelineEndLife   : TVariable; // Eo     - Кратковременный модуль упругости при растяжении материала трубы на конец срока службы эксплуатации трубопровода
    LongtimeElongationModulusOnPipelineEndLife     : TVariable; // Etau   - Долговременный модуль упругости при растяжении материала трубы на конец срока службы эксплуатации трубопровода
    PoissonConstantTubeStuff                       : TVariable; // Mu     - Коэффициент Пуассона материала трубы, приводится в норматив-ной документации
    ShortlivedStrengthAtTubeStuffStretching        : TVariable; // Sigmao - Кратковременная расчётная прочность при растяжении материала трубы
    SoilSpecificWeigth                             : TVariable; // Gamma  - Удельный вес грунта
    SoilDeformationModuleInTrenchSinuses           : TVariable; // Eгр    - Модуль деформации грунта в пазухах траншеи
    WeigthOnOneAxis                                : TVariable; // m      - Масса в тоннах на одну ось
    WheelLeanArea                                  : TVariable; // F      - Площадь опирания колеса
    InternalWaterPressureInPipeline                : TVariable; // P      - Перевод массы транспорта в давление на поверхности грунта
    GroundWaterLevelAltitude                       : TVariable; // Hв     - Высота грунтовых вод
    StrengthCondition                              : TVariable; //        - Условие прочности
    PipelineMaterial                               : TVariable; //        - Материал трубопровода
    PipelineMaterialMark                           : TVariable; //        - Марка материала трубопровода
    SoilType                                       : TVariable; //        - Тип грунта засыпки
    CorrugationHeight                              : TVariable; // e      - Высота гофра "e"
    GravityCenterYCoordinate                       : TVariable; // y      - Координата y центра тяжести
    TubeAreaSecondMoment                           : TVariable; // I      - Момент инерции поперечного сечения кольца относительно центральной оси
    RingCrossSectionArea                           : TVariable; // A      - Площадь поперечного сечения кольца
    ConditionalDiameter                            : TVariable; // D      - Диаметр окружной центральной линии кольца
    GeneralExternalVerticalLoading                 : TVariable; // qc     - Суммарная внешняя вертикальная нагрузка
    ShortlivedRingtypeShellRigidity                : TVariable; // Go     - Кратковременная кольцевая жесткость оболочки трубы
    RLSVDTGroundLoad                               : TVariable; // Psi_гр - Относительное укорочение вертикального диаметра трубы под действием грунтовой нагрузки
    RLSVDTTransportLoads                           : TVariable; // Psi_Т  - Относительное укорочение вертикального диаметра трубы под действием транспортных нагрузок
    RLSVDTWarehouseing                             : TVariable; // Psi_М  - Относительное укорочение вертикального диаметра трубы, образовавшееся в процессе складирования, транспортировки и монтажа
    GeneralRLSVDTInSoil                            : TVariable; // Psi    - Суммарное относительное укорочение вертикального диаметра трубы в грунте
    MaxRatingDeformationWallStuff                  : TVariable; // Eps_p  - Максимальное значение деформации материала в стенке трубы из-за овальности поперечного сечения трубы под действием грунтов и транспортных нагрузок
    CompressionRatioWallStuff                      : TVariable; // Eps_c  - Степень сжатия материала стенки трубы от воздействия внешних нагрузок на трубопровод
    MVTDSWStressRrelaxations                       : TVariable; // Eps_pp - Предельно допустимое значение деформации растяжения материала в стенке трубы, происходящей в условиях релаксаций напряжений
    MVTDSWTCreep                                   : TVariable; // Eps_pn - Предельно допустимая деформация растяжения материала в стенке трубы в условиях ползучести
    GroundLoad                                     : TVariable; // qгр    - Грунтовая нагрузка
    TransportLoad                                  : TVariable; // qt     - Транспортная нагрузка, принимаемая по справочным данным для гусеничного, колёсного и другого вида транспорта
    GroundwatersExternalPressure                   : TVariable; // Qгв    - внешнее давление грунтовых вод на уровне горизонтального диаметра трубы
    GeneralExternalPressureOnTube                  : TVariable; // qвш    - суммарное внешнее давление на трубу
    ExtPressureFromStabilityCondWithTransportLoad  : TVariable; // qвш    - суммарное внешнее давление на трубу при учёте транспортной нагрузки
    ExternalPressureFromStabilityCondition         : TVariable; // qуст   - допускаемое значение внешнего давления из условия устойчивости
    DepthLocationFactor                            : TVariable; // n      - Коэффициент, учитывающий глубину заложения трубопровода
    SoilWeightFluidizedInWater                     : TVariable; // Gammav - Вес взвешенного в воде грунта
    LonglivedRingtypeRigidity                      : TVariable; // Gtau   - Длительная кольцевая жесткость на единицу длины трубы

// --= / [ Параметры гидравлического расчёта ] / =--
    HydraulicRadius                                : TVariable; // Rs     - Гидравлический радиус потока
    EmpiricalExponent                              : TVariable; // a      - Эмпирический показатель степени
    HydraulicFrictionCoeff                         : TVariable; // Ls     - Коэффициент гидравлического трения по длине трубопровода
    SelfflowPipeSlop                               : TVariable; // is     - Уклон самотечного трубопровода
    PipeFilling                                    : TVariable; // hs_d   - Наполнение трубопровода
    DimlessExponentBeg                             : TVariable; // bs     - Безразмерный показатель степени
    DimlessExponentEnd                             : TVariable; // Beg    - начальное, End - конечное значение
    Acceleration                                   : TVariable; // g      - Ускорение свободного падения
    FluidFlowAverSpeed                             : TVariable; // u      - Средняя скорость потока жидкости
    ReinoldsNumQuad                                : TVariable; // Requ   - Число Рейнольдса
    ReinoldsNumPhi                                 : TVariable; // Rephi  - Число Рейнольдса
    NotFillFluidFlowAverSpeed                      : TVariable; // Vnf    - Средняя скорость течения жидкости при неполном заполнении трубопровода
    FillFluidFlowAverSpeedBeg                      : TVariable; // Vf     - Средняя скорость течения жидкости при полном заполнении трубопровода
    FillFluidFlowAverSpeedEnd                      : TVariable; // Beg    - начальное, End - конечное значение
    KinematicsToughCoef                            : TVariable; // v      - Коэффициент кинематической вязкости
    RsnfRsfCoef                                    : TVariable; // Rsnf_Rsf - Табличное отношение
    FluidConsumption                               : TVariable; // qs     - Расход жидкости

// --= / [ Коэффициенты ] / =--
    KwCoef                                         : TVariable; // Kw     - Табличный коэффициент
    AssuranceFactorOnStability                     : TVariable; // Kzu    - Коэффициент запаса на устойчивость
    TubeRoundoffProcessFactor                      : TVariable; // Kok    - коэффициент, учитывающий процесс округления овализованной трубы под действием внутреннего давления воды в водопроводе
    CrossSectionOvalityDelay                       : TVariable; // Ktau   - Коэффициент, учитывающий запаздывание овальности поперечного сечения трубы во времени и зависящий от типа грунта, степени его уплотнения, гидрогеологических условий, геометрии траншеи
    TroughFactor                                   : TVariable; // Kw     - Коэффициент прогиба, учитывающий качество подготовки ложа и уплотнения
    CrossSectionBottomEffectFactor                 : TVariable; // Kgr    - Коэффициент, учитывающий влияние грунта засыпки на овальность поперечного сечения трубопровода
    RingTypeRigidityFactor                         : TVariable; // Kg     - Коэффициент, учитывающий влияние кольцевой жёсткости оболочки трубы на овальность поперечного сечения трубопровода
    SandbedSoilFactorForFlexuralStresses           : TVariable; // Ksigma - Коэффициент постели грунта для изгибающих напряжений, учитывающий качество уплотнения
    AssuranceFactorOnOvalityTubeCrossSection       : TVariable; // Kzpsi  - Коэффициент запаса на овальность поперечного сечения трубы
    AssuranceFactor                                : TVariable; // Kz     - Коэффициент запаса, должен приводиться в нормативных документах
    SoilBulkFactor                                 : TVariable; // Ku     - Коэффициент уплотнения грунта
    RoughnessCoef                                  : TVariable; // Ke     - Коэффициент эквивалентной шероховатости
    InfluencingSoilFillingShellStabilityFactor     : TVariable; // Куг    - коэффициент, учитывающий влияние засыпки грунта на устойчивость оболочки
    TubeOvalityFactor                              : TVariable; // Ков    - коэффициент, учитывающий овальность трубы
// --= / [ Конец списка параметров] / =--

    CurrentCalc: TCalcType;
   public
    DBMaterialId: Integer;
    DBSoilId: Integer;

    procedure InitializeVars;

    constructor Create;
    destructor Destroy;
  end;


Я тогда был неопытный товарищ и не владел парсингом и разбором текста по грамматике. Таким бы извращением не занимался. А сделал бы, как в приведённым выше коде парсера, где у меня все переменные в текстовом файле настроек - русские и заполняют они специальный массив в памяти.

Дак вот, я затратил кучу мозговых усилий на перевод специальных терминов на английский ТОЛЬКО ДЛЯ ТОГО, ЧТОБЫ КОД КОМПИЛИРОВАЛСЯ! Сейчас бы я всё сделал проще и элегантнее.

Вот когда посидишь и поломаешь голову над английскими терминами... то сто раз проклянёшь этот английский с его убогостью. Я сделал совершенно не нужную работу.
PM MAIL   Вверх
уни
Дата 6.8.2010, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



Вот ещё пример из моей практики. Кусок кода из Конфигуратора модуля ввода-вывода систем АСУТП (C++ Builder) и та же история:
Код

        // 16 разрядные регистры
        FMIPID = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Код прибора", DeviceTagsID::MIPID, DEV_READ, 0xFF, 1, 3, 0x005, 3, 0, 0);
        FMIPVersionPO = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Версия ПО", DeviceTagsID::MIPVersionPO, DEV_READ, 0xFF, 1, 3, 0x006, 0, 0, 0);
        FMIPAnalogChannelCount = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Количество аналоговых каналов", DeviceTagsID::MIPAnalogChannelCount, DEV_READ, 0xFF, 1, 3, 0x007, 0, 0, 0);
        FMIPDigitalInputCount = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Количество цифровых каналов", DeviceTagsID::MIPDigitalInputCount, DEV_READ, 0xFF, 1, 3, 0x007, 0, 0, 0);
        FMIPRelayCount = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Количество релейных выходов", DeviceTagsID::MIPRelayCount, DEV_READ, 0xFF, 1, 3, 0x008, 0, 0, 0);
        FMIPRelayType = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Тип релейных выходов", DeviceTagsID::MIPRelayType, DEV_READ, 0xFF, 1, 3, 0x009, 0, 0, 0);
        FMIPSerialNumber = new CDeviceStandartTags<unsigned long>(static_cast<IDevice*>(this), "Серийный номер", DeviceTagsID::MIPSerialNumber, DEV_READ, 0xFF, 1, 3, 0x00a, 0, 0, 0);

        FMIPDateTime = new CDeviceDateTimeTags(static_cast<IDevice*>(this), "Дата и время", DeviceTagsID::MIPDateTime, DEV_RDWR);
        FMIPState = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Регистр состояния МИП", DeviceTagsID::MIPState, DEV_READ, 0xFF, 1, 3, 0x103, 0, 0, 0);
        FArchiveIndex = new CDeviceStandartTags<unsigned long>(static_cast<IDevice*>(this), "Номер текущей записи архива", DeviceTagsID::ArchiveIndex, DEV_READ, 0xFF, 1, 3, 0x104, 0, 0, 0);
        FArchiveDamageIndex = new CDeviceStandartTags<unsigned long>(static_cast<IDevice*>(this), "Номер текущей записи архива аварий", DeviceTagsID::ArchiveDamageIndex, DEV_READ, 0xFF, 1, 3, 0x105, 0, 0, 0);
        FArchiveCalibrationIndex = new CDeviceStandartTags<unsigned long>(static_cast<IDevice*>(this), "Номер текущей записи архива калибровок", DeviceTagsID::ArchiveCalibrationIndex, DEV_READ, 0xFF, 1, 3, 0x106, 0, 0, 0);
        FArchiveWorkPeriod = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Период архивирования", DeviceTagsID::ArchiveWorkPeriod, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x107, 0, 0, 12);
        FArchiveDeviation = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Максимальное отклонение архива", DeviceTagsID::ArchiveDeviation, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x109, 0, 0, 10);
        FArchiveDamagePeriod = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Период архивирования аварий", DeviceTagsID::ArchiveDamagePeriod, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x10b, 0, 0, 12);
        FArchiveDamageDeviation = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Максимальное отклонение архива аварий", DeviceTagsID::ArchiveDamageDeviation, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x10d, 0, 0, 10);
        FMIPDefaultKXC = new CDeviceStandartTags<signed short>(static_cast<IDevice*>(this), "Температура КХС по умолчанию", DeviceTagsID::MIPDefaultKXC, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x10f, 0, -45, 55);
        FLinkAddress = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Магистральный адрес", DeviceTagsID::LinkAddress, DEV_RDWR, 0xFF, 1, 3, 0x110, 1, 1, 255);
        FLinkSpeed = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Скорость обмена", DeviceTagsID::LinkSpeed, DEV_RDWR | DEV_FILE, 0xFF, 1, 3, 0x111, 0, 0, 1);
        FMIPUserPassword = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Пароль на уставки", DeviceTagsID::MIPUserPassword, DEV_RDWR, 0xFF, 1, 3, 0x112, 0, 0, 9999);
        FMIPAdminPassword = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Общий пароль", DeviceTagsID::MIPAdminPassword, DEV_RDWR, 0xFF, 1, 3, 0x113, 0, 0, 9999);

        FChannelSensorType = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Типы датчиков аналоговых каналов", DeviceTagsID::ChannelSensorType, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x210, 0, 0, 43);
        FChannelCommaPosition = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Позиции запятых аналоговых каналов", DeviceTagsID::ChannelCommaPosition, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x220, 0, 0, 3);
        FChannelCoefDigitalFiltration = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Цифровая фильтрация аналоговых каналов", DeviceTagsID::ChannelCoefDigitalFiltration, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x230, 0, 0, 2);
        FChannelRelay1Charter[0] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Первое реле первой уставки", DeviceTagsID::ChannelRelay1Charter1, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x2c0, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay1Charter[1] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Первое реле второй уставки", DeviceTagsID::ChannelRelay1Charter2, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x2e0, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay1Charter[2] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Первое реле третьей уставки", DeviceTagsID::ChannelRelay1Charter3, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x300, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay1Charter[3] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Первое реле четвёртой уставки", DeviceTagsID::ChannelRelay1Charter4, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x320, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay2Charter[0] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Второе реле первой уставки", DeviceTagsID::ChannelRelay2Charter1, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x2d0, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay2Charter[1] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Второе реле второй уставки", DeviceTagsID::ChannelRelay2Charter2, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x2f0, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay2Charter[2] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Второе реле третьей уставки", DeviceTagsID::ChannelRelay2Charter3, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x310, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay2Charter[3] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Второе реле четвёртой уставки", DeviceTagsID::ChannelRelay2Charter4, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x330, 0, 0, InitMVA8Settings.CountRelay);
//        FChannelRelayCharterNDAT[0] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Логика реле первой уставки при не норме датчика", DeviceTagsID::FChannelRelayCharter1NDAT, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x340, 0, 0, 3);
//        FChannelRelayCharterNDAT[1] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Логика реле второй уставки при не норме датчика", DeviceTagsID::FChannelRelayCharter2NDAT, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x350, 0, 0, 3);
//        FChannelRelayCharterNDAT[2] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Логика реле третьей уставки при не норме датчика", DeviceTagsID::FChannelRelayCharter3NDAT, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x360, 0, 0, 3);
//        FChannelRelayCharterNDAT[3] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Логика реле четвёртой уставки при не норме датчика", DeviceTagsID::FChannelRelayCharter4NDAT, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x370, 0, 0, 3);
        FChannelRelayNDAT = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Реле не нормы датчика аналоговых каналов", DeviceTagsID::ChannelRelayNDAT, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x380, 0, 0, InitMVA8Settings.CountRelay);
        FCurrentAnalogChannelValue = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Текущие значения аналоговых каналов", DeviceTagsID::CurrentAnalogChannelValue, DEV_READ, 0, 0, 3, 0x390, 0, -32768, 25000);
        FChannelPhizicalValueMin = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Нижняя граница физических значений аналоговых каналов", DeviceTagsID::ChannelPhizicalValueMin, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x3a0, 0, -1999, 9999);
        FChannelPhizicalValueMax = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Верхняя граница физических значений аналоговых каналов", DeviceTagsID::ChannelPhizicalValueMax, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x3b0, 0, -1999, 9999);
        FChannelCharterValue[0] = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Значения первых уставок", DeviceTagsID::ChannelCharter1Value, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x3c0, -1999, -1999, 9999);
        FChannelCharterValue[1] = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Значения вторых уставок", DeviceTagsID::ChannelCharter2Value, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x3d0, -1999, -1999, 9999);
        FChannelCharterValue[2] = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Значения третьих уставок", DeviceTagsID::ChannelCharter3Value, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x3e0, 9999, -1999, 9999);
        FChannelCharterValue[3] = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Значения четвёртых уставок", DeviceTagsID::ChannelCharter4Value, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x3f0, 9999, -1999, 9999);
        FChannelCharterHistoresist = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Гистерезис срабатывания уставок", DeviceTagsID::ChannelCharterHistoresist, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x400, 0, 0, 10);
        FChannelMaxSpeed = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Максимальная скорость изменения аналоговых каналов", DeviceTagsID::ChannelMaxSpeed, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x410, 0, 0, 10);


Это всё практический код, который работает где-то в России, написанный нашими программерами для России. И все почему-то считают это нормальным smile
Когда очень много на разных языках и в разных сферах попрограммишь, то начнёшь думать глобально и задавать естественные вопросы и бытии всего сущего.
PM MAIL   Вверх
sanboll
Дата 6.8.2010, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 15.6.2010

Репутация: нет
Всего: 1



Добавлю к вышесказанному: имя переменной "строка" при компиляции (компилер WTK 2.5.2) заменили на "_fld044104420440043E043A0430"

PM MAIL   Вверх
уни
Дата 8.8.2010, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



Народ, Вы меня удивляете... так держаться за старые понятия, когда новые в силе уже не меньше 5 лет! Эти процессы идут помимо вашего желания... и они объективны. В полку программистов прибавятся люди, которые не зная английского будут писать по-русски программки. Да, да smile уже появились, как вы видите (правда я знаю английский и опыт программирования у меня очень большой, также я  умею идти в ногу со временем).

Мои посты для программеров нового поколения и любых профессий.

Что касаемо проекта, то он готов. На следующей неделе договорился тестировать в школе. Сейчас исправляю ошибки и неточности, прилизываю код. Как приятно, когда всё на родном языке написано, пусть даже с вкраплениями английских библиотек.
PM MAIL   Вверх
уни
Дата 8.8.2010, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



Цитата(sanboll @  6.8.2010,  18:59 Найти цитируемый пост)
имя переменной "строка" при компиляции (компилер WTK 2.5.2) заменили на "_fld044104420440043E043A0430"

Представьте себе как мой код будет смотреться в листингах "дезбайткодеров" и прочих декомпиляторов, которые не поддерживают UTF-8 smile и обфурскация не нужна.
PM MAIL   Вверх
уни
Дата 11.8.2010, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



Вот такую несложную вещь мне нужно было:
user posted image
Это только половина дела.

А вот так выглядит установленный образец музыкального звонка в школе:
http://vkontakte.ru/photo-18953849_175524996
PM MAIL   Вверх
JackyFox
Дата 12.8.2010, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 21.11.2007

Репутация: 1
Всего: 7



Уважаемый уни! Я глубоко уважаю Ваш глубокий жизненный опыт, разностороннее техническое образование и стремление доказать совершенно незнакомым людям своё превосходство как в программерской области, так и чисто бытовой. Но никак не возьму в толк, чего вы хотите добиться подобным поведением.

Судя по первому сообщению темы, Вы находитесь в поисках коллег, которые совместно с Вами захотят продолжить разработку Вашего ПП. В дальнейшем же выясняется, что целью Вашего здесь появления оказалось:
  • желание похвастаться своими достижениями в программировании
  • попытка доказать всем и сразу, что Ваша точка зрения — есть абсолют, не подверженный сомнениям
Вынужден Вас разочаровать. Писать программы на русском — идея интересная, но вызывает у большинства программистов приступы головной боли еще со времен школьный поделок, призванных вроде бы для обучения детей программированию. Ведь общепринятая мировая практика — код на английском. Комментарии можете писать на любом языке. Хорошо написанный код на английском будет понятен любому программисту в мире, даже без комментариев. А замыкаться в русофилии — очень плохая привычка. 
По второму пункту. На этом форуме с завидной регулярностью появляются личности, несущие в массы свет своего гения, зародившегося в недрах российской глубинки. На поверку же эти вундеркинды оказываются напыщенными выпендрежниками, и уходят отсюда довольно скоро, блаженно полагая, что были несправедливо осмеяны и непоняты.

Человека, как знаете, встречают по одежке. В Сети, к сожалению, её не видно, и составлять первое впечатление приходится по словам и, что главное, делам. Вы с первых минут пошли на конфронтацию с «местным населением». Боюсь данный форум для Вас потерян. Каждым своим сообщением Вы только усугубляете свой имидж.

Добавлено @ 09:02
Ах да, про ВКонтакте забыл написать.
Возможно, он удобен для Вас лично. Но есть мнение, и не только моё, что выкладывать какие-либо материалы в закрытых социальных сетях, не есть грамотный подход к популяризации своих продуктов.

Создайте сайт на каком-нибудь юкозе, на яндексе (да мало ли мест). Там и тексты программ, и фото-, видеоматериалы Вы можете преподнести общественности в легко доступном виде.

Это сообщение отредактировал(а) JackyFox - 12.8.2010, 09:37
--------------------
У вас менее 250 сообщений, ссылки отключены
PM   Вверх
уни
Дата 14.8.2010, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



JackyFox
Проект уже закончен и тестируется в школе.

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

По поводу русского. Старички пусть пишут на экспорт. Моя идея для тех, кто ПОНИМАЕТ для чего создавался UNICODE и для людей, которые хотят программировать, знают ЧТО им нужно, но не владеют английским. Таких людей очень много и задач внутри России для них предостаточно. Заколебался уже Вам всем тут по сто раз пояснять... как-будто все тут пишут код для индусов, японцев и китайцев ;) с которыми каждый день общаются по скайпу. Вернитесь об землю.

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

Сейчас появилась другая проблема. Планировщик в "Школьнике-3" позволяет составлять расписание на год.
Вот как выглядит шаблон, на основе которого я забиваю данные в мобилу:
user posted image

Скрины взяты с мобилы поочерёдно и сведены в один учебный год. Числа раскрашиваются согласно расписаний.
Потом этот план превращается вот в такой код:
Код

Р1 = Будни;
Р2 = Суббота;
Р3 = Пустое;

ОсновнойПлан =
[
[Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1],
[Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р3,Р3,Р3],
[Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1],
[Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3],
[Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1],
[Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р3],
[Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3],
[Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р3],
[Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1]
];

ДополнительныйПлан =
[
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3]
];

ДобавитьПлан( "2010-2011 гг.", ОсновнойПлан, ДополнительныйПлан );


Мой интерпретатор это дело считывает и настраивает программу на автоматическую работу по годовому плану.

Задача: Сделать аналог Планировщика на ЯВУ. Я сам за пример взял планировщик из видео:
http://vkontakte.ru/video-18953849_148488416

Для мобилы чуть урезал масштабы, но вся функциональность осталась. Вот теперь нужно сделать именно такую программу.
Как всегда буду делать сам ;) Если будет трудновато... найму кого-нить на фрилансе. Задачка интересная. Пока не выбрал на каком языке писать... мне бы хотелось на C#, но там возможен напряг с компонентами, зато поддержка русского.

Цитата

Создайте сайт на каком-нибудь юкозе, на яндексе (да мало ли мест). Там и тексты программ, и фото-, видеоматериалы Вы можете преподнести общественности в легко доступном виде.

Вы сами-то видели интерфейс Яндекса? У меня и там есть страничка и на фейсбуке. Я сначала думаю, потом пробую, а потом уже советую.
Если Вы не видите разницы между вконтакте и я.ру - тут уж я ни чем не помогу ;) Попробуйте функциональность и там и там. Я попробовал и выбрал.

Цитата

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

Человека, как знаете, встречают по одежке. В Сети, к сожалению, её не видно, и составлять первое впечатление приходится по словам и, что главное, делам. Вы с первых минут пошли на конфронтацию с «местным населением». Боюсь данный форум для Вас потерян. Каждым своим сообщением Вы только усугубляете свой имидж.

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

Я эти знания использовал для хранения настроект в таком виде:
Код

КОДИРОВКА_UTF8 = 0;
КОДИРОВКА_CP1251 = 1;

СУТОЧНОЕ_РАСПИСАНИЕ = 0;
ГОДОВОЙ_ПЛАН = 1;

Настройки.Основные.МелодииПуть = "file:///root1/";
Настройки.Основные.ФайлНастроек = "file:///root1/Мелодии/Настройки.txt";
Настройки.Основные.ФайлРасписаний = "file:///root1/Мелодии/Расписания.txt";
Настройки.Основные.Кодировка = КОДИРОВКА_UTF8;
Настройки.Основные.Громкость = 85;

Настройки.Монитор.ШиринаЭкрана = 176;
Настройки.Монитор.ВысотаЭрана = 220;
Настройки.Монитор.ОтступXY = 1;
Настройки.Монитор.ШагСеткиXY = 20;
Настройки.Монитор.логПолныйЭкран = true;
Настройки.Монитор.ДиаграммаОтступСверху = 110;
Настройки.Монитор.ДиаграммаТолщинаПолосы = 15;
Настройки.Монитор.ДиаграммаДлинаИнтервала = 150;
Настройки.Монитор.РежимОтступСверху = 55;
Настройки.Монитор.ВремяОтступСверху = 30;
Настройки.Монитор.логПоказатьСетку = true;
Настройки.Монитор.логПоказатьРамку = true;
Настройки.Монитор.логПоказатьДату = true;
Настройки.Монитор.логПоказатьВремя = true;
Настройки.Монитор.логПоказатьРежим = true;
Настройки.Монитор.логПоказатьДиаграмму = true;
Настройки.Монитор.логПоказатьЛегенду = true;

Настройки.Звонки.логПредваритПередНачал = true;
Настройки.Звонки.логПредваритПередОконч = true;
Настройки.Звонки.ДлительностьОсновных = 30;
Настройки.Звонки.ДлительностьПредварит = 15;
Настройки.Звонки.ВремяДоНачала = 2;
Настройки.Звонки.ВремяДоОкончания = 5;

Настройки.Расписания.ИмяЗаписиВХранилище = "Расписания";
Настройки.Расписания.Режим = СУТОЧНОЕ_РАСПИСАНИЕ;
Настройки.Расписания.ТекущееРасписание = 0;
Настройки.Расписания.ТекущийПлан = 0;


А расписаний, звонков, планов в таком единообразном виде (это вариант для симулятора):
Код

ЗВОНОК_СВОБОДНЫЙ = 0;
ЗВОНОК_НАЧАЛО = 1;
ЗВОНОК_ОКОНЧАНИЕ = 2;

Корень = 0;

ГРУППА_РАСПИСАНИЕ = 2;
ГРУППА_УРОК = 3;

Будни = ДобавитьГруппу( Корень, ГРУППА_РАСПИСАНИЕ, "Будни" );
Суббота = ДобавитьГруппу( Корень, ГРУППА_РАСПИСАНИЕ, "Суббота" );
Пустое = ДобавитьГруппу( Корень, ГРУППА_РАСПИСАНИЕ, "Пустое" );

Будни.Урок1 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок1" );
Будни.Урок2 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок2" );
Будни.Урок3 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок3" );
Будни.Урок4 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок4" );
Будни.Урок5 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок5" );
Будни.Урок6 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок6" );
Будни.Урок7 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок7" );

Суббота.Урок1 = ДобавитьГруппу( Суббота, ГРУППА_УРОК, "Урок1" );
Суббота.Урок2 = ДобавитьГруппу( Суббота, ГРУППА_УРОК, "Урок2" );
Суббота.Урок3 = ДобавитьГруппу( Суббота, ГРУППА_УРОК, "Урок3" );
Суббота.Урок4 = ДобавитьГруппу( Суббота, ГРУППА_УРОК, "Урок4" );
Суббота.Урок5 = ДобавитьГруппу( Суббота, ГРУППА_УРОК, "Урок5" );


ДобавитьЗвонок( Будни.Урок1, 8, 0, ЗВОНОК_НАЧАЛО, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песня охраны.mid" );
ДобавитьЗвонок( Будни.Урок1, 8, 45, ЗВОНОК_ОКОНЧАНИЕ, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песенка бандитов.mid" );

ДобавитьЗвонок( Будни.Урок2, 8, 55, ЗВОНОК_НАЧАЛО, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песня охраны.mid" );
ДобавитьЗвонок( Будни.Урок2, 9, 40, ЗВОНОК_ОКОНЧАНИЕ, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песенка бандитов.mid" );

ДобавитьЗвонок( Будни.Урок3, 9, 55, ЗВОНОК_НАЧАЛО, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песня охраны.mid" );
ДобавитьЗвонок( Будни.Урок3, 10, 40, ЗВОНОК_ОКОНЧАНИЕ, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песенка бандитов.mid" );

ДобавитьЗвонок( Будни.Урок4, 10, 55, ЗВОНОК_НАЧАЛО, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песня охраны.mid" );
ДобавитьЗвонок( Будни.Урок4, 11, 40, ЗВОНОК_ОКОНЧАНИЕ, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песенка бандитов.mid" );

ДобавитьЗвонок( Будни.Урок5, 12, 0, ЗВОНОК_НАЧАЛО, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песня охраны.mid" );
ДобавитьЗвонок( Будни.Урок5, 12, 45, ЗВОНОК_ОКОНЧАНИЕ, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песенка бандитов.mid" );

ДобавитьЗвонок( Будни.Урок6, 12, 55, ЗВОНОК_НАЧАЛО, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песня охраны.mid" );
ДобавитьЗвонок( Будни.Урок6, 13, 40, ЗВОНОК_ОКОНЧАНИЕ, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песенка бандитов.mid" );

ДобавитьЗвонок( Будни.Урок7, 13, 50, ЗВОНОК_НАЧАЛО, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песня охраны.mid" );
ДобавитьЗвонок( Будни.Урок7, 14, 35, ЗВОНОК_ОКОНЧАНИЕ, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песенка бандитов.mid" );

ДобавитьЗвонок( Суббота.Урок1, 8, 0, ЗВОНОК_НАЧАЛО, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песня охраны.mid" );
ДобавитьЗвонок( Суббота.Урок1, 8, 45, ЗВОНОК_ОКОНЧАНИЕ, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песенка бандитов.mid" );

ДобавитьЗвонок( Суббота.Урок2, 9, 0, ЗВОНОК_НАЧАЛО, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песня охраны.mid" );
ДобавитьЗвонок( Суббота.Урок2, 9, 45, ЗВОНОК_ОКОНЧАНИЕ, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песенка бандитов.mid" );

ДобавитьЗвонок( Суббота.Урок3, 10, 0, ЗВОНОК_НАЧАЛО, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песня охраны.mid" );
ДобавитьЗвонок( Суббота.Урок3, 10, 45, ЗВОНОК_ОКОНЧАНИЕ, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песенка бандитов.mid" );

ДобавитьЗвонок( Суббота.Урок4, 11, 0, ЗВОНОК_НАЧАЛО, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песня охраны.mid" );
ДобавитьЗвонок( Суббота.Урок4, 11, 45, ЗВОНОК_ОКОНЧАНИЕ, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песенка бандитов.mid" );

ДобавитьЗвонок( Суббота.Урок5, 11, 55, ЗВОНОК_НАЧАЛО, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песня охраны.mid" );
ДобавитьЗвонок( Суббота.Урок5, 12, 40, ЗВОНОК_ОКОНЧАНИЕ, "file:///root1/Мелодии/Старый рояль.mid", "file:///root1/Мелодии/Песенка бандитов.mid" );

Р1 = Будни;
Р2 = Суббота;
Р3 = Пустое;

ОсновнойПлан =
[
[Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1],
[Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р3,Р3,Р3],
[Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1],
[Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3],
[Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1],
[Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р3],
[Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3],
[Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р3],
[Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1]
];

ДополнительныйПлан =
[
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3]
];

ДобавитьПлан( "2010-2011 гг.", ОсновнойПлан, ДополнительныйПлан );
ДобавитьПлан( "2011-2012 гг.", ОсновнойПлан, ДополнительныйПлан );


Так что, дорогие мои, учите русский smile

Это сообщение отредактировал(а) уни - 14.8.2010, 20:19
PM MAIL   Вверх
уни
Дата 14.8.2010, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



Ну и совсем вдогонку хочу сказать, что этот проект просто разминка ;) что-то вроде хобби, которое я давно уже хотел доделать, да времени не было и желания.

Более серьёзные вещи требовали немного размяться. У меня по плану реализация одного очень интересного метода решения систем нелинейных уравнений. До сих пор методика вся сводилась к методу Ньютона и его модификаций. Да и все остальные методы - численные. А нахождение решений для СНУ - это очень серьёзная задача, т.к. нет универсальных методик. Но существует один метод, который позволяет существенно расширить круг решаемых задач. Одна там есть проблемка - нужно брать производные в символьном виде прямо в коде. Т.к. в последнее время с развитием ООП символьная алгебра стала доступна простым смертным, то я решился на создание полуавтоматического решателя СНУ, который мог бы брать производные в символьном виде, превращать их в код и используя этот код уже решать задачу.

Это кландайк, но очень сложен метод в автоматизированном варианте. Нужно иметь кругозор во многих сферах.
Я тут сумбурно всё пояснил. Дам аналогию. Если кто умеет пользоваться дизассемблером IDA, то он наверное знает, что до этого инструмента такого качества работы не давал никакой другой и одному человеку не под силу было разобраться в коде исследуемого приложения. После же появления IDA, любой практически, кто знает что искать без труда занимается реверс-инженерингом. Дак вот этот метод решения СНУ объединяет в себе многое, что позволяет обходить многие трудности обычных методов и может стать уникальным инструментом. А решение СНУ - это деньги голимые, т.к. задач - море-океан.

Мой аватар - это решение одного специально подобранного нелинейного уравнения. Сама картинка создана по описываемому методу решения СНУ в математическом пакете.
PM MAIL   Вверх
Исполнитель234
Дата 16.8.2010, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 3.7.2008
Где: Украина

Репутация: нет
Всего: 1



Здравствуйте.

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

Добавлено через 1 минуту и 55 секунд
Кстати, в предлагаемом вами примере календаря, можно сделать суботние и воскресные дни колонками красного цвета т.к. выходные
--------------------
Тестирую UI, консультирую по вопросам юзабилити, проектирую, составляю грамотные ТЗ.
PM MAIL WWW ICQ   Вверх
JackyFox
Дата 16.8.2010, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 21.11.2007

Репутация: 1
Всего: 7



Цитата(уни @  14.8.2010,  19:35 Найти цитируемый пост)
Если для Вас социальная сеть в несколько миллионов пользователей - "закрытая" и которую ежедневно посещает такое же количество, то Вы мало соображаете в посещаемости сайтов.


Сеть закрыта, потому как нет возможности просматривать какую-либо информацию будучи незарегистрированным пользователем. Переход по всем вашим ссылкам ведет на страницу регистрации. Это очень удобно.

Цитата(уни @  14.8.2010,  19:35 Найти цитируемый пост)
это у Вас - англофилия и повёрнутось мировоззрения на запад.


У меня «повернутость» на весь мир, который давно использует английский язык для работы в любых сферах деятельности. 

Цитата(уни @  14.8.2010,  19:35 Найти цитируемый пост)
Каких бы ярлыков Вы мне не навешали ;) я  - человек, который может сам

Барабан, новые кроссовки и щенок бульдога.
За сим позволю себе завершить дискуссию в виду непробиваемости оппонента. Успехов вам в вашем одиночном плавании.

 smile 
--------------------
У вас менее 250 сообщений, ссылки отключены
PM   Вверх
Исполнитель234
Дата 16.8.2010, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 3.7.2008
Где: Украина

Репутация: нет
Всего: 1



уни, пожалуй, я свяжусь с вами ВКонтакте, чтобы не зафлуживать тему. 

P.S.
Мое предложение это не шутка. Я действительно очень хорош в оценке вопросов юзабилити.


--------------------
Тестирую UI, консультирую по вопросам юзабилити, проектирую, составляю грамотные ТЗ.
PM MAIL WWW ICQ   Вверх
уни
Дата 5.9.2010, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.8.2010

Репутация: -1
Всего: -2



Вот окончательный вариант:
Буклет. Версия 0.5.8. Листы 1-32.7z

Стадия: опытная эксплуатация.
Если есть желающие продвигать идею, то можете потестировать проект.

Ссылка на дистриб есть вконтакте: http://vkontakte.ru/club18953849
Правда там версия 0.5.5... попозже обновлю.

Всё полностью сделал я один ;) умники.

Это сообщение отредактировал(а) уни - 5.9.2010, 13:38
PM MAIL   Вверх
Исполнитель234
Дата 5.9.2010, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 3.7.2008
Где: Украина

Репутация: нет
Всего: 1



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

--------------------
Тестирую UI, консультирую по вопросам юзабилити, проектирую, составляю грамотные ТЗ.
PM MAIL WWW ICQ   Вверх
vovlip
Дата 1.3.2012, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 1.3.2012

Репутация: нет
Всего: нет



помогите плыз.... как сделать так чтоб на комп ничего поставить нелзя и удалить(программы)??? smile 
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Совместные проекты/поиск партнёров"
Snowy
Poseidon

Внимание:
В этом форуме обсуждаются вопросы только по совместным проектам, когда Вы хотите найти партнёров или стать участником проекта.
Запрещается размещение заказов на написание программ, поиск работников (для этого есть раздел "Работа") и реклама своих сетевых ресурсов.

Этот раздел только для проектов в которых Вы будете выступать в качестве исполнителя!

Темы и сообщения, не удовлетворяющие данным правилам, будут удаляться на основании пункта 3 Правил форума!

  • Человек, создающий тему, становится руководителем проекта. Все вопросы о разработке решаются с его согласия.
  • Публикация предложения к сотрудничеству считается защищённым авторскими правами и не может разрабатываться без согласия с руководителем проекта.
  • Конечный продукт должен содержать указание на всех участников и Vingrad.

  • Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, Poseidon

     
    0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
    0 Пользователей:
    « Предыдущая тема | Совместные проекты/поиск партнёров | Следующая тема »


     




    [ Время генерации скрипта: 0.1978 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


    Реклама на сайте     Информационное спонсорство

     
    По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
    Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.