All streams
Search
Write a publication
Pull to refresh
13
0
Александр Гаврилюк @Absent

Программист

Send message
Эта статья — то ли притягивание фактов «за уши», то ли открытая фальсификация фактов.

Первые же взятые наугад несколько ссылок в гугле опровергают основной постулат данной статьи: www.google.com/search?q=вес+и+грузоподъемность

Например, calcsoft.ru/skolko-vesit-kamaz — несколько таблиц как раз на заданную тему показывают, что отношение массы автомобилей КамАЗ к их грузоподъемности составляет величину около 2.0

Точнее, надо не «младше» и не «старше», а «выше» или «новее».
А то непонятно — более новые версии младше по возрасту, а более старые версии имеют меньшие номера.
«А для Gingerbread и младше лучше подходит HttpURLConnection» — по-моему, надо не «младше», а «старше»
В описание фич библиотеки Volley закралась незначительная ошибка.

Выражение «Cancellation request API» надо перевести не как «Отмена API запросов», а как «API отмены запроса», или «Программный интерфейс для отмены запросов»

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

Я привел известное выражение Энштейна в ответ на вашу фразу «напишите мне», так как она близка по смыслу к вашему утверждению, хотя, конечно, и не является равнозначной. Утверждение Энштейна является более общим, чем ваше, и включает в себя ваше как частный случай. Ведь «объяснить шестилетнему ребенку» — задача более трудная, чем просто «написать». Эйнштейн утверждает, что если человек в чем-то разобрался, то он в состоянии объяснить это шестилетнему ребенку. И уж конечно, он в состоянии это написать (если только для этого нет технических препятствий :-)

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

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

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

Капля дёгтя: суточный лимит для бесплатных сообщений — не 60, а всего 5 штук в день:

Бесплатные СМС:
√ На собственный номер — для программистов, которые отправляют себе оповещения из своих программ *
* Сообщения на собственный номер бесплатны до 5 СМС в день при условии, что каждое сообщение помещается в 1 СМС (до 70 русских / 160 латинских символов). При превышении этих лимитов, сообщения оплачиваются согласно тарифу.
Автор написал:

«Если человек не может написать то, что ему нужно — он не знает, что ему нужно» — так я всегда говорю открыто клиентам и это работает, это задевает человека и он идет на принцип (если эту фразу до меня сказал кто то еще напишите мне).

Отвечаю цитатой:

«Если ты не можешь объяснить что-то шестилетнему ребенку, то ты сам этого не знаешь.»

А. Эйнштейн
Автору статьи несомненно понравится система именования функций, принятая в OpenGL :-)

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

www.rsdn.ru/article/opengl/ogltut2.xml#EBF

Фактически примерно так же реализуется перегрузка функций в C++ — в obj-файл они попадают с подобными суффиксами, невидимыми в коде на C++. Но программисту не приходится заморачиваться этим синтаксисом, подбор подходящей функции из набора одноименных реализаций происходит автоматически на этапе компиляции.

Что до меня — мне больше нравится, как это сделано в C++
По-моему, критерием для объявления виртуального деструктора должно быть не наличие виртуальных функций (кстати, они могут появиться позже, когда никто не подумает о виртуальности деструктора), а сама возможность порождения дочерних классов от данного класса.
Я попробовал собрать расширение для php 5.4.7 для Win32 (xampp) по этим инструкциям — и у меня получилось! Автору — спасибо!!! :-)

Только по дороге пришлось споткнуться о несколько камушков, хочу поделиться для автора и тех, кто захочет повторить мой эксперимент:

1. батника configure.bat изначально нет, он собирается другим батником — buildconf.bat, который требует наличия утилиты bison.exe (которая вроде бы должна находиться в папке %WINDIR%\system32\, но мне пришлось скачать ее отсюда: www.freewareweb.com/download/?f=bison.exe)

2. Директива #define PHP_COMPILER_ID «VC9» не помогает, так как после нее стоит директива #include «zend_config.w32.h», переопределяющая макрос PHP_COMPILER_ID в значение «VC10» (у меня используется именно такой компилятор) — мне пришлось еще закомментировать эту директиву в сгенерированном файле config.w32.h

3. проверять работоспособность расширения надо не командой php -r «test();» как рекомендует автор, а командой php -r «echo test();» — авторский вариант ничего никуда не выводит

Указание на то, что автор — женщина, присутствует в начале второго предложения первого абзаца :-)

«А я вот решила...»

Не знаю, сколько женщин на хабре — но читать толковый и полезный пост, подписанный женщиной, было вдвойне приятно :-)

… и пусть меня «минусуют» за этот оффтопик, но присутствие женщин облагораживает любую мужскую компанию :-)
Термин «роботехника» ввел Айзек Азимов вместе с ее тремя законами. Писатель-фантаст разработал свои «Три закона роботехники», которые потом легли в основу разработок модели поведения искуственного интеллекта. Из уважения к гению писателя можно сохранить и его вариант спорного термина.
CREATE TYPE id_list IS TABLE OF INTEGER;

Oracle не делает разницы между IS и AS,
но мне кажется читабельнее такой вариант:

CREATE TYPE id_list AS TABLE OF INTEGER;
У нас на фирме таких двое (включая меня :-)

Я молодым программерам рассказываю такую байку о смене тенденций в программировании:

— в 80-е годы главное требование к программам было в малом размере кода

Код программы должен был занимать как можно меньше памяти, чтобы оставить место для данных и в сумме с ними не вылезти за те 500 кБ, что оставалось после загрузки DOS

— в 90-е годы главное требование к программам было в высокой скорости работы кода

Гонка процессоров уже шла полным ходом, хорошая программа должна была уметь не «тормозить» и работать быстрее, чем юзер нажимает на кнопки

— в нашем веке главное требование к программам стало в высокой гибкости кода

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

Так что переписывание старого кода — не блажь, а необходимость. А «преждевременная оптимизация» — это нормально, если в более спокойные периоды программист тратит время на то, чтобы сэкономить его потом, когда будет срочная работа.
Можно, конечно… но я, как Станиславский — НЕ ВЕРЮ! :-)
Сам не сталкивался, но уверен, что тоже маркетинговый ход :-)
Мозг распознает образы методом сравнения с образцом, поэтому чем дальше уходят буквы от своих мест, тем сильнее искажения.

Возможности слуха тоже ограничены, мозг не может слышать «бесконечное число частот», так как сложный гармонический сигнал разлагается в спектр при помощи улитки, в которой есть мембраны разного размера. Каждая мембрана резонирует на определенной частоте, и амплитуда этой частотной составляющей определяется по интенсивности сигнала от связанных с этой мембраной рецепторов.
>> Эмм… какого плана?

Я говорю о серийно выпускаемом системном программном обеспечении (когда конечный пользователь заранее неизвестен).

>> И у кого в таком случае есть опыт построения действительно безопасных продуктов? И какие продукты вы имеете в виду?

Согласен, с хорошими примерами туговато :-)

Я могу ошибаться, но лет 10-15 назад считалась достаточно устойчивой операционная система HP-UX, я работал тогда на Казахстанской валютно-фондовой бирже, у нас был сервер T-500 и нам очень нравилось, как там все было сделано в плане безопасности и отказоустойчивости.

Но даже если в наше время никто не может похвастать хорошими решениями, то все равно некрасиво ругать других, когда сам — не лучше.
>> Про армию до 25 лет шуток не ищут. Почему?

Кто в армии служил, тот в цирке не смеется.

Чувство юмора там надолго отбивают :-)

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity