text:
El pasado martes se inició una encuesta en la que se pedía a los simpatizantes del proyecto KDE sus preferencias temáticas para el próximo podcast. Tras una semana de votaciones ya tenemos tema "Plasma en las distintas distribuciones", fecha definitiva (17 de julio), e invitación para la visualización en directo. Si quieres detalles, sigue leyendo.
El pasado martes 19 de julio, en la cuenta de KDE España en Twitter (@KDE_Espana) abrimos una encuesta para decidir cual sería el tema del próximo video podcast. Las opciones eran 3: KDE Neon y otras Distros, Flatpak y Snappy y Qt y KDE.
Tras una semana de votaciones ya tenemos los resultados definitivos:
Como podéis ver la imagen superior el tema más votado ha sido KDE Neon y otras Distros, tema que hemos rebautizado como "Plasma en las distintas distribuciones" aunque hablaremos de lo mismo.
Así que el próximo 27 de julio a las 18:00 a escucharnos (y vernos) en directo hablar sobre como se relaciona el escritorio Plasma con un buen número de distribuciones GNU/Linux y, por supuesto, del estado actual del proyecto KDE Neon.
Solo me queda invitaros al evento, que si no hay problemas técnicos, realizaremos utilizando los servicios de Hangout de Google+ y contestaremos, si podemos, vuestras preguntas en directo.
En un afán de acercarnos más a todos los simpatizantes de KDE hace un tiempo que empezamos a realizar podcast. En ellos varios miembros de la Comunidad KDE de España nos reunimos para hablar un poco de los diversos proyectos.
Hemos hablado de muchos temas como por ejemplo Akademy, KDE Connect, Plasma Mobile, etc.
Podéis seguirnos en el canal de Youtube de KDE España o en Ivoox, donde estamos subiendo poco a poco los audios emitidos. Esperamos que os gusten.
This announcement is also available in Italian, Spanish and Taiwanese Mandarin.
The latest updates for KDE's Plasma, Applications and Frameworks series are now available to all Chakra users, all of which have been built against the brand new Qt 5.7.0.
The Plasma 5.7.2 release provides additional bugfixes to the many new features and changes that were introduced in 5.7.0 aimed at enhancing users' experience:
Applications 16.04.3 include more than 20 recorded bugfixes and improvements to 'ark, cantor, kate. kdepim, umbrello, among others'.
Frameworks 5.24.0 include bugfixes and improvements to breeze icons, plasma framework, kio and ktexteditor, among others.
Other notable package upgrades:
pulseaudio 9.0
ccr 4.0.4
sdl2 2.0.4
libinput 1.3.1
rust 1.10.0
samba 4.3.11
mono 126.96.36.199
calibre 2.63.0
qmmp 1.1.1
qtcreator 4.0.3
wine 1.9.15
It should be safe to answer yes to any replacement question by Pacman. If in doubt or if you face another issue in relation to this update, please ask or report it on the related forum section.
Most of our mirrors take 12-24h to synchronize, after which it should be safe to upgrade. To be sure, please use the mirror status page to check that your mirror synchronized with our main server after this announcement.
Hey ! I'm making KDE Now, an application for the Plasma Desktop. It would help the user see important stuff from his email, on a plasmoid. It's similar to what Google Now does on Android. To know more, click here.
Time sure passes fast when you are enjoying something. And so, another week has passed and I'm back with another status update. Things look very very good from here on. At least, not until we decide to change something drastic that I hadn't proposed earlier😄.
Last week was rough. I was struggling with viral fever and throat infection for the better part of the week. Plus I had some other things to attend to. Nonetheless, I managed to devote the needed time on my project. I managed to create the UI of the Flight and Restaurant cards. They look good and work as expected (the dynamically loading up of things and all)
Here are the obligatory screenshots
Other than that, I'm afraid I don't have much to talk about. I still have not made the Database fix I had talked about in my earlier post. But I'll do it next.If you look at it, then in a way I have managed to successfully deliver what all I had planned initially in my proposal. This was a real confidence boost.
For the next few weeks, I plan to work on some tidbits I had left earlier (like the Database thingy I mentioned). I also might refine the UI. Plus, I also need to figure out a convenient way to make the plasmoid available for the end user in terms of his email credentials. I might look into KWallet but me and my mentor have to still talk about it.
Ending it with a request: If you are a graphics designer and have experience with making vector graphic images and want to help me out, feel free to contact me. Just comment your email id below (it's private and I moderate comments :)) and I'll contact you. I could really use your help.
Till next time
Two months into GSoC, I must say that this summer is the best in my life. I have learned a great deal of programming, went jogging every day and had fun overall in my vacation.
If you followed my blog posts, you already know that before the actual start of the GSoC coding period, to better familiarize myself with the programming languages GCompris uses and also to prove my commitment and dedication, I contributed to GCompris by solving various bugs and developing two activities. "PhotoHunter" is an activity ported from the previous GTK version of GCompris. Its goal is finding differences between two similar images.
The second activity is "Share", an authentic creation of mine. In this activity, the user is presented with a problem about a child who has some candies and wants to equally share them with his friends. The user has to drag the exact amount of candies from the left panel to the child friends' areas on the main screen.
Now for the GSoC part of my work, I am happy to announce that "Crane" is already merged, and "Alphabetical Order" is coming fast from behind – everything is finished, but it needs some more testing.
In this post I will just mention the updates brought to Crane. For a more detailed presentation on the functionality of Crane, please check my previous posts.
For adding a pedagogical side to this activity, I decided to use as starter levels some easy words consisting of image letters connected one to the other. The user's goal is to reproduce the model and by doing so he automatically learns new words.
To better teach the association between the two models, the levels are carefully designed to gradually increase the difficulty: for the first levels, the two boards are at the same height and the grid is displayed, then for some levels, the grid is removed, for others, the height of the two boards is changed, and at the end, both changes are made: the grid is removed and the heights differ.Click to view slideshow.
At last, there are levels with small images that the user must match. As the levels increase, there are more and more images on the board, making it more difficult to match.
The second activity on my list for Google Summer of Code was "Alphabetical Order" – an educational game in which the user learns the alphabet by practice. Its goal is to arrange some letters in their alphabetical order: on top of the screen is the main area, where some letters are displayed from which some are missing. The user has to drag the missing letters from the bottom part of the screen to their right place in the top area.
As the difficulty increases, the levels become more and more complicated:
Pressing on any letter triggers a sound and the letter is read so the user (children) learns its spelling as well. In the configuration panel, these sounds can be turned on or off, by pressing one button. The language used by the activity can be changed in the same configuration panel.
Here we can find two more buttons: "Easy mode" and "Ok button".
In "Easy mode", when the user drags a letter to its place, if the answer is correct, a sparkle is triggered. If the answer is wrong, the letter will turn red for a few seconds.
If the "Ok button" is activated, the level will be passed only when the user presses the "Ok button". If the answer is good, a sparkling effect will appear on all the letters, else, the wrong letters will glow red.
If the user's answers are mostly correct for the first level, an adaptive algorithm will increase the difficulty and as he passes more and more levels, the algorithm will dictate the difficulty of the game. On the other hand, if his answers are mostly incorrect, the difficulty is lowered so he can better learn the alphabet with easier levels.
After finishing "Crane" and "Alphabetical Order", I went back to "PhotoHunter" and "Share": for the first one, I added a new feature – a Help Button. Pressing it once will move the two pictures to the center, one on top of the other one. A sliding bar will appear and as the user drags it to right, the two images will combine and reveal the differences. In this "Help Mode", the user cannot press on the differences; he has to press the "Help Button" to exit the "Help Mode" so the images will go to their initial positions and then press on the difference again in order for it to be counted.
This is how the slider bar works:
A portrait view:
For "Share", I added a new type of levels and a new feature: "Easy mode". In "Easy mode", the user can use the maximum number of candies given in the problem. If he gives more candies to a friend on the board, then he won't have enough left for the others. On the other hand, if the "easy mode" is deactivated, the user can drag more than the exact amount of candies to each friend on the board needs. This addition forces the user solve the given problem and find its answer instead of guessing it by dragging the candies from one child to another.
The new levels consist of placing candies in some friends' areas before the user starts playing. This feature makes him take in consideration the candies already added to the board and compute again to find the new solution.
I am currently working on porting TuxPaint, a paint activity in which children can have fun drawing lines, rectangles and circles or free-drawing their own creation. The next post will mainly cover the development of TuxPaint.
Como ya hemos comentado en el blog, este año Akademy 2016 se celebrará en Berlín, Alemania. A la espera del programa es el momento de ir comentando algunos detalles se van generando alrededor del evento, como que ya tenemos los bocetos de las Camisetas para Akademy 2016 de Berlín. Si te gustan, no dudes en reservarlas.
Del 2 al 8 de septiembre la Comunidad KDE va a celebrar su gran evento internacional en Berlín, Alemania. Es esta ocasión me va a resultar imposible asistir por dos razones: distancia y fechas (septiembre es un mes horrible para los docentes como yo).
Recordenamos que esta Akademy 2016 será muy especial ya que en ella se celebrarán los 20 años del Proyecto KDE. Además, hay que destacar que el evento formará parte de la QtCon ( unión de evento de Qt, FSFE, VideoLAN, KDAB y, por supuesto, la Akademy de KDE.) en Berlin a partir del 2 de septiembre, con 3 días de conferencias compartidas y seguidas de 4 días de Bird of a Feather (BoF) y sesiones de código.
Hoy me gustaría comentar que ya tenemos el boceto de la camiseta oficial de Akademy 2016, que este año viene con la posibilidad de adquirir una sudadera con capucha. Ambas piezas se pueden reservar a un precio reducido de 18€ (el precio de venta en el evento será de unos 20€) y de 35€ (el precio de venta en el evento será de unos 40€) . El hecho de hacer la pre-reserva es para poder ajustar el numero y tallas de las camisetas y que sobren las mínimas posibles.
El diseño de esta año ha sido realizado por Jens Reuterberg, miembro muy activo del KVDG (KDE Visual Design Group) y ha sido inspirado en el famoso Trabant, coche típico de Berlín.
Es una buena oportunidad para asegurarte que te llevarás la camiseta de tu talla, cuyas medidas y modelos se pueden ver en la página oficial Akademy. Se pueden realizar pedidos hasta el 27 de julio, así que no os despistéis. Una vez comprada se puede pagar y recoger durante la conferencia.
Más información: Akademy 2016 | Camiseta de Akademy 2016
Hi! I'm 32 years old, Brazilian, I'm a full-time wife and mother, and also an illustrator.
Both, but after having children I paint mostly professionally. I still have sketchbooks to carry in my backpack when I have to go to the doctor or do something where I'll stay waiting – while I wait, I draw. At home, I honor my daughters' requests for specific drawings or drawing lessons.
I'm working mostly in portraits, character designs, concept art and illustration. People call me specially for portraits/illustrations for wedding invitations and family drawings. Another genre that I work with as a favorite is illustrating Catholic themes. My faith is always portrayed in my personal works.
I admire artists from all periods of history. I love Giotto, Fra Angelico, Michelangelo, Leonardo da Vinci, Caravaggio, Renoir, Ingres, Monet… Great masters always inspire me.
I really have as role models the Eastern Orthodox iconographers. The Eastern icons are so full of meaning and an inexplicable beauty.
And I have lots of artists I admire that work with digital painting. Some of them I follow for the technique, others because of the use of colors, others because of the way they illustrate abstract concepts… But I can list some: Yuko Shimizu, Lois Van Baarle (Loish), Charlie Bowater, Vicktoria Ridzel (Viria), Cyarine, Bobby Chiu, David Revoy, well… and hundreds more. My favs list is huge
As a Brazilian, my role model in my Country is the artist Maurício de Sousa. He has been an inspiration for me since I was a toddler. I love comics. Oh, I love Will Eisner also. Well…. I love lots of artists Did I mention I like manga too?
When I was in my 3rd or 4th semester of College (2001), I had a class called "Electronic Art" (yes, creepy name). I bought my first tablet, a huge Genius model I can't even remember the name of. I did works scanning my lineart and coloring with Photoshop 5.
After that, I only got into digital painting, started to research and really practice after 2 years I finished College, in 2007, when I bought a Genius Wizard Pen and tried hard to make this thing happen. Bobby Chiu was a great mentor and friend that year. I heard all his podcasts and drew a lot, when I was not at my job.
In 2009 I got married and had the opportunity to leave the job to dedicate my professional efforts to what I love: illustrating and digital painting. It took some years to get somewhere, but I can tell that having children
helped so much to make my brain work quickly to learn new techniques and improve, since I never have too much spare time.
In 2013 I started using social media to post free drawings, and got a new tablet, a Wacom Intuos. After that, I've always had commissions, thank God!
I work mostly with digital media because it's easy to correct problems, the client can ask for changes without making me do everything from scratch again, and because I've never actually learned how to paint with real paint (even if I tried hard in College — with no result).
I like the opportunity digital painting gives me to share my work and get commissions from anywhere. I've done commissions for USA and Germany and had lot of feedback about my free drawings from several countries!
I still love traditional drawing, specially black and white drawings with pen, brush and india ink.
My husband and I started using only Linux on our computers when we got married and I installed all paint programs I had available to test and find something that was close or better than Photoshop. I used GIMP for a couple of years, but more or less in 2012 I found Krita at the Ubuntu Software Center and tried it. And liked it. And never left it.
Krita seemed to me very similar to Photoshop. It took several months to get used to it. It had at that time many bugs that shut down the app without warning, what annoyed me a lot. But after I changed my OS from
Ubuntu to Kubuntu, I work a lot better with it.
It's great software, and I love that such a great project has been made free software (of course there are paid versions, but the free one is the most popular). All functionalities and features are fantastic and work so well for the digital artist. But what I admire the most is the fact that the team is so available to answer questions, and work so hard to make Krita better and better. My husband is a software engineer and I know how much work it is to build a program, how much time you spend on it, how many nights you lose due to the project deadline, and how great it is to hear the feedback from people who use your app and help you to make it better. If all human beings had this inner good will, so many good things would happen in the world. God bless the Krita Foundation.
Well… Actually there are some issues about importing brushes I would like to happen (like importing MyPaint brushes and PS.TPL brushes), but I believe I should only thank the team for all the hard work, and try to help them with the bugs so Krita become the great software for digital painting. Sometimes I ask if the team plans to implement this or that feature, but when they answer with the expression "reverse engineering" I have goosebumps. I know what it is and how hard it is. I saw my husband doing that once. It was a nightmare. So, I feel that my duty is to be thankful for them and do something to help Krita Foundation (like the Krita Training
in Portuguese I'm doing right now).
It is high-quality open-source software. Runs in my dear Kubuntu. That's happiness for me. I have other tools installed in my OS, such as GIMP and MyPaint. But Krita does everything, it has all the features a professional digital artist needs. I still like MyPaint, but only for sketches.
I'm always drawing something new, and the newest drawings are always the best ones, because we learn something every day. I don't know if I can pick only one drawing! Mmmmm… maybe the portrait I made for a family of a dear friend in 2015, the first real digital painting I made, is still my favourite. The result was awesome, I was so proud of myself when I finished it and my friend loved it. Happiness everywhere.*
I used one of the three techniques I'm used to; it is doing a layer with a very realistic drawing, painting a basic color one layer below, and then complete the painting with a third layer above it, making all lines disappear. It gives a look of a real portrait, and people love it. I also use two other techniques for painting below and using lots of layers, but this one is for simple drawings, usually cartoon portraits, memes and T-shirt illustration. In fact, I love trying other people's techniques,there is always many ways to solve digital painting problems. I love
learning with other artists!
My commissions and best drawings (and very old stuff) are in my DeviantArt – artelizdesouza.deviantart.com
Best quality memes and other drawings you can see in my Tumblr – lizdesouza.tumblr.com
News, updates, memes, and thoughts at my Facebook – facebook.com/lizdesouza
Random photos, paper sketches and sometimes memes at Instagram – https://instagram.com/artelizdesouza/
Recently I've joined twitter, but I use it to talk with the developers of Krita and MyPaint
– https://twitter.com/artelizdesouza
My Youtube channel has some speedpaints – https://www.youtube.com/channel/UC1MVazT8tdIV0t6LNnD8Kcw
I have a Patreon page, which isn't really active yet but people can follow me to receive news when I make it happen – https://www.patreon.com/lizdesouza
I'm right now doing a Krita training in Brazilian Portuguese, and it has taken a lot of the little spare time I have. But if the English-Spanish-other-Portuguese speakers want to have access to it, I'm doing a closed class, where I post the videos and share knowledge with the students. To have more information, please join my crowdfunding to feed my family while I work sending me an email to firstname.lastname@example.com – you can write in Portuguese, English or Spanish, and I answer it. And with the help of my husband I can answer
German and Italian speakers too.
I also take commissions – to ask for it and get information, email me: firstname.lastname@example.com
And… Thank you Krita Foundation! God bless you all!
"Measuring programming progress by lines of code is like measuring aircraft building progress by weight."― Bill Gates
After working for several weeks on our WikiRating:Google Summer of Code project Davide, Alessandro and I have slowly reached up to the level where we can now visualize the entire project in its final stages. It has been quite long since we wrote something , so after seeing this :
We knew it was the time that we summarize what we were busy doing in these 50 commits.
I hope you have already understood our vision by reading the previous blog post. So after a fair amount of planning it was the time that I start coding the actual engine, or more importantly start working on the❤ of the project. This was the time when my brain was buzzing with numerous Design patterns and Coding paradigms and I was finding it a bit overwhelming. I knew it was a difficult phase but I needed some force (read perseverance) to get over it. I planned , re-planned but eventually with the soothing advice of my mentors : Don't worry about the minor intricacies now, focus on the easiest thing first.
I began to code!
I understand that there are numerous things to talk about and it's easy to lose track of main theme therefore we are going to tour the engine as it actually functions that is we will see what all happen under the hood as we run the engine.Let me make it easier for you, have a look at this:
You can see there are some methods and some parent classes involved in the main run of the engine let's inspect them.
The initial step is to create all the classes for the database to store data. After this we will fetch the required data like Pages,Users and Revisions via the queries listed here.
{ "batchcomplete": "", "limits": { "allpages": 500 }, "query": { "allpages": [ { "pageid": 148, "ns": 0, "title": "About WikiToLearn" }, { "pageid": 638, "ns": 0, "title": "An Introduction to Number Theory" }, { "pageid": 835, "ns": 0, "title": "An Introduction to Number Theory/Chebyshev" }, { "pageid": 649, "ns": 0, "title": "An Introduction to Number Theory/Primality Tests" }, { "pageid": 646, "ns": 0, "title": "An Introduction to Number Theory/What are prime numbers and how many are there?" },
This is a typical response from the Web API, giving us info about the pages on the platform.
Similarly we fetch all the other components (Users and Revisions) and simultaneous store them too.
After fetching the data for Pages and Users we will work towards linking the user contributions with their corresponding user contributors . Here we will make edges from the user nodes to the respective revisions of the pages. These edges also contain useful information like the size of the contribution done.
We also need to work on linking the pages with other pages via Backlinks for calculating the PageRank (We will discuss these concepts after a short while).
Once we have all the data via the online API calls , we will now move toward our next pursuit to do offline computation on data fetched.
Since this feature is new to WikiToLearn platform therefore there were no initial user votes on any of the page versions, hence we wrote a class to select random users and then making them vote for various pages. Later we will write a MediaWiki Extension to gather actual votes from the users but till then now we have sample data to perform further computations.
So after generating votes we need to calculate various parameters like User Credibility, Ratings, PageRank and Badges (Platinum,Gold,Silver,Bronze,Stone). The calculation of the credibility and Ratings are listed here. But Badges and PageRank are a new concept .
We will be displaying various badges based on the Percentile Analysis of the Page Ratings. That is we will be laying the threshold for various badges say top 10% for platinum badge then we filter out the top 10% pages on the basis of their page rating and then assign them the suitable badge.The badges will give readers an immediate visual sense of the quality of the pages.
Another very important concepts are PageRank and Backlinks let's talk about them too.
Let's consider a scenerio :
There are 5 pages in the system the arrows denote the hyperlink from a page to another these are called backlinks . Whenever the author decides to cite another user's work a backlink is formed from that page to the other. It's clear to understand that the more backlinks a page will have the more reliable it becomes (Since each time the authors decide to link someone else's work then they actually think it is of good quality).
So the current graph :
Page 0 : 4, 3, 2
Page 1 : 0 ,4
Page 2 : 4
Page 3 : 4, 2
Page 4 : 3
Here we have connections like Page 0 is pointed by 3 pages 4,3,2 and so on.
Now we will calculate a base rating of all the pages with respect to the page having maximum number of backlinks.Therefore we see that Page 0 has maximum number of backlinks(3).
Then we divide the backlinks of all the other pages by the maximum.This will give us the
importance of pages based on their backlinks.
We used this equation:
Base Weight=(no of backlinks)/(Max backlinks)
So Base Weight of Page 0 = (1+1+1)/3=1
Base weights
1, 0.666667 ,0.333333 ,0.666667 ,0.333333 of Page 0 ,Page 1 and so on
There is a slight problem here:
Let's assume that we have 3 pages A , B and C. A has high backlinks than B but according to the above computation whenever a link from A to C is there it will be equivalent to that of B to C. But it shouldn't happen as Page A's link carries more importance than Page B's link because A has higher backlinks than B.Therefore we need a way to make our computation do this.
We can actually fix this problem by running the computation one more time but now instead of taking 1.0 for an incoming link we take the Base Weight so now the more important pages contribute more automatically. So the refined weights are:
Revised Base Weight of Page 0 =(0.334+0.667+0.334)/3=0.444444
Page weights
0.444444, 0.444444 ,0.111111, 0.222222 ,0.222222
So we see that the anomaly is resolved
This completes our engine analysis. And finally our graph in OrientDB looks like this:
Right now I am developing an extension for the user interaction of the engine and will return soon with the latest updates. Till then stay tuned😀
Nos acercamos a agosto mes que el equipo de desarrollo de KDE ha marcado para el lanzamiento de su gran revisión de sus aplicaciones. Pero antes de este gran actualización siempre hay que probar. Por eso me complace anunciar que ha sido lanzada la beta de KDE Aplicaciones 16.08. ¡Esto no para! ¡KDE Rocks!
El pasado 22 de julio el equipo de desarrollo de la Comunidad KDE anunció la beta de KDE Aplicaciones 16.08, otro paso más en la evolución de su ecosistema de programas que tiene dos objetivos fundamentales: seguir mejorando las aplicaciones KDE y continuar la migración de más aplicaciones al entorno de trabajo Qt5/KF5.
Tras un trabajo que se inició el mismo día que se lanzó KDE Aplicaciones 16.04, los desarrolladores han estado trabajando de forma silenciosa pero coordinada y constante preparando las nuevas funcionalidades que nos esperan en agosto
Ahora es el momento de congelar las funcionalidades y las dependencias, y que el equipo de desarrollo (y todas aquellas personas que así lo deseen) se centren en corregir errores y pulir las aplicaciones.
Más información: KDE.org
Todas las tareas dentro del mundo del Software Libre son importantes: desarrollar, traducir, empaquetar, diseñar, promocionar, etc. Pero hay una que se suele pasar por alto y de la que solo nos acordamos cuando las cosas no nos funcionan como debería: buscar errores.
Desde el blog te animo a que tú seas una de las personas responsables del éxito del nuevo lanzamiento de las aplicaciones de KDE. Para ello debes participar en la tarea de buscar y reportar errores, algo básico para que los desarrolladores los solucionen para que el despegue de KDE Aplicaciones 16.04 esté bien pulido. Debéis pensar que en muchas ocasiones los errores existen porque no le han aparecido al grupo de desarrolladores ya que no se han dado las circunstancias para que lo hagan.
Para ello debes instalarte esta beta y comunicar los errores que salgan en bugs.kde.org, tal y como expliqué en su día en esta entrada del blog.
Less then four months after the last release and after a lot of activity in our repository during this time, we're happy to announce the next release of LabPlot with a lot of new features. So, be prepared for a long post.
As already announced couple of days ago, starting with this release we provide installers for Windows (32bit and 64bit) in the download section of our homepage. The windows version is not as well tested and maybe not as mature as the linux version yet and we'll spent more time in future to improve it. Any feedback from windows users is highly welcome here!
With this release me make the next step towards providing a powerful and user-friendly environment for data and visualization. Last summer Garvit Khatri worked during GSoC2015 on the integration of Cantor, a frontend for different open-source computer algebra systems (CAS). Now the user can perform calculations in his favorite (open-source) CAS directly in LabPlot, provided the corresponding CAS is installed, and do the final creation, layouting and editing of plots and curves and the navigation in the data (zooming, shifting, scaling) in the usuall LabPlot's way within the same environment. LabPlot recognizes different CAS variables holding array-like data and allows to select them as the source for curves. So, instead of providing columns of a spreadsheet as the source for x- and y-data, the user provides the names of the corresponding CAS-variables.
Currently supported CAS data containers are Maxima lists and Python lists, tuples and NumPy arrays. The support for R and Octave vectors will follow in one of the next releases.
Let's demonstrate the power of this combination with the help of three simple examples. In the first example we use Maxima to generate commonly used signal forms – square, triangle, sawtooth and rectified sine waves ("imperfect waves" because of the finite truncation used in the definitions):
In the second example we solve the differential equation of the forced Duffing oscillator, again with Maxima, and plot the trajectory, the phase space of the oscillator and the corresponding Poincaré map with LabPlot to study the chaotic dynamics of the oszillator:
Python in combination with NumPy, SciPy, SymPy, etc. became in the scientific community a serious alternative to many other established commercial and open-source computer algebra systems. Thanks to the integration of Cantor, we can do the computation in the Python environment directly in LabPlot. In the example below we generate a signal, compute its Fourier transform and illustrate the effect of Blackman windowing on the Fourier transform. Contrary to this example, only the data is generated in python, the plots are done in LabPlot.
In this release with greatly increased the number of analysis features.
Fourier transform of the input data can be carried out in LabPlot now. There are 15 different window functions implemented and the user can decide which relevant value to calculate and to plot (amplitude, magnitude, phase, etc.). Similarly to the last example above carried out in Python, the screenshot below demonstrates the effect of three window functions where the calculation of the Fourier transform was done in LabPlot directly now:
For basic signal processing LabPlot provides Fourier Filter (or linear filter in the frequency domain). To remove unwanted frequencies in the input data such as noise or interfering signals, low-pass, high-pass, band-pass and band-reject filters of different types (Butterworth, Chebyshev I+II, Legendre, Bessel-Thomson) are available. The example below, inspired by this tutorial, shows the signal for "SOS" in Morse-code superimposed by a white noise across a wide range of frequencies. Fourier transform reveals a strong contribution of the actual signal frequency. A narrow band-pass filter positioned around this frequency helps to make the SOS-signal clearly visible:
Another technique (actually a "reformulation" of the low-pass filtering) to remove unwanted noise from the true signal is smoothing. LabPlot provides three methods to smooth the data – moving average, Savitzky-Golay and percentile filter methods. The behavior of these algorithms can be controlled by additional parameters like weighting, padding mode and polynom order (for Savitzky-Golay method only).
To interpolate the data LabPlot provides several types of interpolations methods (linear, polynom, splines of different types, piecewise cubic Hermite polynoms, etc.). To simplify the workflow for many different use-cases, the user can select what to evaluate and to plot on the interpolations points – function, first derivative, second derivative or the integral. The number of interpolation points can be automatically determined (5 times the number of points in the input data) or can be provided by the user explicitly.
More new analysis features and the extension of the already available feature set will come in the next releases.
Couple of smaller features and improvements were added. The calculation of many statistical quantities was implemented for columns and rows in LabPlot's data containers (spreadsheet and matrix):
Furthermore, the content of the data containers can be exported to LaTeX tables. The appearance of the final LaTeX output can be controlled via several options in the export dialog.
To further improve the usability of the application, we implemented filter and search capabilities in the drop down box for the selection of data sources. In projects with large number of data sets it's much easier and faster now to find and to use the proper data set for the curves in plots.
A new small widget for taking notes was implemented. With this, user's comments and notes on the current activities in the the project can be stored in the same project file:
To perform better on a large number of data points, we implemented the double-buffering for curves. Currently, applying this technique in our code worsens the quality of the plotted curves a bit. We decided to introduce a configuration parameter to control this behavior during the run-time. On default, the double buffering is used and the user benefits from the much better performance. Users who need the best quality should switch off this parameter in the application settings dialog. We'll fix this problem in future.
The second performance improvement coming in version 2.3.0 is the much faster generation of random values in the spreadsheet.
There are still many features in our development pipeline, couple of them being currently already worked on. Apart from this, this summer again we get contribution from three "Google Summer of Code" students working on the support for FITS, on a theme manager for plots and on histograms.
You can count on many new cool features in the near future!
Big-ass Disclaimer: What follows is purely personal opinion as a geek, technophile, and free and open source software (FOSS) and Linux user. It does not, in any way, reflect the opinions of my employer.
As a geek writing about gadgets and technology, I often find myself drooling over the latest innovations and insanity in the industry. But as an open source and Linux user, I lament over how majority, if not all of those are pretty but caged gardens. There are, of course, existing "open" systems, but each one represents a compromise for me. Android is basically an open source code dump, with development happening behind closed doors. And it is so far removed from the Linux that we've grown to know and love that it's barely recognizable as Linux. Sailfish OS has technology closer to my heart (like Qt) and is indeed closer to a traditional Linux system, but its availability on actual commercial devices with modern, decent specs leave much to be desired. Mer/Nemo is far from being something usable even if you install it on, say, a Nexus device.
So when Ubuntu and Canonical revealed they were partnering with actual, big manufacturers for Ubuntu mobile devices, a spark of hope was rekindled in my heart. Let it be clear, I am by no means an Ubuntu user, not even a fan. I left the fold nearly a decade ago, after having spent quite some time using and contributing to Kubuntu (to the point of becoming a certified "member" even, though I never ascended to the Council). In terms of loyalties and usage, I am a KDE user (and "helper") foremost. I use Fedora because it just works for me, for now. So, yes, an Ubuntu Touch device would be another compromise for me, but it would be the smallest one. Or so I hoped.
When opportunity knocked offering the chance to review two of the latest commercial Ubuntu Touch devices, well, let's just say it didn't have to knock twice. To be specific, I got my hands on a bq Aquaris M10 first, and then a Meizu PRO 5. I've already written thousands of words on both (not exaggerating on the numbers), so I'm not going to regurgitate them here. For the curious, here are the links to those reviews:
In terms of design and hardware, the two couldn't be more different. The bq Aquaris M10 tablet is plastic, mid-range, and, at a glance, quite plain. The Meizu PRO 5 is metal and boasted of 2015 flagship hardware. It also looked nice to boot. But surprisingly, the Aquaris M10 was able to perform admirably, despite choking a few times on more resource intensive work. Hardware-wise, I really have no complaints, as they work as advertised. And those happen to also be the least interesting aspects of the devices.
I'm here to write more about the software experience, the Ubuntu Touch experience. The defining feature of these two otherwise fully Android devices. I wish it were otherwise, but I have been sorely disappointed with the end result of my tour. Perhaps I set my expectations to high, or perhaps I put too much faith in the marketing spiel. The good news is that the journey isn't over yet and the story might very well still change.
While Ubuntu Touch might look and feel like a regular Linux system on top, albeit with the new, more touch-friendly version of Unity 8, beneath has a few things in common with Android, apart from using Android drivers. For better or for worse, Ubuntu Touch adopts the Android convention of a read-only system partition. In a nutshell, even while you can actually gain root, or sudo rather, far easier than on an Android system, you cannot effect permanent changes. In short, you can't really install software via the age-old apt-get (just apt now) method. Actually you can, but only by explicitly making the system partition read-write. But if you do that, you will no longer be able to receive OTA updates, which, based on experience, are very, very desirable. For example, the most recent OTA-11 added Miracast support, which meant that the Meizu PRO 5, whose USB-C port doesn't support HDMI out, can finally use Convergence. The next OTA will even add fingerprint scanner support.
So you have a choice between hacking your way to be able to install regular package the regular way (as long as they are built for ARM) and depriving yourself of OTAs, or sticking to the default settings and only the apps available from the Ubuntu Store. Neither is ideal and both are unacceptable.
The selection of apps in the Store is dismal, to be blunt. Of the few that are there, around 80% of them are simply wrappers around web apps or web pages. And while there are some who would rally behind web apps, and in this case they do actually save Ubuntu Touch some space, the ugliness of their unoptimized experiences is easily seen and painfully felt. On the Meizu PRO 5, the situation is a bit worse. In regular mobile/phone mode, the browser's user agent is fixed as an Android device, which means web services will try to force you to use the Android app instead and will not go further. Yes, those web services are partly to blame, but the default browser app has no easy feature to change the user agent. Conversely, if you switch to desktop mode, it identifies itself as a desktop browser and things work as intended. To cut to the chase, there is a severe lack of usable native apps, written in Ubuntu Touch's preferred QML style, that would make even Windows 8's store seem like a jam packed party.
But wait, there's light at the end of the tunnel, right? There's that Convergence that Ubuntu, Canonical, and Mark Shulttleworth has been singing about, right? Well, yes and no. For the unfamiliar, Convergence is a nifty concept that, in a nutshell, means that you can use your phone as your desktop if you give it the proper peripherals, which, in this case, means an external display, a keyboard, and a mouse. Microsoft later revealed a similar concept called Continuum (for Mobile), but the difference between the two is that Convergence doesn't limit you in what type of software you can run. On Microsoft's Continuum, only blessed "Universal" apps can run when in desktop mode. On Convergence, it's a free for all. In fact, you can even run those conventional desktop apps while in mobile mode. At least that's the theory.
In practice, Convergence has a few gaping holes that all sum up to one thing: it blocks the very productivity it promises to enable by turning your smartphone into a desktop.
First, there is the fact that you can't even install those desktop apps in the first place. There is Firefox, LibreOffice, GIMP, and Gedit preinstalled on the bq Aquaris M10 and only those. The Meizu PRO 5 is worse off, as it doesn't even have those. Those are coming, I was told, in a future update. Perhaps the reasoning was that the Meizu PRO 5 initially didn't support Convergence anyway, but now that it does, the apps should be installed. But good luck installing any other desktop app. Remember the above? You can't. At least not directly and not easily. It's possible, but you'll have to work for it and even then you will be sacrificing some things to gain other things.
And then there's my pet peeve: copy and paste. Those don't work. Or rather, it only works between native Ubuntu Touch apps. It doesn't work between Ubuntu Touch and desktop apps. Heck, it doesn't even work between desktop apps. I'm not completely 100% sure of the rationale, but I have a hunch that it all ultimately boils down to the fact that Ubuntu Touch uses Mir for its windowing system, not X11. Those two, especially their clipboards, just don't mix well. In order to allow desktop apps to run in a Mir environment, Ubuntu had to implement a sandboxing environment, which also has a nasty side effect. Each sandbox, therefore each desktop app, has its own "view" of the file system, its own "view" of the user's home directories. Saving a file in one app is no assurance you'll see the file in a different app. Sometimes it works, sometimes it doesn't.
So yes, I blame Mir, both for the clipboard and the necessity to sandbox desktop apps. To be fair, Wayland has a similar clipboard interoperability problem with X11, but probably a saner solution. I have more confidence, at least, that the Plasma developers, particular Kwin, already have this problem in mind.
I am, fortunately, not going to end it on a sad note, because I still have hope. Somewhat. Ubuntu Touch practically has rolling releases and, from what I've gathered, the next OTA will bring quite a few goodies. Libertine (Convergence) apps, fingerprint scanner, etc. I have no idea if the copy/paste problem will also be resolved by then. Suffice it to say, I've never been excited over an Ubuntu release since 2008.
That said, it's not going to fix all my gripes. There will still be a great lack in native apps, web apps will still work terribly, if at all, and you still can't install apps through apt-get. The latter probably isn't going to happen unless Ubuntu and Canonical change directions a bit. I'm not that averse at doing the work needed to actually get a somewhat regular Linux system working underneath Ubuntu Touch. As long as I can be assured I can go back to a pristine copy should I want to get OTA updates again. I'll figure it out soon enough, but only after OTA 12!
That adventure in Ubuntu Touch land has had me once again pining for a KDE-made solution (KDE being the community now, not the desktop software). There has been and still continues to be efforts in that area, but not yet to the same extent as Ubuntu Touch. The community, or even some of the companies supporting its development, just doesn't have the same resources as Canonical to have a commercial device as well. Until that happens, which has disadvantages, we'll have to rely on sheer community power.
Sadly, my experience with even the latest Plasma Mobile project has been rather depressing. Not because of the state of the software but because how I seem to hit corner cases of things not working when it works for others. I guess I just have terrible luck. I do want to try again, and maybe I'll have a different and better experience this time. But that will be another story for another time.
Because of unforeseen circumstances, we had to rejig our release schedule, there was no release last week. Still, we wanted to bring you a foretaste of some of the goodies that are going to be in the 3.0.1 release, which is now planned for September 5th. There's lots to play with, here, from bug fixes (the double dot in file names is gone, the crash with cheap tablets is gone, a big issue with memory leaks in the graphics card is solved), to features (soft-proofing, among others). There may also be new bugs, and not all new features may be working correctly. Export to animated gif or video clips is still in development, and probably will not work well outside the developers' computer.
After all, this is a development snapshot. Still, please experiment with it and test it, and we're pretty sure that for many purposes it might be better already than the 3.0 stable release!
On the OSX front we've made progress, too, and this build should run fine on OSX 10.9 upwards, including 10.10. All libraries are updated to the latest version, too.
On Windows, Krita supports Wacom, Huion and Yiynova tablets, as well as the Surface Pro series of tablets. The portable zip file builds can be unzipped and run by double-clicking the krita link.
Krita on Windows is tested on Windows 7, Windows 8 and Windows 10. There is only a Windows 64 bits build for now. There is now also a debug build that together with the DrMingw debugger can help with finding the cause of crashes. See the new FAQ entry. The Windows builds can be slower than usual because vectorization is disabled.
For Linux, we offer AppImages that should run on any reasonable recent Linux distribution. You can download the appimage, make it executable and run it in place. No installation is needed. At this moment, we only have appimages for 64 bits versions of Linux.
Krita on OSX will be fully supported with version 3.1. Krita 3.0 for OSX is still missing Instant Preview and High Quality Canvas scaling. There are also some issues with rendering the image — these issues follow from Apple's decision to drop support for the OpenGL 3.0 compatibility profile in their display drivers and issue with touchpad and tablet support. We are working to reimplement these features using OpenGL 3.0 Core profile. For now, we recommend disabling OpenGL when using Krita on OSX for production work. Krita for OSX runs on 10.9, 10.10, 10.11 and is reported to work on MacOS too.
The first point release update to our LTS release 16.04 is out now. This contains all the bugfixes added to 16.04 since its first release in April. Users of 16.04 can run the normal update procedure to get these bugfixes.
See the 16.04.1 release announcement.
I Have a few favorites kde conventions that I really love to participate.
Randa and Lakademy are always awesome, both are focused on hacking, and I surely do love to hack.
On LaKademy I spend my days working on subsurface, reworking on the interface, trying to make it more pleasant to the eye,
In Randa I worked on KDevelop and Marble, but oh my…
I spend a few days working on KDevelop, in one of bugs that where preventing the release of the 5.0, I'v tried a bit if things with help from Kevin Funk and Aleix Pol, but everything that I fixed created another two corner cases, in the third day trying I stopped and went to work on marble instead so I could clear my head. My Patch had almost 500 lines already, and more than 20 commits – Something told me that there was something wrong with the approach, but I actually didn't know what else to try.
The problem was a widget being deleted inside of Qt's Event Loop when a focus change occoured – the code should have prevented the focus loss, but didn't, a crash occoured instead.
Now, when I got back to Brazil I realized that the bug was fixed, so someone had worked on top of it and my patch should have been discarded… I went to look how the other developer fixed it, and at first I didn't understood. He was working with invokeMetaMethod instead of calling the method directly (this + a few other checks), to summarize… he fixed in 20 lines what I didn't managed to fix in 500.
It was a really good learning experience for me, I wouldn't ever have tougth to use invokeMetaMethod inside of the Event Loop.
GammaRay 2.5 has been released, the biggest feature release yet of our Qt introspection tool. Besides support for Qt 5.7 and in particular the newly added Qt 3D module a slew of new features awaits you, such as access to QML context property chains and type information, object instance statistics, support for inspecting networking and SSL classes, and runtime switchable logging categories.
We also improved many existing functionality, such as the object and source code navigation and the remote view. We enabled recursive access to value type properties and integrated the QPainter analyzer in more tools.
GammaRay is now also commercially available as part of the Qt Automotive suite, which includes integration with QtCreator for convenient inspection of embedded targets using Linux, QNX, Android or Boot2Qt.
The post GammaRay 2.5 release appeared first on KDAB.
KDStateMachineEditor is a Qt-based framework for creating Qt State Machine metacode using a graphical user interface. It works on all major platforms and is now available as part of the Qt Auto suite.
The latest release of KDAB's KDStateMachineEditor includes changes to View, API and Build system.
Build system
KDStateMachineEditor Works on all major platforms and has been tested on Linux, OS X and Windows.
Prebuilt packages for some popular Linux distributions can be found here.
Homebrew recipe for OSX users can be found here.
The post KDStateMachineEditor 1.1.0 released appeared first on KDAB.
Hello, and welcome to the usual appointment with a new release of Qt!
Qt 5.7 has just been released, and once more, KDAB has been a huge part of it (we are shown in red on the graph):
In this blog post I will show some of the outstanding contributions by KDAB engineers to the 5.7 release.
The star of Qt 5.7 is the first stable release of Qt 3D 2.0. The new version of Qt 3D is a total redesign of its architecture into a modern and streamlined 3D engine, exploiting modern design patterns such as entity-component systems, and capable to scale due to the heavily threaded design. This important milestone was the result of a massive effort done by KDAB in coordination with The Qt Company.
If you want to know more about what Qt 3D can do for your application, you can watch this introductive webinar recorded by KDAB's Dr. Sean Harmer and Paul Lemire for the 5.7 release.
Thanks to KDAB's BogDan Vatra, this release of Qt saw many improvements to its Android support. In no particular order:
A codebase as big as Qt needs constant fixes, improvements and bugfixes. Sometimes these come from bug reports, sometimes by reading code in order to understand it better, and in some other cases by analyzing the codebase using the latest tools available. KDAB is committed to keeping Qt in a great shape, and that is why KDAB engineers spend a lot of time polishing the Qt codebase.
Some of the results of these efforts are:
// BAD!!! allocates a temporary QList // for holding the values corresponding to "key" foreach (const auto &value, hash.values(key)) { }
can be changed to
const auto range = hash.equal_range(key); for (auto i = range.first; i != range.second; ++i) { }
which never throws (if hash is const), expands to less code and does not allocate memory.
Last but not least:
KDAB is a consulting company dedicated to Qt and offering a wide variety of services and providing training courses in:
KDAB believes that it is critical for our business to invest in Qt3D and Qt, in general, to keep pushing the technology forward, ensuring it remains competitive.
The post KDAB contributions to Qt 5.7 appeared first on KDAB.
Are you a victim of premature pessimisation? Here's a short definition from Herb Sutter:
Premature pessimization is when you write code that is slower than it needs to be, usually by asking for unnecessary extra work, when equivalently complex code would be faster and should just naturally flow out of your fingers.
Despite how amazing today's compilers have become at generating code, humans still know more about the intended use of a function or class than can be specified by mere syntax. Compilers operate under a host of very strict rules that enforce correctness at the expense of faster code. What's more, modern processor architectures sometimes compete with C++ language habits that have become ingrained in programmers from decades of previous best practice.
I believe that if you want to improve the speed of your code, you need to adopt habits that take advantage of modern compilers and modern processor architectures—habits that will help your compiler generate the best-possible code. Habits that, if you follow them, will generate faster code before you even start the optimisation process.
Here's four habit-forming tips that are all about avoiding pessimisation and, in my experience, go a long way to creating faster C++ classes.
According to Lawrence Crowl, (named-) return-value optimisation ((N)RVO) is one of the most important optimisations in modern C++. Okay—what is it?
Let's start with plain return-value optimization (RVO). Normally, when a C++ method returns an unnamed object, the compiler creates a temporary object, which is then copy-constructed into the target object.
MyData myFunction() { return MyData(); // Create and return unnamed obj } MyData abc = myFunction();
With RVO, the C++ standard allows the compiler to skip the creation of the temporary, treating both object instances—the one inside the function and the one assigned to the variable outside the function—as the same. This usually goes under the name of copy elision. But what is elided here is the temporary and the copy.
So, not only do you save the copy constructor call, you also save the destructor call, as well as some stack memory. Clearly, elimination of extra calls and temporaries saves time and space, but crucially, RVO is an enabler for pass-by-value designs. Imagine
MyData was a large million-by-million matrix. There mere chance that some target compiler could fail to implement this optimisation would make every good programmer shy away from return-by-value and resort to out parameters instead (more on those further down).
As an aside: don't C++ Move Semantics solve this? The answer is: no. If you move instead of copy, you still have the temporary and its destructor call in the executable code. And if your matrix is not heap-allocated, but statically sized, such as a
std::array<std::array<double, 1000>, 1000>>, moving is the same as copying. With RVO, you mustn't be afraid of returning by value. You must unlearn what you have learned and embrace return-by-value.
Named Return Value Optimization is similar but it allows the compiler to eliminate not just rvalues (temporaries), but lvalues (local variables), too, under certain conditions.
What all compilers these days (and for some time now) reliably implement is NRVO in the case where there is a single variable that is passed to every return, and declared at function scope as the first variable:
MyData myFunction() { MyData result; // Declare return val in ONE place if (doing_something) { return result; // Return same val everywhere } // Doing something else return result; // Return same val everywhere } MyData abc = myFunction();
Sadly, many compilers, including GCC, fail to apply NRVO when you deviate even slightly from the basic pattern:
MyData myFunction() { if (doing_something) return MyData(); // RVO expected MyData result; // ... return result; // NRVO expected } MyData abc = myFunction();
At least GCC fails to use NRVO for the second return statement in that function. The fix in this case is easy (go back to the first version), but it's not always that easy. It is an altogether sad state of affairs for a language that is said to have the most advanced optimisers available to it for compilers to fail to implement this very basic optimisation.
So, for the time being, get your fingers accustomed to typing the classical NRVO pattern: it enables the compiler to generate code that does what you want in the most efficient way enabled by the C++ standard.
If diving into assembly code to check whether a particular patterns makes your compiler drop NRVO isn't your thing, Thomas Brown provides a very comprehensive list of compilers tested for their NRVO support and I've extended Brown's work with some additional results.
If you start using the NVRO pattern but aren't getting the results you expect, your compiler may not automatically perform NRVO transformations. You may need to check your compiler optimization settings and explicitly enable them.
This is pretty simple: don't use "out-parameters". The result for the caller is certainly kinder: we just return our value instead of having the caller allocate a variable and pass in a reference. Even if your function returns multiple results, nearly all of the time you're much better off creating a small result struct that the function passes back (via (N)RVO!):
That is, instead of this:
void convertToFraction(double val, int &numerator, int &denominator) { numerator = /*calculation */ ; denominator = /*calculation */ ; } int numerator, denominator; convertToFraction(val, numerator, denominator); // or was it "denominator, nominator"? use(numerator); use(denominator);
You should prefer this:
struct fractional_parts { int numerator; int denominator; }; fractional_parts convertToFraction(double val) { int numerator = /*calculation */ ; int denominator = /*calculation */ ; return {numerator, denominator}; // C++11 braced initialisation -> RVO } auto parts = convertToFraction(val); use(parts.nominator); use(parts.denominator);
This may seem surprising, even counter-intuitive, for programmers that cut their teeth on older x86 architectures. You're just passing around a pointer instead of a big chunk of data, right? Quite simply, "out" parameter pointers force a modern compiler to avoid certain optimisations when calling non-inlined functions. Because the compiler can't always determine if the function call may change an underlying value (due to aliasing), it can't beneficially keep the value in a CPU register or reorder instructions around it. Besides, compilers have gotten pretty smart—they don't actually do expensive value passing unless they need to (see the next tip). With 64-bit and even 32-bit CPUs, small structs can be packed into registers or automatically allocated on the stack as needed by the compiler. Returning results by value allows the compiler to understand that there isn't any modification or aliasing happening to your parameters, and you and your callers get to write simpler code.
This rule is straightforward: take a copy of the member-variables or reference-parameters you are going to use within your function at the top of the function, instead of using them directly throughout the method. There are two good reasons for this.
The first is the same as the tip above—because pointer references (even member-variables in methods, as they're accessed through the implicit
this pointer) put a stick in the wheels of the compiler's optimisation. The compiler can't guarantee that things don't change outside its view, so it takes a very conservative (and in most cases wasteful) approach and throws away any state information it may have gleaned about those variables each time they're used anew. And that's valuable information that can help the compiler eliminate instructions and references to memory.
Another important reason is correctness. As an example provided by Lawrence Crowl in his CppCon 2014 talk "The Implementation of Value Types", instead of this complex number multiplication:
template <class T> complex<T> &complex<T>;::operator*=(const complex<T> &a) { real = real * a.real – imag * a.imag; imag = real * a.imag + imag * a.real; return *this; }
You should prefer this version:
template <class T> complex<T> &complex<T>;::operator*=(const complex<T> &a) { T a_real = a.real, a_imag = a.imag; T t_real = real, t_imag = imag; // t == this real = t_real * a_real – t_imag * a_imag; imag = t_real * a_imag + t_imag * a_real; return *this; }
This second, non-aliased version will still work properly if you use
value *= value to square a number; the first one won't give you the right value because it doesn't protect against aliased variables.
To summarise succinctly: read from (and write to!) each non-local variable exactly once in every function.
Is it better to organize member variables for readability or for the compiler? Ideally, you pick a scheme that works for both.
And now is a perfect time for a short refresher about CPU caches. Of course data coming from memory is very slow compared to data coming from a cache. An important fact to remember is that data is loaded into the cache in (typically) 64-byte blocks called cache lines. The cache line—that is, your requested data and the 64 bytes surrounding it—is loaded on your first request for memory absent in the cache. Because every cache miss silently penalises your program, you want a well-considered strategy for ensuring you reduce cache misses whenever possible. Even if the first memory access is outside the cache, trying to structure your accesses so that a second, third, or forth access is within the cache will have a significant impact on speed. With that in mind, consider these tips for your member-variable declarations:
Nearly all C++ compilers organize member variables in memory in the order in which they are declared. And grouping your member variables using the above guidelines can help reduce cache misses that drastically impact performance. Although compilers can be smart about creating code that works with caching strategies in a way that's hard for humans to track, the C++ rules on class layout make it hard for compilers to really shine. Your goal here is to help the compiler by stacking the deck on cache-line loads that will preferentially load the variables in the order you'll need them.
This can be a tough one if you're not sure how frequently things are used. While it's not always easy for complicated classes to know what member variables may be touched more often, generally following this rule of thumb as well as you can will help. Certainly for the simpler classes (string, dates/times, points, complex, quaternions, etc) you'll probably be accessing most member variables most of the time, but you can still declare and access your member variables in a consistent way that will help guarantee that you're minimizing your cache misses.
The bottomline is that it still takes some amount of hand-holding to get a compiler to generate the best code. Good coding-habits are by no means the end-all, but are certainly a great place to start.
The post Four Habit-Forming Tips to Faster C++ appeared first on KDAB.
Paris, France 2016-08-22 2016-08-26 Paris, le 22 – 26 Août
En août offrez-vous une formation Qt en français avec un expert.
Apprenez les techniques de développement d'applications graphiques modernes, en utilisant la technologie Qt Quick (basée sur le langage QML) ainsi que la technologie objet Qt/C++.
"Mon équipe C++ a été ravie de cette formation. J'espère pouvoir implémenter Qt dans nos applis ASAP." CGG Veritas, Massy, France
The post Programmation Qt Quick (QML) appeared first on KDAB.
Ovidiu-Florin Bogdan
Rick Timmis
Aaron Honeycutt
What have we (the hosts) been doing ?
Big Blue Button
Those of you that have attended the Kubuntu parties, will have seen our Big Blue Button conference and online education service.
Video, Audio, Presentation, Screenshare and whiteboard tools.
We are very grateful to Fred Dixon and the team at BigBlueButton.org. Go check out their project.
Identify, install and review one app each from the Discover software center and do a short screen demo and review.
Joining us today is Marius Gripsgard from the UbPorts project.
We've been in talks with Linode, an awesome VPS with super fast SSDs, Data connections, and top notch support. We have worked out a sponsorship for a server to build packages quicker and get to our users faster. BIG SHOUT OUT to Linode for working with us!
Steam Group: http://steamcommunity.com/groups/kubuntu-podcast
Review and gameplay from Shadow Warrior.
How to contact the Kubuntu Team:
How to contact the Kubuntu Podcast Team:
You might remember that I spoke about Plasma's Publictransport applet getting some reworking during the summer. It's been over a month since I made that announcement on my blog and while ideally, I'd have liked to have blogged every week about my work, I haven't really been able to. This is largely down to the&ellipsisRead the full post »
We shouldn't look like a bunch of old geeks all the times, and new users and new programmers doesn't really like to use IRC, it's just too text-based for them.
That's why the KDE Irc channel now has a bot that will forward all messages to our Telegram Channel and vice-versa, this way all the new cool kids can talk to all the old geeks around and continue to make the KDE awesome in their platform of choice.
Thanks for the KDE Sysadmin Team for making this possible.
[Hope That Helps]
The KDE community working group exists for quite a while, helping develop the KDE community from behind the scenes.
Since we have just too many different cultures working together, from hundreds of different countries (literally), it's a bit hard to find a common ground on what's a polite and correct behavior to have in many situations, We have Germans, Brazilians, Indians, Mexicans, Northamericans, Canadians, Romenians, Kenians, and quite a lot of them don't know how the correct behavior is, we know what we should be polite, and we should treat each other with respect, but what's respect in one's point of view may not be respect in another point of view.
And that's why we exists – If you think someone from the community is abusing, please talk to us, we will be just like your mom and dad asking the kids to hug and not fight anymore.
you can reach us in community-wg at kde dot org
Also, people, Follow the rules.
Tears followed by joy and happiness, discussions followed by great moments all together, problems followed by their solution and enthusiasm. Am I talking about my family? More or less, because actually I am talking about a family: the WikiToLearn community!
This last period was full of ups and downs, but that is inevitable in such a project. We are a big family and we do have to face problems, but with willingness and devotion to what we are doing we can manage to overcome such problems and make things go as we want to – or, at least, try to do so.
We are putting our best efforts in what we are doing: our devs are working hard to release the 0.8 version, a first step toward our main goal – the 1.0; promo team is now trying to start local hives (or groups) in different countries; editors have their summer plans to review contents and to create new ones; the importing group is ready and very soon we are having more and more high-quality books available. Members of our family are working together to make WikiToLearn great and to give you (yes, you!) the best place we can give you to study and to create collaborative textbooks!
We are focused on September: with the beginning of the new academic year we have to fully exploit our potential and move toward #operation1000; moreover in September we are also celebrating our first birthday!
Guys, great things are coming: stay tuned!
L'articolo Wiki, what's going on? (Part 7) sembra essere il primo su Blogs from WikiToLearn.
During the last week happened another edition of FISL, the Free Software International Forum, which is held since 2000 in the city of Porto Alegre, Rio Grande do Sul, Brazil. Our participation, as I had already announced here, was very special because we celebrate 20 years of the KDE community this year. The birthday it is only in October but as we could not pass up the opportunity to celebrate this date in such an important event as the FISL, we have prepared a special program.
On the first day it happened our mini-event, the Engrenagem ("Gear" in English), in which members of our community presentend several talks on various issues related to KDE. The Engrenagem was opened by David Edmundson talk, one of the Plasma developers.
My talk was the next. Its title was "20 anos de KDE: de Desktop a Guarda-Chuva de Projetos" (20 years of KDE: From Desktop to Project Umbrella). I presented the evolution process of our community, which led it from a desktop project to a incubator community. For those who did not attend the event the talk was recorded and it is available here. Below I also make available the slides of my presentation:
In addition to our talks, we have also prepared some surprises for the community of fans who showed up there. On the penultimate day of the event we had a special time in which we decorate our booth with balloons and a few other things, completing with birthday cake and candles! ❤
Who has not seen our talks can watch them here, searching by the "Engrenagem" term. All talks were recorded.
Who want to check out our photos at FISL, just visit our flickr
First of all I need help, but before you help me I'd like to show you what a user without development skills can do to make plasma better.
I already post about the system settings redesign and cause developer are busy with other tasks, I reviewed the existing modules and update them to fit (more) our vision. I know it's not how I would prefere in the end but I did the changes without development skills (no compiling, no new code). I use qt-creator for edit the ui files and play around with qml.
The Mouse cursor theme was updated, by move the buttons to bottom as in most other kcm's. The height of the resolution depandant button will be change soon. (left plasma 5.7 right 5.8)
Color scheme: Preview on top and buttons on bottom. I'd like to remove the tabs and add an edit button where the tabs will pop up. Therefore I need an developer.
Emoticon theme: same here rearrange buttons. In general I'm not sure that it is a good idea to have the posibility to add a new theme in the kcm cause start from an existing one and config the xml file would be easier.
I did also some other changes, but I'd like to show you that you can change something without development skills so join the game.
If you have dev skills and be interested in some work on system settings, contact me you can increase the user experience.
The first half of this year, I had the chance to work on icon and design for two big free-software projects.
First, I've been hired to work on Mageia. I had to refresh the look for Mageia 6, which mostly meant making new icons for the Mageia Control Center and all the internal tools.
I proposed to replace the oxygen-like icons with some breeze-like icons.
This way it integrates much better with modern desktop, and of course it looks especially good with plasma.
The result is around 1/3 of icons directly imported from breeze, 1/3 are modified versions and 1/3 are created from scratch. I tried to follow as much as possible the breeze guidelines, but had to adapt some rules to the context.
I also made a wallpaper to go with it, which will be in the extra wallpaper package so not used by default:
available in different sizes on this link.
And another funny wallpaper for people that are both mageia users and Pepper & Carrot fans:
available in different sizes on this link
(but I'm not sure yet if this one will be packaged at all…)
Note that we still have some visual issues with the applets.
It seems to be a problem with how gtkcreate_pixbuf is used. But more important, those applet don't even react to clic in plasma (while this seems at least to work fine in all other desktop).
Since no one seems to have an easy fix or workaround yet, if someone has an idea to help…
Soon after I finished my work on Mageia, I've been hired to work on fusiondirectory.
I had to create a new theme for the web interface, and again I proposed to base it on breeze, similar to what I did for Mageia but in another different context. Also, I modified the CSS to look like breeze-light interface theme. The result theme is called breezy, and is now used by default since the last release.
I had a lot of positive feedback on this new theme, people seem to really like it.
Before to finish, a special side note for the breeze team: Thank you so much for all the great work! It has been a pleasure to start from it. Feel free to look at the mageia and fusiondirectory git repositories to see if there are icons that could be interesting to push upstream to breeze icon set.
Every year I start to create a new book, every year I delete the book folder because I think it's going into the wrong direction, and ths year is no different, I'm starting to write a book about Qt5 programming with C++11, I hope this time things can go different. And what I usually do is setup my LaTeX enviroment (kile, texlive, a few libraries and all that) – but I was hitting a UTF8 issue that \includepackage[utf8 or utf8-x][inputenc] didn't solved… And if you are not well versed in Tex debugging things can go hairwire in just no time.
So I started to look at the different tex enviroments that are in use nowdays, I heard of xetex and luatex but never gave them a go, until now. I started to study ConTeXt because I heard that it's what all the cool kids in the hood are using it, at first I was afraid, I was petrified. All the macros that I know by heart had changed, All the packages that I used to setup had gone, what I could do?
Then I downloaded the ConTeXt help package, started playing with it and then it hit-me. The lslistings package didn't worked, how I was going to write a programming book if I can't do proper code-highlighting on the book?
t-vim is love, t-vim is life.
A package for ConTeXt that uses vim as code-highlithing and thus having around 500+ languages with code colorization already done for you. I feel in love andthe book now is starting to shape.
I hope I don't delete it again this year.
If you are into LaTeX / TeX and never gave ConTeXt a try, please do.
In my last entry I introduced libotp. But this name has some problems, that people thought, that it is a library for one-time-passwords, so we renamed it to libmimetreeparser.
Over the the last months I cleanup and refactored the whole mimetreeparser to turn it into a self-contained library.
As a gerneral rule we wanted to make sure, that we only have dependecies in mimetreeparser, where we we can easily tell, why we need them. We end up with:
In Kube we have decided to use QML to render mails for the user, that's made it easy to switch all html rendering specific parts away. So we end up with just triggering the ObjectTreeParser and create a model out of the resulting tree. The model is than the input for QML. QML now loads different code for different parts in the mail. For example for plain text it just shows the plain text, for html it loads this part in a WebEngine.
But as a matter of fact, the interface we use is quite new and it is currently still under development (T2308). For sure there will be changes, until we are happy with it. I will describe the interface in detail if we are happy with it. Just as sidenote, we don't want a separate interface for kube and kdepim. The new interface should be suitable for all clients. To not break the clients constently, we keep the current interface and develop the new interface from scratch and than switch we are happy with the interface.
As before we use html as rendering output, but with the rise of libmimtreeparser, kmail uses also the messageparttree as input and translate this into html. So we also have here a clear seperation between the parsing step ( handled in libmimetreeparser) and the rendering step, that is happening in messageviewer. Kmail has additional support for different mime-types like iTip (invitations) ind vCard. The problem with these parts are, that they need to interact directly with Akonadi to load informations. So we can actually detect if a event is already known in Akonadi or if we have the vCard already saved, which than changes the visible representation of that part. This all works because libmimetreeparser has an interface to add additional mime-type handlers ( called BodyPartFormatters).
And additionally messageviewer now using grantlee for creating the html, that is very handy and makes it now easy to change the visual presentation of mails, just by changing the theme files. That should help a lot if we want to change the look-and-feel of email presentation to the user. And allow us additionally to think about different themes for emailpresentation. We also thought about the implications of the easy changeable themes and came up with the problem, that it shouldn't be that easy to change the theme files, because malicious users, could fake good cryptomails. That's why the theme files are shipped inside resource files.
Meanwhile I was implementing this, Laurent Montel added javascript/jQuery support to the messageviewer. So I sat down and created a example to switch the alterantivepart ( html and textpart, that can be switched) with jQuery. Okay we came to the conclusion that this is not a good idea (D1991). But maybe others came up with good ideas, where we can use the power of jQuery inside the messageviewer.
Hey, everything ok?
In this last week happened in a cold city called Porto Alegre, in Rio Grande do Sul in Brazil, the 17 edition of FISL, the Free Software International Forum.
Well… KDE has always participated in this forum, and the organization gave to us all day in a room, so the KDE Community could make a lot of talks.
I went there to talk about Stubbornness, Campus Party, and KDE, with the goal of sharing my experience about how this 3 things together changed my life. The point of this talk was made new persons get to know KDE, and encouraging them to go to(more) events. Because events/forums can change lives. Like changed my own. In my University, almost half of the students don't care in go to events, and on this technology events, you will find what the company wants to share, and what skills you need to learn/know to work with them. And was in the Campus Party Sao Paulo 2015 that I saw that, and have my trigger to start to do something outside the college. Was a small talk that I did in 20 minutes, and got positive and bad feedbacks about it.
Also, I participate in another talk, with some friends, with the goal to share the pros and cons about the future of Drones and 3DPrinting. Since technology evolves really fast, and the IA that we are programming are getting smarter than never, we should think about the consequences of this technology. With 3DPrinting, a Drone could auto-replicate you, and depending on how it's used, we can have a lot of bad things happening. We discussed a little bit about the ethics behind the use of Drones, and how that can affect the world that we live. Anyone with a 3DPrinter and some knowledge about robotics can build a Drone. In Brazil, we already had some issues about the use of Drones, and that started a discussion about regulation of use. An air space that the Drone need to be, so that cannot affect other things like airplanes and helicopters. Must be a regulation? Maybe. I need to study more about the subject so I can say more about it.
Also, KDE is making 20 years! YAY And we make a special party in our stand to celebrate this special BDay!
And was so great! Was a great time with the community of KDE Brazil and people that use KDE in day by day sharing with us this *awesome* day!
And yesterday, a friend of mine, Elias Silveira, publish in Facebook this draw of Konqi, that he did it using Krita 3.0! He is so skilled in draw things in Krita, that I get amazed every time that I saw a work of him in my feed. You can see Elias works here.
Well… 20 years of KDE, and I'm almost one year in this community, and I'm very thankful for being part of it. Thanks, KDE Brazil for the support, and all the community for giving me the chance to be a KDE contributor!
Happy Birthday, KDE! \o/
Planet KDE is made from the blogs of KDE's contributors. The opinions it contains are those of the contributor. This site is powered by Rawdog and Rawdog RSS. Feed readers can read Planet KDE with RSS, FOAF or OPML.


text:
Page 3 of 3
The initial discomfort she felt with the city began to feel more like a nudge to stay and create. "Atlanta doesn't allow you to experience settling," she says. "I dug that it made me uncomfortable. Comfort is way overrated. When the residency finished I turned to Rick and I said, 'I'm not going anywhere.'"
Stallings had no intention of starting a company. In fact, she'd often told the dancers at the ballet it was something she would never do. "But it slowly started to dawn on me that I wasn't making work when I was here," she says. "I was coming here to my terrific yard and all our terrific trees, but I wasn't responding to the city as an artist."
Then Susan V. Booth, artistic director of the Alliance Theatre (where Carvlin had begun working as stage operations manager) called and offered Stallings space whenever it was available. With no goal in mind other than the daily work itself, Stallings began rehearsing with a small group. They seldom danced in the same space twice: rehearsal rooms, the Hertz basement theater, the empty Alliance stage, hallways, stairwells, even a bathroom. Often, they went out to the crowded corner of 14th and Peachtree streets at lunchtime and surprised passing office workers. It was only after months of working together that it occurred to anyone that what was happening might need a name. They chose "glo," a Dutch word that describes "a gathering of people who witness a unique event."
"Starting a company was never on her to-do list," says Nicole Johnson, a gloATL dancer. "We just kept dancing, and all of a sudden it was like, 'I guess we're a company.' It's something that kind of just began unfolding."
From the beginning, the idea of finding new ways to bring dance to the public was central to the group. "We don't need to just make another dance," Stallings says. "I knew Atlanta was asking more from us than that. I thought, 'We're asking a whole lot of them. Why don't we ask more of ourselves?'"
"Just come join us."
Stallings points out that technically, she's stayed true to her desire to never start her own company: "I don't consider glo 'mine.' My name's not anywhere on it. I consider it everybody's. ... And I don't think we're ever going to have the feeling of an institution, with a staff and departments. We simply want to get better at what we do, to support individual artists."
First up in 2012 for the non-company that is not hers is the non-festival Off the EDGE. "I told Leslie I'd rather be dead than have another dance festival," says Stallings. Stallings, who is curating the weekend, says she wants the event to be far more than a typical dance festival, with its ticketed affairs for visiting artists who come to town, perform their distinguished, award-winning work and then split. "We don't need any more visits," she says. "We need to take ownership of something." In addition to a ticketed guest artist series, Off the EDGE will initiate comprehensive artist-to-artist exchanges, free public performances by Atlanta-based artists, a conversation series, a weeklong residency with Israeli modern dance legend Rina Schenfeld, youth outreach initiatives, and a visual art exhibition in the Rialto lobby.
As for the rest of 2012, look for glo repurposing the city's empty swimming pools for dance; choreographing 1- to 4-year-old toddlers in a series of site-specific works; collaborating with National Science Foundation and NASA scientists; creating a "physical installation" on the theme of nonfiction in residency at the Atlanta Contemporary Art Center; and presenting a joint fundraising gala with local community arts organization WonderRoot at a nontraditional venue in March.
In April, Rome Prize recipients will be announced. Interestingly, since the prize has never been given in dance, Stallings is being considered under the "Architecture" category. Her proposal posits dance as the contemporary equivalent and successor of architecture, dancers and choreographers as the new catalysts of space and movement. Award recipients are invited to stay in the American Academy's villa in Rome, Italy, for six to 11 months, but Stallings says if she's chosen, she hopes she can bring gloATL with her.
At a question and answer session after a gloATL performance at the Goat Farm last year, a young woman raised her hand and asked how she could audition to be in the company. It's a simple question, not infrequently heard at such Q&A sessions, but elsewhere in the highly specialized, highly selective world of professional dance, it usually sounds as naïve as "How can I join the NBA?" or "How can I star in the next Avatar film?"
"Audition," Stallings said as if sizing up the word for the first time. "Did anyone here ... audition?" The dancers shook their heads and laughed. The company had simply taken shape in its own morphing, precarious way. "We don't really have auditions," Stallings explained. "Just come join us."

subset: commoncrawl


text:
Recent Posts
Category Archives: Leadership
Annals of Leadership: Jose Mourinho
December 18, 2015 "I feel my work was betrayed," he said. "Last season I did an amazing job and I brought players to a level that is not their level." That's what Jose Mourinho, Manager of the English Premier League … Continue reading
Posted in Leadership, Uncategorized Tagged Jose Mourinho Leave a comment
Our Far-Flung Alumni: Robbie Rohr
June 23, 2015 "Rohr said she has always had a strong sense of social justice, and when she attended Earlham College, a Quaker school in Indiana, she felt among kindred spirits, as there was a sense of joy and an … Continue reading
Posted in Leadership, Our Far-Flung Alumni Leave a comment
A Duke University Sexual Assault Case
March 3, 2015 Just coming into public view is a sexual assault case at Duke University. The student newspaper at Duke reports that two students made separate allegations of sexual assault against Rasheed Sulaimon during the 2013-14 academic year. The first … Continue reading
Posted in Leadership, Responsibility and Ethics, Student Life Tagged sexual assault Leave a comment
Graham Spanier's Responsibility
July 24, 2014 This week's New York Times Magazine has a profile of Graham Spanier, the former president of Penn State who was dismissed or fired (there are opposing claims about which) as a consequence of the revelations that Jerry … Continue reading
Constraints on Leadership: Missions, Roles and Values
April 3, 2014 "We must not suppose that those in authority are unaware …, but we must recognize that their liberty of action is often circumscribed by the nature of their office: the powerful are not necessarily free." That quotation … Continue reading
Our Far-Flung Alumni: Bob Mantock
March 27, 2013 Bob (Robert M.) Mantock passed from this life the day before yesterday. He was not a graduate of Earlham, but he made himself a valuable member of the Earlham community through service as a member of the … Continue reading
Posted in Leadership, Our Far-Flung Alumni, Quaker Matters Leave a comment
Annals of Transparency: Big Ten Edition
March 25, 2013 Or perhaps we could call this "Does Sports Build Character: Honesty Edition"? Here's a fascinating piece reprinted in its entirety from Inside Higher Ed this morning: U. of Maryland Didn't Keep Copy of Big 10 Contract March … Continue reading
Posted in Athletics, Governance, Leadership, Money Matters Leave a comment


text:
July 2 (Bloomberg) -- Mortgage applications in the U.S. fell for the fifth time in the past six weeks, led by a drop in purchases even as borrowing costs retreated.
The Mortgage Bankers Association's index declined 0.2 percent in the period ended June 27 after falling 1 percent in the prior week, the Washington-based trade group reported today.
The measure for purchase applications decreased 0.7 percent last week, while the refinancing index advanced 0.1 percent. The share of applicants seeking to refinance expanded to 52.5 percent from 52.1 percent the prior week, today's report showed.
The average rate on a 30-year fixed loan eased to 4.28 percent from 4.33 percent. The average rate on a 15-year mortgage also dropped, to 3.42 percent from 3.47 percent.
Comments are moderated by SDDT, in accordance with the SDDT Comment Policy, and may not appear on this commentary until they have been reviewed and deemed appropriate for posting. Also, due to the volume of comments we receive, not all comments will be posted.
SDDT Comment Policy: SDDT encourages you to add a comment to this discussion. You may not post any unlawful, threatening, defamatory, obscene, pornographic or other material that would violate the law. All comments should be relevant to the topic and remain respectful of other authors and commenters. You are solely responsible for your own comments, the consequences of posting those comments, and the consequences of any reliance by you on the comments of others. By submitting your comment, you hereby give SDDT the right, but not the obligation, to post, air, edit, exhibit, telecast, cablecast, webcast, re-use, publish, reproduce, use, license, print, distribute or otherwise use your comment(s) and accompanying personal identifying and other information you provide via all forms of media now known or hereafter devised, worldwide, in perpetuity. SDDT Privacy Statement.
All contents herein copyright San Diego Source ® 1994-2016


text:
Browse Restaurant Table Tops
Add to Cart to see our price.
Customers may find dining without a table top difficult. Aside from its inherit functional uses, your dining table tops also impact the look and feel of your restaurant. Whether you opt for a rustic feel with aged oak, or you plan on covering your tables in crisp, white linens, make a statement by picking the right table top for your restaurant.
Exclusive offers and product updates will be arriving to your inbox soon.


text:
Dr. Margolis is a Penn Medicine employed physician.
Recognized by Best Doctors in America 2003-2004, 2005-2006, 2007-2008, 2009-2010, 2011-2012, 2013-2014
Recognized in Philadelphia Magazine's May 2002 Top Docs issue
dermatology, chronic wounds
A facility of the Hospital of the University of Pennsylvania
Medical School: University of Chicago School of Medicine
Residency: Hospital of the University of Pennsylvania
epidemiology, clinical trials, pharmacoepidemiology, wound repair, chronic wounds
Takeshita, J, Wang S, Shin DB, Mehta NN, Kimmel SE, Margolis DJ, Troxel AB, Gelfand JM: Impact of psoriasis severity on hypertension control: A population-based study in the United Kingdom. JAMA Dermatology. 151 (2): 161-9,2015.
Abuabara K, Hoffstad O, Troxel A, Gelfand JM, Margolis DJ: Atopic dermatitis disease control and age: A cohort study J Allergy Clin Immunol on line : 2015.
167. Cluzet VC, Gerber JS, Nachmankin I, Metlay JP, Zaoutis TE, Davis MF, Julian KG, Linkin DR, Coffin SE, Margolis DJ, Hollander JE, Bilker WB, Han X, Mistry RD, Gavin LJ, Tolomeo P, Wise JA, Wheeler MK, Hu B, Fishman NO, Royer D, Lautenback E: Risk factors for recurrent colonization with methicillin-resistant Staphylococcus aureus in community-dwelling adults and children Infect Control Hosp Epidemiol 14 : 1-8,2015.
GBD 2013 Risk Factors Collaborators, Forouzanfar MH, Alexander L, Anderson HR, Bachman VF, Biryukov S, Brauer M, Burnett R, Casey D, Coates MM, Cohen A, Delwiche K, Estep K, Frostad JJ, Kc A, Kyu HH, Moradi-Lakeh M, Ng M, Slepak EL, Thomas BA, Wagner J, Aasvang GM, Abbafati C, Ozgoren AA, Abd-Allah F, Abera SF, Aboyans V, Abraham B, Abraham JP, Abubakar I, Abu-Rmeileh NM, Aburto TC, Achoki T, Adelekan A, Adofo K, Adou AK, Adsuar JC, Afshin A, Agardh EE, Al Khabouri MJ, Al Lami FH, Alam SS, Alasfoor D, Albit: Global, regional, and national comparative risk assessment of 79 behavioural, environmental and occupational, and metabolic risks or clusters of risks in 188 countries, 1990-2013: a systematic analysis for the Global Burden of Disease Study 2013 Lancet on line : 2015.
Rice JB, Desai U, Ristovska L, Cummings AK, Birnbaum HG, Skornicki M, Margolis DJ, Parson NB: Economic outcomes among Medicare patients receiving biogineered cellular technology for the treatment of diabetic foot ulcers J Med Econ J Med Econ : 1-10,2015.
Davis RL, Gallagher MA, Asgari MM, Eide MJ, Margolis DJ, March E, Burmester JK, Selvam N, Boscarino JA, Cromwell LF, Feigelson HS, Kuntz JL, Pawloski PA, Penfold RB, Raebel MA, Sridhar G, Wu A, La Grenade LA, Pacanowski MA, Pinheiro SP: Identification of Stevens-Johnson syndrome and toxic epidermal necrolysis in electronic health record databases Pharmacoepidemiol Drug Saf 24 (7): 684-92,2015.
Margolis DJ, Hampton M, Hoffstad O, Malay DS, Thom, S: Health literacy and diabetic foot ulcer healing Wound Repair and Regeneration on line : 2015.
Cluzet VC, Gerber JS, Nachamkin I, Metlay JP, Zaoutis TE, David MF, Julian KG, Royer D, Linkin DR, Coffin SE, Margolis DJ, Hollander JE, Mistry RD, Gavin LJ, Tolomeo P, Wise JA, Wheeler MK, Bilker WB, Han X, Hu B, Fishman NO, Lautenback E: Duration of colonization and determinants of earlier clearance of colonization with methicillin-resistant Staphylococcus aureus Clinical Infectious Diseases 60 : 1489-96,2015.
Margolis DJ, Abuabara K, Hoffstad O, Wan J, Raimondo J, Bilker W: No significant association between malignancy and topical use of pimecrolimus. JAMA Dermatology 151 (6): 594-599,2015.
Penn Dermatology website
Congratulations to the 184 Penn physicians listed below who were included in Philadelphia Magazine's Top Doctors 2016.
Penn Medicine is one of the world's leading academic medical centers.
A clinical trial is a research study involving patient volunteers that are conducted to find safe and effective treatments for a variety of health conditions.


text:
Definición de pash en inglés:
A brief infatuation: Kath's got a pash on him
Más ejemplos en oraciones
- Find someone that you can maybe fall in love with or maybe just have a nice, comfortable relationship for awhile. Find a mad pash.
- Today's 10-year-olds can discover for themselves my long-ago pash.
- Then there's the ex-boyfriend, the one a friend of mine named the 'mad pash of my life,' which is about the long and the short of it.
verbo[no object] Australian /NZ
Kiss and caress amorously.
Oraciones de ejemplo
- We don't even have to tell one or more of the girls we're pashing.
- 'No, you want to go back to the bar, yell at your girlfriend and punch that bloke she was pashing,' Adele scorned.
- It made her sick, especially when she realised that it was Drew who was pashing the unknown female.
Early 20th century: abbreviation of passion.
Palabras que riman con pashabash, ash, Ashe, bash, brash, cache, calash, cash, clash, crash, dash, encash, flash, gnash, hash, lash, mash, Nash, panache, plash, rash, sash, slash, smash, soutache, splash, stash, thrash, trash
For editors and proofreaders
Saltos de línea: pash
Definición de pash en:
¿Qué te llama la atención de esta palabra o frase?
Los comentarios que no respeten nuestras Normas comunitarias podrían ser moderados o eliminados.
Muy popular en Reino Unido
Muy popular en Australia
= de moda