• Занятная экономика или манипулирование цифрами

      Недавно проскакивало 2 темы: про то, что питаться в ресторанах дешевле и про то, что свое авто обходится дороже.
      Сейчас на примере простых вычислений решим обратное — много писать не буду. Я просто припомню те вещи, которые авторы вышеупомянутых постов по незнанию, беспамятству или злому умыслу забыли огласить.
      Начнем же.
      Читать дальше →
    • PHP модуль — это просто

        Недавно мы опубликовали визард для VisualStudio, с помощью которого можно создать экстеншн в пару кликов мыши. Теперь с помощью него мы напишем наши два первых расширения: «Привет, мир» и «вытащим иконку из exe».
        Сразу прошу прощение, что очень сильно задержал статью, но жизненные обстоятельства вынудили это сделать, но они исключительно уважительные.



        Читать дальше →
      • VS wizard: PHP extension

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

          Как известно, php <=5.2 собирают с помощью музейных версий VC, попытки же собрать версиями 7-9 были обречены на неудачу: либо не собиралось, либо падало в процессе работы.
          В 5.3 версии разработчики сделали возможность собрать PHP при помощи VS 2008, так что эта проблема решена. Но… собирать экстешнены гораздо проще. Даже новыми версиями VC под PHP <= 5.2.
          Мы сделали решение, простое и прозрачное, которое в пару кликов мыши создаст проект под VS 2008(ориентировались на standard+ версии).
          Если вы знакомы с разработкой расширений, качайте наш визард и собирайте под винду без проблем.
          А если не знакомы — то ждите завтра-послезавтра статью, черновой вариант дописан.
          Итак, качайте PHP extension. Он снабжен установщиком, так что проблем не возникнет ;)
        • PHP 5.3: DoS — это не баг, а фича

            Именно так думают девелоперы PHP.
            Фича заключается в Segmentation Fault/Access Violation под unix/windows при исполнении кода:
            <?php
            class A {} 
            class B extends A { 
                public function __construct() { 
                    $args = func_get_args(); 
                    call_user_func_array(array($this, "parent::__construct"), $args); 
                } 
            } 
            class C extends B {} 
            $instance = new C(); // Segfault

            Разработчики говорят, что это совсем не баг и хотят добавить в документацию сведения об этой фиче.

            Естественно падает вебсервер/воркер сервера. Но это нормально, __ведь так и должно быть__.
          • Установка PHP на ubuntu

              Зачем?
              Это самый первый вопрос, который задаст большинство.
              Отвечу:
              1) Дефолтный php без зачастую нужных вещей вроде pcntl, и к тому же с вкомпиленным генератором неведомой совокупительной фигни Suhosin Patch.
              2) Сборка модулей, которых нет в репозитории.
              3) Нет руководств такого типа. Нет, действительно нету, лишь короткие руководства, которые с оговоркой можно назвать логом ./configure && make && make install, и по которым сложно что-то собрать из-за наличия требований дополнительных библиотек.
              4) Я не буду писать про фан. Просто не буду, т.к. мы не балуемся, а собираем продукт для работы. Многие найдут это плюсом, но не я.
              5) Внезапно возник вопрос сборки своего модуля. Навыки сборки под никс очень помогли в сборке под винду, где и был написан экстеншн.
              Можно конечно было сразу писать под никсами… Но ставить и настраиватькастомизировать никсы только ради одного проекта(в консоли на удаленном сервере разрабатывать как-то не особо приятно) мне не хотелось.

              Начинаем установку
              Читать дальше →
            • Выбор специальности для ITшника

                Закончили школу? Пора идти в ВУЗ. И конечно же на программиста, не так ли? НЕТ, НЕ ТАК! И я объясню, почему.

                Итак, после 4 лет изучения на IT-специальности, мы выдим следующие предметы:
                1) Основы программирования. Pascal, C. На момент обучения знал их. Это основы, и если не повезет с преподавателем, то обстоятельства могут сложиться так, что вы будете потеряны для IT. Печально? А затраченное время будет немаленьким. Самому все изучать проще и быстрее.
                2) ООП. Как правило несколько курсов, 2-6 с абсолютно разными названиями. Изучают C++(конечно же основы), GUI, основы проектирования. Никаких методик не узнаете, если повезет по максимуму — то UML расскажут. Конечно же, прочитав дома десяток книг(ООП/методики/UML/рефакторинг/проектирование) можно узнать на порядки больше. Самому все изучать проще и быстрее.
                3) Базы данных. Если не повезет — то access и закончится. Если повезет — то узнаете основы SQL. Или даже не основы, если крупно повезет.
                С другой стороны при самостоятельном изучении это займет куда меньше времени, а в качестве дополнительного бонуса — денежное вознаграждение за заказы ;)
                Как вы уже догадались, самому все изучать проще и быстрее.
                4) Пролог, лисп, etc. Наверняка на практики они вам не пригодятся. Но все равно даже если у вас не будут преподавать их, то наверняка вам захочется узнать их основы. Т.е. еще до начала соответствующего предмета вы будете ознакомлены с ними при наличии инициативы.
                5) Трансляция. На том уровне, на котором это преподается в большинстве ВУЗ'ов, это не нужно: как правило информация сильно упрощена, а в дальнейшем она понадобится лишь паре процентов студентов, но им все равно придется изучать все сначала, так как до этого было лишь ознакомление с предметом.
                Лучше бы уж регекспы преподавали. Которые вам полюбому придется знать.
                6) ОС. Единственный курс, который дал мне знания, но только потому, что мне они не нужны и самостоятельно я бы никогда не стал это учить. Зачем вебмастеру уметь работпать с mail slots под windows?) В любом случае, если бы я был системщиком, то обязательно бы это знал и так. И, кстати, системные вызовы никсов я знал(при изучении C поэкспериментировал), а вариант реализации подобного под windows мне был неинтересен.
                Подведу небольшой итог: то, что изучают в университете, инициативный человек уже знает.

                Что же делать?
                Высшее образование все же может понадобиться, не стоит от него отказываться.
                Однако учиться на IT-специальности не так просто. Поэтому есть очень неплохой вариант: поступайте на экономику/юриспруденцию, и вы убьете сразу двух зайцев: излишнюю сложность обучения и отсутствие новых знаний на IT-специальностях.
                Тем более что экономического типа специальности дадут навыки ориентирования в бизнесе, которые вам понадобятся.

                Программистом вы и так станете, если хотите, а университет в этом случае не сильно поможет ;)
              • Ставим PHP на iPhone

                  Сразу возникает вопрос, для чего это нужно. И сразу ответ: просто побаловаться. Но как 2 варианта использования:
                  1) Таскать сайт, который всегда с собой, чтобы кому-то показать.
                  2) Разработка ПО для самого iPhone в связке с PhoneGap. PhoneGap — это SDK для разработки приложений на JS с использованием акселерометра, GEO location и т.д. То есть вместо Objective C мы можем использовать JavaScript. И AJAX. И PHP/Python/Ruby.
                  Это будет необрезанный PHP, за единственным исключением: в виде СУБД тут может быть использован только sqlite(в том числе и через PDO).
                  Вот как это будет выглядеть в итоге:

                  И еще: вместе с PHP можно установить Python и Ruby. А тут уж и до Django недалеко(не знаю насчет ROR).
                  Приступим к установке.
                  Читать дальше →
                • По течению

                    До конца будет жить
                    По течению плыть
                    И всегда говорить
                    Что не может так жить
                    © Пир во время чумы


                    Университет, последний курс. Сколько человек работает? Пара-тройка из группы. По специальности? Максимум один занимается своим делом.
                    Университет заканчивается, ребенок, который не работает, — а он еще ребенок, хоть и 23 годов, — начинает думать, что делать.
                    Как правило это заключается в поиске работы. И внезапно он узнает, что никому не нужен: «Как же так, ведь у меня диплом, почему меня не хотят брать на приличную оработу, я же хорошо учился».
                    И внезапно до него доходит, что кроме образования нужны еще знания, опыт. То, чего нельзя набраться в университете, где проходят самые основы, где дают лишь общую информацию.
                    При этом, конечно, у них виновато государство, которое не ценит «специалистов», заставляя работать их не по профессии, а в качестве «эникейщиков» в лучших случаях.
                    Почему же все верят, что все сделают для них, и сами не хотят стараться? Почему никто не хочет учиться, а хотят только получить образование? И почему им не интересно то дело, которым они могут заниматься по жизни?

                    Как много вопросов)