Search
Write a publication
Pull to refresh
0
0
Байдиков Сергей Григорьевич @WIRTEL

User

Send message

10 противоестественных способов вычисления чисел Фибоначчи

Reading time7 min
Views11K
Задача вычисления первых двух десятков чисел Фибоначчи давно потеряла практическую ценность для программистов и используется преимущественно для иллюстрации базовых принципов программирования — рекурсии и итерации. Я же использую ее для демонстрации нескольких языков программирования, в которых она приобретает необычный и местами даже нездоровый вид.

Итак, мой рейтинг десяти наиболее противоестественных способов вычисления чисел Фибоначчи из написанных мной за последние полгода в рамках проекта Progopedia. Для уточнения задачи потребуем, чтобы выводом программы были первые 16 чисел в виде
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987,…

10. Sanscript


Визуальный язык программирования, в котором все элементы языка представлены в виде элементарных блоков, из которых составляется собственно «код», именуемый диаграммой потоков (flowgram). Место в рейтинге этот язык заслужил размером диаграмм (два, ну три десятка элементов — максимум, который можно использовать на одной диаграмме без скроллинга и окончательного запутывания в связях между блоками) и неудобством использования ключевых структур языка (каждый цикл или условный переход требует для своего описания одной или нескольких отдельных диаграмм, которые мгновенно загромождают логику программы многоуровневой вложенностью и передачей глобальных переменных в виде параметров цикла). Ну, и собственно визуальностью — программа не пишется, а рисуется, и клавиатура как таковая используется только для ввода значений констант и (опционально) переименования элементарных блоков и написания комментариев.

Главная диаграмма потоков
Главная диаграмма потоков
Читать дальше →

3d движок на js + canvas

Reading time2 min
Views14K
Как то раз наткнулся я на забугорную статью про светлое будущие Canvas и WebGL, и была в этой статье картинка с «3d чайничком» нарисованном c помощью canvas'a, поразила она меня ну прям ващеее, понял я что должен сделать нечто подобное, и сделал.

image

Читать дальше →

ModularGrid — модульная сетка в браузере (и не только сетка)

Reading time1 min
Views10K
ModularGrid — это небольшая программка на javascript (около 30 КБ), которая облегчает труд HTML-верстальщика.


Основные возможности ModularGrid


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

подробности

Практика функционального программирования №5

Reading time2 min
Views3.9K
Анонсы новых выпусков журналов или обновлений сайтов — это не то, о чём обычно пишут. Мы не видели объявлений новых номеров Компьютерры (когда она ещё была) или Vogue на страницах Хабра. Тем интереснее наблюдать, как небольшой, весьма специализированный журнал для программистов «Практика функционального программирования» регулярно привлекает живой отклик у читателей даже таких в некотором роде особенных сообществ как Linux.Org.Ru или Хабрахабр.

Недавний выпуск последнего, пятого номера журнала ПФП уже вызвал множество интересных споров. А всё потому, что в конкурсе, объявленном журналом в конце прошлого года, вместо запланированной безоговорочной победы языков Haskell и OCaml, победили Python и C#.

Неожиданно обнаружилось, что один из дизайнеров C#, Eric Meijer признался, что Visual Basic — это функциональный язык (http://mr-aleph.livejournal.com/255073.html)

А еще обнаружилось, что...

Привычки полезные каждому веб-программисту

Reading time2 min
Views1.7K
У веб-программистов со временем вырабатываются привычки, которые въедаются в рабочий процесс на уровне рефлексов. Взять хотя бы данные из формы — каждый толковый программист, как только встречает их, тут же обрабатывает на предмет корректности. Порою даже сам не замечает.

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

Количество элементов на одной странице

Разбиваете список на страницы? Как будет выглядеть вторая страница для списка из 101 элемента, если ваше волшебное число 100?

Читать дальше →

Записки программиста: ООП, And и Or

Reading time15 min
Views5K

