My pretty face [ László Monda's Blog ]
Exploring the cyberspace, one quadrant at a time!

Archive for the 'General' Category

My case for a portable desktop

Tuesday, March 20th, 2012

About two and half years before I invested in a heavily capable laptop, an Acer Aspire 8935G.  After having spent all this time using my laptop I finally reached the conclusion that I'll avoid laptops like plague in the future.  I understand that it's quite a harsh stance, especially given a laptop of this caliber but there are too many reasons against them from my perspective.

My first reason of not buying a laptop ever again: Neither suspend nor hibernate works on Linux

Just tell me a more essential feature that you expect from your laptop.  When I go to sleep I wanna suspend my laptop to have a silent environment and to be able to continue my work from where I left off.  When I leave home for some hours I'd also like to suspend my laptop just to save some power.  Hibernate could also work (in a suboptimal fashion) in such situations except that it doesn't.  Upon resuming my laptop it freezes in no time. Let's also take into consideration that I use a really complex session with lots of applications spread across multiple workspaces and lots of passwords to type upon startup. This shit costs me about a boring quarter an hour every time I wake up.  It may not seem much but I despise this ritual and I cannot forgive for such an essential feature not working.

So far I've surely spent more than 100 hours trying to make resume work with no success.  I've tried a number of distributions, fiddled with various parameters of s2ram, tried to suspend from console, switched the graphics card and did pretty much everything under the Sun. According to my understand the major problem is that the iGPU gets resumed instead of the eGPU and the BIOS provides no options to disable the iGPU.  In general this BIOS is dumbed down crap, providing only a handful of options at most.  I'm not in the mood of elaborating in detail about this but it's been a sickening experience which I couldn't solve despite having a strong Linux background and spending a *lots* of time on this issue.

The major problem the way I see it is that most laptop manufacturers (Acer surely included) don't give a shit about Linux support.  I can't really blame them considing the 1% market share of Linux but it's sure as hell that I won't give them a fucking cent ever again for not being able to suspend such a crazy-expensive laptop.

My second reason of not buying a laptop ever again: I have to pay for the sub-optimal hardware and software configuration most of which I already have

Let's suppose that one already owns a laptop and is about to buy a new one.  Let's just go over of what hardware components could be used from the old laptop:

  • Screen
  • HDDs, SSDs
  • Keyboard
  • Wifi module
  • Bluetooth module
  • Case

(I didn't list the motherboard, the CPU and the graphics card because Moore's law ruthlessly obsoletes these components.)

Some of these components (HDDs, SSDs, Wifi module, Bluetooth module) could be easily reused in a new laptop, but manufacturers provide no means to order a laptop without these components.  Other components (Screen, Keyboard, Case) could also be theoretically reused in a new laptop but manufacturers couldn't care less about designing according to the need of reusability. As a result customers have to pay for all components every time when buying a new laptop.  This is the opposite of the PC world.

And let's not even mention that nowadays almost every laptop come with glossy screens which I utterly hate because of their reflection, hence my journey of searching for a replacement matte screen begins, making me spend a hundred-something extra bucks but only if I get lucky enough to find a replacement matte screen.

On the software side of things given that I dislike Microsoft as much as I do and I don't even use Windows my first thing to do is to send back the laptop to Acer for them to remove Windows which takes about two weeks and I almost don't get any money back because I have to pay for my laptop to be shipped to the Acer service center. Fail!

The portable desktop

My approach involves using 1 main station and N dock stations, N being the number of places that I frequently spend time at doing heavy computing. If you're like most people then you only heavily use computers at home and at work.  That's two places.  I personally work from home but I have two locations between which I travel on a frequent basis and spend some time every time, leaving me with two places, too.

The main station is a Mini-ITX box composed of:

  • Case
  • PicoPSU power supply
  • Mainboard
  • CPU
  • RAM
  • Graphics card
  • Optionally Wifi and/or Bluetooth depending on the motherboard and on your needs

A dock station is composed of:

  • Monitor
  • Keyboard
  • Mouse
  • USB hub
  • DC power supply

Price comparison

Let's pick a super-capable desktop-like laptop like the Acer Aspire 8950G which will set you back with about $1,600 and will be replaced in every few years. (So far I could only see laptops with 18.4" screens which I consider desktop-like from Acer.)

Versus...

The permament parts of the main station cost $216 and composed of:

The soon-to-be-obsoleted parts of the main station cost $474 and composed of:

A dock station costs $400 and composed of:

You surely won't get the parts for these exact prices but the numbers are in the ballpark. That's $1600 recurring cost vs. $1016 one-time cost + $474 recurring cost.

Conclusion

I personally never needed a laptop, I needed a portable desktop.  The pros of these solutions are fairly apparent but I list them for completeness' sake:

Laptop:

  • Portability

Portable desktop:

  • Cost
  • Having the exact hardware configuration that you want
  • Better compatibility allowing you to suspend, resume on Linux

Right now I'm not sure when will I ditch my laptop. So far I'm satisfied with its performance but the time will come eventually, inevitably.

Given the lack of portability my approach is not for everyone but I think it's though-provoking because many people don't even think about the possible advantages of such a configuration in this laptop-centric world.

EDA tools going online

Sunday, March 4th, 2012

According to Atwood's law this was a predictable happening. These are the ones that I know about but I'll be keeping this list up-to-date in the future:

Although the above webapps are schematic drawing tools I can foresee fully-fledged online EDA solutions getting implemented in the future.

 

Launchpad feature set proposal: Bounties

Wednesday, June 8th, 2011

Abstract

The objective of this post is to propose a new feature set for Launchpad to provide a way for users to create monetary incentives for developers to fix specific bugs or to implement new features.

The problem

The latest and greatest release of Ubuntu, Natty contains more than ten thousand packages.  The sheer number of packages inevitably contain an even larger number of bugs.  At the time of writing there are 90198 open bugs in Launchpad.

Many times Free Software developers work on a project for the reputation of their peers and for the challenge involved but often they cannot devote enough time to their project because they have to make a living.  As a result their project suffers which manifests itself in a large number of bugs and / or missing features.

Millions of users of Ubuntu have to deal with these bugs on a daily basis, usually by working them around or tolerating them.  Sometimes bugs get fixed quickly but many times they don’t get fixed for a long time.  In the latter case users cannot do anything to make a bug fixed apart from reporting the bug or fixing it by themselves, the latter being very time consuming and requires lots of expertise.

If users could create monetary incentives for developers to fix specific bugs or to implement specific features then it would be more likely for those bugs to get fixed or those features to get implemented.

Proposed solution

The model to be proposed works like the online marketplaces designed for freelancers to be employed.  In particular, I’d like to highlight Guru.com because they’re on the top of their game and they’ve implemented various practices that make sure that the job actually gets done and all parties are satisfied.

The actors involved are:

  • Donor: A user is a donor from the point on he/she deposited a bounty for a bug.
  • Developer: Can be an upstream or third-party developer who’s about to fix a bug for a given bounty.
  • Judge: An independent and competent third-party who has to make justice if donors have any objections about the completeness or quality of the fix after the developer has claimed the bounty.

The process could work like this:

  1. If a user chooses to provide a bounty for a bug, a deposit gets created for the specific bug and the desired amount gets added to it using PayPal or credit card transfer.
  2. Other users can also add funds to this deposit.
  3. At this point any donor can withdraw his/her bounty at any time.
  4. As soon as the bug gets assigned to a developer the deposit gets frozen and donors won’t be able to add or remove funds to it.
  5. The developer should deliver the fix within an approved timeframe and claim the deposited bounty.
  6. The bounty gets transferred to the account of the developer if none of the donors have any objections within a week or so.
  7. If any objection occurs then related parties can discuss it or eventually they can raise the issue to the arbitration phase where a judge is involved.

Some further thoughts:

Because of their dedication, familiarity with the given codebase and proven track record, upstream developers could be given the privilege of being able to exclusively work for a bounty for a specific amount of time.  This exclusivity period could last about one week from the creation of the deposit, for example.

It should be made sure that no developer is able to block the resolution of a given bug.  This could be either done by defining close deadlines or by allowing for any bug to be assigned to multiple developers.  In the latter case whoever resolved the bug first could claim the bounty.

It may make sense for such a system to automatically notify upstream in advance and ask them to agree to merge the upcoming fix and also request the developer to provide a fix in a format requested by upstream.

Canonical should get some portion of the bounty for developing and operating Launchpad and they could also provide judges.

Why Launchpad?

Launchpad is the ultimate umbrella project of the Free Software Universe.  As such, it relates and highlights every upstream project in a consistent manner.  Mark Shuttleworth said at UDS-O that “For most Free Software projects I wouldn’t be surprised to find if there are more bugs filed against that piece of Free Software in Ubuntu than upstream.”

According to the above it makes sense to implement this feature set on top of the existing, state-of-the-art and proven infrastructure instead of creating a whole new site for it.

Conclusion

There are many details left to be answered and nothing is written in stone, but I hope that this post is thought-provoking enough to start further discussions about the viability and towards the implementation of this idea.

I have witnessed online marketplaces working both as a freelancer and as an employer, but this idea could be so much cooler in regards of Free Software where everyone benefits from the work of developers and everything happens openly.

I’m looking forward to talk more about this issue, so if you have anything to say, please don’t hesitate to let me know in the comments.

Tabs vs Spaces

Sunday, April 24th, 2011

Ok, this is some serious shit that drives me crazy. The reason why you should never, and I mean never and let me emphasize NEVER in your entire life use tabs for indentation is because:

  • We use spaces in the code to separate words anyways.  Why do you wanna introduce yet another character?
  • Tabs will be displayed differently depending on the editor in question.
  • People are gonna mix tabs and spaces in surprisingly novel (or just plain random) ways which will screw indentation even more than before because it's harder for editors to figure out the correct indentation in this case.
  • The mixture of tabs and spaces will produce lots of redundant lines in your {SVN / Git / whatever VCS} diffs because developers will (un)intentionally change them which is gonna be a lot of fun during code reviews.
  • Tabs are evil!  They're evil, evil, evil!  Don't use 'em! (Except for Makefiles (which as you may suspect are EVIL!))

As a last word, it's not possible to avoid using spaces for indentation in such scenarios:

<tab><tab><tab>function_call(arg1, arg2, arg3,
<tab><tab><tab>              arg4, arg5, arg6);

Long life to spaces!

Detecting primary language in PHP by HTTP Accept-Language

Wednesday, April 13th, 2011

There you go:

0
1
2
3
4
5
6
7
8
9
$accepted_languages = explode(';', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$primary_language = $accepted_languages[0];
if ($pos=strpos($primary_language, ';') !== false) {
    $primary_language = substr($primary_language, 0, $pos+1);  // Throw away quality value.
}
if ($pos=strpos($primary_language, '-') !== false) {
    $primary_language = substr($primary_language, 0, $pos+1);  // Throw away dialect.
}
 
header("Location: http://mysite.com/$primary_language"));

Self hosting or cloud hosting: that is the question

Thursday, January 6th, 2011

I know many geeks. Most of them are smart. Some of them are brilliant. Few of them are world class. And guess what? Many of them blog on a regular basis. These are tech savvy folks who run their blogs on their own (or rented) server for maximum customizability and pay a monthly fee. What do you think, how long will the information they produced survive if some of them get hit by a train? It's very simple. You divide the amount on their bank account with their monthly hosting fees and you got the number of months in question.

What I wanna ultimately conclude is that there are lots of folks who create valuable content on a daily basis and their content is way too much vulnerable.

I was thinking a lot about this issue. I have 350 posts at the moment and although I know that mankind would happily survive without any of them, I feel the need to secure this information just in case.

Since I (and most of the people) use WordPress, I was thinking about a WordPress specific solution. The idea is to dump my self hosted blog to my cloud hosted WordPress.com blog on a regular basis from cron. Of course, there are some drawbacks, like Google may find the mirrored content along or before my primary site and I won't be able to really customize the cloud hosted blog but I think that the benefits outweight the drawbacks.

The term I'm about to coin is the "backup blog" what is a cloud hosted blog where you mirror your content on a regular basis in an automated manner. I'm about to do this but I'm not there yet.

Dynadot, the ultimate registrar

Wednesday, November 10th, 2010

I was searching for the ultimate registrar a while ago.  My needs were the following:

  1. Crystal clean web interface
  2. The more top level domain is supported, the happier I am
  3. Decent prices

It's not a long list, but still it was amazingly difficult to find Dynadot.  Option 1 was the hardest one to find, believe it or not.  Have you ever looked how badly marketing people overloaded GoDaddy with loads of ads and how crowded their user interface is?  Then you understand why this option was so important to me.  I'm also 100% satisfied regarding all the other aspects of their service.

This is not a long post but whenever I find a service that makes my life easier I feel it worths pure gold to me because it saves me time in the long run.

You may also want to choosedynadot-logo-fullas your registrar

Avatar owns me!

Wednesday, December 23rd, 2009

It's a great movie with spectacular visuals. It's a must see for anyone even remotely interested in sci-fi or if you're interested about what today's state-of-the-art rendering technology can produce. I've enjoyed every minute of it.

Joe Grand is my hero

Saturday, December 19th, 2009

About a year ago I became involved in electronics. This was because the development of the Ultimate Keyboard requires strong electronics knowledge and not only I couldn't hire anybody (without the resources doing so), but I also wanted to understand electronics and over time as I read the articles on Hack a Day I realized how cool electronics really is.

I've been doing software development for a few years and it's always fun, but doing purely software development in itself is not that interesting for me as it used to be. We have a keyboard, a mouse and a monitor, that's mildly interesting. We also have the Internet for several years which is much more interesting. What if create a propeller clock, a line following robot or all kinds of ultra-crazy stuff, both the hardware and software? That sounds to me like the ultimate fun.

Joe Grand is probably the most well-known hardware hacker who became famous as one of the hosts of Prototype This. He is a really cool guy and has tons of interesting materials on his site. I'm grateful for every piece of knowledge that I can learn from guys like him.

nitehawk rocks the house

Saturday, December 19th, 2009

Finally, I got my first laptop a week ago which I named nitehawk because of it's color.  It's an Acer Aspire 8935G-874G100BN and I think it pretty much represents the level of hardware integration that can be achieved in 2009.  With its 18.4-inch LED LCD screen and its load of impressive features it's almost more like a desktop than a laptop and it's exactly what I wanted because I change my location of a two weekly basis and I don't need much mobility other than that.

The first thing I did when nitehawk arrived is I sent it back to Acer so they could remove Windows 7 and give me back its price. When all things summed including the traversing costs I haven't earned almost any money, but I didn't do it for the money. This was my gentle gesture to show Redmond that they're welcomed to taste my middle finger.

nitehawk's keyboard is as crappy as most laptop keyboards from a typewriting point of view, but I do truly appreciate its power efficiency in overall and suspend, hibernate especially. I carry it in a Targus TCB001EU XL notebook backpack because I couldn't get any other backpacks in Hungary that was big enough to hold this beast. :)