Pull to refresh
36
0
ESQUELETO @ESQUELETO

User

Send message

Преступный переинженеринг

Reading time5 min
Views18K
Программистов часто обвиняют в том, что они делают свою работу неряшливо. В природе существует бесчисленное количество программ, которые падают, зависают или неожиданно пишут на экране «Превед медвед» миллион раз.
Почему так получается?
Total votes 133: ↑120 and ↓13+107
Comments67

Как собрать Кубик Рубика 5х5х5 (часть 1)

Reading time8 min
Views40K
В далеком 2008 году в мои руки попал кубик рубика нестандартных размеров. Как собирать такое чудо, я тогда и понятия не имел. Поначалу мы с друзьями собирали его частично, не имея понятий об алгоритме сборки, но потом захотелось всё-таки научиться собирать его полностью. Через гугл я нашёл некоторое подобие алгоритма сборки, но он к сожалению был неполный и грешил неточностями. Некоторое время анализировав нагугленное и алгоритм классической сборки кубика 3х3х3 я осознал полный алгоритм сборки куба не только 5х5х5, но и 4х4х4 (хотя у меня под рукой не было такого куба, я написал программу для моделирования такого кубика в 3D и проверил алгоритм). Всем, кто хотел бы научиться собирать такой кубик — добро пожаловать под кат.
Читать дальше →
Total votes 248: ↑231 and ↓17+214
Comments72

Деревенские заметки

Reading time4 min
Views3.2K
Привет, друзья!

Уже несколько дней живу в деревне – радуюсь солнышку и теплу.
Вот несколько интересных наблюдений о деревне.

Сегодня купил в местном сельпо мангал – неплохой такой мангал и шесть шампуров к нему обошлись в 190 рублей. Коммунизм уже наступил.

Местная речка оккупирована продленкой в школе и местными девушками – мальчиков почти нет. На купальники и прочую ерунду многие не обращают внимания – купаются и загорают топлесс или просто в чем мать родила. На меня посматривают многозначительными взглядами.

Покупал в магазине пять литров молока, думал что спросят что так много купил. Спросили почему так мало – обычно берут от 10 литров за раз. Хлеба тут тоже покупают по пять-шесть буханок. Вообще здешние закупают неприлично много продуктов – тушенку, какую-то колбасу по девяносто рублей килограмм (я думал такой вообще не существует). Все это слабо вяжется с местными зарплатами – в среднем получают по пять-шесть тысяч в месяц.

В деревне два магазина – один продает продукты, а второй продукты и водку. Первый работает до шести, второй – до 11.
Читать дальше →
Total votes 593: ↑485.5 and ↓107.5+378
Comments321

Хакеры получили доступ к базе данных пользователей The Pirate Bay

Reading time2 min
Views892
Аргентинский хакер Ch Russo сообщил, что он с двумя партнёрами обнаружил многочисленные уязвимости на thepiratebay.org, связанные с возможностью внедрения SQL-кода. С помощью этих уязвимостей они получили доступ к базе данных пользователей сайта и тем самым получили возможность создавать, удалять, изменять и просматривать все сведения о пользователях, в том числе номера и имена файловых трекеров или торрентов, загруженных пользователями.

Скриншот административной панели The Pirate Bay, показывающей недавно зарегистрированных пользователей:


Читать дальше →
Total votes 73: ↑66 and ↓7+59
Comments64

Самообман простоты

Reading time7 min
Views25K

В статье рассматривается проблема превышения сроков создания программ как результат самообмана: будто бы программирование — это просто, и даже еще проще. Создатели новых технологий в области разработки программного обеспечения уверяют, что их технология поможет решить огромное количество проблем и что теперь разработка программного обеспечения становится как никогда простым и быстрым процессом. Но практика неумолима. Вновь и вновь срываются сроки завершения очередного программного проекта.
Читать дальше →
Total votes 87: ↑76 and ↓11+65
Comments30

Такими могли бы быть новые иконки для LiveJournal

Reading time2 min
Views45K
Наверняка, вы слышали о конкурсе на новые иконки для LiveJournal, который объявил Артемий Лебедев. Сегодня были объявлены результаты. Не скрою, мы в Турбомилке неприятно удивлены, при всем уважении к авторам выбранных Артемием работ.

Вот такие иконки предложили мы:
image
Под катом подробный рассказ как мы рисовали эти иконки и почему они должны быть именно такие.
Читать дальше →
Total votes 318: ↑163 and ↓155+8
Comments178

Установка node.js на Linux, FreeBSD, Windows

Reading time6 min
Views84K
node.js — серверный асинхронный Javascript, превосходный инструмент для создания серверной части COMET приложений, в частности, для игрушек, чатов, и других высоконагруженных проектов, использующий синтаксис Javascript, прекомпилируемый в машинный код, работающий на скорости, сравнимой с кодом на C++, очень быстрый, способный держать 10 — 12 тысяч подключений, и не создающий отдельного процесса/не интерпретирующий себя заново/не запускающий процесс при каждом новом клиенте. Использует в качестве основы V8 — движок Javascript от Google. Удобные возможности, можно установить значение переменной при одном посетителе, и считать это значение при ответе другому.
Обращаю внимание на то, что если вы не программировали, например, на Python или Ruby, только на PHP, не обходите его стороной, это не ещё один незнакомый язык. И в этом его преимущество — Javascript — знакомый язык, особенно для тех, кто программировал на PHP+Javascript, но PHP не позволял очень многих вещей, особенно в связке с Apache, например, аплоад файлов с полосой загрузки (без Flash), возможность низкоуровневого управления сетью (возможность написать, например, клиента или сервер Mysql или прокси-сервер вроде nginx).
О гибкости языка говорит тот факт, что расширения для работы с MySQL, например, написаны на самом Javascript.
Я планировал написать статью с описанием этой замечательной системы, с примерами, но на момент чтения читателю хорошо бы иметь под рукой установленную версию node.js. Поэтому этот пост о том, как установить node.js, в том числе и на Windows, что актуально в связи с недавним появлением порта под cygwin. (Да, есть информация о том, где скачать node.exe)
Читать дальше →
Total votes 66: ↑61 and ↓5+56
Comments48

Распознаем текст с помощью cuneiform

Reading time2 min
Views30K
Поступила задача наладить автоматическое распознание текста с фотографий, т.е. пользователь при загрузке фотогографии на сервер, получает еще и распознанный с нее текст. Сказано — сделано. Было найдено хорошее бесплатное консольное решение — cuneiform.
Читать дальше →
Total votes 68: ↑60 and ↓8+52
Comments58

Как создавалась Айчиталка. Часть 1: движок

Reading time10 min
Views28K
Совсем недавно мы выпустили в свет первую бета-версию нашей онлайн-читалки, с которой можно ознакомиться, почитав книгу Михаила Лермонтова «Герой нашего времени». Эта читалка — результат почти семимесячной работы, пять из которых ушло только на разработку движка. Казалось бы, в интернете уже есть бесплатные и открытые JavaScript-движки для чтения электронных книг и такой долгий срок может вызвать сомнения в профпригодности разработчика (то есть меня). Но есть одно большое и жирное «НО». Мы поставили перед собой слишком амбициозную и трудновыполнимую задачу: мы хотели использовать один и тот же движок на разных устройствах, в том числе маломощных, таких как айфон или электронная читалка.

В чём же заключается трудновыполнимость задачи? В первую очередь — в очень низкой скорости работы веб-приложений на айфоне. Например, мобильный Сафари по моим прикидкам работает раз в 100 медленнее своего десктопного собрата. Если на декстопе одна и та же операция выполняется 10 мс и совершенно незаметна для пользователя, то на айфоне она может выполняться больше секунды. Для сравнения: первая версия движка разбивала небольшую главу на страницы примерно за 15 секунд. Сейчас, спустя полгода, он делает то же самое менее, чем за секунду и вполне сносно работает в нашем приложении booq.

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

