Category archive: Text
-
Best Strapatsada ever
Today I created my best strapatsada ever. It tasted fantastic. So I'll try to document it for more people to use.
Strapatsada, or kagiana, is a simple dish for breakfast or dinner. Basically, it's a dish of scrambled eggs with added tomatoes and feta cheese. This way it becomes more like a 'dish' by itself -- the only thing that needs now is some bread, chapata etc. Its name comes from the italian word 'strapazzare' which means scramble, mistreat or chop.
Warning. This is not a good-looking food. But its taste is fantastic.
Ingredients
Serves 3 people:
- 12 eggs
- 300g feta cheese, medium hardness
- 6-8 mid-sized tomatoes. Juices are needed in this dish, so ripe tomatoes are preferred.
- 2 tbsp tomato purée
- 1 tsp Indian Garam Masala
- 3 fresh chilies, very finely chopped.
- 4 tbsp milk
- 1/4 cup olive oil
In short, my variation is to use garam masala spice mixture for flavor, chilies for hotness and some milk for fluffiness.
How?
- Peel tomatoes and grate.
- Cut feta cheese in square cubes (e.g. 1cm big)
- Sauté tomatoes and chillies in olive oil. Add respective salt and pepper. Cook for a couple of minutes, until almost all the juices evaporate and you have a nice sauce.
- In parallel, beat eggs until a solid mixture and before they start to produce any foam. Stir in milk.
- Put eggs in pan. Stir like common scrambled eggs: Use a flat spatula to constantly push mixture towards the center of the pan.
- When the mixture starts loosing its liquids, add feta cheese.
- Before the mixture looses all its liquids remove from fire.
- Serve immediately. Goes well with some crispy bread, like grilled thin pita bread.

Tips
- Due to the simplicity and little cooking time of this food, your core ingredients (eggs, feta cheese) should be of good quality.
- Tomatoes can be easily peeled when put into hot water for 1 minute.
- Do not use food processor/multi for grating tomatoes. It breaks the seeds and adds bitterness.
- Tomato purée adds 'depth' to the color (orange-red instead of light-organge) and flavor of tomatoes, and thickens the sauce. Its a must-add IMHO, otherwise your dish might end up having some liquids in the plate.
- Like good scrambled eggs, your strapatsada should be fluffy. You want to get a solid mixture but which the egg has not completely lost all its liquids, otherwise the dish will be somewhat 'dry'. Milk or creme helps here.
- Keep in mind that after removing from the heat, the food continues to cook slightly for the next 30 seconds due to resident heat.
- I don't use oregano because it adds small dry pieces in the bite. Like good scrambled eggs, the greatness of this dish is its simplicity, and for this reason I'd avoid the temptation to add any omelette ingredient like ball peppers, onions, sausages etc.
- Fresh chillies add freshness to the dish and a slight "unbalance" in chewing (some bites are a bit more spicy). This is nice due to the simplicity of the dish. Alternatively, one can use chili powder.
- Garam masala spice blend can be replaced with a good mix of similar spices. Refer to the wikipedia page for more info.
-
Changing your Mac address on Linux
Useful for privacy and time-capped WiFi connection at airports.
$ ifconfig -a wlan0 | grep HWaddr wlan0 Link encap:Ethernet HWaddr 00:16:2B:8D:A2:6C $ sudo ifconfig wlan0 down $ sudo ifconfig wlan0 hw ether 00:16:2B:8D:A2:7C $ sudo ifconfig wlan0 up $ ifconfig -a wlan0 | grep HWaddr wlan0 Link encap:Ethernet HWaddr 00:16:2B:8D:A2:7CI think newer versions of NetworkManager get this right. Haven't tried MacChanger.
-
She
A poem about that girl I met yesterday.
...she had an unusual calmness around her. One, that everyone strives for. The calmness of a floating kite. That character of a river. Calmness which, monks attain through divine realisation, and turtles gain, perhaps, through years of watching genera- tions pass by. I found it soothing like a river; So tender, yet extremely captivating. Her low voice, quiet smile, all had an excep- tional gracefulness to it. I never told her all this; Actually, I couldn’t. And today I think, some things are just meant not to be conveyed; They are meant to become memories, and we are suppose to cherish them for the eternity.
-
Greek Prime minister talks about Indifex
Yesterday both me and Indifex were unexpectedly honored to be mentioned by the Greek Prime Minister as one of the best examples of innovative companies in Greece.
The Prime Minister was giving a talk at the biggest exhibition/fair in Greece (and probably the Balkans) which was broadcasted live by TV media and was being watched by a few million people (wow). In his talk about development and innovation, he mentions:
For us, sustainability means investing in people, knowledge acquisition, technology assimilation, investing in our own products, knowledge, history, skills, and aesthetic quality.
And we can do it, yes, it can be done.
People around us prove it every day. They are the revolution of the evident.
People like Dimitris Glezos, based in Patras, who started Indifex and created an on-line platform used by thousands of translators from around the world to translate computer programs in multiple languages.
(OMG!!!1!)
This totally caught me by surprise, and it's still kind of hard to believe. It's such an honor and a proof that we should be bold and take the step, dare to try new things and insist in pursuing our dream.
At this point I feel more motivated and psyched than ever. But most importantly, I feel grateful for everyone who is following our progress and respects our work. Your support means so much, and it's translated to our work as pure motivation.
ΤΟ ΒΗΜΑ hosts a transcript of the talk (in Greek) and following is the video of the talk (the mention happens at ~16m).
Update 14/9:
The following day, TA NEA, one of the most influential newspapers in Greece, published a whole-page article (eng) on Indifex and innovation. A number of news websites run articles (eng) on the topic, and I also had the opportunity to give a couple of interviews on the Greek Radio.
-
Turning 29
I remember it like it was yesterday.
I was 9. It was a hot summer day in Cyprus at my grandmother's back yard. My bicycle hit top speed, but chose a rather unfortunate and irreparable route towards the hen-house, resulting to my landing on a pile of mud and chicken poop. I sat down and watched the chicken stare at me, probably thinking something along the lines of "What a wacko."
I run to the house to brag about the mess I did with a huge smile on my face, only to find 15 relatives of mine --grandparents, aunts, cousins, in a my-big-fat-greek-wedding style-- preparing the birthday cake. We couldn't stop laughing with the smell and the picture of my clothes and face.
A few minutes later I blew the candles. My wish was to remember this very happy moment ten years later and continue getting myself into similarly hilarious places and situations.
The day I was turning 19 was a hot summer day, albeit without my face covered in poop. Instead, I found myself in the shower with a whole bunch of finely-chopped green parsley all over me. A buddy of mine finally managed to get back at me for a similarly crazy prank I did to him. We laughed 'till tears came out. At that point I remembered the hen-house incident, along with the promise I made to myself back then.
A decade later, these incidents are still coming back to me now.
The past years were a blessing to me. I feel so fortunate for everything that has happened to me, and I feel grateful to all my friends, my family and the people I worked with. Thank you all for everything.
Happy birthday wacko. Here's to another 10 years full of joy and happiness.
Here's to all the crazy people out there.
(pic by Neal Sanche -- CC by-nc)
-
Faster and Resume-able Secure copy (scp)
Ever wondered how you could combine the power of rsync and simplicity of scp? Here's how:
$ alias scpresume='rsync --compress --partial --progress --recursive --rsh=ssh' $ scpresume -r * ssh://example.com/foodirSimple as that!
-
Pulseaudio loves USB headsets
Following my habit of posting solutions to Linux problems I face (Google rocks for troubleshooting), here's how I fixed a small issue with Pulseaudio and a USB headset I had today.
Since our team is scattered across the planet, we're having regular VoIP/Skype calls, so we bought a couple of good headsets to use. We're trying out Logitech Headset Clearchat Pro Usb which has a 2-year guarantee from the local computer store PLAISIO (this shop has the best support ever).
Once connected to Fedora 13 on the USB port, the headset was detected automatically by Pulseaudio. The name matched, the microphone worked, and the digital volume control buttons on the headphones worked perfectly with Pulseaudio. Sweet!
The problem was that no sound came out of the speakers. Since the microphone worked, I imagined it was a problem in the Output channel somehow. Based on this bug report I fired
alsamixer, selected the USB Headset device, and found the volume level to be 0. Once the volume there was increased, oh bliss, sound came out of the headsets.All in all, this took 10 minutes.
-
Setting up Network Photo Scanning
I spent around 30 minutes setting up our office printer/scanner/fax machine on Linux. While there's been a lot of work in the CUPS world for setting up things automatically, scanning didn't particularly work out-of-the-box.
Here's what I remember needing to do to get scanning work on this networked all-in-one machine setup to scan.
Setup necessary packages:
sudo yum -y install xsane sane-backends sane-frontends # Actual drivers: sudo yum -y install libsane-hpaio # Front-ends: sudo yum -y install hplip-gui simple-scan xsane-gimpSetup machine to have a static IP for future easy reference (192.168.1.50 in my case). This can be done using the machine menus. Once you know this IP, you can play around with the settings from your computer by pointing your browser to that IP address.
At this point, theoretically one can fire up
hp-toolboxand add the printer & scanner from there, by adding a network printer and filling in the IP. But this tool died on me with a message "Restart CUPS". So, here's the workaround I did:# Create HP URIs: hp-makeuri -g 192.168.1.50 # Test temporarily: xsane hpaio:/net/Officejet_6500_E709a?ip=192.168.1.50To setup the device permanently and the SANE backend to always discover it, the following did the trick (notice the prefix
hp:/):sudo vi /etc/cups/printers.conf [Change DeviceURI to `hp:/net/Officejet_6500_E709a?ip=192.168.1.50`]To scan, fire up
simple-scan, orxsane, or from GIMP, choose File→Create→XSane.Finally, it's worth noting that flegita, the GNOME scanning tool, simply crashes.
-
Creepy introduction #2
"Hi Dimitris. I was wondering whether you work on proton exchange membrane fuel cells, as I'd like to ask a few questions."
This introduction/message came on my Facebook account. At first I thought it was a joke, but such things do exist.

-
Rock climbing inspirations
What inspires people to go for rock climbing? Stuff like this:

(via 8a.nu)
-
Treating deep cuts
Tip of the day: For deep cuts, add a stronger disinfectant (hydrogen peroxide-like) on top of Betadine; better against anaerobic microbes (via @vickykorvesi).
-
Favorite fonts for programming
What are your favorite fonts for code editing? Mine are DejaVu Sans Mono (Vera-based) and Droid Sans Mono (Google).
Inconsolata is very good (and free) but I can't seem to get sub-pixel anti-aliasing with it (only normal one, which at <10px gets blurry). And Envy Code R is just too condensed.

-
Typing my pass instead of root in GNOME
I'm an avid fan of using sudo when needed and avoiding typing my root password. In the command-line this works fairly easy:
su - usermod -a -G wheel MYUSERNAME visudo # Uncomment the following line: %wheel ALL=(ALL) ALLIn GNOME, the above won't 'just work' due to the (fortunate) existence of PolicyKit. You're always asked for your root password instead of your user password. Configuration used to involve editing PolicyKit.conf. In newer versions of Fedora, a new PolicyKit is shipped, with improved setup for policies and configurations.
After some searching around, I figured out I need to install
polkit-gnome. We now have a special group called 'desktop_admin_r', and polkit is already setup to read from that group the desktop admins. So the new way to make GNOME ask your password instead of the root one, the following commands should just work:sudo yum install polkit-gnome usermod -a -G desktop_admin_r mitsFor the record, gksudo is something completely different. And more evil. =/
-
Geek by nature, Linux by choice
This weekend @andy_lupo and me will head north to Thessaloniki to present at the FOSS-Communities Conference some of the kewl technologies we're using at Indifex. Andreas' talk is titled "Multi-GB databases with NoSQL" and mine "Extreme Web Programming".
Additionally, I was humbled to be invited from the local entrepreneur's club OpenCoffee to present at their weekend event. I'll talk about open-source business models and the lessons learned while building Indifex. The talk is titled "Transifex: Developing Open Source Software for fun and profit".
So looking forward to this trip. I hope the weather is nice on Friday evening!

-
Making things happen
LWN.net interviewed Leslie Hawthorn, the main person behind Google Summer of Code. I liked how a small team in a big company Google can feel like a startup sometimes.
I think the most important lesson I learned was to just get out there and make things happen, no matter how many mistakes you'll make along the way and no matter how many pairs of eyes are watching you make those mistakes. When I started with the team, I had no FOSS experience whatsoever and was quite worried about doing the wrong thing, and very publicly no less. Over time, I realized the it was far better to make as much progress as possible and make the inevitable course corrections required rather than try to get everything right from the start.
I've also learned that a small group of people who are dedicated to making the world a better place can be incredibly successful in doing just that. It may sound like a cliche, but I never imagined when I started working on Summer of Code that I would have the chance to help so many individuals and projects make things better.
(pic by CRUSTINA!)
-
Do you monetize your international traffic?
Did you know that ~80% of the traffic on Google, Facebook and Twitter come from outside of the US?
Fred Wilson (avc.com) has written an insightful blog post titled "Does Rest Of World Matter More Than The US?". Fred believes that localization is key to monetize outside of the US:
The web sector needs to start working harder on international monetization. [...] Web services that are highly international today should invest in fully localizing their user experience and then start thinking about monetizing outside of the US.
This is the reason d'etre of web services like Transifex: the vast majority of international speakers, who can stay on your website twice as much and have 4x more chances of buying something, if your website speaks their native language.
Of course the US traffic can achieve (much) higher monetization than other countries in most industries, but the monetization does follow the high numbers of international visitors:
Even if international traffic could only be monetized 25% as well as US traffic, when your international traffic is 80% of your total traffic, you would make as much money internationally as domestically. So that's a lot of potential out there to be tapped.
An interesting comment was made by daveclark, mentioning that the cost of winning a local market shouldn't be underestimated. Businesses which 'inherently scale friction-free across markets' should 'game on', while others might need much more work than just localizing the user interface (think, for example, selling shoes or books). Lots of good comments on the article.
-
Mercurial rebase and merges
Epiphany!
The past days I learned great things today about Mercurial.
-
I found out Joel Spolsky's hginit.com. It teaches you the key concepts behind hg in a way which doesn't mess with complex internals, but focuses on what's important: the user experience.
-
I found out that the latest version of the hgtk history window supports running an 'Outgoing' command, which directly marks the nodes which will be pushed.
-
I noticed that sometimes when I rebase, I get a merged head node instead of a linear history. That is, the rebase doesn't work 100%. Not sure why this was happening, but I found a few hackish workarounds. The funny thing is that I also found a solution: I then rebased the branche's root node on top of the merged node.
I now understand that the problem was much simpler: I just run accidentally hg rebase with
--sourceinstead of--branch. The first flag rebases a single node and the latter a whole branch. So, obviously, only the last node was "rebased" to look on top of tip. Instead, when you rebase with--branch, the branche's base node is rebased, and the history is, of course, linearized.Success.
(The Beast playing some hoops at the office.)-
-
ack
ack rocks. It's like grep, but you can also ignore
.svn-like dirs and backup files (foo~, foo#), specify file types to search, color highlighting. Sweet! Http://betterthangrep.com/
-
Dropping to ipython from Django
Today I wanted to debug some of our unit tests, so I wanted to drop to a shell from inside a test case. Here's how that can be done: import IPython IPython.embed() In previous versions this used to be: from IPython.Shell import IPShellEmbed ipython = IPShellEmbed() ipython() The first two lines go somewhere in your module and the latter wherever you want to hook up with the shell (tests, models, views). This can serve as a more rich alternative to `ipdb.set_trace()`.

-
Tumblin!
Giving Tumblr a run. Looks slick so far!
</p>
