This year Akademy was in Würzburg (shock! horror!). I think its not too far fetched to say that we pulled it successfully.
How it came to be
During last years Akademy in Thessaloniki the idea came up given the high density of KDE
people in the area to hold Akademy in Würzburg. On top we had the perfect venue in mind: two lecture halls for talks, BoF rooms
and a ample common area for people to hack and socialize. I had such thoughts in the back of my mind for a while but did not share
or go through with them.
However what Akademy does is it makes you talk to people and Tobias convinced it me that we should do it
and more people even agreed that Akademy in Würzburg would be a good idea! (Of course some of these encouragers this does not mean
work organizing Akademy like it would mean for us…) So on the second-to-last day of Akademy I sat down and wrote an email to my
former university professor to enquire about the possibility of doing Akademy in the building that we envisioned.
And just like that, after some informal talks during Akademy and a meeting at the University and sending in a proposal after the
Call for Hosts later you end up having weekly meetings to talk about and plan the next installment of Akademy.
How it did go
There were some problems but I think all in all this year Akademy went very well. I heard so much praise and positive feedback
it felt a bit surreal at first (as did Sunday evening when all the talks were done). The most stressful situation for me happened
on Sunday afternoon when I retrieved my charging phone from the team room to discover that the social event could not go ahead
as planned and trying to manage that with the rest of the team. I think the resulting evening was very nice and chill and you could feel
my relieve. I heard there was even an afterparty afterwards at the bar where we had held the welcome event.
Of course during the event there are always minor issues that need dealing with and looking out for those, dealing with them
and trying to make sure everything is running smoothly (and the stress coming these things) meant that I couldn’t (and was not in the right state of mind) to focus much on the talks. When the BoF days started this was bit better but only on Thursday after the day trip I felt in a ‘conference mood’
and was able to focus fully on the BoFs that I was attending and sit down and hack a bit. If you want to learn more about the actual conference many people have blogged about it on the planet or read the report
on the Akademy website.
In the end I think it’s fair to say that Akademy was a success. Made possible by KDE e.V. (go donate!), the sponsors, all the people of the Akademy team local and non-local,
all the Volunteers on short and on long notice an last but not least all the awesome attendees - there would be no Akademy without any people.
Thank you to you all! I am excited to learn about where next years Akademy will be (you can do it as well - it’s not hard and you get an awesome award on top) and looking forward to attending it as
‘normal Attendee’ and meeting everyone again there (if not earlier).
It contains bug fixes and graphics improvements on multiple activities.
This version adds translation for Latvian.
It is fully translated in the following languages:
Arabic
Bulgarian
Breton
Catalan
Catalan (Valencian)
Greek
UK English
Esperanto
Spanish
Basque
French
Galician
Croatian
Hungarian
Indonesian
Italian
Lithuanian
Latvian
Malayalam
Dutch
Norwegian Nynorsk
Polish
Brazilian Portuguese
Romanian
Russian
Slovenian
Albanian
Swedish
Swahili
Turkish
Ukrainian
It is also partially translated in the following languages:
Azerbaijani (97%)
Belarusian (87%)
Czech (97%)
German (96%)
Estonian (96%)
Finnish (95%)
Hebrew (96%)
Macedonian (90%)
Portuguese (96%)
Slovak (84%)
Chinese Traditional (96%)
You can find packages of this new version for GNU/Linux, Windows, Android, Raspberry Pi and macOS on the download page. This update will also be available soon in the Android Play store, the F-Droid repository and the Windows store.
classAA { public: virtualvoidprint(){ cout << "in class AA" << endl; }; };
classBB :public AA { public: voidprint(){ cout << "in class BB" << endl; }; };
voidtestDynamicCast(){ AA* a1 = new BB; // a1是A类型的指针指向一个B类型的对象 AA* a2 = new AA; // a2是A类型的指针指向一个A类型的对象
BB* b1, * b2, * b3, * b4;
b1 = dynamic_cast<BB*>(a1);// not null,向下转换成功,a1 之前指向的就是 B 类型的对象,所以可以转换成 B 类型的指针。 if (b1 == nullptr) cout << "b1 is null" << endl; else cout << "b1 is not null" << endl;
b2 = dynamic_cast<BB*>(a2);// null,向下转换失败 if (b2 == nullptr) cout << "b2 is null" << endl; else cout << "b2 is not null" << endl;
// 用 static_cast,Resharper C++ 会提示修改为 dynamic_cast b3 = static_cast<BB*>(a1);// not null if (b3 == nullptr) cout << "b3 is null" << endl; else cout << "b3 is not null" << endl;
b4 = static_cast<BB*>(a2);// not null if (b4 == nullptr) cout << "b4 is null" << endl; else cout << "b4 is not null" << endl;
a1->print();// in class BB a2->print();// in class AA
b1->print();// in class BB //b2->print(); // null 引发异常 b3->print();// in class BB b4->print();// in class AA }
on: # run automatically every 24 hours schedule: -cron:"0 */24 * * *" # allows to manually run the job at any time workflow_dispatch: # run on every push on the master branch push: branches: -main
jobs: generate: runs-on:ubuntu-latest timeout-minutes:10 steps: # generates a snake game from a github user (<github_user_name>) contributions graph, output a svg animation at <svg_out_path> -name:generategithub-contribution-grid-snake.svg uses:Platane/snk/svg-only@v3 with: github_user_name:${{github.repository_owner}} outputs:| dist/github-contribution-grid-snake.svg dist/github-contribution-grid-snake-dark.svg?palette=github-dark env: GITHUB_TOKEN:${{secrets.GITHUB_TOKEN}} # push the content of <build_dir> to a branch # the content will be available at https://raw.githubusercontent.com/<github_user>/<repository>/<target_branch>/<file> , or as github page -name:pushgithub-contribution-grid-snake.svgtotheoutputbranch uses:crazy-max/ghaction-github-pages@v3.1.0 with: target_branch:output build_dir:dist env: GITHUB_TOKEN:${{secrets.GITHUB_TOKEN}}