• Написание аббревиатур

    Как правильно писать слова, которые когда-то были аббревиатурами? А если слово иностранное? Как написать, что вам пришла смс - капсом, латиницей или тем и тем сразу? Как написать URL, PDF, iPad, iPhone, Android?

    Очень просто - руским языком.

    Мне пришла смс. Поступил в вуз. Скопировал урл. Сконвертировал книгу в пдф. Айпад вышел позже айфона.

    Неужели так трудно писать на родном языке? Зачем переключать мозг свой и читателя на латиницу и обратно?

  • Тестовые задания программистам

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

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

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

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

    Так что думайте в следующий раз, чем занять программиста.

  • Попрошайки в моем айпаде

    screenshot

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

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

  • Как так?

    screenshot

  • Брошенные авто

    auto-bydlo

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

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

    Потому что дворы и тратуары - общественные места, а не свалки мусора.

    И популяция мудаков снизится.

  • Плачу только картой

    Сегодня существует только один нормальный способ оплаты в интернете - с помощью пластиковой карты.

    Вебмани, ЯД и прочие шарашки - эта фантики для нищебродов. Связавшись с ними, получите больше проблем, чем пользы.

    Можно быстро понять, стоит ли доверять сайту: если принимают только фантики, связываться не стоит. Если Пейпал или российские аналоги (Пейче, Хронопей) - однозначно не наебут.

  • Из Твиттера

    Лето, столнце, абрикосы,

    Путин, нефть, единоросы.

  • Навальный

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

    Не забудьте снова проголосовать за Путина.

  • Настройка ПХП

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

    Это, конечно, буллщит.

    Потому что на работу ПХП влияет примерно сотня директив, зашитых в его дурацком php.ini. У одних хостеров настроено так, у других эдак. Потом идут директивы Апача - тоже кто во что горазд. В итоге вероятность того, что КМС-ка запустится без бубнов стремится к нулю.

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

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

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

    Навеяно муками развертки Друпала у многих хостеров.

    Комментарии из старого блога

    11/01/13 Виктор Степаньков: Крайнее предложение прочитал как “Навеяно мудаками друпала”

  • Фибонначи на Питоне

    Обожаю генераторы в Питоне.

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

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

    def fib(a, b):
        yield a
        yield b
        while True:
            a, b = b, a + b
            yield b
    
    for x in fib(1, 2):
        print x
        if x > 100:
            break
    

    Код выведет числа 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144. Итерацию в данном примере нужно прерывать вручную, иначе уйдем в бесконечный цикл.

Страница 48 из 53