Избранное сообщение

Использование списков для ввода данных в Excel / Office / Excel

Вообще при работе с любой информацией, а уж с управленческой в первую очередь, первоочередное значение имеет ее качество. Она обеспечивае...

Ездил на экскурсию на хлебокомбинат.
Больше я хлеб не ем...
Ездил на экскурсию на мясокомбинат.
Больше я мясо не ем...
Завтра экскурсия на ликеро-водочный завод.
Я не поеду...

вторник, 28 февраля 2017 г.

Киевский университет им.Шевченко. Красный (центральный) корпус. Лестницы / Фото из личного архива

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


Смотри также:

Владимирский собор. http://fetisovvs.blogspot.com/2017/02/blog-post_19.html
Киевский университет им.Шевченко. Красный (центральный) корпус. http://fetisovvs.blogspot.com/2017/02/blog-post_46.html
Киевский университет им.Шевченко. Красный (центральный) корпус. Портрет в фойе. http://fetisovvs.blogspot.com/2017/02/blog-post_21.html
Киевский университет им.Шевченко. Красный (центральный) корпус. Витраж. http://fetisovvs.blogspot.com/2017/02/blog-post_26.html
Киевский университет им.Шевченко. Красный (центральный) корпус. Коридоры. http://fetisovvs.blogspot.com/2017/02/blog-post_27.html

Программы для обновления программ в Windows / Программное обеспечение. Система

Обновление сторонних Windows-программ

В рамках работы по внедрению Windows на рынок мобильных устройств компания Microsoft некогда создала магазин Windows Store – единый источник контента для операционной системы, где пользователи могут комплексно устанавливать все необходимые им программные продукты. Сегодня Windows Store – это место установки минималистичных приложений, игр и расширений для браузера Microsoft Edge. И только. Амбициозные планы компании Microsoft по превращению Windows Store в единый веб-маркет с огромнейшим ассортиментом, где пользователи могли бы знакомиться также и с десктопными программами (лишь знакомиться, а скачивать по ссылке с сайта разработчика), увы, пока что так и остались проектом, не претворенным в жизнь. Пока что Магазин не является смотровой площадкой для ПО, работающего с десктопной средой системы, и оно по-прежнему разбросано по всему Интернету – на сайтах компаний-разработчиков, софт-порталах, торрент-трекерах и т.п. Ко всем этим ресурсам приходится обращаться не только единожды для скачивания инсталляторов программ, но также периодически с целью их обновления, если этот процесс не предусмотрен в автоматическом режиме разработчиками. Ниже будем говорить об обновлении сторонних Windows-программ – как часто их нужно обновлять, как это делать вручную и с помощью специальных инструментов.

1. Зачем и как часто нужно обновлять стороннее ПО?

Обновление стороннего ПО в меньшей степени полезно, чем обновление самой Windows, но в отдельных случаях этот процесс может иметь весомое значение для работоспособности программ или их отдельных функций. А некоторые старые программы, которые нынче не поддерживаются разработчиками, могут даже и не установиться в современные версии Windows, поскольку те по умолчанию не предусматривают активность необходимых для их работы программных платформ. Например, как в случае с .NET Framework 3.5. В обновлениях программ разработчики исправляют ошибки, устраняют конфликты с аппаратной частью, адаптируют под изменения в операционной системе и программных средах, на базе которых эти программы функционируют, добавляют новые возможности.
Как часто нужно обновлять стороннее ПО? Версии программ и игр чаще представлены последовательностью чисел по типу «хх.хх», например, Counter-Strike 1.6. У программ и игр могут быть промежуточные версии, которым присуща последовательность чисел по типу «хх.хх.хх», например, CCleaner v5.24.5841. Промежуточные версии, как правило, не содержат каких-то существенных изменений, разве что мелкие исправления, которые вряд ли будут замечены широкой аудиторией пользователей. Если программа или игра работают нормально, можно не тратить время на обновление до каждой промежуточной версии. Исключение могут составлять разве что программы типа антивирусов, менеджеров паролей, клиентов банковских и платежных систем и т.п.
Кардинальные обновления больших программных пакетов их создатели стараются превратить в значимое событие, чтобы привлечь внимание масс. Такие программные пакеты могут иметь удобочитаемые и запоминаемые порядковые номера версий, например, Corel VideoStudio Ultimate X10, или содержать в названии год выпуска, например, Acronis True Image 2017. С такого рода софтом необходимо разбираться отдельно, поскольку может оказаться, что к новой версии необходимо приобретение нового лицензионного ключа.

2. Обновление стороннего ПО вручную

ПО, не предусматривающее автоматическое обновление, может предлагать просто функцию проверки новых версий. В программах с классическим интерфейсом это обычно последний раздел меню «Справка». Если нет даже и такой возможности, в том же справочном разделе меню можно отыскать адрес официального сайта программы, посетить его и проверить, не появилась ли свежая версия.

3. Обновление стороннего ПО с помощью специальных программ

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

3.1. Kaspersky Software Updater

Ссылка для скачивания: http://support.kaspersky.ru/11827
Бесплатная утилита Kaspersky Software Updater от именитого создателя антивирусных продуктов – Лаборатории Касперского – создана с целью продвижения платного ПО, но в старых добрых традициях поставки качественных программных продуктов вне зависимости от условий их платности. Утилита создана по принципу «Бери и пользуйся», она с удобным интерфейсом и понятным управлением. Качество часто водит дружбу с минимализмом, вот и создатели утилиты сочли нужным ограничиться лишь сотней поддерживаемых программ из числа востребованных широкой аудиторией. Сразу же после установки Kaspersky Software Updater можем запустить поиск обновлений имеющегося в системе ПО.


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


Из прочих возможностей Kaspersky Software Updater – пакетное обновление всех обнаруженных программ в один клик, добавление отдельных программ в перечень исключений (больше не будут участвовать в сканировании), выбор режима поиска обновлений (всех подряд или только существенных), автоматический запуск сканирования по настроенному расписанию. Kaspersky Software Updater прописывается в автозагрузку и в фоновом режиме следит за появлением новых версий имеющегося в системе ПО.

3.2. FileHippo App Manager

Ссылка для скачивания: http://filehippo.com/download_app_manager
FileHippo App Manager – это программа из числа работающих в связке с единой базой инсталляторов софта, она является клиентским ПО софт-портала FileHippo.Com. Программу можно использовать бесплатно. Периодика сканирования на предмет обнаружения новых версий имеющегося в системе ПО настраивается сразу же при установке FileHippo App Manager. Программа загружается вместе с Windows, работает в фоновом режиме и о появлении обновлений имеющегося в системе ПО уведомляет сообщением из системного трея.
По итогам сканирования системы в окне FileHippo App Manager увидим перечень программ, для которых обнаружены новые версии. Кнопкой «Download & Run» можно скачивать новые версии и запускать их установку в систему.


Скачанные дистрибутивы новых версий ПО FileHippo App Manager хранит в специальной папке. При необходимости ее путь, по умолчанию заданный на диске C:\, можно сменить, чтобы дистрибутивы хранились, например, на одном из несистемных разделов.


3.3. SoftSalad Monitor

Ссылка для скачивания: http://www.softsalad.ru/software/softsalad-monitor.html
SoftSalad Monitor – это клиентская программа софт-портала Softsalad.Ru. С ним работают и другие клиентские программы, но у SoftSalad Monitor есть преимущество – возможность бесплатного использования. Правда, в процессе установки программы необходимо тщательно отслеживать, чтобы вместе с ней в систему не установились программы-попутчики.
Как и прочие программы для автоматического обновления софта, SoftSalad Monitor при установке прописывается в автозагрузку и выполняет свою работу в фоновом режиме. После установки программы автоматически запустится сканирование системы на предмет поиска новых версий имеющегося в системе ПО. В результатах сканирования возле каждой из программ списка будут доступны возможные действия – скачивание новой версии, игнор на будущее и переход на страничку Softsalad.Ru с описанием программы. Скачивание новых версий возможно в пакетном режиме.
Процесс установки новых версий ПО запускается прямо из интерфейса SoftSalad Monitor.
При необходимости в настройках программы можно сменить предустановленный путь хранения скачанного дистрибутива.


Из тройки участников обзора этот является самым функциональным решением. SoftSalad Monitor сканирует систему на предмет поиска устаревших версий не только установленных программ, но также программ портативных. SoftSalad Monitor – это еще каталог для скачивания и установки нового софта. Во вкладке «Популярные» обнаружим несколько тематических подборок наиболее востребованного ПО. А для поиска конкретных программ можно воспользоваться внутренним поисковиком SoftSalad Monitor.

Касперский объяснил, почему хакеры редко атакуют устройства на macOS

Хакеры нечасто атакуют устройства на операционной системе macOS от Apple в связи с нехваткой инженеров-программистов, которые могли бы написать необходимое ПО для этой платформы. Как сообщает ТАСС, об этом заявил основатель антивирусной компании "Лаборатория Касперского" Евгений Касперский на проходящей в Барселоне выставке мобильной электроники Mobile World Congress 2017.
"MacOS - многие считают, что это безопасная платформа, однако, к сожалению, это не так. Киберпреступники не обращают такого внимания на macOS, поскольку найти инженера Mac для разработки ПО довольно сложно", - пояснил он.

По словам Касперского, компании, занимающиеся разработкой софта, знают об этом, поскольку они сами сталкиваются с такой проблемой.

Чаще всего злоумышленники совершают атаки на устройства с Windows от Microsoft, подчеркнул Касперский. "Число уникальных атак на эту платформу исчисляется сотнями миллионов", - отметил он. В то же время платформа Android (принадлежит Google) находится под пристальным вниманием хакеров, и они тратят много времени и других ресурсов, пытаясь ее атаковать.

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

Сам Касперский пользуется старым кнопочным телефоном Sony Ericsson, который он продемонстрировал в ходе своего выступления.


Microsoft создала приложение для ввода текста глазами. Видео

Microsoft создала приложение GazeSpeak, которое позволяет на мобильных устройствах вводить текст с помощью движений глаз. Если раньше за глазами пользователя следили инфракрасные датчики, то теперь это делает камера смартфона. Это сделало систему дешевле и позволило ей работать при ярком свете.

Microsoft создала GazeSpeak

Компания Microsoft Research разработала программу, которая позволяет пользователю вводить текст на смартфоне с помощью движений глаз. В официальном релизе, разосланном компанией, решение называется Eye-gaze, однако на сайте Microsoft и в тексте самой научной работы фигурирует название GazeSpeak. Система будет представлена на конференции социально значимых технологических проектов CHI 2017, которая пройдет в Денвере, США, в мае 2017 г.

Разработчики утверждают, что GazeSpeak дешевле и удобнее в использовании, чем существующие аналоги. Программа предназначена для использования людьми с ограниченными двигательными возможностями. Пока что она работает на мобильных устройствах, где установлена iOS, выпущенных позднее 2012 г. Помимо Microsoft Research в разработке принимали участие сотрудники Университета Вашингтона.

Как и другие подобные программы, GazeSpeak следит за глазами пользователя, который смотрит на таблицу с буквами. Разница заключается в том, что раньше для отслеживания движений глаз использовались инфракрасные датчики, а теперь для этого достаточно камеры смартфона. Комплект необходимой инфракрасной аппаратуры, во-первых, стоит порядка $5-10 тыс., во-вторых, не работает при ярком освещении. Соответсвенно, GazeSpeak, предназначенная для мобильных устройств, обходится на порядок дешевле и позволяет вводить текст даже при ярком солнечном свете. Кроме того, использование смартфона сделало всю систему менее громоздкой, избавив от необходимости использовать штативы и стенды.

Упрощенный процесс ввода

Кроме смартфона пользователю понадобится таблица с алфавитом. Процесс выбора нужной буквы в GazeSpeak также претерпел изменения. Работая с аналогичными системами, пользователь одним движением глаз выбирает группу символов, вторым – конкретную букву в группе, то есть выбор происходит по тому же принципу, что и в кнопочном телефоне. GazeSpeak позволяет ограничиться в процессе выбора буквы одним-единственным движением глаз. Для удобства символы сгруппированы в четыре группы, что позволяет пользователю быстрее их находить. Чтобы удалить букву, нужно моргнуть левым глазом, чтобы подтвердить правильность ввода слова – правым.



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

Разработчики утверждают, что GazeSpeak позволяет набрать предложение за 1,5 минуты. Для сравнения – более дорогие системы того же назначения тратят на это более чем 2 минуты. Microsoft заявляет, что участники тестирования находят GazeSpeak «менее сложным и более приятным способом ввода».

Технические особенности

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

Технология GazeSpeak позволяет распознать 6 движений глаз: вверх, вниз, вправо, влево, взгляд в центр, моргание. Система отличает моргание левым и правым глазом. Механизм распознавания написан на C++ с использованием открытых библиотек Dlib и OpenCV. Скорость распознавания для iPhone в зависимости от конкретной модели варьируется от 17 до 27 изображений в секунду. Для различных моделей iPad она составляет от 16 до 34 изображений в секунду.

В тестировании GazeSpeak участвовали 12 человек разного типа внешности в возрасте от 20 до 44 лет. Система обеспечила среднюю точность распознавания жестов глазами на уровне 86%.

понедельник, 27 февраля 2017 г.

Киевский университет им.Шевченко. Красный (центральный) корпус. Коридоры / Фото из личного архива

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


