My friend Noah mentioned the game VVVVVV. I was confused because I thought he was talking about the visual programming language vvvv. I went to Wikipedia to clear up my confusion but ended up on the article on VVVVV which is about the Latin phrase “vi veri universum vivus vici” meaning, “by the power of truth, I, while living, have conquered the universe”.
There is no Wikipedia article on VVVVVVV. That would be ridiculous.
how I was surprised by a large AWS charge and how to calculate the break-even pointGlacier Archival of S3 Objects
Amazon recently introduced a fantastic new feature where S3 objects can be automatically migrated over to Glacier storage based on the S3 bucket, the key prefix, and the number of days after object creation.
This makes it trivially easy to drop files in S3, have fast access to them for a while, then have them automatically saved to long-term storage where they can’t be accessed as quickly, but where the storage charges are around a tenth of the price.
…or so I thought.S3 Lifecycle Rule
My first use of this feature was on some buckets where I store about 350 GB of data that fits the Glacier use pattern perfectly: I want to save it practically forever, but expect to use it rarely.
It was straight forward to use the S3 Console to add a lifecycle rule to the S3 buckets so that all objects are archived to Glacier after 60 days:
(Long time readers of this blog may be surprised I didn’t list the command lines to accomplish this task, but Amazon has not yet released useful S3 tools that include the required functionality.)
Since all of the objects in the buckets were more than 60 days old, I expected them to be transitioned to Glacier within a day, and true to Amazon’s documentation, this occurred on schedule.Surprise Charge
What I did not expect was an email alert from my AWS billing alarm monitor on this account letting me know that I had just passed $200 for the month, followed a few hours later by an alert for $300, followed by an alert for a $400 trigger.
This is one of my personal accounts, so a rate of several hundred dollars a day is not sustainable. Fortunately, a quick investigation showed that this increase was due to one time charges, so I wasn’t about to run up a $10k monthly bill.
The line item on the AWS Activity report showed the source of the new charge:
$0.05 per 1,000 Glacier Requests x 5,306,220 Requests = $265.31
It had not occurred to me that there would be much of a charge for transitioning the objects from S3 to Glacier. I should have read the S3 Pricing page, where Amazon states:
Glacier Archive and Restore Requests: $0.05 per 1,000 requests
This is five times as expensive as the initial process of putting objects into S3, which is $0.01 per 1,000 PUT requests.
There is one “archive request” for each S3 object that is transitioned from S3 to Glacier, and I had over five million objects in these buckets, something I didn’t worry about previously because my monthly S3 charges were based on the total GB, not the number of objects.5306220Overhead per Glacier Object
josh.monet has pointed out in the comments that Amazon has documented some Glacier storage overhead:
For each S3 object migrated to Glacier, Amazon adds “an additional 32 KB of Glacier data plus an additional 8 KB of S3 standard storage data”.
Storage for this overhead is charged at standard Glacier and S3 prices. This makes Glacier completely unsuitable for small objects.Break-even Point
After stopping to think about it, I realized that I was still saving money on the long term by moving objects in these S3 buckets to Glacier storage. This one-time up front cost was going to be compensated for slowly by my monthly savings, because Glacier is cheap, even compared to the reasonably cheap S3 storage costs, at least for larger files.
Here are the results of my calculations:
Monthly cost of storing in S3: 350 GB x $0.095/GB = $33.25
Monthly cost of storing in Glacier: $8.97
- 350 GB x $0.01/GB = $3.50
- Glacier overhead: 5.3 million * 32 KB * $0.01/GB = $1.62
- S3 overhead: 5.3 million * 8 KB * $0.95/GB = $3.85
One time cost to transition 5.3 million objects from S3 to Glacier: $265
Months until I start saving money by moving to Glacier: 11
Savings per year after first 11 months: $291 (73%)
For this data’s purpose, everything eventually works out to an advantage, so thanks, Amazon! I will, however, think twice before doing this with other types of buckets, just to make sure that the data is large enough and is going to be sitting around long enough in Glacier to be worth the transition costs.
As it turns out, the primary factor in how long it takes to break even is the average size of the S3 objects. If the average size of my data files were larger, then I would start saving money sooner.
Here’s the formula… The number of months to break even and start saving money when transferring S3 objects to Glacier is:
break-even months = 631,613 / (average S3 object size in bytes - 13,011)
(units apologies to math geeks)
In my case, the average size of the S3 objects was 70,824 bytes (about 70 KB). Applying the above formula:
631,613 / (70,824 - 13,011) = 10.9
or about 11 months until the savings in Glacier over S3 covers the cost of moving my objects from S3 to Glacier.
Looking closely at the above formula, you can see that any object 13 KB or smaller is going to cost more to transition to Glacier rather than leaving it in S3. Files approaching that size are going to save too little money to justify the transfer costs.
The above formula assumes an S3 storage cost of $0.095 per GB per month in us-east-1. If you are storing more than a TB, then you’re into the $0.08 tier or lower, so your break-even point will take longer and you’ll want to do more calculations to find your savings.
[Update 2012-12-19: Included additional S3 and Glacier storage overhead per item. Thanks to josh.monet for pointing us to this information buried in the S3 FAQ.]
[Update 2013-03-07] Amazon S3 documentation now has a section on Glacier Pricing Considerations that has some good pointers.
Original article: http://alestic.com/2012/12/s3-glacier-costs
Headsets come in many sorts and shapes. And laptops come with different sorts of headset jacks – there is the classic variant of one 3.5 mm headphone jack and one 3.5 mm mic jack, and the newer (common on smartphones) 3.5 mm headset jack which can do both. USB and Bluetooth headsets are also quite common, but that’s outside the scope for this article, which is about different types of 3.5 mm (1/8 inch) jacks and how we support them in Ubuntu 14.04.
You’d think this would be simple to support, and for the classic (and still common) version of having one headphone jack and one mic jack that’s mostly true, but newer hardware come in several variants.
If we talk about the typical TRRS headset – for the headset itself there are two competing standards, CTIA and OMTP. CTIA is the more common variant, at least in the US and Europe, but it means that we have laptop jacks supporting only one of the variants, or both by autodetecting which sort has been plugged in.
Speaking of autodetection, hardware differs there as well. Some computers can autodetect whether a headphone or a headset has been plugged in, whereas others can not. Some computers also have a “mic in” mode, so they would have only one jack, but you can manually retask it to be a microphone input.
Finally, a few netbooks have one 3.5 mm TRS jack where you can plug in either a headphone or a mic but not a headset.
So, how would you know which sort of headset jack(s) you have on your device? Well, I found the most reliable source is to actually look at the small icon present next to the jack. Does it look like a headphone (without mic), headset (with mic) or a microphone? If there are two icons separated by a slash “/”, it means “either or”.
For the jacks where the hardware cannot autodetect what has been plugged in, the user needs to do this manually. In Ubuntu 14.04, we now have a dialog:
In previous versions of Ubuntu, you would have to go to the sound settings dialog and make sure the correct input and output were selected. So still solvable, just a few more clicks. (The dialog might also be present in some Ubuntu preinstalls running Ubuntu 12.04.)
So in userspace, we should be all set. Now let’s talk about kernels and individual devices.
Quite common with Dell machines manufactured in the last year or so, is the version where the hardware can’t distinguish between headphones and headsets. These machines need to be quirked in the kernel, which means that for every new model, somebody has to insert a row in a table inside the kernel. Without that quirk, the jack will work, but with headphones only.
So if your Dell machine is one of these and not currently supporting headset microphones in Ubuntu 14.04, here’s what you can do:
- Check which codec you have: We currently can enable this for ALC255, ALC283, ALC292 and ALC668. “grep -r Realtek /proc/asound/card*” would be the quickest way to figure this out.
- Try it for yourself: edit /etc/modprobe.d/alsa-base.conf and add the line “options snd-hda-intel model=dell-headset-multi”. (A few instead need “options snd-hda-intel model=dell-headset-dock”, but it’s not that common.) Reboot your computer and test.
- Regardless of whether you manage to resolve this or not, feel free to file a bug using the “ubuntu-bug audio” command. Please remove the workaround from the previous step (and reboot) before filing the bug. This might help others with the same hardware, as well as helping us upstreaming your fix to future kernels in case the workaround was successful. Please keep separate machines in separate bugs as it helps us track when a specific hardware is fixed.
Notes for people not running Ubuntu
- Kernel support for most newer devices appeared in 3.10. Additional quirks have been added to even newer kernels, but most of them are with CC to stable, so will hopefully appear in 3.10 as well.
- PulseAudio support is present in 4.0 and newer.
- The “what did you plug in”-dialog is a part of unity-settings-daemon. The code is free software and available here.
Today I started work on the third release of Qimo. I’m slowly but surely learning how to do it better.
In the first release of Qimo I unpacked an Ubuntu ISO by hand, changed things by hand, and then re-packed the ISO….by hand. It was really quite a bit of work.
By the second release I had learned to build debian packages to install Qimo’s artwork, configurations and dependencies. This make things a good bit easier, but I was still unpacking Ubuntu’s ISO, ripping things out, installing my new packages, hacking a few more things together, and then packing it up again.
Now, for the third release, I’m learning how to use debootstrap to create a brand new ISO, just for Qimo, with just the things that Qimo needs to run. I’m still learning how it all works, but I’m hoping it will reduce the time and effort it takes to spin up a new CD image, which will let me iterate faster on the actual development of Qimo, and maybe even provide regular image downloads during development.
Who knows, if all goes well, I might even have time to fix up the website.
It means, if the Ubuntu Technical Board approves our proposal, Ubuntu GNOME 14.04 will be LTS – fingers crossed.
What does LTS mean?
Please see this Wiki Page.
Whether Ubuntu GNOME 14.04 will be an LTS release or not, we shall definitely need ‘more active contributors and manpower’. The community is growing fast, both in quality and quantity which is very promising and this has absolutely increased our confidence that we could do more and go the extra miles. Our need to ‘more contributions’ will never stop since we have decided to go that path.
There are lots of areas where you can help and support Ubuntu GNOME with. Please have a read at:
Getting Involved with Ubuntu GNOME.
If you have any question, please don’t hesitate to Contact Us.
“I am because we are.”
“All of us are smarter than any one of us.”
Thank you for choosing and supporting Ubuntu GNOME!
As some of you will know, I founded the Community Leadership Summit that takes place in Portland, Oregon every year. The event brings together community leaders, organizers and managers and the projects and organizations that are interested in growing and empowering a strong community. Each year we discuss, debate and continue to refine the art of building an effective and capable community, structured in a set of presentation and attendee-driven unconference sessions.
This year’s event is happening on 18th – 19th July 2014 (the two days before OSCON), and is shaping up to be a great event. We have over 180 people registered already, with a diverse and wide-ranging set of attendees. The event is free to attend, you just need to register first. We hope to see you there!
In a few weeks though we have an additional sister-event to the main Community Leadership Summit at the Open Source Think Tank.
The Community Leadership Summit and Open Source Think Tank have partnered to create a unique event designed for executives and managers involved in community management planning and strategic development. While the normal annual Community Leadership Summit serves practicing community managers and leaders well, this unique event is designed to be very focused on executives in a strategic leadership position to understand the value and process of building a community.
I have been wanting to coordinate a strategic leadership event such as this for some time, and the Think Tank is the perfect venue; it brings together executives across a wide range of Open Source organizations, and I will be delivering the Community Leadership Summit track as a key part of the event on the first day.
The event takes place on 24th March 2014 in Napa, California. See the event homepage for more details – I hope to see you there!
The track is shaping up well. We will have keynote sessions, break-out groups discussing gamification, metrics, hiring community managers, and more, a dedicated case study (based on a real organization with the identity anonymized) to exercise these skills and more.
If you want to join the Community Leadership Summit track at the Open Source Think Tank, please drop me an email as space is limited. I hope to see you there!
Next week we have our Ubuntu Developer Summit, taking place online from Tues 11th March 2014 – Thurs 13th March 2014. Go and see the schedule – we still have lots of schedule space if you want to run a session. For details of how to propose a session, see this guide.
I just want to highlight a session I would like to really invite input on in particular.
Today the online Ubuntu Developer Summit is largely based on the formula from our physical UDSs that we used to have, and that formula goes back to 2004. While these have traditionally served the project well, I am cognizant that our community is much bigger and more diverse than it used to be, and our current Ubuntu Developer Summit doesn’t serve our wider community as well as it could; there is more to Ubuntu to rigorous software engineering.
UDS is great if you are a developer focused on building software and ensuring you have a plan to do so, but for our translators, advocates, marketeers, app developers, and more…the format doesn’t suit those communities as well.
As such, I would like to discuss this and explore opportunities where UDS could serve our wider community better. The session is here and is on Wed 12th March at 19.00UTC. I hope you can join me!
As discussed, everyday new images are produced for ubuntu for all supported architecture types. I would encourage you to follow along and watch the progression of the OS through these images and your testing. Every data point matters and testing on a regular basis is helpful. So how to get started?
Settle in with a nice cup of tea while testing!
For the desktop images everything you need is on the image tracker. There is a wonderful video and text tutorial for helping you get started. You report your results on the tracker itself in a simple web form, so you'll need a launchpad account if you don't have one.
The secondary way to help keep the desktop images in good shape is to install and run the development version of ubuntu on your machine. Each day you can check for updates and update your machine to stay in sync. Use your pc as you normally would, and when you find a bug, report it! Bugs found before the release are much easier to fix than after release.
Now for the phablet images you will need a device capable of running the image. Check out the list. Grab your device and go through the installation process as described on the wiki. Make sure to select the '-proposed' channel when you install so you will see updates to get the latest images being worked on every time they are built. From there you can update everyday. Use the device and when you find a bug, report it! Here's a wiki page to help guide your testing and help you understand how and where to report bugs.
Don't forget there's a whole team of people within ubuntu dedicated to testing just like you. And they would love to have you join them!
This content is password protected. To view it please enter your password below:
The submissions process for Ubuntu 14.04 is now closed. If you’d like to look at the images head over to the Flickr Group. From here on a group of dedicated and splendid individuals will get together to select the images that are going to go into the next release of Ubuntu. We’ll be hanging out on #1404wallpaper on Freenode and you can come listen in
We generally welcome discussion but please remember that a decision is needed from the time that people volunteer so not too much additional debate.
We’ll start with a meeting tomorrow, Friday 7th March, at 19:00GMT.
Currently the official development device, Google/LG Nexus 4, is not available for the Tunisian market which makes it harder to get hands on for testing purposes.
On the other hand, regardless of hardware availability problems for the Tunisian LoCo team, our community have kept a good pace following and mastering the latest Ubuntu technologies.
Actually, the Tunisian community supported Ubuntu Touch since the beginning and dedicated the time to introduce it during Ubuntu Global Jam 13.03. Few months later was the first serious Ubuntu Touch development experience in September 2013 during the Ubuntu Touch coding sprint held in GNU30 event (Organized by Esprit Libre in collaboration with more than ten local FLOSS communities and clubs, including Ubuntu-TN).
Later in 2014, three Ubuntu Touch training sessions were ensured by three of the developer members from the GNU30 sprint (organized by Ubuntu-TN in collaboration with CLLFSM and ISIMUX).
Moreover, many upcoming events in Tunisia will concentrate on Ubuntu Touch, such as the local Ubuntu Dev Challenge and other Ubuntu Touch conferences and workshops. Thus, the need of a hardware device to showcase Ubuntu Touch and to test the serious applications.
Fortunately, I was lucky to get the support of Mr Amjed Abdejlil. The owner of a little store in Arizona (USA), but a big tech enthusiast and a supporter for the Tunisian Community. Actually, Mr Amjed was very happy to send me the official Ubuntu Touch development phone (Nexus 4). And I am very thankful for his great support.
So, I only got the phone last week, and I recently flashed Android 4.4 with the radio of Android 4.3 then installed Ubuntu Trusty in dual boot.
Following is an album with some pictures of the phone.
I would be also happy to post a review and a little tutorial when possible.
More importantly, is that I intend to provide a "best effort" Ubuntu Touch application testing for local community developers. But I can promise this only for Ubuntu-TN FreedomFighter members, and will grant them a priority testing. (Please work harder to become an FF member in order to gain more community privileges)
To conclude with, this is a very exciting news for me. And I expect it to be as exciting for our LoCo team. I hope this will be just another push forward to see Tunisian Ubuntu developers soon.
Packages for the release of KDE's document suite Calligra 2.8 are available for Kubuntu 12.04 LTS and 13.10. You can get it from the Kubuntu Backports PPA (alongside KDE SC 4.12). They are also in our development release.
As part of this we are introducing basic test cases that every user can run to ensure that core functionality such as instant messaging and playing MP3 files is working as expected. All tests are meant to take no more than 10 minutes and should be doable by just about everyone. They are the perfect way to get some basic testing done without all the hassle testing usually involves.
Feel free to run any test case, at any time.
If you have any questions, drop me a mail at email@example.com, or stop by in #kubuntu-devel on irc.freenode.net.
kitten by David Flores
The Blue Systems office in Edinburgh has moved across The Meadows to the Grassmarket to a larger office which is also surrounded on two sides by curious artist collectives and the occasional hipster café. Hosted in Edinburgh's new technology incubator Codebase we are in another building which is nicer on the inside looking out, this time with a view of our local volcano Arthur's Seat.
I'd like to thank Cloudsoft for squatting in the office with me, making software to manage your applications in the cloud they are hiring now if you fancy a job in the most beautiful city in the world..
In terms of skill set we are looking for, the main thing is that they are
good software engineers rather than specific skills. However, here are a
few potential areas:
1. Experienced Java programmer (and/or other languages a big plus; Java
is not a pre-requisite).
2. Devops experience.
3. Good sys admin skills.
4. Distributed computing (i.e. understands the architectural
Yesterday I did a tutorial for the Ubuntu App Developer Week. The topic was “Extending QML Applications with Qt/C++ plugins”. If you’re interested in that topic but you’ve missed the session, you can watch it here:
You can find the example code used in the tutorial on Launchpad.
Today I’m going to do a session about using qmltestrunner to test your QML applications. You can watch it live at 15:00 UTC at http://summit.ubuntu.com/appdevweek-1403/meeting/22137/testing-with-qmltestrunner/. If you can’t make it, this site will keep the video for you to watch it later.
As communicated before, since we have ended the submission for the wallpapers, it is time to ask the whole community to vote and select their favourite wallpapers which will make it to the final release of Ubuntu GNOME 14.04 (Trusty Tahr).
Please note that you’re required to select (Ten – 10) wallpapers and vote for your selections and the top (Ten – 10) wallpapers will be included in Ubuntu GNOME 14.04.
The poll will continue until: 9-March-2014
To view the poll, please click here:
[Poll] Ubuntu GNOME 14.04 Community Wallpaper Contest
What will happen next?
Once we finish the poll, we shall announce the winner wallpapers that will make it to Ubuntu GNOME 14.04 and that would be the final step of the Community Wallpaper Contest.
Thank you for your time and your vote!
On Behalf of Ubuntu GNOME Artwork Team
OpenStack has emerged as the consensus forum for open source private cloud software. That of course makes it a big and complex community, with complex governance and arguably even more complex politics, but it has survived several rounds of competition and is now settling down as THE place to get diverse vendors to work together on a IAAS that anybody can deploy for themselves. It is a big enough forum with sufficient independent leadership that no one vendor will ever control it (despite some fantastically impressive efforts to do so!). In short, OpenStack is what you want if you are trying to figure out how to build yourself a cloud.
And by quite a large majority, most of the people who have actually chosen to deploy OpenStack in production, have done so on Ubuntu.
At the latest OpenStack summit, an official survey of production OpenStack deployments found 55% of them on Ubuntu, a stark contrast with the 10% of OpenStack deployments on RHEL.
Canonical and Ubuntu play an interesting role in OpenStack. We do not seek to control any particular part of the project, although some of our competitors clearly think that would be useful for them to achieve, we think OpenStack would be greatly diminished in importance if it was perceived to be controlled by a single vendor, and we think there are enough contributors and experts around the table to ensure that the end result cannot actually be controlled by a single party. To a certain extent, the battle for notional control of key aspects of OpenStack just holds the project back; it’s a distraction from the real task at hand, which is to deliver a high quality, high performance open cloud story. So our focus is on supporting the development of OpenStack, supporting the broadest range of vendors who want to offer OpenStack solutions, components and services, and enabling a large ecosystem to accelerate the adoption of OpenStack in their markets.
It’s a point of pride for us that you can get an OpenStack cloud built on Ubuntu from just about every participant in the OpenStack ecosystem – Dell, HP, Mirantis, and many more – we think the healthiest approach is for us to ensure that people have great choices when it comes to their cloud solution.
We were founding members and are platinum sponsors of the OpenStack Foundation. But what’s more important to us, is that most OpenStack development happens on Ubuntu. We take the needs of OpenStack developers very seriously – for 14.04 LTS, our upcoming bi-annual enterprise release, a significant part of our product requirements were driven by the goal of supporting large-scale enterprise deployments of OpenStack with high availability as a baseline. Our partners like HP, who run one of the largest OpenStack public cloud offerings, invest heavily in OpenStack’s CI and test capabilities, ensuring that OpenStack on Ubuntu is of high quality for anybody who chooses the same base platform.
We publish stable, maintained archives of each OpenStack release for the LTS releases of Ubuntu. That means you can ALWAYS deploy the latest version of OpenStack on the current LTS of Ubuntu, and there is a clear upgrade path as new versions of both OpenStack and Ubuntu are released. And the fact that the OpenStack release cadence and the Ubuntu release cadence are perfectly aligned is no accident – it ensures that the OpenStack developers can always deliver their latest code straight to a very large audience of developers and operators. That’s important because of the extraordinary pace of innovation inside OpenStack; there are significant and valuable improvements in each six-month release, so customers, even enterprise customers, find themselves wanting a more aggressive upgrade schedule for OpenStack than is normal for them in platform environments. We support that and have committed to continue doing so, though we do expect the urgency of those upgrades to diminish as OpenStack matures over the next three years.
For commercial support of OpenStack, we are happy for industry to engage either with our partners who can provide local talent combined with an escalation path to Canonical for L3 support of the whole solution, or directly with Canonical if the circumstances warrant it. That means building on Ubuntu opens up a wide range of solution providers who can make the same high commitment to SLAs and upgrades.
For Canonical itself, our focus is on scale and quality. Our direct customers run the very largest production deployments of OpenStack, both private and public, and we enjoy collaborating with their architects to push the limits of the stack as it stands today. That gives us a lot of insight into the approaches being taken by a wide range of architects in telco, finance and media. We ourselves invest very heavily in testing, continuous integration, and interoperability, with the largest OpenStack interop program (OIL) that gives us the ability to speak with confidence about what combinations of vendor offerings will actually work, and in many cases, how they will perform together for different applications.
The fact that the traditional enterprise Linux vendors have now joined OpenStack is a tremendous validation of the role that OpenStack has assumed in industry: THE open cloud forum. But for all the reasons outlined above, most of the actual production deployments of OpenStack are not on traditional, legacy enterprise Linux. This mirrors the public cloud, where even the largest and most mission-critical deployments tend not to be on proprietary Linux offerings; the economics of HA single-node solutions just don’t apply in a scale-out environment. So just as Ubuntu is by far the most widely used platform for public cloud guests, it is also on track to be the enterprise choice for scale-out infrastructure like IAAS, storage, and big data. Even if you have always done Linux a particular way, the transition to scale-out thinking is an opportunity to reset expectations about your base OS; and for the fastest-moving players in telco, media and finance, Ubuntu turns out to be a great way to get more done, more efficiently.
On March 8th, my Ubuntu membersip will expire. I’ve been getting email notifications for a few days and I’ve decided not to renew my membership. Ubuntu introduced me to open source. Thank you for the great operating system and the sense of community that I’ve had for a few years. I’ve made a lot of friends and I’ve had a lot of mentors who’ve helped me become a better person.
I won’t disappear entirely – I will still be in a few IRC channels and help in whatever little way I can.
Thank you everyone for the spectacular few years.
"First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. [...]
Second is the pleasure of making things that are useful to other people. Deep within, we want others to use our work and to find it helpful. [...]
Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. [...]
Fourth is the joy of always learning, which springs from the non-repeating nature of the task. In one way or another the problem is ever new, and its solver learns something; sometimes practical, sometimes theoretical, and sometimes both.
Finally, there is the delight of working in such a tractable medium. The programmer [...] works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework,so readily capable of realizing gran conceptual structures.
Yet the program construct [...] is real in the sense that it moves and works, producing visible outputs separate from the construct itself."
from The Joys of the Craft, sixhats.com.ar
Image from Hello Ruby