Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «программирования»

[Перевод] Почему PHP устарел 2015-05-26 02:58:33
В 2000 году я был большим фанатом PHP. Я начал пользоваться им сразу после официального выхода ...
+ развернуть текст сохранённая копия
В 2000 году я был большим фанатом PHP. Я начал пользоваться им сразу после официального выхода версии 4.0 в апреле. В то время кроме него было всего 4 альтернативы для создания веб-сайтов.
1) C – слишком сложный для часто меняющегося проекта. Компиляция занимала много времени, было мало свободных инструментов, а платные не влезали в мой бюджет. Слишком многословный. Управление зависимостями было сложным делом.
2) Java – лучше, чем С, но всё ещё многословный и долго компилирующийся. Управление зависимостями было сложным делом.
3) Perl – почти так же хорош, как PHP, только без системы управления пакетами. На CPAN был набор модулей на все случаи жизни, но их надо было скачивать и устанавливать. Управление зависимостями было сложным делом.
4) ASP – почти так же хорош, как PHP, только это был инструмент от Microsoft, и его использование засосало бы меня в их дорогой мир.
Для трёх позиций я написал: " Управление зависимостями было сложным делом". Для меня это был ключевой момент PHP. Его философия была «всё в одном». Таких, как сейчас, систем управления пакетами тогда не было. Сейчас есть удобные штуки типа Bundler для Ruby и Leiningen для Clojure. Но не в 2000-м. Даже системы управления пакетами в Linux стали лучше с 2000 года. А система «всё в одном» решала проблемы управления пакетами в PHP. Но теперь это преимущество не имеет значения.
Читать дальше →
Тэги: php, ruby, веб-разработка, программирование
Как я однажды взломал онлайн-казино 2015-05-22 04:42:32
Вдохновившись рассказом Chikey о том как он вновь «сломал интернет» Егор прекрати уже ...
+ развернуть текст сохранённая копия
Вдохновившись рассказом Chikey о том как он вновь «сломал интернет» Егор прекрати уже ломать все подряд, займись делом каким-нибудь :), решил поведать об одной истории, с довольно известным за рекой, онлайн-казино. Имя этой «организации» не называю, т.к. процентов на 50 уверен, что или совсем не пофиксили, или сделали кривее чем было до этого.
История похожа очень на взлом Егора, за исключением того что это не совсем рэйс, вернее совсем не race condition в чистом его виде. Как оно будет полностью не знаю, я больше практик, чем теоретик. Назовем его «conditional race condition» — хоть и масло масленое, но суть отражает верно.
Как-то вечером, домашние уснули, по ящику одна муть, наши опять проигрывают делать было особенно нечего, на опенсорс решил на сегодня забить, решил чего-нибудь сломать. А что ломать (когда Егор уже все сломал), как не банк какой-нибудь или казино (эго, необходимость иногда почувствовать себя крутым парнем, все дела в общем). Это было одно из первых онлайн-казино, которое мне тогда приглянулось в поиске.
Не секрет, что экономят на программистах, тестировщиках и т.д. все или почти все. Я делаю временами аудиты, да и по роду деятельности такого иногда насмотришься, что волосы дыбом. Но тут-то казино! С возможностью вывода (выигранных) вечнозеленых и т.д. Т.е. контора должна вроде соответствовать…
Завел себе аккаунт, и поехали…
Читать дальше →
Тэги: condition, conditional, exploit, it-систем, race, безопасность, веб-разработка, информационная, программирование, спортивное, тестирование, эксплойт
Moscow Python Meetup на тему «Async: why and when?» в офисе Rambler&Co 2015-05-20 17:18:22

+ развернуть текст сохранённая копия
Друзья, спешу сообщить, что 28 мая в 19:00 в офисе компании Rambler&Co пройдет встреча сообщества Moscow Python Meetup. Тема встречи — «Async: why and when?».
В программе интересные доклады, общение, холивары и море позитива.
Читать дальше →
Тэги: async, django, erlang, gevent, learning, machine, python, rambler, rambler&co, tornado, twisted, блог, веб-разработка, компании, программирование
[Перевод] Внутреннее представление значений в PHP7 (часть 1) 2015-05-20 10:11:09
В связи с большим объёмом материала, публикацию пришлось разбить на две части. В первой из них ...
+ развернуть текст сохранённая копия
В связи с большим объёмом материала, публикацию пришлось разбить на две части. В первой из них я расскажу о том, как менялись реализации zval (Zend value) начиная с пятой версии PHP. Также обсудим реализацию ссылок. Во второй части будет подробно рассмотрена реализация отдельных типов данных, таких как строки и объекты.
zval’ы в PHP 5
Структура zval в пятой версии выглядит так:
typedef struct _zval_struct {
zvalue_value value;
zend_uint refcount__gc;
zend_uchar type;
zend_uchar is_ref__gc;
} zval;
Как видите, конструкция включает в себя value , type и дополнительную информацию __gc , о чём я расскажу ниже. Value представляет собой объединение различных возможных значений, которые может хранить zval:
Читать дальше →
Тэги: group, mail.ru, php, web-программирование, web-разработка, блог, веб-разработка, компании, покровов, срыв, теги, читает
[Из песочницы] Sublime Text 3 — пользовательская подсветка синтаксиса 2015-05-15 19:03:12
Расширяемость Sublime Text не знает границ. Для тех, кому мало стандартных функций, на Хабре ...
+ развернуть текст сохранённая копия
Расширяемость Sublime Text не знает границ. Для тех, кому мало стандартных функций, на Хабре уже рассказывали о том, как создать сниппет, как написать простой плагин, как написать сложный плагин и еще много много чего. Про ручную настройку подсветки синтаксиса толком ничего не смог найти: для кого-то слишком очевидно, кому-то просто не нужна, а кому-то и наверняка же пригодится.
Итак, задача: имея какие-нибудь абстрактные логи доступа в wonder-net:
!->14/02 16:44:22 [134.249.51.251:39951>80] (t1 19) >HTTP in:504 out:34 Time:156
GET /5168742330521893/ HTTP/1.1 SCOD=00
!->14/02 16:44:24 [134.249.51.251:49507>80] (t1 20)
GET /4405885823409377/ HTTP/1.1 SCOD=00
!->14/02 16:54:11 [195.18.13.107:1721>80] (t2 22)
GET /4149437701562173/ HTTP/1.1 SCOD=00
!->14/02 16:54:11 [195.18.13.107:1721>80] (t2 23) >HTTP in:385 out:10138 Time:156
GET /5211537451172048/ HTTP/1.1 SCOD=00
!->14/02 16:54:24 [195.18.13.107:1727>80] (t1 30) >HTTP in:423 out:1220 Time:187
GET /5211537446447554/ HTTP/1.1 SCOD=23
!->14/02 18:07:24 [82.145.208.159:43634>80] (t2 52)
GET /4149437838265377/ HTTP/1.1 SCOD=00
!->14/02 18:09:41 [82.145.208.174:41708>80] (t2 61)
GET /4149497815750155 / HTTP/1.1 SCOD=00
!->14/02 18:51:39 [82.145.210.33:55210>80] (t1 66) >HTTP in:543 out:34 Time:0
GET /5168757259478487/ HTTP/1.1 SCOD=00
!->14/02 18:51:40 [82.145.210.33:55332>80] (t1 68) >HTTP in:544 out:1243 Time:141
GET /4149497800456701 / HTTP/1.1 SCOD=00
!->14/02 18:51:46 [82.145.210.33:57345>80] (t1 73) >HTTP in:544 out:1243 Time:125
GET /5168742330521893/ HTTP/1.1 SCOD=00
выделить:
Дату-время — фиолетовым курсивом;
Номер карты — желтым курсивом, если не в черном списке или красным, если иначе;
ip-адрес — темно-зеленым, если не в черном списке или красным, если иначе;
scod=хх — темно-зеленым если 00 или красным, если иначе.
Приступим
Тэги: sublime, text, веб-разработка, кода, ненормальное, программирование, редактор
Главная / Главные темы / Тэг «программирования»
|
Взлеты Топ 5
Падения Топ 5
|