Читать дальше
Total votes 165: ↑151 and ↓14+137
Comments98

Вот Вы сейчас скажете: «Ещё один очередной стартап», — а вот не тут то было!

Reading time4 min
Views17K
Привет, Хабр

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

Итак, поехали!
Total votes 149: ↑88 and ↓61+27
Comments142

Ставим Ubuntu 10.04 Lucid Lynx на iMac 21.5"

Reading time4 min
Views4.3K
Ubuntu 10.04

В прошедшие выходные захотелось увидеть релиз Ubuntu 10.04 своими глазами. Первое знакомство решил осуществить в виртуальной машине. Поработав часок пришло понимание, что система мне настолько нравится, что уходить обратно в Mac OS X не хочется. Так родилась подлая мысль осуществить полный переезд из Mac OS X в Ubuntu. На реальном железе все оказалось не так гладко, как в виртуальной машине. В топике постараюсь собрать воедино разрозненную информацию о настройках железа и рассказать что же в итоге получилось.
Читать дальше →
Total votes 167: ↑110 and ↓57+53
Comments145

Мониторинг доступа к файлам

Reading time3 min
Views33K
Зачастую пользователям и системным администратором необходимо отслеживать, к каким файлам обращается приложение. В Linux-е уже есть все средства для этого, и тем удивительнее постоянно слышать на форумах — есть ли аналог Sysinternal Filemon. В данной статье я опишу использование утилиты strace, и рассмотрю ряд моментов, которые ускользают от некоторых пользователей, полагающих, что приложениям надо ограничивать права даже на чтение, например, ограничить доступ mplayer-а только к показываемому фильму.
Читать дальше →
Total votes 63: ↑58 and ↓5+53
Comments26

Вот и мой файлообменник «прижали к ногтю»

Reading time1 min
Views21K
Вот и до моего файлообменника добрался отдел «К».

Буду вести тут записи о ходе событий.

Начало.

22.04.2010 12:00
Обнаружил что сервер не пингуется. Позвонил хостеру, попросил подключить KVM чтобы узнать в чем дело с сервером. Но подключать KVM не потребовалось. Хостер сообщил мне — "сотрудниками МВД Управления К на основании Постановления о производстве обыска (выемки) были изъят ваш сервер."

К сожалению, хостеру не дали сделать копию одной из двух бумаг, которую им показывали оперативники отдела «К». Так что узнать ни номер уголовного дела, ни ФИО следователя пока не могу.

Сейчас активно ищу адвоката чтобы не ждал пока они меня вызовут и придти с ним к оперативникам и разузнать о причинах изъятия сервера.

PS. Если у вас файлообменный сервис — закройте его нафиг. Похоже волна пошла.

Как будут новости — отпишу.

UPD. Попросили перенести из личного блога в основной. Т.к. новость интересная людям.
Total votes 382: ↑366 and ↓16+350
Comments340

Akshell, платформа социальных приложений

Reading time2 min
Views608
Akshell Неделю назад я запустил публичную бету своего проекта и теперь хочу рассказать о нем на Хабре.

Сначала о том, что побудило меня на создание сего творения. Не так давно социальные сети были предназначены лишь для общения отдельных групп граждан. Очень быстро они превратились в универсальный инструмент общения и охватили все слои населения. Т.к. потребности (ну и возможности) этих слоев весьма различны, вряд ли их можно удовлетворить единым набором функционала, интерфейсов и прочего. Таким образом, социальные сети неизбежно должны совершить следующую метаморфозу: превратиться в платформы. Приложения должны переселиться с окраин социальных сетей, годных лишь для фермерской деятельности периферийного функционала, в самый центр. Они должны взять на себя большую часть взаимодействия с пользователем.

Akshell и является подобной платформой.
Читать дальше →
Total votes 45: ↑33 and ↓12+21
Comments40

Привязка модели данных к представлению на javascript

Reading time7 min
Views3K
Я думаю многие пользуются DataBinding`ом в .NET, она же привязка данных. Она позволяет, при выделенной модели данных и независимом визуальном представлении, забыть о синхронизации данных с формой. Привязав один раз properties модели к элементам представления, мы избавляемся от десятков обработчиков onChange и подобных для изменения полей модели, а в случае изменения поля вне gui-интерфейса (например синхронизация модели с базой), мы не будем мешать уровни абстрации, чтобы обновить textBox.text. Давайте данные будут отдельно, gui отдельно. Плюс мы получаем наглядный, легко переносимый код на asp.net или даже на другой язык/платформу.

 databinding

Синхронизация может быть как в двух направлениях, так и в одном, причем в любую сторону.
С развитием уровня web-ориентированных приложений, появилась возможность реализации подобного решения и на JavaScript. Ну думаю преимущества разделения данных от представления уже много где рассматривались и не раз приводили к холивару, так что упустим этот момент.
Читать дальше →
Total votes 39: ↑33 and ↓6+27
Comments9

Перевод — BoxedIce делится опытом перехода с MySQL на MongoDB

Reading time6 min
Views7.4K
Ссылка на эту статью уже мелькала на Хабре и я столкнулся с интересом к ней. Многие испытали проблемы с освоением оригинала на английском и я решил перевести ее.

Заметки об использовании MongoDB в продакшене


Год назад в июле я писал о том, что мы перешли с MySQL на MongoDB.
Мы запустили MongoDB в продакшене для сервиса мониторинга Server Density. С тех пор прошло 8 месяцев и мы столкнулись с некоторыми вещами.
Читать дальше →
Total votes 58: ↑51 and ↓7+44
Comments11

Простой и эффективный метод отразить http DDoS от 50мбит с помощью nginx и iptables

Reading time7 min
Views67K
Здравствуй, Хабр!
Предлагаю твоему вниманию простой и в то же время эффективный метод борьбы с http DDoS. На основе сервера Xeon 2.5GHz / 4Gb RAM / SAS можно отражать атаку примерно до 300 Мбит/с (значение получено методом экстраполяции).

Способ реализация

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

Область применения

Борьба с Http DDoS на выделенном сервере или ВПС. Максимальная возможная мощность сдерживания DDoS атаки ограничивается физическими возможностями сервера и пропускной способностью канала.

SEO под DDoS-ом

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

Стоимость и эффективность

На время атаки придется отказаться от некоторых сервисов вашего сайта. Возможно, придется расширить полосу канала, перенести сайт на более мощный сервер. Эффективность достигается максимизацией коэффициента масштабируемости системы. Обеспечивается быстрое наращивание аппаратных ресурсов при увеличении мощности атаки.
Читать дальше →
Total votes 193: ↑179 and ↓14+165
Comments78

Опыт интервью в американских стартапах

Reading time2 min
Views1.9K
Жил я, беззаботной жизнью в теплом Ташкенте, подрабатывал фрилансом, и внезапно так получилось, что ушла вся беззаботная жизнь и я оказался в Штатах, совсем один, без друзей и близких, но с прямыми руками и знанием Ruby. За то время что я нахожусь здесь (около полугода), я приобрел немалый опыт по трудоустройству в IT-конторы, коим и хотел поделиться с сообществом

Пост публикуется по просьбе камрада sarvar.muminov, у которого еще к сожалению нет аккаунта на хабре. Инвайты можно присылать на sarvar.muminov@gmail.com
Перенес в Учись Работать
Читать дальше →
Total votes 47: ↑23 and ↓24-1
Comments25

Information

Rating
Does not participate
Registered
Activity