Философия ООП



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

Читать дальше →

«Твоё Радио». Разработка десктопного клиента

Reading time1 min
Views979
Твоё Радио«Твоё Радио» (пост про него уже был) — это как радио Last.fm, только бесплатное и использующее гигантскую базу музыки. Это веб-приложение для социальной сети «В Контакте».

Но согласитесь, слушать музыку через браузер очень неудобно! Нужно поставить песню на паузу? Переключаемся на окно браузера, ищем нужную вкладку… чёрт, где же оно играет? Уж проще колонки выключить.

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

Читать дальше →

Google представил API для кроссбраузерного подключения шрифтов

Reading time1 min
Views11K
Google Font API — API для подключеня нестандартных шрифтов.
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="_http://fonts.googleapis.com/css?family=Tangerine">
    <style>
      body {
        font-family: 'Tangerine', serif;
        font-size: 48px;
      }
    </style>
  </head>
  <body>
    <h1>Making the Web Beautiful!</h1>
  </body>
</html>
Читать дальше →

Web-шрифты как они есть

Reading time1 min
Views4.7K
Web-шрифты на данном этапе развития невозможно применять без геморроя. Они придуманы для того, чтобы дать пользователям возможность видеть страницу такой, как её задумал автор сайта. Что на самом деле видит посетитель?
Читать дальше →

Новая версия Last.fm free music player для Google Chrome

Reading time2 min
Views2.1K
Прошел месяц с выпуска прошлой версии плагина для Google Chrome, расширяющего возможности всеми любимого Last.fm (предыдущий хабратопик), и за это время он обзавелся большим количеством новых возможностей.


Ссылка на плагин:http://goo.gl/zLP0
Читать дальше

Обзор CMS по категориям

Reading time19 min
Views85K
В мире существуют тысячи CMS для самых разных целей, самого разного качества, самой разной перспективы, стоимости, распространённости и так далее. Серьёзно опробовать их все — нереально. Поэтому когда я только знакомился с миром движков для сайтов, выбирать приходилось наугад. Ниже я опишу свои впечатления от знакомства с теми или иными движками для тех или иных целей. К некоторым приложу краткое описание особенностей, впечатление о прочих состоит только из заглядывания в админку. Заметки эти составлялись и редактировались в течении долгого времени, но сейчас я решил, что лучше опубликовать их в нынешнем виде, чем ещё полгода-год по чуть-чуть редактировать не добавляя ничего принципиально нового.
Преимущество отдаётся бесплатным движкам. Платные будут рассматриваться только для сравнения или от безысходности, т.е. если нет бесплатных аналогов. Также ограничение на технологии: php. О движках на перле и питоне я не более чем слышал, на шарпе и джаве имел дело с самописными.
Итак, рассматриваются
Читать дальше →

Аккорды для струнных щипковых инструментов

Reading time1 min
Views2.1K
Вдохновленный сайтом http://chordfind.com, а также примером r3code, решил довести до ума собственную версию табулатур.

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

Читать дальше →

Банкоматных вирусов пост

Reading time4 min
Views23K
Ребята, я не выдержал. Речь сейчас пойдет о банкоматном вирусе, обнаруженном больше года назад в банкоматах Diebold, и основном принципе его работы. Тема эта древняя, пик истерии давно уже прошел, но общественность так и не узнала, что же произошло на самом деле, из-за чего даже ИТ-шники строят массу догадок и рассказывают мифы. Про этот вирус было написано много статей, от технических описаний до политпросвещения домохозяек, но самый главный трюк нам так и не раскрыли. Объяснять я постараюсь попроще, ибо нам важно понять суть, а не вникать в детали конкретной реализации чего-либо.

Картинка для привлечения внимания:



Читать дальше →

Tunerr — хроматический гитарный онлайн тюнер

Reading time1 min
Views3.7K
Здравствуйте, %username%!guitar

