Aktualności

Zaproszenie na 108 spotkanie WG.NET

opublikowane: 13 cze 2017, 04:16 przez Michał Grzegorzewski

Zapraszamy wszystkich na kolejne spotkanie grupy, które tym razem odbędzie się wyjątkowo we wtorek, 20.06 o godzinie 18.00 w sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Mamy w planach dwie prezentacje, szczegóły poniżej:

1. Mateusz Piasecki - Dlaczego warto mieć swoją apkę w Sklepie i dlaczego najlepiej na Windows

Opis:
Bardziej szczegółowo: dlaczego ja opisuje, po co interesować się pisaniem swoich aplikacji, dlaczego Windows (droga do Win 10 UWP, porównanie możliwości z iOS i Androidem), technologie, próg wejścia, przebijanie się na rynku, utrzymanie, monetyzacja,  efekty.

2. Sebastian Gębski - Coupling, czyli o kodzie, który sam się plącze, gdy nie patrzysz

Opis:
Trudno znaleźć programistę, który nie słyszał słowa "coupling". Wszyscy wiedzą, że to właśnie coupling rozdmuchuje zakres prostych zmian w kodzie, generuje dług techniczny,  utrudnia automatyzację testów, zwiększa inflację, powoduje kwaśnienie mleka oraz wywołuje efekt cieplarniany ... W praktyce okazuje się, że coupling rozumiemy przede wszystkim intuicyjnie (często błędnie, bo zło ma niejedno oblicze ...) i identyfikujemy zwykle dopiero wtedy, gdy wymyka się spod kontroli.
Celem prezentacji będzie wgłębienie się w temat i wyjaśnienie kluczowych kwestii: Czym naprawdę jest coupling? Kiedy występuje (i kiedy wybucha w twarz)? Czy zawsze jest (tak samo) szkodliwy? Jak mu przeciwdziałać, albo chociaż uniknąć jego skutków? Czy programowanie funkcyjne jest arcysprytnym sposobem uniknięcia couplingu?
Aby poznać odpowiedzi na te pytania odbędziemy swoistą podróż przez czas, pamięć, wątki, procesy, a nawet fazy dostarczania oprogramowania. Będziemy się posiłkować przede wszystkim dużą ilością praktycznych przykładów z życia wziętych i niezliczoną ilością diagramów UML-opodobnych.

Agenda:
1. Wizja lokalna - coupling w środowisku naturalnym
2. Kapling i kohezja, czyli o czym właściwie mówimy
3. Skalowanie niejeden ma wymiar
4. Cohesion: czyli jak grupować
5. Coupling w (więcej niż) 5-ciu smakach
6. Ku przestrodze ...
7. Jak robić, żeby było dobrze (w sumie)

Wstęp wolny, zapraszamy!

Zaproszenie na 107. spotkanie WG.NET

opublikowane: 12 kwi 2017, 02:29 przez Michał Grzegorzewski

Zapraszamy wszystkich na kolejne spotkanie grupy, które odbędzie się w czwartek, 20.04 o godzinie 18.00 w sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Mamy w planach dwie prezentacje oraz snack, szczegóły poniżej:

1. Grzegorz Wiśniewski - Krótka historia: identyfikatory, snack

Agenda:
Podczas krótkiego wystąpienia opowiem o swoich doświadczeniach związanych z nadawaniem poprawnego typu dla identyfikatorów.

2. Michał Szafrański - Mac dla programistów .NET

Agenda:
Prezentacja możliwości pracy programistów .NET w systemie macOS.
Odpowiem na pytanie "dlaczego możemy śmiało przesiadać się na Maca będąc programistą .NET?”. Zaprezentuję jakie narzędzia mamy dostępne na Macu, które są używane w Windows oraz zachęcę do przesiadki i wykorzystania produktywności, jaką daje system macOS.

Bio:
Michał Szafrański, entuzjasta produktów firmy Apple, zafascynowany możliwościami automatyzacji macOS-a, zwiększania produktywności z wykorzystaniem Maca. Długo pracujący w zespole Technologii i Standaryzacji w LUX MED. Obecnie Software Engineer w Accenture, projektujący i tworzący system dla banku PKO BP.

