Как стать автором
Обновить
-1
0
Павел Вишняков @NeuroHunter

.NET Developer

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

Магические сигнатуры методов в C#

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

Представляю вашему вниманию перевод статьи The Magical Methods in C# автора CEZARY PIĄTEK.


Есть определенный набор сигнатур методов в C#, имеющих поддержку на уровне языка. Методы с такими сигнатурами позволяют использовать специальный синтаксис со всеми его преимуществами. Например, с их помощью можно упростить наш код или создать DSL для того, чтобы выразить решение проблемы более красивым образом. Я встречаюсь с такими методами повсеместно, так что я решил написать пост и обобщить все мои находки по этой теме, а именно:


  • Синтаксис инициализации коллекций
  • Синтаксис инициализации словарей
  • Деконструкторы
  • Пользовательские awaitable типы
  • Паттерн query expression
Читать дальше →
Всего голосов 82: ↑81 и ↓1+80
Комментарии70

How old is this house. Как я делал карту возраста домов Петербурга

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


Идея


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


В памяти есть какие-то онлайн-проекты.
Беглый поиск дает много примеров из разных городов: Портланд, Рейкьявик, Нью-Йорк: Бруклин, Манхеттен, Барселона, Любляна, Львов, и даже проект масштаба страны, — Нидерланды.
Про Петербург тоже кое-что есть: например, отличные данные на Петроградку: «Ретроспектива застройки Петербурга» и проект Делового Петербурга: «Как застраивался Петербург: история строительства города за 68 секунд».


Цель — бумажная карта, к идее сделать how-old-is-this.house приду в процессе. Начинаю искать сырые данные.

Всего голосов 135: ↑134 и ↓1+133
Комментарии60

Подготовка к собеседованиям в IT-гиганты: как я преодолела проклятье алгоритмического собеседования

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

Дисклеймер:


Я не программирую с трёх лет, не знаю наизусть Кнута, не являюсь призёром олимпиад по информатике и чемпионатов по спортивному программированию, не училась в MIT. У меня за плечами образование по информатике и 6 лет опыта в коммерческой разработке. И до недавнего времени я не могла пройти дальше первого технического скрининга в IT-гиганты из FAANG (Facebook, Amazon, Apple, Netflix, Google и подобные), хотя предпринимала несколько попыток. 

Но теперь всё изменилось, я получила несколько офферов и хочу поделиться опытом, как можно к этому прийти. Речь пойдёт о позиции Software Engineer в европейских офисах перечисленных компаний.
Читать дальше →
Всего голосов 201: ↑196 и ↓5+191
Комментарии342

Умный парсер числа, записанного прописью

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


Пролог


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


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


Для ленивых:
Ссылка на проект github: ссылка.


Читать дальше →
Всего голосов 137: ↑136 и ↓1+135
Комментарии59

OS1: примитивное ядро на Rust для x86

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

Я решил написать статью, а если получится — то и серию статей, чтобы поделиться своим опытом самостоятельного исследования как устройства Bare Bone x86, так и организации операционных систем. На данный момент мою поделку нельзя назвать даже операционной системой — это небольшое ядро, которое умеет загружаться из Multiboot (GRUB), управлять памятью реальной и виртуальной, а также выполнять несколько бесполезных функций в режиме многозадачности на одном процессоре.


При разработке я не ставил себе целей написать новый Linux (хотя, признаюсь, лет 5 назад мечтал об этом) или впечатлить кого-либо, поэтому особо впечатлительных прошу дальше не смотреть. Что мне на самом деле захотелось сделать — разобраться, как устроена архитектура i386 на самом базовом уровне, и как именно операционные системы делают свою магию, ну и покопать хайповый Rust.


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


Мои цели — структурировать информацию у себя в голове, а так же помочь тем, кто идет похожим путем. Я понимаю, что аналогичные материалы и блоги уже есть в сети, но чтобы прийти к моему текущему положению, мне пришлось долго собирать их воедино. Всеми источниками (во всяком случае, которые вспомню), я поделюсь прямо сейчас.

Читать дальше →
Всего голосов 89: ↑88 и ↓1+87
Комментарии25

Гарвардский курс CS50 на русском. Все серии

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


Друзья, мы рады сообщить, что перевод всего гарвардского курса CS50 закончен.

Мы писали, что в курсе 24 серии, однако последние две оказались одной и той же лекцией (одна прочитана в Гарварде, а другая в Йеле), поэтому в списке переведённых лекций не 24, а 23.

Список лекций под катом.

Что вы узнаете, прослушав этот курс:
  • Основы компьютерных наук и программирования;
  • Концепции алгоритмов и алгоритмичности мышления. Какие задачи можно решать с помощью программирования и каким образом;
  • Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
  • Основы языка программирования C и Scratch;
  • Основы баз данных и SQL;
  • Веб-разработка: основы CSS, HTML, JavaScript и PHP;
  • Основы подготовки презентации проектов по программированию.


Курс переведён и озвучен нашей студией по заказу JavaRush, и мы хотим сказать им огромное спасибо за поддержку!
Всего голосов 40: ↑37 и ↓3+34
Комментарии34

Гарвардский курс CS50 на русском: шестнадцатая лекция

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


Мы продолжаем публиковать лекции легендарного Гарвардского курса CS50, которые мы переводим и озвучиваем специально для JavaRush. Рады вам представить 16-ю серию с продолжением рассмотрения языка PHP (теперь для разработки веб-приложений), а также со знакомством с базами данных и MySQL. Всего в курсе 24 лекции, постепенно мы переведём все. Лекция под катом в списке всех переведённых на сегодняшний день лекций.

Что вы узнаете, прослушав этот курс:

  • Основы компьютерных наук и программирования;
  • Концепции алгоритмов и алгоритмичности мышления. Какие задачи можно решать с помощью программирования и каким образом;
  • Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
  • Основы языка программирования C и Scratch;
  • Основы баз данных и SQL;
  • Веб-разработка: основы CSS, HTML, JavaScript и PHP;
  • Основы подготовки презентации проектов по программированию.

Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии2

Как выжить в условиях корпоративной культуры, если ты — программист-интроверт

Время на прочтение4 мин
Количество просмотров35K
Современный мир корпораций создает идеальные условия для работы и продвижения по службе, если вы амбициозный, активный, общительный, легко заводите новые знакомства, умеете поддерживать отношения с руководством… Список можно продолжать и дальше, но уже ясно, что идеальным этот мир могут назвать лишь экстраверты.

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

Читать дальше →
Всего голосов 33: ↑23 и ↓10+13
Комментарии141

Создаём установочный носитель с множеством версий Windows NT 6.0+ без использования стороннего софта

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

КДПВЗдравствуйте. Сегодня я расскажу как можно создать единый установочный носитель с множеством разных версий Windows не прибегая к использованию стороннего ПО. Таким образом вы будете полностью понимать какие манипуляции мы выполняем.


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


Кому интересно — прошу под кат.

А ну-ка, посмотрим
Всего голосов 34: ↑33 и ↓1+32
Комментарии108

По следам WWDC 2016. Практическое руководство

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


Эта статья — практическое руководство по участию в WWDС. Я расскажу, как попасть на WWDC и поделюсь личными впечатлениями от конференции.
Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии4

Голосовое управление умным домом Z-Wave и не только. Homekit + Siri. Инструкция

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

Наладить максимальный комфорт в квартире с каждым месяцем становится все дешевле и проще. В этой пошаговой инструкции я покажу как легко и просто добавить вашему дому голосового управления! Для голосового управления нам понадобятся:
  1. Контроллер RaZberry или любой компьютер с ПО Z-Way
  2. Пара Z-Wave девайсов, а в прочем и любые WiFi лампочки подойдут
  3. iPhone/iPad (желательно в стене)

Я использую Raspberry Pi B+, поэтому далее пойдет описание настройки голосового управления именно на нем. Видео работы в конце статьи.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии25

Пол Грэм: Глава 2. Хакеры и художники (Habr edition)

Время на прочтение18 мин
Количество просмотров14K
image

Сейчас Пол Грэм учит правительства и университеты как создавать стартап-хабы, а а вот раньше… он провел замечательную аналогию между высококлассными программистами и художниками.

За 13 лет глава, одноименная с названием книги, затерялась в сети. Для удобства, хочу опубликовать ее, собранную по кусочкам из различных архивов.

Перевод Анастасии Грызуновой, Яны Щекотовой. Приведение текста в порядок — CaptainCrocus.

Оригинал — Hackers and Painters (May 2003)


Закончив аспирантуру по computer science, я пошел на художественный факультет изучать живопись. Многие удивились, что компьютерщик вдруг заинтересовался живописью. Эти люди, видимо, считали, что хакерство и художество — очень разные занятия: хакерство — холодное, точное и методичное, а художество — яростное выражение некого первобытного порыва.

Оба представления неверны. У хакерства и художества масса общего. Из множества различных типов людей хакеры и художники — едва ли не самые похожие.
Всего голосов 17: ↑14 и ↓3+11
Комментарии4

Обзор физики в играх Sonic. Часть 1: твердые тайлы

Время на прочтение15 мин
Количество просмотров44K
image

От переводчика: этот пост — перевод одной из частей масштабного обзора физики (Sonic Physics Guide) в играх серии Sonic the Hedgehog для Sega Genesis/Mega Drive и Sonic CD. В следующих частях рассматриваются такие темы: бег, прыжки, вращение, потеря колец, поведение под водой, суперскорость, специальные возможности, камера, анимации и некоторые другие. Так как частей много (14 штук), в конце поста я добавил опрос. Стоит ли продолжать — решать вам.
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии5

Светодиодные лампы — стоит ли игра свеч?

Время на прочтение5 мин
Количество просмотров115K
image

Читая публикации alexeynadezhin задумался — а не перейти ли мне дома на светодиодное освещение? Как всегда, к вопросу решил подойти скрупулёзно, досконально изучить все тонкости. В итоге пришёл к интересным выводам.
Читать дальше →
Всего голосов 45: ↑41 и ↓4+37
Комментарии187

Семь вопросов о светодиодных лампах

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

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


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

Светодиодная лента и другие виды освещения

Время на прочтение6 мин
Количество просмотров28K
Многие ли из вас работают дома? Я да, потому что когда я делаю что-то интересное, то могу забыть поесть или поспать, так что домашний офис просто минимизирует риск умереть от голода или недосыпа *здесь должен быть смайлик*.

Пришло время проектировать новую квартиру — встали вопросы организации рабочих мест для нас с мужем. Моей задачей было освещение. Поэтому сейчас я хотела бы рассказать вам о миллионе засад толике здравых решений, которые нам удалось найти в современном море интерьерных возможностей. Но обо всем по-порядку:
Читать дальше →
Всего голосов 22: ↑17 и ↓5+12
Комментарии17

Светодиодная лента в качестве освещения комнаты

Время на прочтение15 мин
Количество просмотров1.3M
Изначально для основного освещения одной из комнат, где шёл капитальный ремонт, планировалась обычная люстра. Но недавно мне на глаза попалась суперяркая светодиодная лента Ultra 5000 со светодиодами smd 5630 торговой марки Arlight. Решение было принято быстро, окончательно и бесповоротно — хочу такую ленту в качестве основного света в комнате.



О реализации светодиодного периметра освещения далее
Всего голосов 420: ↑415 и ↓5+410
Комментарии329

Создаём REST-сервис на Rust. Часть 3: обновляем базу из консоли

Время на прочтение8 мин
Количество просмотров17K
В предыдущей части мы разобрали конфигурационный файл базы данных, чтобы считать из него параметры соединения.

Теперь давайте реализуем непосредственно операции обновления БД: создание, обновление, удаление наших записей и соответствующий им интерфейс командной строки.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии8

«Хакеры и художники», «On Lisp» и эссе на русском. Учим(ся) писать как Пол Грэм

Время на прочтение16 мин
Количество просмотров73K
To follow the path:
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.
«Лучший способ писать — это переписывать» Пол Грэм, «The Age of the Essay»



Преред курсом Сергея Абдульманова ( milfgard) я взял для себя квест — структурировать все статьи Грэма. Пол не только крутой программист и инвестор — он мастер лаконичного письма. Если milfgard назвал свой курс для контент-менеджеров "Буквы, которые стреляют в голову", то Пол Грэм стреляет из «по глазам» (кто играл в Fallout 2 тот поймет).

А еще мне захотелось освоить Lisp. Чисто так, чтобы мозг поразвивать, потому что крутые люди — Грэм, Кей и Рэймонд, Моррис — говорят хором: «Учите Lisp».

На данный момент Пол Грэм написал (по крайней мере, я нашел) 167 эссе. Из них на русский переведены 69.74(+10). Если читать по 1 статье в день (что очень хороший результат, потому что я после одной статьи хожу задумчивый неделю — голова кипит как после отличного мастер-класса, а иногда и как после двухдневного интенсива), то процесс займет полгода.

Под катом — список всех статей со ссылками на оригинал и с переводом (если он есть). Подборка живая (так что, как обычно, добавляйте в избранное, потом прочитаете) и будет дополняться по мере обнаружения свежака. Еще вы найдете переведенную на 8/15 книгу «Хакеры и художники» и 4/25 перевода книги «On Lisp». Так же я приведу свою подборку топ-5 статей Пола Грэма, с которых я бы рекомендовал начать знакомство с этим автором.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии3

Хороший пример «пасхалки» для программистов в фильме Ex Machina

Время на прочтение2 мин
Количество просмотров50K
image
Кадр из фильма Ex Machina

В британском фантастическом фильме 2015 года Ex Machina (в русской локализации "Из машины") главная героиня — это человекоподобный робот с явными женскими половыми признаками по имени Ава. Её создатель — эксцентричный миллиардер-программист, которого зовут Натан, организовал всё так, что в его отдалённую от людских глаз лабораторию прилетает Калеб, молодой разработчик из компании Натана. В ходе разговора между людьми выясняется, что Калеб должен провести с Авой тест Тьюринга — другими словами, выяснить обладает ли она интеллектом.
Узнать подробности
Всего голосов 89: ↑84 и ↓5+79
Комментарии86
1

Информация

В рейтинге
Не участвует
Откуда
Eindhoven, Noord-Brabant, Нидерланды
Дата рождения
Зарегистрирован
Активность