[PL] Trójmiejskie grupy technologiczne

This post is also available in English.

Miałem taki post w głowie od dłuższego czasu, a dodatkowego kopa dał mi wpis Gutka o Warszawskich grupach programistycznych. Problem polega na tym, że nie ma jednego miejsca, gdzie znajdować te grupy. Ich strony są rozrzucone po meetupie, fejsbuku i innych miejscach. To jest prawdopodobnie niekompletna lista grup działających w Trójmieście. Jeżeli kogoś pominąłem, lub informacje są nieaktualne/niekompletne, daj znać – poprawię.

Trójmiejska Zawodowa Grupa .NET www
Tematyka: .NET, ogólnie o programowaniu
Gdzie: Zieleniak, Gdańsk
Kiedy: Każda druga środa miesiąca

Grupa .NET Politechniki Gdańskiej (grupa studencka) www || facebook
Tematyka: .NET, ogólnie o programowaniu, przedsiębiorczość
Gdzie: Politechnika Gdańska
Kiedy: brak stałych terminów, spotkania odbywają się dośc często

Cocoaheads Tricity facebook
Tematyka: iOS, mobile UX
Gdzie: Pomorski Park Naukowo Technologiczny, Gdynia
Kiedy: brak stałych terminów, spotkania mniej więcej co miesiąc

Google Developers Group Tricity www || facebook
Tematyka: Android
Gdzie: Pomorski Park Naukowo Technologiczny, Gdynia
Kiedy: brak stałych terminów, spotkania mniej więcej co miesiąc

Java User Group Trójmiasto www || facebook || twitter
Tematyka: Java, JVM, ogólnie o programowaniu
Gdzie: Gdański Inkubator Przesiębiorczości Starter
Kiedy: brak stałych terminów, spotkania mniej więcej co miesiąc

meet.js Gdańsk www || facebook || twitter
Tematyka: JavaScript, frontend
Gdzie: Gdański Park Naukowo Technologiczny
Kiedy: Brak stałych terminów. Spotkania w Gdańsku odbywają się mniej więcej co dwa miesiące.

Geek Girls Carrots www || facebook
Tematyka: ogólnie technologicznie, ogólnie o programowaniu, women in technology
Gdzie: Gdański Park Naukowo Technologiczny ; Pomorski Park Naukowo Technologiczny Gdynia
Kiedy: Brak stałych terminów, spotkania mniej więcej co miesiąc

TRUG www
Tematyka: Ruby, Rails, web development
Gdzie: Sopot, Aleja Niepodległości 807/5
Kiedy: Trzecie środy miesiąca

PLSSUG Trójmiasto www
Tematyka: SQL Server
Gdzie: Siedziba firmy Hempel, Gdańsk, ul K. Szymanowskiego 2
Kiedy: W czwartki

Agile 3M www || facebook
Tematyka: Zarządzanie projektami, Agile
Gdzie: Klub Atelier, al. Mamuszki 2, Sopot
Kiedy: Brak stałych terminów, spotkania mniej więcej co miesiąc

Warto jeszcze wspomnieć o dwóch inicjatywach. 3Hack (www || facebook || twitter) stara się zbierać w jednym miejscu informacje o technologicznej i startupowej scenie trójmiasta. It3c także informuje o spotkaniach grup technologicznych i zamieszcza oferty pracy.

Tricity technology usergroups

Ten post dostępny  jest też po Polsku.

Tricity is the area I live in Poland. This post is to summarize technology groups that are actively meeting in the area. Post is inspired by Gutek, who wrote about Warsaw usergroups (Polish). The problem is, that you can’t find this info in one place – groups are scattered all around internet. This list is probably not complete, so if you have some information that could be added here, don’t hesitate to tell me.

Tricity Professional .NET group www
Topics: .NET, general software development
Where: Zieleniak bulding, Gdańsk
When: Every second Wednesday of a month
Language: Polish

Gdańsk University of Technology .NET group (student group) www || facebook
Topics: .NET, general software development, entrepreneurship
Where: Gdańsk University of Technology
When: no regular dates, but meetings happen very often
Language: Polish

Cocoaheads Tricity facebook
Topics: iOS, mobile UX
Where: Pomeranian Science and Technology Park, Gdynia
When: no regular dates, meetings happen around once a month
Language: English

Google Developers Group Tricity www || facebook
Topics: Android
WherePomeranian Science and Technology Park, Gdynia
When: no regular dates, meetings happen around once a month
Language: English

Java User Group Tricity www || facebook || twitter
Topics: Java, JVM, general software development
Where: Gdański Inkubator Przesiębiorczości Starter
Whenno regular dates, meetings happen around once a month
Language: Polish/English

meet.js Gdańsk www || facebook || twitter
Topics: JavaScript, frontend
Where: Gdansk Science and Technology Park
When: no regular dates, meetings happen around once every 2 months
Language: Polish/English

Geek Girls Carrots www || facebook
Topics: general technology, general software development, women in technology
WhereGdansk Science and Technology Park ; Pomeranian Science and Technology Park, Gdynia
Whenno regular dates, meetings happen around once a month
Language: Polish/English

TRUG www
Topics: Ruby, Rails, web development
Where: Sopot, Aleja Niepodległości 807/5
When: Every third Wednesday of a month
Language: Polish

PLSSUG Tricity www
Topics: SQL Server
Where: Hempel company building, Gdańsk, ul K. Szymanowskiego 2
When: Thursdays
Language: Polish

Agile 3M www || facebook
Topics: project management, agile
Where: Atelier Club, al. Mamuszki 2, Sopot
When: no regular dates, meetings happen around once a month
Language: Polish

There are also two initiatives worth mentioning. 3Hack (www || facebook || twitter) is trying to gather all relevant informations about meetings on Tricity technology and startup scene. It3c also gathers news about usergroups and technology job offers in the area (unfortunately only in Polish).

Fixing failing npm packages on Windows (i.e. microtime, forever)

I got into fun side project in node.js, and being Windows kid, I wanted to run it on my Windows dev machine. The thing is, it’s not that easy. Well, you can install node easily, and there is some tooling available too. The biggest PITA is that some packages are hard to build on Windows. And when you go through issues at GitHub, popular response seems to be “I don’t have any Windows box to test it and make it work” ;)

It took me several hours, but I managed to fix all the issues I had yesterday, so here’s my answer to some popular errors:

Error: Can’t find Python executable “python”

Npm (node package manager) uses build system called gyp, that runs some python scripts. It would be hard to find linux machine without python, but Windows folks often don’t have it, because they don’t need it. Me including. So install python first! They say 2.7 is good choice for gyp. And after that, add PYTHON env variable that points to your python catalog. Actually, it should point to your python.exe, because you’ll get another error I don’t remember right now (something about ENOENT).

MSBUILD : error MSB3428: Could not load the Visual C++ component “VCBuild.exe”

From what I read around Internets, this error affects Visual Studio 2013 users. It happens, because when you install node.js it has built-in node-gyp package. When you npm install node-gyp, this built-in instance is not updated, so you don’t have latest version. And sometimes it’s good to get latest version, i.e. to get VS 2013 support. This instruction helped me to update built-in node-gyp.

A little bit about tooling

I’m new to node.js and currently cannot decide what’s my favourite tooling. I’m switching between IntelliJ IDEA plugin, Node Tools for Visual Studio or running it manually from Powershell. All of them have their ups and downs. I like IntelliJ plugin, because it is stable and plays nicely. Node Tools for VS seems to have much potential, and integrate neatly with VS look and feel, but are *very* unstable (they’re still in alpha). One example – running project, where you lack some of the dependencies cause whole VS to crash. If you want to try them anyway, Scott Hanselman wrote nice introduction post.

Anyway, after fixing those build errors, node.js seems like something fun to learn. I may be covering this topic more in the future.

Using redis with F# on Windows

In one of my next projects I’ll probably use F# + redis mix. I wanted to try it out, to get some general idea how it will work. I had no previous experience with redis, and I’m still beginner in F#. I wanted to do some end-to-end example for saving and reading data. My idea was to get some Bitcoin price from external service, save it to local redis instance, read it back and chart.

In this blog post, I’ll show how I got there, and what I learned in the process.

Installing redis on Windows

Redis is in-memory key value store. It’s very fast and can store data in few data structures – strings, hashes, lists, sets and sorted sets. Official releases run on linux, but Microsoft Open Tech group developed and maintains experimental port to Windows. And this version I used for my tests.

I simply downloaded code from github, build solution in Visual Studio, and run redis-server.exe from project folder. If you want to test some commands with client, run redis-cli.exe. And if you have no idea, what are the commands try.redis.io has pretty cool interactive tutorial, that cover some basics. Running redis from code build on your dev machine probably is not the best idea for production – I would instead choose to deploy it on some linux server. But for testing purposes it’s perfect.

Getting data from external service

That part was pretty straightforward. I decided to get data from bitstamp.net, because they API for Bitcoin ticker is super easy to use. It has some limitations, but I’ll get to this later. So I made request to https://www.bitstamp.net/api/ticker/ and parsed it using Json type provider from FSharp.Data package (you can install it with Nuget). Json type provider is awesome. After you feed it with some sample data, you have all your fields just “dot” away.

https://gist.github.com/mlusiak/7901990

One thing I learned hard way in this part of code, is that in currentPrice you need those parentheses. Without them, F# will treat the whole block (lines 13 – 15) as calculating value and binding it to currentPrice – not as a function. And because values are immutable by default, it will always “return” the same price.

Saving results to redis

To access redis, I used ServiceStack’s redis client. ServiceStack is great framework to access all kinds of webservices. You can install ServiceStack.redis package using Nuget. It’s free to use up to 20 types.

https://gist.github.com/mlusiak/7902309

You can see three approaches I took (the only difference are first two lines). First one didn’t work – it saved “empty” data (empty strings, integers equal 0, etc.). As Demis Bellot explained to me on StackOverflow, StackService rely on writable properties, which immutable records in F# don’t have. He suggested to use [<CLIMutable>] attribute (which I did in third approach). In between I found this blog post, that used mutable keyword on type fields. This also works, but is not as elegant as the attribute, because it exposes those mutable fields also within your F# code.

Getting data from redis

This was very straightforward. No issues here. It just worked.

https://gist.github.com/mlusiak/7903099

Charting the data

To visualize this data, I used FSharp.Charting library. To make it work, you have to install it with Nuget and reference some libraries like System.Drawing and System.Windows.Forms. I also had to load FSharpCharting.fsx file.

https://gist.github.com/mlusiak/7903123

And it works!

Bitcoin price 11th Dec 2013 around 2am CET
Bitcoin price 11th Dec 2013 around 2am CET

Putting it all together

To summarize – getting data, saving to redis, reading back and charting – all in around 30 lines (excluding referencing libraries) of F#.

https://gist.github.com/mlusiak/7903762

Two more remarks about this code. I call Bitstamp API every 31 seconds, because it gives new data every 30 seconds anyway. If you call it earlier, you’ll get the same data as last time. Second thing is this whole #if INTERACTIVE block. I don’t know why, but when I run code in F# interactive without it, it screamed about no references to libraries. I thought referencing them in project would be enough, but no. And if I wanted to compile and run .fs file, than it failed to compile with #r clauses in it (because .fs file don’t support them, they work only in .fsx files). #if INTERACTIVE allowed me to test code in F# interactive mode, but still compile and run this code as program.

Any comments about code, and way I did things will be appreciated. I’m new to F# world, and I am happy to learn what I could do better.

Some useful references

http://try.redis.io/
http://fsharp.github.io/FSharp.Data/
http://fsharp.github.io/FSharp.Charting/
http://blogs.msdn.com/b/fsharpteam/archive/2012/07/19/more-about-fsharp-3.0-language-features.aspx
http://caxelrud.blogspot.com/2012/11/using-nosqlredis-in-windows-with-f.html

Øredev and NDC

Three weeks ago I was at Øredev conference in Sweden and had a great time there. I just wanted to share few thoughts about it. I won’t dive into specific talks, as there were simply too many. Just my general impression – what I liked, and what in my opinion didn’t work.

Øredev is well established, big, Scandinavian software conference. It’s held in Malmö, Sweden and this year the venue was Slagthuset – old butcher house. Really liked that place. Nice looking, spacy, wheelchair friendly.

Speaker list was long, but it kinda lacked big names. There were some rock stars, but not as many, as compared to similar in size NDC. Also level of
talks varied – some of them were awesome, but also there were some that just sucked. I liked (and wrote about already) that my new toy – F# (and
functional programming in general) were so well represented.

Usually during conferences you meet lot of great people, and Øredev was no different. I was told by people, who attended previous edition, that creating great environment for sharing knowledge has always been very important for organizers. And also – we had quite large Polish Crew, which made whole event even funnier.

Øredev usually has some theme, and this year this was “arts”. It had potential, but I think it was pulled too far. Some talks felt forcefully “artified” to match it. Also keynotes were more focused on arts, than software, which made them also “weird” and in my opinion mostly unsuccessful. I don’t think software conference realy need theme, especially if it come out so unnaturally.

I also had a chance to attend NDC earlier this year, and it’s hard not to compare those conferences. They’are similar in size, both held in Scandinavian cities with big software communities. Speaker list looked more impressive and talks were on higher level in general. NDC also had area, where you could watch talks when you were undecided. 8 screens (one for each track), you just grabbed headset, and you could switch between sessions. Now, this is slightly controversial – because you don’t get direct contact with speakers. But when you were tired and really undecided, this was good place to just take nap or switch between session to pick one. What I also liked about NDC is that there where no designated lunch times. Food was there all the time – continous delivery ;).

NDC forked this year, and there will be another instance in London. I won’t be there, but maybe you should try?

On the final note, I have subjective feeling, that I had much more fun during Oredev. In this place, I would really like to thank Emily Holweck, who made this trip possible. She convinced me to come, and helped me overcome all medical obstacles I had. She’s very committed to making Øredev great, and I believe this also impacted why I had so much fun there. Because at the end of the day it’s all about people.

Lots of love for F# during Øredev

Last week I had tons of fun (and learning!) at Øredev conference in Malmö, Sweden. My full writeup is still yet to come, but as videos are popping up, I’d like to show you how well F# and functional programming in general were represented during conference. On second day, you could do a streak of 3 F# talks one after another!

This are links to talk pages, where you can find video (or in some cases not – hope it will pop up soon), grouped by presenters, sorted randomly. Let’s start with F# focused links:

And off to less F#, but still interesting functional talks:

Bodil also gave talk on implementing your own lisp (in Clojure, of course) at nearby Foo Cafe. This was pretty hardcore, and I didn’t get much from it. But it was recorded, so smarter people will probably make use of that.

As you can see, lots of functional love. As always you could always hang out with speakers between/after sessions and ask them (in my case) some lame questions or see them hacking around. Great fun, and good opportunity to learn new stuff.

Progressive F# Tutorials in London

Yesterday I went for a crazy trip to London. At least most people would call that, because for me it was perfect. It had all I like – flying planes, meeting great people and learning new stuff. I woke up at 3 to catch 6 AM flight to London. Then take a train to center, took part in Prog F# Tutorials and then went back to airport to get on 8 PM flight. I was back home around midnight.

Prog F# Tutorials are two day F# conference organized by Skills Matter. In agenda you could find almost all the rock-stars of F# world – Don Syme, Phillip Trelford, Richard Minerich, Rachel Reese, Robert Pickering, Jon Harrop and Simon Cousins.  Unfortunately, I could only attend first day due to medical procedure planned for today, but one day is always better then none.

First talk by Jon Harrop was about adopting F# by large insurance company. He talked about what are best ways to convince people to start using F#, what worked, and what didn’t. I would like this session to be more technical, but there were still few interesting points he mentioned. After that, public split into two rooms. In main one, Rich was live coding (with help of audience) to solve Bank OCR Kata. It was entertaining, and quite interesting to see how someone puts his F# knowledge to solve problems. The other group were solving F# Koans with Rachel Reese. After lunch went to Rachel’s workshop “From Zero to Data Science”. Based on tutorials, you can find on tryfsharp.org, we were “learning by solving” some extra tasks Rachel prepared for us. For beginner like me, some of them were really challenging. Another difficulty proved to be tryfsharp.org’s capacity. Around 100 people trying stuff out there killed the server and it started throwing 503s. Anyway, this was my favorite session of the whole day. In second room Robert Pickering was doing his Undertone session. And to wrap up, Phillip did quick talk about using F# in finance. Unfortunately I didn’t get to see Don Syme’s talk planned for the morning. He got stuck in Germany and didn’t get on time. Bummer, cause I anticipated this one the most.

The whole thing took place in the crypt below old church (this was Halloween! :)). This is so great place to host conference, so different than standard grey rooms. The only problem was, that it was not really wheelchair accessible. But Theo and his Skills Matter crew helped me get there. From logistics point of view everything went pretty great. There were constantly resupplied snacks and coffee, tasty lunch and beer for the end. Wifi worked with some issues, but it hold pretty well, considering over 100 people doing queries against tryfsharp.org.

To sum up – this was a good day. I am okay to travel halfway through Europe to get to events like that. I only wish I could also be there on second day, but maybe next year. I am really happy, that I met in person and talked to some F# pros, whom before that day I only followed on twitter. And Skills matter crew are awesome, and I definitely will look to attend their events in future.

BTW, if you are based in London are into F#, check out this meetup group.

Polish dev community is in great shape.

I mentioned some time ago, that fall will be eventful. But I didn’t know about all the events. Everyday I learn about something new, and most of it looks really impressive.

During last two weeks I attended two really well organized events. First one on 12th October. This day I planned to be at leetspeak (BTW – videos are already uploaded) in Sweden, but due some health issues I had to stay home. But there were more than one backup options. There was Warsjawa (name is nice play on polish name of Warsaw – Warszawa and Java) – full day of workshop on various JVM related topics. Not for everyone, but agenda looked solid – lot’s of interesting topics. Oskar was there on some Scala workshop. I hope, he’ll do some writeup ;)

After all I chose dotNetConfPL, which was virtual conference – as name suggests – focused on .net stack. Virtual means, that session were presented on Google Hangouts (live!), and you could comment/ask questions/interact with speakers on Twitter and JabbR channel. It didn’t have this nice part of interacting with live people between and after the sessions, but there were some upsides. You could do your dishes and cook dinner while learning some unit testing stuff (ncrunch is awesome) or JavaScript magic.  All speakers were Polish (or at least they spoke Polish), but they did their talks from various parts of the world. Level of presentation was very high. Generally I was impressed, how professionally it all looked and how smoothly all worked out. Huge respect to Michał, Paweł and Jakub who organized whole event. To see how it all worked behind the scenes and see recorded sessions look at Jakub’s blog.

On next Saturday I went to Meet.js summit which took place in Gdansk – my home area. I follow Meet.js meetings for some time, but they did never fit my schedule until now. Usually meet.js consist of 2-3 talks somehow connected with JavaScript. But summit was full day conference, with food, coffee and afterparty. I won’t talk about presentations, because JS is not really my thing. I enjoyed some of them, I didn’t understand other. But whole conference was again super professional from the organisation point of view. My teammate who writes lots of  JS said, that talks were solid and well prepared.  Venue (Amber Expo – conference center next to Gdansk Football Arena) is awesome. Really nice, spacey rooms for conference and great area to mingle between sessions. I also met few friends from University and spent Saturday surrounded by passionate devs. Love it!

If you count in DevDay which took place about month ago, this shows that Polish developer’s community is in great shape. This makes me very happy.

Especially, that’s not the end. This weekend Łódż will be packed with great events. Starting on Friday with .NET user group meeting and then Mobilization conf on Saturday (free as free beer, and there are still tickets available). Then on 16th November Makerland is organizing meetup for hardware geeks. If you like to play around with Raspberry Pi, Arduino or Mindstorm, this will be interesting for you. And of course there’s Øredev in Malmo and Build Stuff in Vilnius, which both will be invaded by quite big polish crews.

So, don’t stay at home – find an event that fits you and get some knowledge!

DevDay is my favourite day.

Last weekend I attended very special event for my heart. DevDay is first developers conference I attended last year, which practically changed me into Conference Junkie. After last DevDay I felt in love with community vibe in conferences. Since then I went for many of them, counting in 33rd Degree, Leetspeak or NDC. But DevDay is special. For me, it’s the ultimate conference.

It’s awesome, because it focuses on people. You won’t find company’s advertising here. Only small logo of ABB, who sponsors whole event. It gathers great speakers and fantastic crowd of curious devs. After (and before ;) ) parties were epic. And it all basically for free. It was better organized than many paid conferences. And you can feel awesome energy coming from Michał, Rafał and their debugging crew.

In therms of talks and speakers, conference was top notch. There were two tracks, which always gives me anxiety if I choose right. The full lineup is here.

John Skeet talked about traps in basic data types in C#. It was interesting set of information, that may be useful for beginning developers. Guys who spent some time on frontlines probably new about many of them. The most interesting part for me was about how screwed up our date system is :). Then I went for Darek Dziuk’s session about how Spotify implements their agile practices. Although title suggested it’s gonna be talk about scaling, Darek told mostly about team level. This disappointed me a little, but we talked later and he explained why he took this approach. Next up I went to Code Junkie’s (one of tretton37 ninjas)  presentation about internals of Nancy. One of my favorite talks this day. I didn’t understand it all, but that’s great – means I have still a lot to learn. Then I went for Hadi Hariri’s talk. I was slightly disappointed, cause I expected something different from the talk title. But Hadi always keep his talk on the funny side, so it wasn’t boring at least. I missed next session, had great meeting with friend instead. And then the worst (in my opinion) talk came. At last moment I decided to go to Dino Esposito’s talk, and it was really bad. It was more like sale’s pitch than tech talk. Bummer, cause I heard that Stack Exchange’s Marco Cecconi’s talk was one of the best. And then beautiful gem for the wrap-up. Fantastic, full of humour story how Rob Ashton went full hippy with bunch of great life advices.

I also heard that Pat Kua’s, Paul’s and Itamar’s sessions were very good. If you’re startup person, you should also look at Ben’s experiences – seen this talk during NDC and it’s full of valuable knowledge.

One of many things I learn during this year, conferences are not really about the talks. Yeah, they’re important, cause it’s pure knowledge. But much more important is meeting new people, expanding your network and meeting even more people. They can inspire you, teach you new things, mentor you. Some of them will become your friends. This is experience, you won’t get by watching talks over the Internet. So if you go to conference, fire up your twitter, follow people and go to frickin’ parties. It’s not only about booze ;)

So if you missed, you just screwed up badly. And if you’ve been there, we’re gonna see each other next year, aye?

Fall will be eventfull

Fall is usually period packed with great conferences. Summer is slowly coming to an end and it’s time to plan, which of them are you going to attend. I put my small list of events worth considering, which are “in the area” during next few months.

Devday
When: 20th September
Where: Krakow, Poland
Sessions: http://devday.pl/Agenda
Registration: http://devday.pl/Register

Devday is one day event, 2 tracks, 12 speakers. It’s free, courtesy of ABB. Registration is open till 8pm today, so that’s last chance to fill registration form. Get creative, because attendees will be selected based on those answers. Lineup is already very impressive, although not everything has been reveled yet. Last year was a blast, and I can’t wait to go there this year too.

Leetspeak
When: 12th October
Where: Stockholm, Sweden
Agenda: http://leetspeak.se/2013/#schedule
Registration: http://leetspeak.se/2013/#registration

Leetspeak is also one day event, single track, 6 speakers. Thanks to tretton37 and other sponsors, it’s very cheap (200SEK). Tickets are on sale for two days, and most of them are already gone. Be quick, if you want to get there! I really enjoyed my weekend in Malmo last year, and I am anticipating similar this year in Stockholm.

Oredev
When: 4-8 November
Where: Malmo, Sweden
Agenda: http://oredev.org/2013/wed-fri-conference
Registration: http://oredev.org/2013/registration

Oredev is Scandinavian classic, one of the biggest and most popular conferences in Europe. It takes place in Malmo in early November. It’s quite pricey, but for the money you get three days packed with multiple tracks with awesome speakers. I’ve never been there and unfortunately won’t be there this year, but I heard mostly good stuff about this conference. If you have opportunity, it’s definitely good event to attend. Tickets are still available.

Build Stuff
When: 9-11 December
Where: Vilnius, Lithuania
Speaker list and registration: http://buildstuff.lt/

Build Stuff is Greg Young’s conference in Vilnius. It started last year as small, single track one day event. This year, it exploded into full blown 3-day Oredev-league conference, still staying within reasonable price range. It looks promising, is not very expensive, and only few hours drive from Poland. You really need a good reason not to go there.

When you choose event, and attend it remember to act accordingly. They’re great social events, from which you can get much more than just knowledge. My friends wrote a spot-on post about it. Just read second part of it.