3. Adam Sitnik - Moja niesamowita przygoda z Open Source

Agenda:
Przez wiele lat społeczność .NETa była zamknięta wraz ze swoim ulubionym framework’iem. Niedawno wszystko zaczęło się zmieniać. Wszystkie najważniejsze komponenty ekosystemu .NET jak kompilatory, maszyna wirtualna i ASP.NET są teraz otwarte.
Czy zastanawiałeś się czy samemu nie zacząć się udzielać?
Chciałbyś, ale nie wiesz od czego zacząć?
Podczas tej prezentacji opowiem o mojej niesamowitej przygodzie z OSS, która na dobre zmieniła moje życie i podejście do programowania. Podzielę się moimi doświadczeniami i przemyśleniami, które pomogą odpowiedzieć na takie pytania jak:
- Dlaczego warto zacząć?
- Od czego zacząć?
- Czego unikać?
- Czego można się nauczyć?
- Co można zyskać?
- Na czym warto się skupić?
- Jakie są wady?
- Co może Cię zaskoczyć?

i wiele innych..
O mnie: Pasjonat technologii .NET, kontrybutor BenchmarkDotNet, CoreCLR i corefxlab.

Wstęp wolny, zapraszamy!

Zaproszenie na 106. spotkanie WG.NET - Unconference

opublikowane: 2 mar 2017, 01:58 przez Michał Grzegorzewski

Marzec to trzeci miesiąc z rzędu, gdy kolejna osoba blisko związana z WG.NET uzyskuje tytuł MVP. Tym razem jest to Piotr Stapp, któremu serdecznie gratulujemy! :)

Zapraszamy wszystkich na drugą odsłonę Unconference WG.NET, która odbędzie się w czwartek, 23.03 o godzinie 18.00 w innym niż dotychczas miejscu. Przeniesiemy się do dużej przestrzeni w Centrum Warszawy, zapewnionej nam przez firmę Demant Technology Centre, w budynku Q22, Al. Jana Pawła II 22. W planach, zamiast tradycyjnych prezentacji, mamy jedną pozycję w formacie "unconference".

Co to jest unconference:

Unconference jest lekką formą konferencji. Podczas spotkania słuchacze uczestniczą w niej w znacznie większym stopniu, prowadząc dyskusje w małych grupach. Ważnym elementem tego formatu spotkania jest możliwość zgłoszenia własnych tematów przez słuchaczy a następnie poprowadzenia dyskusji/prezentacji z danego tematu. Aby ograniczyć 'prezentacyjność' i zwiększyć zaangażowanie uczestników, grupy powinny skupiać się w kręgu, natomiast prowadzący dany temat (jeżeli zachodzi taka potrzeba) powinien używać jedynie flipboarda. Pojedyncze sesje są krótkie, ok 30-40 minut, a używanie slajdów, czy komputera jest zabronione.

Czy muszę się zgłaszać z tematem?


Nie musisz się zgłaszać z tematem. Jeżeli jednak masz coś ciekawego do powiedzenia, albo uważasz jakąś technologię za niedocenianą, to może być to świetnym tematem jednej z sesji.

Czy muszę się rejestrować na spotkanie?


Tak. Ze względu na ograniczoną przestrzeń, przy bramkach do budynku będziemy sprawdzać czy się zapisałaś/-eś

Kto na pewno pojawi się z tematami?

TBA

Kto będzie organizował spotkanie?

W moderacji wspierać nas będą:

- Tomasz Frydrychewicz
- Konrad Banaszek
- Sebastian Solnica

Wstęp wolny, zapraszamy!

Zaproszenie na 105. spotkanie WG.NET

opublikowane: 2 lut 2017, 04:26 przez Michał Grzegorzewski

Po najnowszych zmianach w programie MVP, do grona wyróżnionych dołączył Konrad Kokosa, który od samego początku swojej aktywności jest blisko związany z WG.NET. Tym samym świętujemy dalej i w lutym zapraszamy wszystkich na spotkanie grupy, które odbędzie się w czwartek, 9.02 o godzinie 18.00 w sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Ale zanim podamy agendę, to jeszcze jedna informacja.

W tym roku również mamy przyjemność partnerowania WROC# (wrocsharp.com) i w związku z tym mamy do rozlosowania wejściówki. Organizatorzy zmienili nieco formułę i dlatego mamy dostępną jedną wejściówkę darmową oraz 3 płatne (150zł). Jeśli chcesz wziąć udział w tej imprezie, a jesteś do tego bywalcem spotkań WG.NET, to wypełnij formularz zgłoszeniowy, a spośród zgłoszeń wylosujemy dostępne nam wejściówki

http://tnij.org/wgnetwrocsharp2017

Zgłoszenia przyjmujemy do końca tygodnia (do 2017-02-06 00:00)

A teraz nasze plany na to spotkanie:

1. Konrad Kokosa - Jak i po co skompilować .NET Core? (snack)
Czas: ~15min

2. Grzegorz Wiśniewski - Biznesowe zastosowania System.Guid (snack)
Czas: ~20-25min

3. Marian Dziubiak - F# web development
Abstrakt:
Tworzenie aplikacji webowych dość naturalnie wpasowuje się w programowanie obiektowe. Jednak takie frameworki jak ASP.NET MVC czy EF wymagają olbrzymiej ilości kodu aby stworzyć prostą aplikację. Dlatego tworzenie aplikacji może okazać się łatwiejsze w języku funkcyjnym, w F#. Przy użyciu biblioteki Suave można w prosty i funkcyjny sposób tworzyć aplikacje webowe. Rozszerzając ją o DotLiquid możemy również w prosty sposób tworzyć widoki HTML. Na przykładzie projektu, który robię w ramach przedmiotu Bazy Danych (studia), chciałbym zaprezentować wam jak wygląda programowanie webowe w F#, jak działa Suave, jakie mamy zalety w porównaniu z C# i jakie miałem po drodze trudności.

4. Piotr Stapp - Pogromcy mitów: HTTP/2 i wydajność stron WWW

Abstrakt:
Wielu deweloperów pokłada nadzieje w HTTP/2, który już wkrótce ma być powszechny. Jednakże, czy wszystkie problemy zostaną magicznie rozwiązane?
Zaczniemy od historii, dotkniemy tego co jest dzisiaj, a potem skupimy się na najbliższej przyszłości. Uwzględniając m.in: HTTP/2, FLIF i WebP czy Google HTML/CSS Style Guide.
Kilka mitów i pseudo-faktów zostanie sprawdzonych i obalonych na żywo.
Czas: ~1h

Wstęp wolny, zapraszamy!

Zaproszenie na 104. spotkanie WG.NET - MVP Party!

opublikowane: 10 sty 2017, 03:05 przez Michał Grzegorzewski

Styczeń zaowocował kolejnymi nominacjami do prestiżowego tytułu MVP, w tym dwiema w kategoriach deweloperskich. Jednym z nagrodzonych jest lider Warszawskiej Grupy .NET - Szymon Kulec, drugim - lider Wrocławskiej Grupy .NET - Paweł Łukasik.
W czasie najbliższego spotkania będziemy wspólnie ze świeżo upieczonymi MVP świętować to wydarzenie i w związku z tym zapraszamy wszystkich w czwartek, 19 stycznia na godzinę 18.00 do sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Planujemy dwie prezentacje oraz mały poczęstunek. Poniżej szczegóły.

1. Paweł Łukasik - Hakowanie ILa


W codziennej pracy używamy .NETa kodując w C#, F# czy VB. Ale siedzący pod spodem IL daje nam trochę większe możliwości niż to co mamy dostępne na co dzień. W prezentacji pokażę przydatne, nieprzydatne oraz ciekawe możliwości które daje nam IL jeśli tylko pozwolimy sobie na jego poznanie.

Blog: http://blog.octal.pl/

2. Szymon Kulec - Keep Its Storage Simple Stupid
an opinionated guide to NoSQL with Azure Storage and Event Driven Architecture


Podczas prezentacji podzielę się z Wami wnioskami z projektu w podejściu SAAS, bazującego na podstawowym serwisie chmury Azure, Windows Azure Storage. Zaczniemy od tego, co oferują wybrane serwisy i tego jakie mają ograniczenia. Następnie przejdę przez założenia projektu, które go ukształtowały i omówię architekturę zbudowaną tak, aby tanio i sprawnie zaadresować wcześniej pokazane potrzeby. To, co istotne, to fakt, że zaprezentowane techniki projektowania zastosować można nie tylko w Azure Storage, ale także używając innych baz NoSQL i rozwiązań chmurowych.

Blog: https://blog.scooletz.com
Twitter: https://twitter.com/scooletz

Proszę o w miarę możliwości jak najszybszą odpowiedź na zaproszenie - ułatwi nam to przygotowanie spotkania.

Wstęp wolny, zapraszamy!

Zaproszenie na 103. spotkanie WG.NET

opublikowane: 8 gru 2016, 07:10 przez Michał Grzegorzewski

Zapraszamy wszystkich na kolejne spotkanie grupy, które odbędzie się w czwartek, 15.12 o godzinie 18.00 w sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Mamy w planach dwie prezentacje, szczegóły poniżej:

1. Piotr Gankiewicz - Warden - monitorowanie zasobów i aplikacji
Przewidywany czas: 50 min.

Abstrakt: Monitorowanie aplikacji oraz szeroko pojętych zasobów (bazy danych, pliki, procesy, API itp.) to coś z czym prawie każdy z nas ma do czynienia na co dzień. Mnogość usług jak NewRelic, AppDynamics lub Nagios daje poczucie, że można zrobić praktycznie wszystko i zabezpieczyć się przed każdą ewentualnością ale czy na pewno? Co jeżeli chcemy wykonać jakąś niestandardową akcję np. uruchomić kawałek własnego kodu lub jakiś skrypt? Czy jesteśmy zmuszeni do pisania własnej aplikacji-monitora? Zaprezentuję projekt open source o nazwie Warden (https://getwarden.net), który rozwijałem (i nadal rozwijam) w ramach konkursu "Daj Się Poznać 2016". Przedstawię liczne rozszerzenia  dostępne jako paczki NuGet, które w łatwy i szybki sposób pozwalają stworzyć aplikację służącą do monitorowania dowolnych zasobów. Opowiem również o planach związanych z rozwojem nowego API oraz aplikacji webowej docelowo umożliwiającej wgląd w metryki, dane historyczne i konfigurację Wardena bez konieczności znajomości programowania.

Bio: Pasjonat platformy .NET, języka C#, technologii webowych, a od niedawna również Dockera i mikroserwisów.
Podwójny zwycięzca konkursu "Daj Się Poznać 2016" (nagroda główna + nagroda od Microsoft), bloger (http://piotrgankiewicz.com) i kontrybutor open source https://spetz.github.io. Z wykształcenia mgr inż. informatyki po AGH (niedoszły oficer Wojska Polskiego), dodatkowo zakręcony w temacie sportów walk i siłowo-wytrzymałościowych, zdrowego trybu życia. W wolnym czasie (głównie letnim) motocyklista.

2. Dariusz Pawlukiewicz - CQRS & Event Sourcing
Przewidywany czas: 50-55 min.

Abstrakt: Command Query Responsibility Segregation (CQRS) oraz Event Sourcing to ostatnimi czasy "buzz words" w branży IT. Oprócz niepodważalnych zalet płynących ze stosowania tych dwóch rozwiązań w społeczności pokutuje stwierdzenie, że sam koncept jak i implementacja są niemalże trywialne. Czy aby na pewno? Podczas prezentacji postaramy się wspólnie dowiedzieć czym oba te podejścia są, jakie korzyści płyną z ich stosowania, jak możemy dzięki nim zaprojektować nasz system oraz postaramy się odpowiedzieć na pytanie czy wszystko jest rzeczywiście tak proste jak się to przedstawia.

Bio: Programista pasjonat. Za sprawą konkursu "Daj Się Poznać" świeżo upieczony blogger oraz podcaster. Uwielbia poznawać nowe, ciekawe technologie i nie boi się używać ich w swoich projektach. Fan TypeScript oraz frameworku Aurelia. Entuzjasta DDD, CQRS i Event Sourcingu. Na co dzień pracuje jako Full Stack Developer w firmie Connectis_.

Wstęp wolny, zapraszamy!

Zaproszenie na 102. spotkanie WG.NET

opublikowane: 10 lis 2016, 01:44 przez Michał Grzegorzewski

Zapraszamy wszystkich na kolejne spotkanie grupy, które odbędzie się w czwartek, 17.11 o godzinie 18.00 w sali 107 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Mamy w planach jedną prezentację oraz snacki, szczegóły poniżej:

1. Krzysztof Zmorzyński - Model unbinders w T4MVC i wydajność Html.ActionLink w ASP.NET MVC (snack)

2. Marian Dziubiak - Dotnetowiec na Linuxie (snack)

Opis: Jak wygląda sytuacja z tworzeniem aplikacji .NET na Linux oraz jakie istnieją narzędzia dla programistów na tej platformie.

3. Adam Sitnik - Exceptional Exceptions in .NET

Abstrakt:
Przez ostatnich kilka lat tworzyłem krytyczne oprogramowanie dla branży energetycznej. Były to między innymi system odpowiedzialne za zapobieganie brakom dostaw prądu, wykrywanie krytycznych zdarzeń czy aktualnie automatyczne handlowanie energią na giełdzie. W tym czasie spotkałem się z wieloma różnymi przypadkami krytycznymi, które wynikały z wyjątkowego i mało intuicyjnego zachowania CLR.
Podczas tej prezentacji omówię:
- Wyjątkowe rzeczy w obsłudze wyjątków
- Constrained Execution Regions
- Wyjątkowe wyjątki
- Kwestie wydajności pod kątem obsługi wyjątków
Dowiecie się między innymi tego w jakich warunkach bloki finally się nie wykonają, jakich wyjątków nie można przechwycić, które zostaną ukryte, które zostaną pominięte i jak można je sprowokować ;) Ponadto opowiem jak wszystkie elementy obsługi wyjątków wpływają na wydajność i co można z tym zrobić.

Twitter: https://twitter.com/SitnikAdam
GitHub: https://github.com/adamsitnik

O mnie: Pasjonat technologii .NET, kontrybutor BenchmarkDotNet, CoreCLR i corefxlab.

Wstęp wolny, zapraszamy!

Zaproszenie na 101. spotkanie WG.NET

opublikowane: 13 paź 2016, 07:29 przez Michał Grzegorzewski

Zapraszamy wszystkich na kolejne spotkanie grupy, które odbędzie się w czwartek, 20.10 o godzinie 18.00 w sali 107 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Mamy w planach dwie prezentacje, szczegóły poniżej:

1. Adam Kruszewski - RevDeBug, a new reverse debugger for .NET

Agenda
- pains of debugging
- what is a reverse debugger?
- demo of reverse debugging in action
- summary
- questions and answers

2. Sean Farmar - SOA lessons learnt (OR Microservices done better)

Service Oriented Architecture has been around for a while, now Microservices is the new black, that’s cool, but can we learn from when we failed and succeeded implementing SOA? There are some really useful lessons we can take and avoid the pitfalls.

Sean Farmar holds the world record for answering the most NServiceBus questions - even more than Udi. With over 20 years of experience, he specializes in providing simple solutions for complex business requirements using NServiceBus and applying SOA principles inspired by Udi Dahan. As a solution architect with Particular Software, the creators of NServiceBus, Sean provides support, training and consulting for customers using NServiceBus and the Particular Platform.

Blog: http://seanfarmar.com
Twitter: https://twitter.com/farmar
github: https://github.com/sfarmar
LinkedIn: https://ie.linkedin.com/in/seanfarmar

Oba tematy zostaną zaprezentowane w języku angielskim.

Wstęp wolny, zapraszamy!

Zaproszenie na 100. spotkanie WG.NET

opublikowane: 19 wrz 2016, 01:23 przez Michał Grzegorzewski

Zapraszamy wszystkich na setne już spotkanie grupy, które odbędzie się w czwartek, 22.09 o godzinie 19.00 w innym niż dotychczas miejscu. Przeniesiemy się do dużej przestrzeni niedaleko Dworca Gdańskiego, zapewnionej nam przez firmę AVIVA. W planach, zamiast tradycyjnych prezentacji, mamy jedną pozycję w formacie "unconference". Podczas pierwszej rundy spotkania pojawią się:

1. Bartosz Sypytkowski
Inżynier i kontrybutor projektów open source. Miłośnik programowania funkcyjnego i systemów rozproszonych.

2. Konrad Kokosa
Architekt w banku Millennium zamiłowany w architekturze, wydajności i Software Craftmanship.

3. Paweł Zdziech 7N
Rekruter IT od 2005 roku. Rekrutował dla kilkudziesięciu firm, widział kariery zawodowe setek developerów.

Co to jest unconference:

Unconference jest lekką formą konferencji. Podczas spotkania słuchacze uczestniczą w niej w znacznie większym stopniu, prowadząc dyskusje w małych grupach. Ważnym elementem tego formatu spotkania jest możliwość zgłoszenia własnych tematów przez słuchaczy a następnie poprowadzenia dyskusji/prezentacji z danego tematu. Aby ograniczyć 'prezentacyjność' i zwiększyć zaangażowanie uczestników, grupy powinny skupiać się w kręgu, natomiast prowadzący dany temat (jeżeli zachodzi taka potrzeba) powinien używać jedynie flipboarda. Pojedyncze sesje są krótkie, ok 30 minut, a używanie slajdów, czy komputera jest zabronione.

Czy muszę się zgłaszać z tematem
Nie musisz się zgłaszać z tematem. Jeżeli jednak masz coś ciekawego do powiedzenia, albo uważasz, jakąś technologię za niedocenianą, to może być to świetnym tematem jednej z sesji.

Wstęp wolny, zapraszamy!

Zaproszenie na 99. spotkanie WG.NET

opublikowane: 16 cze 2016, 06:45 przez Michał Grzegorzewski

Zapraszamy wszystkich na kolejne spotkanie grupy, które odbędzie się w czwartek, 23.06 o godzinie 18.00 w sali 329 Wydziału Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, ul. Koszykowa 75. Mamy w planach jedną prezentację oraz dwa snacki, szczegóły poniżej:

Snacks:
1. Marcin Śmiałek - .NET Framework Out-of-Band - kolekcje

2. Sebastian Solnica - Diagnostyka deadlocków
Opis: Podczas snacka zdiagnozujemy "ciekawy" przykład zawiśnięcia aplikacji używając windbg i deasemblera (na razie nie powiem jakiego - mam nadzieję  że będzie niespodzianka:)). Przy okazji przyjrzymy się jak działa Monitor.Enter i spiszemy plan działania na takie okazje.
Czas: 30-40 min.

Prezentacja
1. Szymon Warda - Grafy, czyli Neo4j w praktyce.

Opis:
Praktyka grafów z Neo4j, czyli wszystko co wychodzi jak hype opadnie.
Od największych WTF przy modelowaniu po dobre praktyki w przedstawianiu świata jako grafy.
Od działania indeksów, przez plan zapytań, aż po to jak pisać wydajne zapytania w Cypher i podawać hinty.
Do tego gdzie, kiedy i jak wpasować Neo4j do wielopersystentnego środowiska, czyli integracja, komunikacja i administracja.
To wszystko na przykładach i własnych doświadczeniach.

Bio:
Z .NET od wersji 1.1, a z webem od czasów kiedy IE6 był tą lepszą przeglądarką. Przez pierwsze pół dnia główny architekt w ITMagination, drugie pół jako odpowiedzialny za jeden z większych projektów .net w Polsce. Tam architekt/team leader/developer/devops/człowiek od rozwiązywania problemów. Po pracy (trzecie pół) rozwijam pet project http://cookit.pl gdzie realizuję mokry sen nie jednego programisty - procesuję setki gigabajtów danych korzystając z tego co najlepiej pasuje do problemu (Bazy grafowe/ML/C#/F#/PowerShell/Lucene itp) Bywalec konferencji, prelegent Warszawskiej Grupy .NET, blogger (IndexOutOfRange.com) 

Wstęp wolny, zapraszamy!

1-10 of 61