Смотри также:

Реализация ООП-наследования в классах, работающих с SQL и MS Entity Framework / Базы данных

Эта статья посвящена созданию модели данных, которая красиво ложилась бы на SQL и содержала в себе «правильное» ООП наследование. Надо сказать, что эта задача возникала у меня в разное время на разных проектах, и решалась она там тоже по-разному. Названия подходов взяты из сложившейся на соответствующих проектах терминологии.

Подход №1: По умолчанию

Самый простой способ заключается в том, чтобы полностью довериться механизму Entity Framework. Если создать пустой проект, а в нём – пустую модель данных, в которую добавить классы, на основании которых будет сгенерирована база данных, получится примерно следующее (инструмент — Visual Studio 2012):

После создания в SQL Server будет находиться следующая модель данных:


Что ж, весьма оптимально, надо признать. Единственное, что смущает – это специфичные имена таблиц. Вот соответствующие скрипты для создания таблиц базы данных, полученные с помощью инструмента «Tasks/Generate scripts»:

CREATE TABLE [dbo].[ASet](
 [Id] [int] IDENTITY(1,1) NOT NULL,
 [AAA] [nvarchar](max) NOT NULL,
 CONSTRAINT [PK_ASet] PRIMARY KEY CLUSTERED 
(
 [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

CREATE TABLE [dbo].[ASet_C](
 [CCC] [nvarchar](max) NOT NULL,
 [Id] [int] NOT NULL,
 CONSTRAINT [PK_ASet_C] PRIMARY KEY CLUSTERED 
(
 [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

CREATE TABLE [dbo].[ASet_B](
 [BBB] [nvarchar](max) NOT NULL,
 [Id] [int] NOT NULL,
 CONSTRAINT [PK_ASet_B] PRIMARY KEY CLUSTERED 
(
 [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]


ALTER TABLE [dbo].[ASet_C]  WITH CHECK ADD  CONSTRAINT [FK_C_inherits_A] FOREIGN KEY([Id]) REFERENCES [dbo].[ASet] ([Id]) ON DELETE CASCADE
ALTER TABLE [dbo].[ASet_C] CHECK CONSTRAINT [FK_C_inherits_A]

ALTER TABLE [dbo].[ASet_B]  WITH CHECK ADD  CONSTRAINT [FK_B_inherits_A] FOREIGN KEY([Id]) REFERENCES [dbo].[ASet] ([Id]) ON DELETE CASCADE
ALTER TABLE [dbo].[ASet_B] CHECK CONSTRAINT [FK_B_inherits_A]

Смущают в этом подходе только имена таблиц.

Подход №2: Classification

Этот способ показывает, как делали раньше, когда небо было выше, а динозавры ещё писали программы на фортране. (Признаться, мне казалось, что в эпоху MS SQL Server 2005 и Visual Studio 2008 я получил именно такой результат с помощью «Generate Database from Model» из Entity Framework.)


Скрипты и database-first модель данных я опущу, так как они достаточно тривиальны. Минус приведённого подхода очевиден. Как только у классов B и C вырастает количество столбцов, не относящихся к предку A (особенно, если это поля char[]-типа постоянного размера), то место на диске, занимаемое таблицей, начинает резко расти при том, что доля полезной информации в этом кладбище байт пропорционально сокращается. Нормализация? – не, не слышали… К сожалению, в силу исторических причин (например, для поддержания обратной совместимости), такие схемы всё ещё встречаются в крупных enterprise-проектах, разработка которых ведётся на протяжении нескольких лет. Но в новых разработках так поступать явно не стоит. Пожалуйста…

Подход №3: Polymophic View


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

CREATE VIEW [A] AS SELECT * FROM (
SELECT [AID] AS ID, 1 AS [ClassID], [AAA] FROM [B]
UNION ALL
SELECT [AID] AS ID, 2 AS [ClassID], [AAA] FROM [C]
) Q

Очевидно, что поля таблиц B и C такой запрос получить не позволяет. Можно в него засунуть ещё и получение этих самых столбцов BBB и CCC, в результате чего ответ с кучей NULL-ов станет сильно похож на вариант Classification:

CREATE VIEW [A] AS SELECT * FROM (
SELECT [AID] AS ID, 1 AS [ClassID], [AAA], [BBB], NULL AS [CCC] FROM [B]
UNION ALL
SELECT [AID] AS ID, 2 AS [ClassID], [AAA] , NULL AS [BBB], [CCC] FROM [C]
) Q

Подход №4: Иерархические таблицы


Лично моё двухколёсное педально-рулевое решение заключается в создании отдельной таблицы для каждого класса-потомка, которые будут связаны с таблицей класса-родителя связями «1-к-1».


Очевидно, что поддерживать целостность такой схемы придётся с помощью триггеров, которые будут вырезать записи из родительской таблицы при удалении соответствующих детей (и наоборот) и контролировать добавление/редактирование записей, чтобы ребёнку из таблицы X соответствовала запись родителя с типом «X», а не, например, «Y».

Так как я люблю использовать в своих проектах Entity Framework, для создания соответствующей структуры классов мне приходится прилагать дополнительные усилия. Параллельно с классами из папки «Entity», куда попадает database-first сгенерированный код, имеется ещё папка «BusinessLogic», классы в которой имеют уже более внятные связи. Вот как делается код преобразования «Entity Framework → Business Logic» и «Business Logic → Entity Framework».
  1. Создаём интерфейс IA в папке «Entity».

    public interface IA
    {
     A A
     { get; }
    
     EntityReference<A> AReference
     { get; }
    }
    
  2. Наследуем от него автосгенерированные классы B и C, лежащие в той же папке.
  3. Создаём enum с названием типа AClassEnum, в который переписываем фактически все строки из таблицы Class.
  4. В папке «BusinessLogic» создаём классы abstract A, B:A и C:A. (Кстати, делать A абстрактным не обязательно – просто у меня так получалось в силу требований.)
  5. Пишем примерно следующее:

    public abstract class A
    {
     public long ID
     { get; set; }
    
     public abstract ClassEnum Class
     { get; }
    
     public string AAA
     { get; set; }
    
     protected A()
     { }
    
     protected A(Entity.IA a)
     {
      if (!a.AReference.IsLoaded)
      {
       a.AReference.Load(MergeOption.NoTracking );
      }
      if (a.A.ClassID != (byte) Class)
      {
       throw new Exception("Class type {0} instead of {1}!", a.A.Class, (ClassEnum) a.A.ClassID));
      }
      ID = a.A.ID;
     }
    
    
     public Entity. A CreateA()
     {
      return new Entity.A
      {
       ClassID = (byte) Class,
      };
     }
    }
    
    public class B : A
    {
     public string BBB
     { get; set; }
    
     public override ClassEnum Class
     { get { return ClassEnum.B; } }
    
     public B()
      : base()
     { }
    
     public B(Entity.B b)
      : base(b)
     {
      BBB = b.BBB;
     }
    
     public override Entity.B ToEntity()
     {
      return new Entity.B
      {
       A = CreateA(),
       BBB = BBB,
      };
     }
    }
    
    
Преимущества по сравнению с:

  • … подходом по умолчанию – более красивые имена таблиц
  • … таблицей «классификации» – меньший объём данных
  • … вьюшкой – всё красиво импортируется в Entity Framework
Понятно, что предложенный подход ни разу не является «золотой пулей». Тем более при том, что метод «по умолчанию» отрабатывает настолько хорошо. Но я думаю, что он может-таки кому-нибудь пригодиться в каких-либо специфических обстоятельствах.

воскресенье, 26 февраля 2017 г.

Киевский университет им.Шевченко. Красный (центральный) корпус. Витраж / Фото из личного архива

Смотри также:

Тостер.ru - вопросы и ответы для IT-специалистов / Первокурснику IT-шнику

Не все IT-шники, я думаю, знают о существовании сайта, специализирующегося именно на вопросах-ответах для IT-специалистов. А он, оказывается, имеется и называется Тостер https://toster.ru/ 


Думается, многим начинающим IT-шникам он будет очень полезен, поскольку на нем Ведь на «Тостере» можно получить ответ на вопрос по любой теме IT от участников сообщества, хорошо разбирающихся в этой теме.
Так что - присоединяйтесь.


Смотри также:

суббота, 25 февраля 2017 г.

Да не медвежонок, а щенок! / Забавные и милые


Есть вопросы? Сервис TheQuestion к твоим услугам / Интересные и полезные интернет-ресурсы

Я думаю, что очень многим известно про популярный и долгоживущий сайт вопросов и ответов "Ответы Mail.ru". Но, думаю, не все знают про то, что имеется еще достаточно много других аналогичных сервисов. Среди русскоязычных сервисов-аналогов можно назвать TheQuestion, который некоторые пользователи-вопросанты вообще считают по качеству ответов лучшим. Так что, если возникнет у вас неразрешимый вопрос, то вам сюда: https://thequestion.ru/ru/feed


Смотри также: