Как стать автором
Обновить
0
0
Андрей Куров @MrLibra

Пользователь

Отправить сообщение

mod_rewrite: Просмотр списка правил только один раз

Время на прочтение1 мин
Количество просмотров6.7K
С mod_rewrite есть одна проблема, об которую набиты уже наверное 15 миллионов шишек: он просматривает список правил снова и снова, пока URL удается хоть как-то изменить.

Очень часто получаеются и бесконечные циклы(например добавление расширения — оно добавляется снова и снова, если специально регэкспом не ограничить), над которыми с непривычки приходится поломать голову. Все надежды на модификатор [L] тщетны — он лишь сразу запускает следующую иттерацию обработки. Да и без бесконечного цикла лишние иттерации скорости работы не добавляют :-)

Хочу поделится достаточно простым и универсальным средством борьбы с такой особенностью, который обнаружил только-что :-)

Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии21

Первые шаги для пауэршельшиков

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров447K
Привет всем из 2023 года!
Я написал эту статью 12 лет назад. И внезапно — это — моя самая популярная статья. Я так же удивился что люди до сих пор заходят сюда и читают эту статью. Поэтому я решил её обновить. И после прочтения понял, что обновлять ничего не буду.

Да, powershell обновился за последние годы. Теперь он стал Powershell Core, и его можно запускать как на Windows, так и на Linux и MacOS. В скриптах появилось много плюшек, но основная идея осталась той же.

Если вы только начинаете писать на Powershell эта статья для вас. Вам будут даны основные понятия, которые относятся к Powershell в 2023 году, и которые позволят вам погрузиться в эту оболочку с головой.


Приди ко мне брате в Консоль!
— Админ Долгорукий.

Много ярлыков улетело в корзину со времён выхода в свет 2008 Windows. Люди попроще дивились новому синему окошку, которое ребята из Майкрософт зачем-то вставили в свои новые продукты. Люди, которые сидят на блогах и знают программирование начали изучать это окошко.



В итоге к народу начало приходить осознание того, что Майкрософт действительно разработали что-то новое и интересное.
И так, зачем вам это нужно? В основном, программа под названием PowerShell (в дальнейшем PS) предназначена для администраторов и программистов. Она позволяет автоматизировать примерно 99% всех действий в системе. С помощью неё вы можете настраивать удалённые компьютеры, запускать и перезапускать сервисы и производить обслуживание большиства серверных приложений. Как выяснилось, возможности у программы потрясающие.

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

Задача этой статьи проста — показать вам малую долю возможностей PS и дать вам концептуальное понимание предмета. В действительности документации по предмету написано несметное количество, так что я не стремлюсь охватить всё. Я так же ознакомлю вас с набором утилит, которые позволят не вылезать из PS в принципе.

Читать дальше →
Всего голосов 257: ↑220 и ↓37+183
Комментарии171

Китай: как заказывать производство или поставку

Время на прочтение7 мин
Количество просмотров186K
Его зовут Плюштой У китайцев можно заказать всё, что угодно: от электронных компонентов до корпуса к устройству или хендмейд-штук. При правильном подходе это дешево, качественно и позволяет реализовывать любые заказы, которые часто сложно разместить на территории СНГ.

В топике — основы аутсорсинга производства в Китай:
  • Как выбрать производителя и сделать заказ
  • Как убедиться, что сделают именно то, что вам нужно
  • Про предоплату, документы, гарантии
  • Как наиболее выгодно доставить
  • Что делать с потерянными поставками
  • Грабли в ассортименте

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

Читать дальше →
Всего голосов 208: ↑205 и ↓3+202
Комментарии183

Unity3d script basics

Время на прочтение13 мин
Количество просмотров110K


Предисловие


Эта статья будет посвящена новичкам в скриптовании Unity, но не совсем новичкам в синтаксисе JavaScript’а или любого другого подобного языка программирования. Тут надо маленько уточнить что JavaScript который использует Unity немного отличается от оригинального в пользу улучшенной поддержки ООП и называется соответственно Unity JavaScript. В нем например появились классы и их наследование, о чем не знают начинающие разработчики на Unity знакомые с объектно ориентированными возможностями оригинального JavaScript, поэтому отвергают его используя C# или Boo.
Читать дальше →
Всего голосов 53: ↑47 и ↓6+41
Комментарии15

Как проектировался новый Photo Viewer в Facebook

Время на прочтение6 мин
Количество просмотров887
Это перевод поста из Facebook Engineering Blog, который интересен, наверное, даже не столько сутью решения, которое в нем описано, сколько рассказом о «кухне» разработки в Facebook. Речь идет об обновленном функционале просмотра фотографий, который появился в конце сентября 2010 г. и был немного еще улучшен на днях.

imageЗадумавшись об обновлении Photo Viewer, мы столкнулись с множеством трудностей. Очевидно, что фотографии это наиболее востребованная функция Facebook. Ежедневно наши пользователи загружают более 100 миллионов фотографий, а предназначенный для этого функционал был создан довольно давно и явно нуждался в доработке.

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

Как нам это удалось
Мы начали с составления списка текущих проблем:
  • Наибольшие проблемы возникали с надежностью. Изображения загружались медленно, и иногда процесс зависал на неопределенное время. Пользователям приходилось обновлять страницу в браузере, чтобы увидеть фотографии и комментарии к ним.
  • При просмотре фотографий из Ленты новостей приходилось либо открывать их в новой вкладке, либо мириться с тем, что после просмотра нужно было заново прокручивать ленту вниз, чтобы вернуться к предыдущей позиции. Для разбирающихся в компьютере людей это не составляло особых проблем, но многие из наших пользователей испытывали связанные с этим неудобства.
  • Функционал просмотра комментариев к фотографиям был также реализован не самым удобным образом. Процесс выглядел так – нужно было посмотреть фотографию, промотать страницу вниз, чтобы увидеть подпись и комментарии к ней, а потом вернуться обратно наверх, и так каждый раз.
  • JavaScript, предназначенный для загрузки и кэширования фотографий, а также для публикации комментариев, был также реализован не самым лучшим образом. Он оставался неизменным на протяжении многих лет, на фоне того, что технологии работы браузеров и требования к ним значительно ушли вперед.

Перед нами стояла задача решить вышеописанные проблемы и, в идеале, создать новый, более приятный в работе функционал, способный объединить просмотр фотографий, расстановку меток для людей на них, возможность комментировать и отмечать понравившиеся снимки «лайками».
Читать дальше →
Всего голосов 64: ↑59 и ↓5+54
Комментарии37

Вышли Java/Python SDKs 1.4.2, а также обновился Roadmap

Время на прочтение2 мин
Количество просмотров923


Сначала расскажу об изменениях в SDKs, а потом о том, что разработчики нам обещают в ближайшие 6 месяцев.

Итак,
— Capabilities API более не экспериментальная фича. Доступна как в Java, так и в Python SDK.
— XMPP v2. Теперь с поддержкой presence и subscriptions.
— Добавлена возможность программного удаления заданий из TaskQueue.
— Увеличена максимальная скорость пополнения очереди до 100/сек.
— В URL Fetch добавлен метод позволяющий проверить сертификат, при обращении к хосту по https.
— Улучшен Memcache API.

Далее, что нам пообещали в roadmap
Всего голосов 19: ↑16 и ↓3+13
Комментарии5

Расширяем log4net. Конкурентное логирование

Время на прочтение7 мин
Количество просмотров12K
Библиотека log4net известна и в представлении не нуждается. В ней есть практически всё, что нужно, «из коробки». Однако, есть специфические ситуации, в которых необходимо добавлять/расширять функциональность библиотеки. Конкретная ситуация: есть некоторая библиотека, которая выполняет логирование через log4net в некоторый логер (или несколько — не суть). Эта библиотека используется в N службах. Как сделать так, чтобы логирование происходило в единственный файл? Под катом объяснение, почему FileAppender+MinimalLock не подходит, и реализация Appender'а, который решает задачу. Отдельно хочу сказать, что вопрос о логировании в БД, по сети и т.п. в статье не рассматривается, т.к. это гораздо более серьёзная задача, которая (особенно для больших систем) требует длительного обдумывания и внедрения.

Читать дальше →
Всего голосов 39: ↑31 и ↓8+23
Комментарии16

Введение в Renderscript

Время на прочтение3 мин
Количество просмотров8.3K
Renderscript — это важная особенность Honeycomb, которая не обсуждалась ранее. Всего будет две статьи, эта — простой обзор Renderscript, следующая же будет содержать больше технических подробностей и простой пример.

Renderscript — это новый API, направленный на высокую производительность при 3D рендеринге и сложных вычислительных операциях. Renderscript будет интересен разработчикам, пытающимся максимизировать производительность их приложений и чувствующим себя комфортно при работе на низком уровне. Для разработчиков доступны три инструмента: простой API для 3D рендеринга, поддерживающего аппаратное ускорение, API для моделирования сложных вычислений (похожий на CUDA), и язык стандарта близкого к C99.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии4

Первые шаги в разработке Flash игры. Делаем Backend на AMFPHP

Время на прочтение7 мин
Количество просмотров4.1K
Социальные игры — очень неустойчивая, но в то же самое время очень требовательная и интересная отрасль разработки.

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

Но это все лирика, а лиричности и романтики в нашей жизни хватает, поэтому приступим сразу к техническим деталям.

Читать дальше →
Всего голосов 39: ↑33 и ↓6+27
Комментарии25

Dice Wars на App Engine + Twisted

Время на прочтение4 мин
Количество просмотров1.6K
С августа в свое свободное время я занимаюсь разработкой занятной risk-подобной игрушки, в мире известной под названием Dice Wars. Гениальный японский гейм-дизайнер Таро Ито придумал замечательные правила этой игры и создал ее на флеше (однопользовательскую), и она породил множество вариаций на эту тему, до сих пор плохо известных в России.

В этой статье я хотел бы проанализировать мой первый fail с risk-подобной игрой, о которой я писал в марте, рассказать, почему я отказался от идеи использовать App Engine везде и вся, показать связку из App Engine + Twisted к которой я пришел и которая, как мне кажется, довольно полезна для приложений с постоянным соединением. Кроме того, хотелось бы рассказать о своем опыте с Actionscript 3, что-то вроде взгляда back end разработчика на эту чуждую для меня технологию, а также поискать здесь на хабре компаньонов и единомышленников.
Читать дальше →
Всего голосов 50: ↑39 и ↓11+28
Комментарии48

Про фрилансера Ивана и как он не вставал с дивана

Время на прочтение6 мин
Количество просмотров49K
Совсем недавно мы писали о том, как сдавать жилье в аренду, не навлечь на себя гнев государства и не вылететь при этом в трубу, используя простые практические советы по оптимизации налогообложения, рациональный подход и электронного бухгалтера «Эльбу».

Сценарий со сдачей квартиры всем хорошо знаком, но тот кейс, о котором сейчас пойдет речь, покажется многим из вас более жизненным и актуальным. А речь пойдет о фрилансере Иване — успешном блоггере и стоковом фотографе.
Читать дальше →
Всего голосов 152: ↑134 и ↓18+116
Комментарии193

Как жить счастливо и при этом платить налоги

Время на прочтение6 мин
Количество просмотров45K

Страшная правда


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

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

Не удивляйтесь, если вы уже видели точно такой же пост в пятницу, тогда мы просто не разобрались, но не хочется лишать аудиторию контента и вот мы публикуем его сегодня.
Читать дальше →
Всего голосов 150: ↑128 и ↓22+106
Комментарии211

Splash! – разработка игры для Windows Phone 7. Часть II

Время на прочтение8 мин
Количество просмотров7.4K
В предыдущей части нашей статьи (часть I) мы рассмотрели базовые вопросы создания игр под Windows Phone 7, выбор инструментов и технологий. Сейчас мы детально расмотрим вопросы программирования и взаимодействия с телефоном.
Читать дальше →
Всего голосов 43: ↑37 и ↓6+31
Комментарии5

Создание простого бота для WoW: продолжение

Время на прочтение6 мин
Количество просмотров33K
Это продолжение предыдущей статьи:
Создание простого бота для онлайн-игры world of warcraft

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

Читать дальше →
Всего голосов 77: ↑70 и ↓7+63
Комментарии49

8 полезных сервисов для веб-разработчика и дизайнера

Время на прочтение2 мин
Количество просмотров36K
Под катом — описание восьми сервисов, которые могут заметно облегчить жизнь веб-разработчика, верстальщика или дизайнера.
Читать дальше →
Всего голосов 337: ↑324 и ↓13+311
Комментарии59

10 вещей, которые должен знать каждый Senior Flash Developer

Время на прочтение3 мин
Количество просмотров11K
Я собеседовал нескольких Flash/Flex разработчиков в качестве потенциальных сотрудников Roundarch. Для меня, самой сложной частью собеседования было понять, какие именно вопросы задавать, чтобы оценить уровень Flash-разработчика. Поэтому, я создал этот список. Этот список позволяет мне оценить уровень и опыт разработчика, которого я собеседую.

Если вы ещё не достигли уровня «Senior-developer», то прочитайте список и изучите информацию по ссылкам из него. Если вы посчитаете этот список устаревшим, то, пожалуйста, критикуйте его и расскажите о других ссылках в комментариях.
Читать дальше →
Всего голосов 71: ↑48 и ↓23+25
Комментарии41

Python(x, y)

Время на прочтение9 мин
Количество просмотров54K
imagePython(x, y) — набор библиотек и программного обеспечения для численных расчетов, анализа и визуализации данных на основе Python. IDE представлены IDLE, Eclipse и Spyder, основой GUI избран Qt. Я расскажу вкратце о модулях, относящихся к самому Python, приведу несколько примеров их работы. Во время установки можно выбрать только то, что нужно, поэтому стоит разобраться что к этому нужному отнести. Кроме того, рассказ о модулях может пригодиться и сам по себе, поскольку их можно установить и по отдельности. Порядок следования модулей повторяет порядок оригинальной страницы и список чекбоксов установки.
Читать дальше →
Всего голосов 84: ↑82 и ↓2+80
Комментарии18

Динамическое программирование. Классические задачи

Время на прочтение8 мин
Количество просмотров327K
Здравствуй, Хабрахабр. В настоящий момент я работаю над учебным пособием по олимпиадному программированию, один из параграфов которого посвящен динамическому программированию. Ниже приведена выдержка из данного параграфа. Пытаясь объяснить данную тему как можно проще, я постарался сложные моменты сопроводить иллюстрациями. Мне интересно ваше мнение о том, насколько понятным получился данный материал. Также буду рад советам, какие еще задачи стоит включить в данный раздел.

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

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

Такие задачи решают методом динамического программирования, а под самим динамическим программированием понимают сведение задачи к подзадачам.
Читать дальше →
Всего голосов 105: ↑97 и ↓8+89
Комментарии72

Первый опыт работы с Handler Socket & php_handlersocket

Время на прочтение4 мин
Количество просмотров10K
handlersocket

Немного вскружилла голову статья Использование MySQL как NoSQL — История о том, как достичь 750,000 запросов в секунду (Перевод моего друга Вадима). Есть и другие материалы по этой теме. И вот дошли руки до экспериментов.

Под PHP разработано три разных клиента:
extension code.google.com/p/php-handlersocket
PEAR openpear.org/package/Net_HandlerSocket
PHP native github.com/tz-lom/HSPHP

Ниже приведены мои впечатления о первых экспериментах.
Читать дальше →
Всего голосов 50: ↑45 и ↓5+40
Комментарии64

Как устроен AES

Время на прочтение7 мин
Количество просмотров300K

О чём эта статья



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

В этой статье я напишу как устроен алгоритм шифрования AES (которого иногда называют Rijndael) и напишу его на JavaScript. Почему на JavaScript? Чтобы запустить программу на этом языке, нужен только браузер в котором вы читаете эту статью. Чтобы запустить программу, скажем, на C, нужен компилятор и найдётся совсем мало желающих, готовых потратить время на компиляцию кода из какой то статьи. В конце есть ссылка по которой можно скачать архив с html страницей и несколькими js файлами — это пример реализации AES на JavaScript.

Читать дальше →
Всего голосов 120: ↑115 и ↓5+110
Комментарии45

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность