Задать вопрос
  • Как создать стартап по обзорам и ревью?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Я советую вначале определить бизнес-процесс (составить схему) и по нему наметить монетизацию.
    После - уже думать о CMS/или "с нуля" писать и о всех программных модулях back-end'a.
    И, конечно, нужно продумывать соц. составляющую:
    1. минимум действий от пользователя с максимумом пользы для него.
    2. авторизацию через соц.сети, соц. кнопки, автопостинг в соц. сети, RSS/e-mail подписки и т.д.
    Пока это не будет документировано - даже можете не притрагиваться к реализации (дизайну, коду и пр.).
    Ответ написан
    9 комментариев
  • Кто разбирается в продаже русскоязычного домена зарубежной компании?

    swanrnd
    @swanrnd
    Издатель HTML5 игр
    Я думаю, они им не надо.
    А когда будет надо, они отсудят у вас.
    Ответ написан
    3 комментария
  • Как хранить список IP-адресов хостов в удобной форме?

    edinorog
    @edinorog
    Троллей не кормить!
    Батенька да вы извращенец. У вас это наследственное или приобретенное?) Что вам мешает поднять DHCP сервак ... выдать всем айпишники согласно вашему разумению ... сделать привязку ... и увеличить срок аренды до стотысячмиллионов лет? Или у вас просто руки из одного места растут?
    Ответ написан
    6 комментариев
  • Как править css стили в forms в Django?

    zelsky
    @zelsky
    17a6641a94764cbf98b19fe6ff60b92d.png
    <div class="input-field col-md-12">
              <div class="row">
                {{ form.username }}
                <label for="nick_name">Нікнейм</label>
              </div>
            </div>
            <div class="input-field col-md-6">
              {{ form.first_name }}
              <label for="first_name">Ім’я</label>
            </div>
            <div class="input-field col-md-6">
              {{ form.last_name }}
              <label for="last_name">Прізвище</label>
            </div>
    Ответ написан
    Комментировать
  • Какая может быть тут ошибка (небольшой код в теме)?

    ну там не просто надо поменять post на form. там нужно вообще понимать что происходит. автор судя по всему не понимает. к примеру, если форма не валидна, что у вас будет происходить ? или это тема следующего вопроса ?
    Ответ написан
    1 комментарий
  • Как работать столько времени в день сколько хочется?

    Как в анекдоте "Раньше работал по найму 8 часов в день. Потом решил "Все. Надоело! Хватит пахать на дядю !" и открыл свой бизнес... Теперь у меня свободный график и рабочий день 16 часов."
    Ответ написан
    1 комментарий
  • Есть ли под Linux менеджер драйверов?

    nazarpc
    @nazarpc
    Open Source enthusiast
    На самом деле из драйверов в подавляющем большинстве вам нужны только проприетарные графические драйвера. Изредка Wi-Fi или кардридер если ноут слишком новый или какое-то странное железо.
    Для графических драйверов у каждого дистрибутива свои подходы - в Ubuntu/Mint упомянутая программка + ppa со свежей версией. А по поводу других дистрибутивов - вы спрашивайте вопрос о конкретном дистрибутиве - вам ответят пользователи, а ничего такого прям общего мне никогда не встречалось.
    Ответ написан
    5 комментариев
  • Какую фантастику порекомендуете, где главный герой программист/инженер?

    @ponedelnik07
    "Конец вечности" - Айзек Азимов.
    Главный герой инженер-техник. Очень понравилась книга.
    Ответ написан
    1 комментарий
  • Python subrocess wsgi. Как правильно считать значение из файла?

    valerium
    @valerium
    Изобретая велосипед
    RTFM внимательно, господа.

    subprocess.call() возвращает код завершения. cat успешно считывает значение из файла, то есть код завершения всегда 0 (да, именно int).

    А всё потому, что Вы изначально выбрали трансректальное решение. Зачем из программы на Python вызывать cat, если можно просто открыть файл и считать из него?

    with open('/sys/devices/virtual/gpio/gpio27/value') as f:
        result = f.read()


    В данном случае, кстати, это будет строковая единица.
    Ответ написан
    5 комментариев
  • План подготовки для поступления в Яндекс ШАД?

    @Mercury13
    Программист на «си с крестами» и не только
    Алгоритмы. Немного олимпиадного программирования ОЧЕНЬ не помешает. Алгоритмы там предлагают несложные, но очень нетривиальные, надо чувствовать, как решить задачу. Элементы сложности алгоритмов. Две задачи из восьми гарантированно будут.

    Алгебра и дискретная математика. Первый курс, всё скопом, без доказательств. Линейные уравнения, квадратичные формы, матрицы, собственные векторы, жорданова форма, перестановки, графы, теория множеств, комбинаторика, алгебра логики…

    Интегралы (не слишком «злые», но приёмы «подстановка», «по частям» и «тригонометрический интеграл» всё же освоить стоит). Интеграл средней сложности — постоянный гость в ШАДý. Может быть и ещё одна задача из мутьанализа — но это как повезёт и задача будет гарантированно нетривиальная, но решающаяся на «том, что помнишь с института» — дифференцирование, ряды Тейлора, основы топологии, простейшие пределы, правило Лопиталя. Вспомни, как берутся простейшие двойные интегралы, может попасться, например, на теории вероятностей.

    ФКП. Самое начало. Аналитических функций и рядов Лорана точно не будет. А вот то, что в комплексном поле многочлен n-й степени имеет n корней, знать надо.

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

    Школьные олимпиадные задачи. Возможна одна.

    Итого.
    Две — алгоритмы.
    Одна-две — вероятность.
    Одна — интеграл.
    Две-три — что угодно из школьной математики, дискретной математики, матанализа, алгебры, ФКП…

    P.S. Очень хороший приём, который мне помог. Конечно, вам придётся держать скан какого-нибудь справочника или распечатку Википедии (это не возбраняется, но электроника запрещена — впрочем, калькулятора задачи не требуют). Печатайте на одной стороне, вторую — на черновик!
    Ответ написан
    4 комментария
  • Какие способы создания адаптивной сетки сейчас актуальны?

    andrievski88
    @andrievski88
    SEO + маркетинг + веб программаривание.
    Юзаю все от Бутстрапа и не заморачиваюсь вопросом, что актуально, а что нет!
    Ответ написан
    Комментировать
  • Как заставить работать этот код в innerHTML?

    romy4
    @romy4
    Exception handler
    вы, походу, не знаете что такое экранирование символов
    Ответ написан
    Комментировать
  • Как написать свой декоратор в django?

    @deliro
    Для начала, расширь модель юзера, чтобы не костылить всякими там таблицами typeUser:
    1) В основном app'е (у меня это обычно core) создай модель User, унаследованную от AbstractUser:
    from django.db import models
    from django.contrib.auth.models import AbstractUser
    
    # Это лучше перенести в отдельный файл consts.py
    USER_ADMIN = 'adm'
    USER_MANAGER = 'mng'
    USER_VASYA = 'vas'
    
    USER_TYPES = (
        (USER_ADMIN, 'Администратор'),
        (USER_MANAGER, 'Менеджер'),
        (USER_VASYA, 'Вася'),
    )
    
    
    class User(AbstractUser):
        type = models.CharField(max_length=3, choices=USER_TYPES)
    
        class Meta(AbstractUser.Meta):
            swappable = 'AUTH_USER_MODEL'

    2) В settings.py добавить:
    AUTH_USER_MODEL = 'core.User' # Где core - твой app

    3) makemigrations и migrate

    Если ещё не добрался до Class Based Views, то самое время.
    Делаешь такой, например, миксин:
    from django.core.exceptions import PermissionDenied
    # тут импорт USER_VASYA
    
    class VasyaRequiredMixin(object):
        def dispatch(self, request, *args, **kwargs):
            if request.user.type != USER_VASYA:
                raise PermissionDenied
            return super(VasyaRequiredMixin, self).dispatch(request, *args, **kwargs)


    И все вьюхи, которые доступны только Васе наследуешь ещё и от этого миксина, например так:
    class VasyaView(VasyaRequiredMixin, View):
        def get(self, request, *args, **kwargs):
            return HttpResponse('Vasya molodec')
    Ответ написан
    1 комментарий
  • Как подготовиться к собеседованию (Android разработка)?

    abs0lut
    @abs0lut
    Вот несколько списков вопросов, да, вроде, и не так уж их мало
    Ответ написан
    Комментировать
  • Как сделать левые отзывы на Upwork и не попаться?

    @tychininde
    Изучите то, что продаете, лучше индусов, и сразу-же ставьте ценник выше. С индусами конкурировать нет смысла, находитесь на другом уровне.
    Ответ написан
    Комментировать
  • Определение слова 'робот', что (кто) это?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Просто один писатель-фантаст так назвал машину которая что-то делала там. С чешского переводится "Работник", что собственно соответствовало деятельности робота в произведении.
    Ответ написан
    2 комментария
  • На чем писать доску объявлений с элеменами соцсети и как выбрать разработчика?

    riot26
    @riot26
    <:З )~~
    Вопрос: PHP? RUBY? PYTHON?

    Вообще всё равно на чём, хоть на джаве.

    КАК ВЫБРАТЬ ИНСТРУМЕНТ РАЗРАБОТКИ

    если подразумевается IDE, то выбирать не Вам, а программисту, если язык -- ответил выше

    КАК НАЙТИ СПЕЦИАЛИСТА

    Фриланс-биржи

    хороших разработчиков (как и любых других специалистов) очень мало... Единицы!

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

    отдать проект команде из 10 человек мы не можем

    Не одному всё придётся отдавать, это уж точно. Как минимум -- один фронтенд, второй бекенд, третий дизайнер. Люди, которые делают всё и сразу обычно плохи сразу во всём.
    Ответ написан
    8 комментариев
  • Как создать страницу статических настроек для сайта в админке Django?

    @deliro
    from datetime import timedelta
    
    from django.db import models
    from django.utils import timezone
    
    
    class Settings(models.Model):
        """
        Модель настроек с интерфейсом атрибутов
    
        >>> settings.hello = 'world'
        Сохранит модель с key='hello' и value='world'. Если модель с таким ключом до этого
        существовала (т.е. в данный момент мы меняем значение), запись в БД поменяется и кэш
        инвалидируется.
    
        >>> settings.hello
        'world'
        Получение ключа. Сначала ищет в кэше. Если находит - возвращает, если нет,
        ищет в БД запись с таким ключом (hello). Если находит - кладёт в кэш и возвращает.
    
        >>> del settings.hello
        Удаляет запись с ключом hello из БД и кэша.
        
        Также, ключ и значение можно редактировать из админки (кэш в этом случает также
        инвалидируется)
    
        Пример куска вьюхи, которая может редактировать настройки сайта:
        if form.is_valid():
            settings.phone = form.cleaned_data['phone']
            settings.address = form.cleaned_data['address']
        """
        key = models.CharField(max_length=255, primary_key=True)
        value = models.TextField()
    
        __cache_ttl = 60 * 60
        __cache = {}
        __cache_max_size = 300
    
        def save(self, *args, **kwargs):
            super(Settings, self).save(*args, **kwargs)
            self._cache_invalidate(self.key)
    
        def __setattr__(self, key, value):
            cls = type(self)
            try:
                instance = cls.objects.get(key=key)
                instance.value = value
                instance.save()
            except cls.DoesNotExist:
                cls.objects.create(key=key, value=value)
            self._cache_invalidate(key)
    
    
        def __getattr__(self, key):
            value = self._cache_get(key)
            if value is None:
                cls = type(self)
                try:
                    value = cls.objects.get(key=key).value
                    self._cache_set(key, value)
                except cls.DoesNotExist:
                    value = None 
            return value
    
        def __delattr__(self, key):
            type(self).objects.filter(key=key).delete()
            self._cache_invalidate(key)
    
        def _cache_set(self, key, value):
            if len(self.__cache) < self.__cache_max_size:
                self._cache_force_set(key, value)
            else:
                self._cache_remove_old()
                if len(self.__cache) < self.__cache_max_size:
                    self._cache_force_set(key, value)
    
        def _cache_force_set(self, key, value):
            self.__cache[key] = (
                value,
                timezone.now() + timedelta(seconds=self.__cache_ttl)
            )
    
        def _cache_get(self, key):
            result = self.__cache.get(key)
            if result[1] > timezone.now():
                self._cache_invalidate(key)
                return None
            return result[0]
    
        def _cache_invalidate(self, key):
            del self.__cache[key]
    
        def _cache_remove_old(self):
            now = timezone.now()
            for k, v in self.__cache.items():
                if v[1] < now:
                    self._cache_invalidate(k)
    
    settings = Settings()


    И в контекст процессоры добавить:

    def settings(request):
        return {'settings': settings}


    Ну и в любом шаблоне:
    <title>{{ settings.title }}</title>
    Ответ написан
    7 комментариев