Сегодня мы пришли не столько за пиаром, сколько за помощью — для нас очень важен ваш отзыв о нашем маленьком сервисе, позволяющем настраивать гитару через микрофон или линейный вход — www.tunerr.com.

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

Читать дальше →

Упрощение рутинной работы с документами для ИП и ООО

Reading time2 min
Views18K
Привет!

Сегодня мы расскажем о том, какие документы нужно создавать ИП или ООО в своей работе с клиентами и покажем как этот муторный процесс можно упростить и ускорить с помощью сервиса MoeDelo.org

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

Договор на оказание услуг или на продажу товара


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

In20Years.com — взлет в облака

Reading time4 min
Views13K
Всем привет!

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

И вот такая возможность представилась.

Позвольте показать вам сайт, созданный по заказу Goldfinger Applications Ltd. и Luxand, Inc. который мы запустили на прошлой неделе, и немного рассказать о том как мы делали его.

Что это за сайт?


In20Years.com
Вы можете загрузить вашу фотографию на сайт и узнать как возможно вы будете выглядеть через 20 или 30 лет. При включении опции «Drug Addict» можно посмотреть что с вами станет через 20 лет при активном употреблении наркотиков.

Как это работает?
Читать дальше →

Плагин авторизации через Вконтакте, Yandex, Google, OpenID и тп

Reading time1 min
Views19K
В недавнем моем посте «Javascript виджет авторизации OpenID» на хабре, я описал свою разработку виджет-consumer авторизации OpenID.

Прошло время, я получил много положительных отзывов, получил замечания и пожеланию по улучшению виджета. Среди пожеланий развития была просьба создать WordPress плагин и добавить поддержку Вконтакте OpenAPI.
Читать дальше →

Математическая поисковая система с визуальным вводом формул

Reading time3 min
Views2.7K
Почти полгода назад я написал на хабре статью о проекте математической поисковой системы uniquation.ru. Тогда была получена конструктивная критика, которая помогла улучшить проект.

С тех пор проект претерпел множество изменений, главное из которых — визуальный ввод формул — теперь, чтобы найти информацию о каком либо математическом объекте, необязательно знать его представление в формате TeX.



Под катом рассказ об изменениях, технологиях и влиянии хабра

Модуль авторизация через ВКонтакте для Kohana

Reading time1 min
Views2.6K
После открытия API ВКонтакте сразу появилось несколько статей по созданию быстрой авторизации на своём сайте пользователей vk.com, в т.ч. и на PHP. Решил заняться написанием модуля авторизации для Kohana.

Документация по API очень хилая, пришлось изучать js-скрипты durov.at и переносить некоторый функционал на PHP (отправка POST-запроса с получением полной информации о пользователе, вместо ajax-овой реализации на durov.at). Самым сложным местом оказалось генерирование уникальной подписи запроса (как они объясняют, «подпись запроса по стандартной схеме»), т.к. этот процесс нормально не описан.

Модуль Vk умеет логиниться и получать информацию о пользователе и, соответственно, разлогиниваться. Информация хранится в cookie и в сессии. При желании, можно складывать всё в БД, запрашивать дополнительную информацию о пользователе и т.д.

Подробное описание на странице модуля в github. Не забываем создать свое приложение ВКонтакте для тестирования и записать полученные API ID, ключ приложения и защищенный ключ в config/vk.php, а также создать файл xd_receiver.htm по примеру в описании.

Свободная энциклопедия языков программирования Прогопедия: 3 года спустя

Reading time2 min
Views1.5K
Ровно три года назад я опубликовал на Хабре заметку об энциклопедии языков программирования Прогопедия.

Выглядела Прогопедия тогда примерно так. Сейчас — вот так: progopedia.ru
Проект развивается не так быстро, как хотелось бы, но прогресс налицо.

Немного подробнее о Прогопедии и изменениях за три года.
Читать дальше →

Information

Rating
Does not participate
Location
Тюмень, Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity