Довольно часто случается такая неприятность, что в alert.log базы одно за другим сыпятся сообщения типа «Checkpoint not complete». Стандартный совет в этом случае: «увеличьте количество и/или размер redo логов». А дальше вопрос, кто такие эти redo логи и с чем их едят.
Наталья Нагорская @NagorskayaNread-only
User
Введение в анализ сложности алгоритмов (часть 1)
10 min
379KTutorial
Translation
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы покажутся чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он будет полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.
Многие современные программисты, пишущие классные и широко распространённые программы, имеют крайне смутное представление о теоретической информатике. Это не мешает им оставаться прекрасными творческими специалистами, и мы благодарны за то, что они создают.
Тем не менее, знание теории тоже имеет свои преимущества и может оказаться весьма полезным. В этой статье, предназначенной для программистов, которые являются хорошими практиками, но имеют слабое представление о теории, я представлю один из наиболее прагматичных программистских инструментов: нотацию «большое О» и анализ сложности алгоритмов. Как человек, который работал как в области академической науки, так и над созданием коммерческого ПО, я считаю эти инструменты по-настоящему полезными на практике. Надеюсь, что после прочтения этой статьи вы сможете применить их к собственному коду, чтобы сделать его ещё лучше. Также этот пост принесёт с собой понимание таких общих терминов, используемых теоретиками информатики, как «большое О», «асимптотическое поведение», «анализ наиболее неблагоприятного случая» и т.п.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.
Введение
Многие современные программисты, пишущие классные и широко распространённые программы, имеют крайне смутное представление о теоретической информатике. Это не мешает им оставаться прекрасными творческими специалистами, и мы благодарны за то, что они создают.
Тем не менее, знание теории тоже имеет свои преимущества и может оказаться весьма полезным. В этой статье, предназначенной для программистов, которые являются хорошими практиками, но имеют слабое представление о теории, я представлю один из наиболее прагматичных программистских инструментов: нотацию «большое О» и анализ сложности алгоритмов. Как человек, который работал как в области академической науки, так и над созданием коммерческого ПО, я считаю эти инструменты по-настоящему полезными на практике. Надеюсь, что после прочтения этой статьи вы сможете применить их к собственному коду, чтобы сделать его ещё лучше. Также этот пост принесёт с собой понимание таких общих терминов, используемых теоретиками информатики, как «большое О», «асимптотическое поведение», «анализ наиболее неблагоприятного случая» и т.п.
+90
Играем в программирование
3 min
51KУ программистов есть дети. В этом плане статистика непоколебима.
И эта статья будет интересна как раз тем, у кого есть ребенок в возрасте 5-~9 лет, тем кто уже задумывается или уже задумывался над вопросом как посвятить ребенка в азы программирования.
И эта статья будет интересна как раз тем, у кого есть ребенок в возрасте 5-~9 лет, тем кто уже задумывается или уже задумывался над вопросом как посвятить ребенка в азы программирования.
+36
Особенности работы или «За что я люблю JavaScript»: Замыкания, Прототипирование и Контекст
17 min
103KTutorial
Зародившись как скриптовый язык в помощь веб-разработчикам, с дальнейшим развитием JavaScript стал мощным инструментом разработки клиентской части, обеспечивающий удобство и интерактивность страницы прямо в браузере у пользователя.
Из-за специфичности среды и целей, JavaScript отличается от обычных языков программирования, и имеет множество особенностей, не понимая которые, довольно сложно написать хороший кроссбраузерный код.
Думаю, что большинство программистов, писавших код на JavaScript больше пары дней, сталкивались с этими особенностями. Цель данного топика не открыть что-то новое, а попытаться описать эти особенности «на пальцах» и «недостатки» сделать «преимуществами».
В данном топике будут рассматриваться:
Из-за специфичности среды и целей, JavaScript отличается от обычных языков программирования, и имеет множество особенностей, не понимая которые, довольно сложно написать хороший кроссбраузерный код.
Думаю, что большинство программистов, писавших код на JavaScript больше пары дней, сталкивались с этими особенностями. Цель данного топика не открыть что-то новое, а попытаться описать эти особенности «на пальцах» и «недостатки» сделать «преимуществами».
В данном топике будут рассматриваться:
- Замыкания
- Прототипирование
- Контекст выполнения
+70
Ключевое слово this в javascript — учимся определять контекст на практике
4 min
182KTutorial
По просьбам некоторых читателей решил написать топик про контекст в javascript. Новички javascript часто не понимают значение ключевого слова this в javascript. Данный топик будет интересен не только новичкам, а также тем, кто просто хочет освежить данный аспект в памяти. Посмотрите пример ниже. Если вы затрудняетесь ответить на вопрос «что будет выведено в логе» хотя бы в одном из пунктов или хотите просто посмотреть ответы — добро пожаловать под кат.
var f = function() {
this.x = 5;
(function() {
this.x = 3;
})();
console.log(this.x);
};
var obj = {x: 4, m: function() {
console.log(this.x);
}};
f();
new f();
obj.m();
new obj.m();
f.call(f);
obj.m.call(f);
+105
JavaScript: от начала до конца
6 min
189KTL;DR
Эта обзорная статья. Такое себе "краткое содержание предыдущих серий". Она будет полезна для новичков, или тех, кто не следил за отраслью в последнее время. Для новичков это будет первый шаг во "Вселенную JavaScript", бывалые смогут освежить свои знания.
У JavaScript очень удивительная судьба. Он преодолел путь от самого не понимаемого до самого удивительного языка. У него было тяжелое детство:
Изначально Автор хотел написать функциональный язык. Но менеджеры хотели получить, «обычный» объектно-ориентированный. И чтобы было легко искать разработчиков для новоиспеченного языка синтаксис решили сделать похожим на Java и даже название сделали похожим.
Но на этом история не заканчивается. Java, JavaScript это торговые марки Sun (а теперь Oracle). Microsoft не мог воспользоваться именем JavaScript (Netcape и Sun дружили против Microsoft). В результате Microsoft решил сделать реверс инжиниринг JavaScript и назвал его JScript. Сделали реверс инжиниринг, и сделали его настолько хорошо, что даже содрали все баги в реализации. Позже решили сделать стандарт и назвали его ECMAScript.
+101
Базы знаний. Часть 1 — введение
5 min
67KОдной из причин слабого использования Linked Data-баз знаний в обычных, ненаучных приложениях является то, что мы не привыкли придумывать юзкейсы, видя перед собой только данные. Трудно спорить с тем, что сейчас в России производится крайне мало взаимосвязанных данных. Однако это не значит, что разработчик, создающий приложение для русскоязычной аудитории совсем уж отрезан от мира семантического веба: кое-что всё-таки у нас есть.
Основными источниками данных для нас являются международные базы знаний, включающие русскоязычный контент: DBpedia, Freebase и Wikidata. В первую очередь это справочные, лингвистические и энциклопедические данные. Каждый раз когда вам в голову приходит мысль распарсить кусочек википедии или викисловаря — ущипните себя как следует и вспомните о том, что всё, что хранится в категориях, инфобоксах или таблицах, уже распарсено и доступно через API с помощью SPARQL или MQL-интерфейса.
Я попробую привести несколько примеров полезных энциклопедических данных, которые вы не найдете нигде, кроме Linked Data.
Эта статья — первая из цикла Базы знаний. Следите за обновлениями.
Основными источниками данных для нас являются международные базы знаний, включающие русскоязычный контент: DBpedia, Freebase и Wikidata. В первую очередь это справочные, лингвистические и энциклопедические данные. Каждый раз когда вам в голову приходит мысль распарсить кусочек википедии или викисловаря — ущипните себя как следует и вспомните о том, что всё, что хранится в категориях, инфобоксах или таблицах, уже распарсено и доступно через API с помощью SPARQL или MQL-интерфейса.
Я попробую привести несколько примеров полезных энциклопедических данных, которые вы не найдете нигде, кроме Linked Data.
Эта статья — первая из цикла Базы знаний. Следите за обновлениями.
- Часть 1 — Введение
- Часть 2 — Freebase: делаем запросы к Google Knowledge Graph
- Часть 3 — Dbpedia — ядро мира Linked Data
- Часть 4 — Wikidata — семантическая википедия
+63
Вы можете развить свой интеллект: 5 способов максимально улучшить свои когнитивные способности
17 min
506KTranslation
Не стоит преследовать цели, которые легко достичь. Стоит нацеливаться на то, что удается сделать с трудом, приложив немалые усилия — Альберт Эйнштейн
Несмотря на то, что Эйнштейн не был нейробиологом, он точно знал все, когда говорил о способности человека добиваться чего-либо. Он интуитивно догадывался о том, что лишь сегодня нам удалось подтвердить с помощью данных, а именно: что заставляет когнитивные способности работать на максимально высоком уровне. По существу: То, что тебя не убивает, делает тебя умнее.
+103
Код CSS «с душком»
8 min
106KTutorial
Translation
Недавно Крис Койер отвечал на вопросы читателей Smashing Magazine. Один из вопросов был о том, как распознать код CSS с «душком»:
Я подумал, что могу расширить и дополнить ответ Криса исходя из собственного опыта.
Я работаю в BSkyB. Я делаю большие сайты — над последним из них я тружусь уже больше года. Плохой код CSS доставляет мне очень много проблем. Когда занимаешься одним сайтом месяцами, ты просто не можешь себе позволить плохой код, и его обязательно надо исправлять.
Я хочу поделиться несколькими вещами, на которые я обращаю внимание прежде всего, чтобы составить впечатление о качестве, сопровождаемости и чистоте кода CSS.
Как можно определить, что ваш CSS пованивает? Какие признаки указывают на то, что код неоптимален или что разработчик писал его спустя рукава? На что вы смотрите в первую очередь, чтобы определить, плох или хорош код?
Я подумал, что могу расширить и дополнить ответ Криса исходя из собственного опыта.
Я работаю в BSkyB. Я делаю большие сайты — над последним из них я тружусь уже больше года. Плохой код CSS доставляет мне очень много проблем. Когда занимаешься одним сайтом месяцами, ты просто не можешь себе позволить плохой код, и его обязательно надо исправлять.
Я хочу поделиться несколькими вещами, на которые я обращаю внимание прежде всего, чтобы составить впечатление о качестве, сопровождаемости и чистоте кода CSS.
+145
Коктейли ко дню программиста
5 min
188K Здравствуй, Хабр!
Осталось несколько дней до дня программиста и, конечно, в эту 13-ю пятницу, многие из пользователей хабра буду отмечать этот праздник. Буду отмечать и я.
По случаю профессионального праздника, мне бы хотелось поделиться с хабравчанами рассказом о своём небольшом кулинарном проекте, который удалось реализовать буквально накануне. Думаю из названия поста уже стало понятно, что это — коктейли для программиста. Кажется, до этого момента IT и миксологию еще никто не пытался объединить, а потому у меня есть некоторая надежда на успех моего начинания.
Все началось вот с чего: моя супруга увлекается кулинарией и ведет небольшой кулинарный блог. В прошлом году на мой день рождения она пригласила к нам в гости на кухню настоящего бармена из барного startup-проекта БАРаДОМа.нет. С момента знакомства с Артёмом (барменом который превратил мой день рождения в домашнюю барную вечеринку), у меня появилась идея: найти рецепты (или придумать самим) коктейлей, которые бы вписались в IT-тематику.
Итогом нескольких дней активной переписки с Артёмом стала вот такая небольшая коктейльная карта:
Под катом рецепты и фото коктейлей, которые мы сделали на нашей кухне. И, да, я не без причины публикую этот пост не в пятницу, а немного раньше.
Осталось несколько дней до дня программиста и, конечно, в эту 13-ю пятницу, многие из пользователей хабра буду отмечать этот праздник. Буду отмечать и я.
По случаю профессионального праздника, мне бы хотелось поделиться с хабравчанами рассказом о своём небольшом кулинарном проекте, который удалось реализовать буквально накануне. Думаю из названия поста уже стало понятно, что это — коктейли для программиста. Кажется, до этого момента IT и миксологию еще никто не пытался объединить, а потому у меня есть некоторая надежда на успех моего начинания.
Все началось вот с чего: моя супруга увлекается кулинарией и ведет небольшой кулинарный блог. В прошлом году на мой день рождения она пригласила к нам в гости на кухню настоящего бармена из барного startup-проекта БАРаДОМа.нет. С момента знакомства с Артёмом (барменом который превратил мой день рождения в домашнюю барную вечеринку), у меня появилась идея: найти рецепты (или придумать самим) коктейлей, которые бы вписались в IT-тематику.
Итогом нескольких дней активной переписки с Артёмом стала вот такая небольшая коктейльная карта:
- Ruby
- Python
- Суровый Perl
- JMP (aka Assembler)
- Profit!
- Epic fail
- Memory leak
Под катом рецепты и фото коктейлей, которые мы сделали на нашей кухне. И, да, я не без причины публикую этот пост не в пятницу, а немного раньше.
+194
Как я однажды преподавал программирование не как все
3 min
231KЯ преподаю программирование в университете с 2000 года. Когда-то я был зеленым преподом, который побаивался заходить к студентам, потому что нужно было выглядеть умным, все знать, уметь отвечать на каверзные вопросы. Потом я понял, что набор каверзных вопросов ограничен и, слушая их из года в год, я знал на все такие вопросы ответы. Но история не об этом.
Кроме преподавания я сам активно занимался (и занимаюсь) программированием. И преподавание в университете для меня сейчас хобби, которое в материальном плане скорее убыточно, т.к. за то время, которое я трачу на студентов, я бы заработал больше, чем мне платит университет. Но и не об этом данная история тоже.
А хочу я поделиться тем, как, на мой взгляд, стоит строить обучение программированию.
Кроме преподавания я сам активно занимался (и занимаюсь) программированием. И преподавание в университете для меня сейчас хобби, которое в материальном плане скорее убыточно, т.к. за то время, которое я трачу на студентов, я бы заработал больше, чем мне платит университет. Но и не об этом данная история тоже.
А хочу я поделиться тем, как, на мой взгляд, стоит строить обучение программированию.
+228
Особенности культуры преподавания в ВУЗах на компьютерных специальностях
6 min
7.3KПреподавание — сложная наука.
Независимо от того, какой предмет Вы решили преподавать, будь то экономика, философия, экология или информатика. В преподавании каждой науки есть свои особенности и сложности взаимопонимания между студентом и преподавателем. Даже имея практику публичных выступлений или общения в аудиториях, классах вы получали опыт не совсем в таком виде, который нужен для преподавания. Об особенностях и некоторых подходах к повышению культуры преподавания я хотел бы сегодня вам рассказать.
Примеры для решения сложных ситуаций и успешного преподавания.
На данный момент компьютерные науки развиваются намного быстрее, чем все остальные, и это является тем самым камнем преткновения при попытке качественно и быстро подготовить специалистов. Каждый месяц появляются новые технологии, которые можно поместить на курс продолжительностью в семестр. При этом система обучения осталась старая, абсолютно негибкая и неприспособленная к таким частым изменениям программы. Такую программу поменять невозможно, гораздо легче сделать что-нибудь локальное, что поможет решить локальные проблемы в разрезе одного курса.
+50
Как я в вузе электронную коммерцию преподавала (ч. 2, первые занятия)
4 min
3.7KВ первой части мы остановились над мучительными вопросами, преследовавшими меня в ночь перед выходом на кафедру. Итак, первая лекция прошла, но прошла она слегка скомканно по нескольким причинам, первой из которых были опоздания: студенты имеют привычку опаздывать. В случае моей первой лекции даже слово «опоздание» плохо описывает нескончаемый поток «подтягивающихся». В принципе, я была к этому готова. По школьному опыту я знала, что тот, кто опоздал вынужденно, постарается тихо зайти, не привлекая лишнего внимания, а вот компания бездельников-лоботрясов, тусовавшихся в двух шагах от аудитории, завалится со всем возможным шумом и гамом. Им попросту нужно привлечь внимание, не более того. Поэтому, когда численный состав показался мне достаточным для того, чтобы делать заявления, я сообщила следующее:
+80
Итоги семестра
3 min
1.6KИтак заканчивается еще один семестр и я хотел бы рассказать о том что происходит и как дела у студентов.
В этом семестре у меня было два курса. Первый Лингвистическое и программное обеспечение САПР (ЛИПО) (второй курс), второй ТРПО (четвертый курс).
В этом семестре у меня было два курса. Первый Лингвистическое и программное обеспечение САПР (ЛИПО) (второй курс), второй ТРПО (четвертый курс).
+1
Имитируем пересечение, исключение и вычитание, с помощью опережающих проверок, в регулярных выражениях в ECMAScript
2 min
32KОт переводчика
Это перевод небольшой заметки, написанной вчера Lea Verou, в ней предлагается интересная, хотя и не новая техника для решения повседневных задач.
Информация в статье касается ECMAScript, но может использоваться и в других RegExp Движках (хотя и есть вероятность, что там есть более подходящее решение).
Если примеры кажутся вам сложными, рекомендую играть с ними в консоли, по мере прочтения. И Заранее прощу прочтение за пугающее название.
Статья
Если вы какое-то время используете регулярные выражения, то наверняка вы сталкивались с разными вариантами следующих задач:
- Пересечение:«Что-то, что совпадает с шаблоном А и шаблоном Б»
Например: Пароль, минимум 6 символов, в котором хотя бы одна цифра, хотя бы одна буква, и хотя бы один специальный символ
- Исключение: «Я хочу что-то, что совпадает с шаблоном А, но не совпадает с шаблоном Б»
Например: Любое целое число, которое не делится на 50
- Отрицание: Все. Что не совпадает с шаблоном А
Например: Строка, которая не содержит в себе слово «Foo»
+30
Usability чеклист
5 min
53KНебольшой и полезный чеклист по usability. Проверьте свой ресурс перед тем как перейти к юзер-тестированию. Не претендует на «столп usability», которому необходимо следовать, но здесь собраны довольно полезные вещи.
+34
Некоторые примеры нестандартных возможностей синтаксиса Oracle SQL
5 min
45KВведение
Примерно полтора года назад я сдал экзамены на OCP Advanced PL/SQL Developer, далее специфика работы несколько изменилась, и после стандартного производственного использования Oracle я занимался разработкой архитектуры двухуровневой клиент-серверной системы на основе Oracle для нужд компьютерной лингвистики. Далее был этап развития системы и решения наукоемких задач на ее основе, пришлось заниматься использованием иерархических запросов в решении нестандартных задач и другими специфическими вещами. Результатом углубления в специфику стало некоторое «проседание» базы, а значит, наступило время снова просмотреть материалы, использовавшиеся для подготовки к экзаменам.
Ниже будет приведено несколько нестандартных примеров использования sql-запросов. Такие примеры обычно приходят на ум во время просмотра конспекта, проверяются, обсуждаются с другими специалистами и забываются. В этот раз мне захотелось сохранить некоторые из них в sql-файле, позже стала понятна необходимость в комментариях к каждому запросу. Так и появилась эта заметка.
+26
Некоторые примеры нестандартных возможностей синтаксиса sql. Часть вторая: форматы дат
13 min
148KВведение
Данная статья посвящена форматам дат в Oracle и некоторым особенностям их обработки. В статье приведен обзор нескольких стандартных масок форматирования дат, явная и неявная конвертация строк в даты и дополнительные параметры, влияющие на этот процесс. Как и в первой части статьи, обсуждение материала происходит на основе примеров, демонстрирующих нестандартные возможности форматирования. Детально рассмотрены механизмы Oracle, участвующие в процессе неявного преобразования. Описание большинства возможностей сопровождается ссылками на соответствующие разделы документации.
Изначально я не планировал написание статьи о датах, а собирался остановиться на рассмотрении всего одного вопроса данной тематики. Однако в ходе работы возникла необходимость в освещении различных дополнительных возможностей Oracle, стали появляться новые примеры. Так рассмотрение одного вопроса разрослось в небольшую статью. Надеюсь, получилось нескучно, несмотря на не самую интересную тематику.
Первая часть статьи, посвященная особенностям оператора order by, функционированию not in и примеру неявного преобразования типов, находится здесь.
+34
Изучение иностранных языков: живые учителя или интернет?
4 min
74K— Феденька, ты очень интеллигентный мальчик, ты мне очень нравишься, но Я БУДУ СТАВИТЬ ДВА В ГОДУ!!! — визжала моя школьная учительница по французскому и делала примерно такое лицо.
Моя школьная учительница по английскому языку делала другое лицо:
+182
«Я научу вас любить и страдать», или Шпаргалка по обучению в IT
4 min
3.8KВыпустившись восемь лет назад из питерского Бонча (он же — Университет телекоммуникаций), я никак не подозревал, что сам займусь преподаванием. Тем не менее, моя мятущаяся, и совсем, пожалуй, не технарская душа, привела меня на должность преподавателя в довольно крупной — питерской же — конторе, занимающейся разработкой самого разнообразного софта для операторов сотовой связи. Мой более чем пятилетний трудовой путь в ней заканчивается, и по горячим следам я решил дать несколько простых советов, которые, смею надеяться, облегчат жизнь тем, кому по служебной или иной необходимости нужно будет передать свои драгоценные знания. Они содержат в себе несколько базовых вещей, связанных с обучением, которые мне сейчас кажутся очевидными, но на заре преподавательской деятельности были в новинку. Перейдём, собственно, к советам.
+39
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity