How healthcare systems can reduce financial risk with developer-owned hospitals        
Insert Image: 

          'Open source is now mainstream..' (no replies)        
'Open source is now mainstream. More and more developers, organizations, and enterprises are are understanding the benefits of an open source strategy and getting involved. In fact, The Linux Foundation is on track to reach 1,000 participating organizations in 2017 and aims to bring even more voices into open source technology projects ranging from embedded and automotive to blockchain and cloud.'

- Mike Woster, Global Enterprises Join The Linux Foundation to Accelerate Open Source Development Across Diverse Industries, March 30, 2017


(Open Source) - '..“open innovation.” Companies such as AstraZeneca, Lilly, GSK, Janssen, Merck, Pfizer, Sanofi, TransCelerate, and others..'

'..Microsoft, is shifting over to open source for its development.'

          Three days in Berlin (or improving the pim user experience)        

KDE Project:

Last weekend I've met with some of our old timer KDEPIM developers and some of the newer ones who are interested in KDEPIM or related technologies in the KDAB offices in Berlin.
Being a KDAB employee for a few years already (wow, time is passing quickly), the place was familiar, the people looked familiar. The foosball table was slightly familiar, although some players changed their dresses in order to spread confusion inside the visitor's heads. That is the only reason we've lost against locals with 5-0, 5-0.
Suprisingly enough, the table wasn't used that much. Why? Because people were busy either working and talking. What they talked about I don't know too much, as I focused on some issues I planned to fix, but others can testify that Volker did not sit too much in front of his computers, but was dragged from one place to another for various discussions.
Most of us started on Friday around noon. I won't tell too much about what others did, that is mostly their problem. Especially if they were on the other side of the room and I didn't saw their screens, I can't tell if they worked at all or not. They looked like they did though. ;) I can share some things about what some sitting nearby did. See later.
As recently I became the de-facto maintainer and bugfixer for mail filters, I worked mostly on them. Unfortunately the first attempt to fix a bug failed: a bug that bothers me, although it is not the most reported one. It is about mails not being filtered for a while after a resume from hibernation. It is hard to reproduce, and although I run into it, I couldn't reproduce reliably enough and in a way I can debug it. After fighting with it and realising it won't work, I gave up. See you next time.
Meantime we had some excellent food in an Indian restaurant, then when finally everybody arrived (almost everybody to be honest, plus even some more from KDAB who didn't sign up, but show up there), we were ready to start with presenting the kdepim and Akonadi architecture. Old time pimsters Volker Krause, Kevin Krammer and Tobias Koenig helped me with it, and sometimes saved me, as my knowledge in some area proved to be superficial. We ended up with a pretty impressive drawing on the whiteboard:
Hopefully for those being on site it was understandable.

Time passed, so we went out for dinner to a Greek restaurant at the corner. Nice place, third time being there, good food (seems Berlin has only good eating places). We even saw how Germany won over Ireland. Too bad Steveire (Stephen Kelly) was not there... We continued with some more talks and hacking, then everybody went to their sleeping places.
Some left earlier, some later waiting for remote developers to show up and discuss the patches (he didn't show up).

Day 2
Next day started around 9 o'clock for some. Later for others. I continued with the filter debugging and fixing. I looked at the bugreports and tried to come up with some bugs that are both would help the users and myself. I'm selfish, I want to fix the bugs I run into. ;) One problem that bothered me for a long time is that email content from online IMAP is downloaded even if no filter for IMAP requires it (but a filter for e.g POP3 needs the full content). Now this is fixed and those who use online imap could notice a great speedup in mail syncing (depending on their filter setup). Another often reported issue was duplicating the mails, especially after spam filtering. You've ended up with a mail in the spam folder and a mail in the original place. This could be combined with a conflict dialog shown up as well for that mail. This problem actually revealed a not-well handled case down inside the Akonadi stack that was created by a reordering of filter commands in the filtering code. For those who want technical details: if there was a move action (like "move mail to spam folder") followed by a modify action (like "mark as read"), the filter reordered this to "mark as read" followed by a move. Unfortunately this exposed two problems, (mostly, but not only) IMAP specific: on IMAP you can't modify a mail, instead you create a new one and delete the old. What happened here is that a filter changed the mail (run through bogofilter/spamassasin), then the "mark as read" action was executed, which uploaded the changes, including the changed mail to the IMAP server. This caused a new ID for the item on the IMAP server. The mail with the old ID was deleted. Then the filter agent performed a move, but he had only the *old* ID, before the modifications. The move - if performed between two different resources, like IMAP and local maildir - is technically a copy followed by a delete. The copy worked fine, but the delete didn't. It tried to delete the old mail again (which was gone), not the modified version. That's how you ended up with a duplicate.
The current solution is to reorder the filtering pipeline, so the move is performed before the flag modifications. The extra benefit is that the filtered message is not uploaded again just to be deleted the next second. Speedup, less network traffic, better user experience. This doesn't fix the main problem with Akonadi, but it is an acceptable workaround. The reordering is so far only in the master branch (KDE 4.10), but the relevant code will be backported to the 4.9 branch, so it will be in 4.9.3.
And speaking of conflicts, that was the next hot topic, and one of the often reported bugs. It was mostly caused by conflicting flag changes (read/spam/important/etc), either caused by KMail itself plus the filtering or just KMail. After some discussion we agreed, that reporting conflicts on flag changes doesn't make sense, so we should not bother the user. It is not data loss, and in worst case some flag is reset. In normal case nothing wrong happens, as Akonadi is able to merge two changes in the flags (or so claims Volker).
I have to admit that this fix was not completed at the sprint, I finished it today, as I noticed more code in KDEPIM that didn't disable conflict check on flag changes.
While doing the changes, I did quite some refactoring, cleaning up the code as much as I could do for the parts I touched. The code was originally deep inside KMail (as most of other code), got extracted from it for 4.8.0, and now we are at the stage that we can make the extracted code more cleaner, we can remove some things that doesn't make sense anymore now that the filtering is not inside KMail.
While reading the bug reports, I also run into one indicating that mails arriving to an MBOX account (like /var/spool/mail/username) are not filtered automatically. Sounds like an easy bug to fix and so was it. Now they are filtered.
Finally another annoying issue was fixed: there was no indication that filtering is ongoing. Now when this happens, you can see in the KMail's progress bar.
The net result of the above: faster filtering, less annoying and useless error dialogs for the users. And according to bugzilla, 31 bugs less (some were duplicates though). of the things that, well, so far I was always recommending for users to turn off. Slight detour here: what is Nepomuk and its relation to KMail? Nepomuk helps you to find data. It indexes all kind of data and with some queries you can find e.g every file where my name is mentioned, all email addresses from any file, etc. There is a process that goes through the akonadi data (emails, calendars, etc) and "feeds" to it for Nepomuk to be indexed. Then there are queries and code in KMail accessing Nepomuk: getting email addresses for composer's autocompletion, searching inside mail bodies, tagging your emails with custom tags, etc.
Unfortunately there are problems around it. One is that some queries ae processed quite slowly, that in turn slows down KMail, leading to poor user experience. E.g switching between mails, sending mails, etc. is slow. Or startup is slow or even blocked. I tried to fix the last part as I just run into it, but as this was my very first Nepomuk related patch, I'm not sure 100% succeeded. We found a problem with the Nepomuk API itself, and I informed Vishesh, the Nepomuk developer about it (even if I used non-blocking calls against Nepomuk, one call is blocking without question). He suggested something I might try later, although I'd be more happier if somebody with real Nepomuk knowledge could give a review of the pim Nepomuk usage.
Then there is the Akonadi feeder, that gives the data to Nepomuk. Something is not perfect there and the indexing causes a serious slowdown, where either itself or Nepomuk (actually its storage backend, virtuoso) starts to use the CPU *a lot*. This is the main reason I recommend to users to disable Nepomuk so far. We had Christian Mollekopf the author of the feeder in the sprint, and he worked on some optimizations. Hopefully this will improve the situation. Meantime we (and I) tried to convince Vishesh to use KMail, so he can see himself the problems our users face.

As a break we had another presentation, this time about KMail itself, what components make up KMail, how they are distributed. As far as I saw, this was less interesting to the audience, they rather looked at their computers and hacked on something. Luckily our KMail maintainer, Laurent Montel, is super active, but I wouldn't mind more contributors. Too bad he wasn't at the sprint.

We had a lunch at a nearby place, nothing extra, but the food was (again) good.

What did other do? Let's see what I can remember... Sune dreamed about crypto stuff and composite jobs. He worked on making some cryptographic code asynchronous and started to get faimiliar with kdepim code. I'd not say he picked up the easiest job.
Volker run around all the time, discussed various things like "spanish sync" with Alex Fiestas (see here), database backends with Martin, change recorder with David Faure (who remotely joined the meeting and got lost inside the change recorder code ... he has the solution now in his head, so be patient, we will end up with a better implementation for it that again speeds up Akonadi), job pipelines with me, and who knows what with others, as for a long time he just disappeared with a bunch of developers. They actually ended up in the lobby discussing "stuff". Milian Wolf, who is not (or not yet?) a KDEPIM developer, but mainly a KDevelop one, joined us and used massif to track down some ugly memory usage in KMail. And he did a good job in it. Previously KMail used more and more memory as you navigated between large folders (Alex mentioned some 2GB for him), while now it levels up at one point and doesn't increase. He might blog himself about, as he has also some nice graphs.
Then there were two guys from KDAB, who are old time pim developers (quiz: find their names in this blog), but they cooked something else, not related to KDEPIM, not related concretely to KDE, but to a lower level: to Qt. It is an amazingly cool stuff, but I don't want to give more details. Expect it to be presented a the Qt Developer Days, either in a talk or at the KDAB booth. Don't worry, I'm pretty sure it will be freely available what they did and KDE can enjoy it in the future.
I'm sorry that I don't remember what the rest did. In general I know that Martin Klapetek worked on the social network resources, Mark Gaiser, who recently started to work on KDEPIM stuff eagerly listened to our presentations and worked on a QML calendar application, Alex kept reporting bugs and discussed improvements with Volker, while John Layt, the "timezone KDE guy" worked on plasma calendar related issues.
As a KDE person Chani also joined us for a while, we quickly nominated her as the QML and Plasma person, so all questions related to them were immediately redirected to Chani. Jos Poortvilet was also supposed to join for some talks, but he could show up only on Sunday for personal reasons.
At the end of the day everybody was so busy, so instead of going out for eating, we just ordered some pizza. And most of us stood in the office well past midnight.

Day 3
Well, the above partially happened on Sunday. It was a shorter day for me, due to the late night standup before, and that I had to go to the airport after lunch. A lunch that wasn't exactly as planned. We went out for a Doner Kebab place that is supposed to be the best one in Berlin. It is just a small kiosk on the sidewalk in a street, but man, there was a big queue for it. On a Sunday! Locals says it is worse on weekdays. Even after almost an hour, we still had 10 persons in front of us, my departure time was approaching, so I gave up and instead bought some (quite good) chinese fast-food from a nearby place, then rushed to the airport.
A long journey awaited me with a 3 hour stopover in Munich, but luckily I had a power supply there and even some network (they offer 30 minutes/day/phone number), so I could continue on the work I started at the sprint. After flying and driving another 2.5 hours, I arrived late (or rather early) morning next day back home, and after sleept until around 10. Then I started to work again for KDAB, a work that is just as enjoyable as working for KDE. After all, the two communities has a serious overlap. ;)
That's from the sprint. If you'll be at the Qt Developer Days Europe, we might meet there. I'm looking forward for a good conference.

          The story of some bugfixes        

KDE Project:

This is the story of how bugfixes can happen. For each bug there is a bug reporter. It doesn't really matter if it is another developer or a non-developer user, as in the end it is just a user. Or does it? Let's see.

The first bug I fixed not so long ago was a line on the chat asking "what's ctrl+shift+l supposed to do in kmail?" from Albert (tsdgeos). Sounded like user support, but turned out that the reason he asked me was that pressing this combination crashed KMail. Of course, I tried and could reproduce it. It was related to Favorite Folders and as nor the reporter, nor I had such folders configured, it was rather straightforward where the problem is. Half an hour ago the bugfix was committed, everybody is happy.

The second was more complicated. There was a long standing report from our KDE expert David Faure that resulted in losing the mail content on move. It wasn't the first time I looked at the code to find the problem, without success. We couldn't even reproduce the bug. Then suddenly a message came on IRC: he could reproduce it again and found a pattern how it happens: it happens if the source mail account (resource) is in offline mode, meaning KMail *might* not have access to the whole mails, only to the cached parts (the mail header). Having this information finding the bug was relatively easy and next day David has the patch. But he wasn't happy: now he got an ugly message box with an error that doesn't mean too much, an error that doesn't tell what is the problem and what could be the solution. So I looked up how this could be fixed. The solution wasn't straightforward, involved changing several pim related components, including adding a new DBUS method that is used to communicated between different Akonadi part, but in the end I had it...only to realize that although I get a nice error now when copying mails, I can't read my mails. Because it gives a DBUS related error. I've added a method returning a string, but from the error it said that it was expecting a string, but got a boolean. Confusing.
Looked at the code, looked again, tried different things: no go. I told to David (knowing that he is an extermly good developer), that here is the code, here is the error, I have no idea what to do.
He looked at, and all seemed fine. It was late, we both called it a night and went to sleep. Of course the problem bothered me, so next day I wanted to give it a go. Guess what, David was also online (this was Saturday), he was also interested in the problem. :) To make the story short, he found the issue: the problem was a setDelayedReply( true ); call I overlooked. That caused basically QDBus to ignore our return value, that must be sent later (and the code sent a boolean there). David did a refactoring, I found a corner case, we both tested, all was fine. After a few final touches, like making the string translatable the patch was ready for review. As David said, it was a nice teamwork.

The last one was the same day at evening: a complaint that KMail cannot move/delete folders from an IMAP inbox. Weird bug, as most of us use IMAP, so this should have been noticed before. I asked for details, I asked for different logs, to try different scenarios. The reporter followed everything I told promptly, and the surroundings of the bug started to take shape. He had an IMAP server without support for ACL (access rights). In that case we should assume everything is fully accessible. And so was everything for him, but the top-level inbox. Having that information, by reading the code I found the faulty line - a line that was weird, and unneeded. The line was introduced because of a bugfix, so I looked up the bug only to find users complained it is still not fixed. No wonder, as the fix was not doing anything about the original problem, but unfortunately created other problems. I have to admit that the API involved is easy to be used in a wrong way, but hard to fix now. For those interested (and to avoid such API), here is the problem:

// Returns the rights the user has on the collection.
Collection::Rights Collection::rights() const
CollectionRightsAttribute *attr = attribute();
if ( attr ) {
return attr->rights();
} else {
return AllRights;

// Sets the @p rights the user has on the collection.
void Collection::setRights( Rights rights )
CollectionRightsAttribute *attr = attribute( AddIfMissing );
attr->setRights( rights );

And the problematic commit looked like this:

Collection root;
root.setRights( Akonadi::Collection::CanCreateCollection );

You see, by default, a Collection object doesn't have any rights set. If Collection::rights() is called it will return AllRights. What happens after the above setRights() call? The Collection will have now right attributes (CanCreateCollection), so a further Collection::rights() returns that attribute. But *only* that one. Certainly not the behavior one would expect. We can debate that the plural form (setRightS) suggests that, but I still find bad API.
Back to the reporter, luckily the problem could be fixed with the developer tool called "akonadiconsole", so he was happy. Other users will get the fix in the next release.

From the three reporters two were KDE developers. One not having too much knowledge about the PIM part, the other having some knowledge, as he is the one running in the most weird PIM Issues, and we just tell to him to fix his own bugs, while the third was somebody who I never met before, so I assume he is a regular user.

What helped in all cases was communication: giving valuable information (like how to reproduce, what is your configuration, etc) and carefully following the instructions the developer makes. Especially if the developer cannot reproduce it, the only real chance to fix it is that the user acts as the eyes and hands of the developer. If I tell to my hand to type "foo", but it types "bar", nothing good will result in it, as I'd expecet that "foo" was typed and act further accordingly.
So bug reporters, please try to gather as much information from your side as possible when creating a report and always follow the requests a developer makes.

You should not draw a wrong conclusion from the above: that reporting on *development channels* on IRC helps and you should always come there with your bugs. IRC is great for instant communication. It is very bad though as you might not find the right person there when you report.
Use the bugtracker. Wait patiently for feedback (e.g. I work on KDE only from time to time and many others do the same). It is ok to ask about certain bug on IRC, but don't forget to report it. It is also ok, once the developer responds and starts to work on the bug to contact him on IRC (if you know its nick), as communication is faster on it.
Just saying something doesn't work on IRC will also not do any good, unless you are prepared to help track down the issue. And then you will suddenly become part of the team. It is not that hard to be a KDE contributor, no? :)

To answer my first question: does it matter if the reporter is a developer or a user? In certain aspect it does, I couldn't fix the bug (at least not that easy) without David. It might be slightly easier or faster to get out information from a developer. But if the communication is good, it doesn't matter too much.

          KMail - making it more usable        

KDE Project:

KMail is one of the most important applications inside KDE, I think hardly can argue anybody about it. Everybody is using email, and even if some think that a webmail solution can be just as good, most of us still do what we did 10-15 years ago: download mail to our computer/phone/tablet and carry that around.
And for that we need a mail application.
It is not news that KMail got just too big and not flexible enough in the KDE 3.x days. Somehow it was ported to KDE 4, but this was a crude port, without much improvements in its design. A new generic PIM backend was growing up meantime, and with some corporate support from KDAB, a new generation of KMail, KOrganizer and other PIM application started to take shape.
From those I can tell about KMail, as I was more involved into it. As we wanted to have a mobile, touchscreen version as well, the work of porting KMail to Akonadi was done together with breaking KMail into smaller pieces, more or less standalone libraries to reuse as much code as possible. Time, manpower and other reasons limited what we could do, so this was a part success. We created and improves some generic usage libraries (KIMAP, KMime), some internal libraries that are nice, some that are not that nice, and in the end we had something that could have been a good foundation for KMail 2 series.
I started to use KMail2 at that time, and in the beginning it was a fustrating experience. I can't count how many times I deleted and created again the accounts, the Akonadi database. But after a while I realized that I don't have to do anymore. KMail2 was still not released to the public, but got better and better. Unfortunately only slowly, as even less people worked on it, and only in their free time. It had bugs, some more annoying, some less annoying, but was usable enough to not force me to go back to KMail1.
Then the PIM community took a deep breath - just like the KDE community did with KDE 4.0 - and finally released KMail2 officially.
Funny or not, around this time I started to have problems with it. A migration of my second computer failed horribly. A cleanup of the Akonadi database and changing from the mixed maildir to maildir format was also painful. I blamed the developers a lot (including myself :) ). Then things started to move on and KMail got a new maintainer, who is very active (hi Laurent!). And we organized a developer sprint to stabilize KMail.
The sprint took place last weekend in KDAB's Berlin office and was sponsored by the company. Everybody who knows the KDAB office, knows about the famous foosball table. Do I have to said that in the weekend we played only once? Yes, people were coding intensively, Volker had to raise the priority of the "FOOD" topic often.
Issues were listed on the whiteboard. And everybody picked up what he was interested to do. Work was done on the migrator, the mixed maildir agent, the maildir resource, on the akonadi server, performance bottlenecks were identified and a new filtering resource was created, fixing the most hated KDE bug (should be closed as soon as Tobias Koenig is happy with his work).
My choice in the sprint was mostly maildir related work, I tried to make it more reliable, more standard compliant and somewhat faster than before. And the biggest win is that I fixed most issues that bothered me with KMail's maildir handling. Yes, I was selfish.
The sprint did not end in Berlin, for me it continued on the flight back home (that thanks to the weather and Lufthansa was almost a day longer than expected). And somewhat still continues as of now, although daily work reduces the time I can allocate to KDE.
I can say that I'm happy again with KMail and Akonadi starts to gets less and less in the way of me and the users. The biggest success will be when users will not know that there is a nice server helping them, called Akonadi.
For those eager to try out the changes, unfortunately most of them are in the master branch only (the upcoming KDE 4.8). We will try to port as much as possible into the KDE 4.7 bugfix releases, but as some changes required library additions, this won't be always possible.

          KDE 4.2 - progress in a year        

KDE Project:

More than a year ago I wrote a post about KDE 4.0, I was quite unsatisfied with how in was and that we are going to release a product that has defects and in the eyes of the users will be a step back. I actually switched to KDE4 as my main desktop sometime during the 4.1 developing cycle. Since then I use KDE trunk on one machine and whatever my distro (openSUSE) provides on another one. There is always a shock when I have to use the distro packages. They did a very good job on integration and in many cases the distro package looks more polished than my self compiled one, still I was always liked the trunk version better. The improvement between 4.1.x and 4.0.x and 4.x.x and 4.1.x is just so big, using the older version is like going back several years. Not talking when I use KDE 3.5 on some other machines. I miss KDE 4.2 a lot in that case. Was it good that we released 4.0 a year ago? I think it was bad from PR point of view, but probably needed to actually have a 4.2 like the one will appear soon in the wild.
Yes, there are still issues, yes there are some applications that aren't ported or their port is not up to the expectations (yet). Luckily, unless your distribution did it wrong, it is possible to run the KDE3 applications under KDE4, without much hassle.
In the previous blog I complained about performance. My system is almost the same, except the video card is a newer one. And buying a new card at that time caused more trouble, and virtually no visible speedup at that time. Meantime the drivers improved (also due to KDE!), KDE improved (both kwin and plasma), and now I can use my system with effects enabled without thinking about performance. The current performance problems are actually caused by the flash plugin and its wrappers, in many case they start to use 100% CPU power. I'm not sure it can be fixed by us or the wrapper developers, what I know that both Konqueror and Firefox suffer from this problem. I just had to close down Firefox running in a KDE3 session because the X server for that session used completely one core.
I'm happy now with KDE4 and trunk already has some improvements compared to 4.2 that I enjoy. :) I'm amazed by the progress of KDE, aren't you amazed as well?

PS: If you miss Quanta being ported and you know C++/Qt, you should help. The only way to make it a KDE4 application is to finish the port, it won't happen magically if noone works on it. :(

          Chrome: good and bad news        

KDE Project:

Maybe you already know, maybe you don't: Google created its own browser, called Chrome. The good is that it is based on WebKit, thus contains KDE technology. That's is another recognition for the work of KDE developers. The bad is that they mention Apple's WebKit and nothing about KDE/khtml. Sad. :(
See .

          Call for developers: Quanta Plus and KDEWebDev        

KDE Project:

Time is passing by. Sometimes I'm also amazed that it was more than 5 years ago when I wrote my first KDE application and soon after I joined the Quanta Plus project. And a few months later Quanta Plus become part of the KDE releases, I think with version 3.1.
Probably many of you know that I worked full time on Quanta in the past years, thanks to Eric Laffoon and many other supporters, who made this possible. But things have changed, and I cannot spend all my time anymore on this beloved project. I don't abandon it, just realized that alone it would take just too much time to get a release for KDE 4.x series out in time. Therefore I call for help, I'd like to ask the community, existing developers or users with some C++ knowledge, developers who would like to find a challenging project in the open source world to come, join us. Help to make Quanta4 a reality and make many users happy throughout the world. You don't have to be afraid of the size of the project, one of the goals of Quanta4 is to have a modular code, build up as KDevPlatform (KDevelop) plugins.

There are other projects inside the KDEWebDev module that need help, some even maintainers:

- Kommander: just take a look at and you will be amazed by the number of Kommander scripts uploaded by the users. Help to have a good Kommander for KDE4 as well!
The executor is already ported, but we have lots of new ideas waiting to be implemented.

- KFileReplace: useful search and replace tool, unfortunately without a current maintainer. It works, but needs some love.

- KImageMapEditor: don't let web developers without a KDE image map editor!

Of course our priority would be Quanta Plus and Kommander, but if you are interested in either of the above, just contact us on our developer list.

          PHP / Drupal Developer - Zurka Interactive        
Vienna, VA - We're looking for an outstanding PHP and/or Drupal Developer to join a group of sharp people doing interesting and sometimes challenging work.
You will be building web-based applications and web sites for commercial, non-profit, and government clients.
          Senior PHP / Drupal Developer - Zurka Interactive        
Vienna, VA - We're looking for an experienced outstanding PHP and/or Drupal Developer to join a group of sharp people doing interesting and sometimes challenging work. You will be building applications and web sites for commercial, non-profit, and government clients.
          Web Developer (PHP/Laravel) - Zurka Interactive        
Vienna, VA - Join our team and help us build web applications!
          Front End Developer - Lux Research        
Mountain View, CA - Location: MOUNTAIN VIEW, CAType: Full TimeMin. Experience: Experienced
WARNING: Reading this job description may cause you to change your life and embark on a career with tremendous satisfaction and meaning. Proceed with caution.

We?re Eargo and we?re on a mission... to
          Sr. Front End Web Developer - HealthHelp, Inc.        
Houston, TX - Job Description
The Front End Web Developer will join our development team to assist with the development of our web applications. They should be a self-motivated, creative web programmer that will focus on the front end development and design, but also
           Δύο Chrome extensions μετατράπηκαν σε adware        

Τις τελευταίες 5 ημέρες, 2 λογαριασμοί developers του Google Chrome Web Store, έπεσαν θύματα παραβίασης μέσω επιθέσεων phishing, με αποτέλεσμα να προωθήσουν κακόβουλα updates στους χρήστες των extension του Chrome.

Τα επηρεαζόμενα extensions είναι το Web Developer και το Copy Fish και σύμφωνα με τους ισχυρισμούς των developers τους, οι "πειραγμένες" εκδόσεις απλά ΄σέρβιραν διαφημίσεις στα sites που επισκέπτονταν οι χρήστες τους.

Σύμφωνα με την A9t9 Software, δημιουργό του Copy Fish, ο λογαριασμός που διαχειρίζεται το extension στο Chrome Web Store δεν προστατευόταν με two-factor authentication (που δίνει δωρεάν η Google) και η παραβίαση του έγινε όταν ένας εργαζόμενος της έβαλε τα credentials σε phoney email που νόμιζε πως προερχόταν από την Google.

Από την πλευρά του ο Chris Pederick που αναπτύσει το Web Developer, δεν έδωσε λεπτομέρειες πέρα από το ότι και ο δικός του λογαριασμός έπεσε θύμα phishing.

          Î— Google ενεργοποιεί "Panic mode" για το back button στην έκδοση 7.1 του Android        

Το Android στην έκδοση 7.1, απέκτησε ένα νέο χαρακτηριστικό με το παρατσούκλι "panic button". Η νέα δυνατότητα εντοπίστηκε από χρήστες του XDA-Developers και έχει σαν στόχο να δώσει στον χρήστη μια επιπλέον δυνατότητα αντιμετώπισης εφαρμογών που έχουν κολλήσει ή είναι κακόβουλες.

Πολλές κακόβουλες εφαρμογές, απενεργοποιούν το back button στο κινητό, αποτρέποντας τον χρήστη από το να βγει από αυτήν και να επιστρέψει στην αρχική οθόνη της συσκευής του. Το Panic mode, "παρακολουθεί" το πόσες φορές και με ποιά συχνότητα πατάει το back button. "Εκτιμώντας" την δύσκολη κατάσταση που βρίσκεται ο χρήστης, το λειτουργικό αναλαμβάνει δράση και παίρνει τον έλεγχο από την "κρεμασμένη" ή κακόβουλη εφαρμογή, κλείνοντας την, επιστρέφοντας την αρχική οθόνη.
A few malicious applications may turn off the 'back' key as well as other buttons. This then wouldn't let the user return to his main screen else any other application. The time is then when the user starts panicking. Unable to guess what is happening with his smart phone as well as what makes it not to answer the user's commands, the phone owner will keep on anxiously hitting the back button in anticipation of it behaving its usual way.

It is here when Google's system would find out the unusual behavior of the phone owner's back button i.e. why so frequently the button is being pressed. Subsequently, the system will prevail over the application and once again enable back action on the phone as well as restore its main screen. The system works for applications which simply freeze, however, for rogue software too which attempts at tapping any or all moves, such as adware or malicious software. 
          ÎŒÎ»Î± όσα αλλάζουν στον Firefox        

Είναι αδιαμφισβήτητο το γεγονός ότι ο άλλοτε κραταιός browser βρίσκεται πια σε δεύτερη, ίσως και τρίτη, μοίρα στη γνωστή «μάχη». Δε θα σταθούμε ιδιαίτερα στα πώς και τα γιατί, εντούτοις θα αναγνωρίσουμε ότι η αλεπού υστερεί έναντι του ανταγωνισμού. Ενίοτε και δραματικά.
Εδώ και κάμποσα χρόνια, ο Firefox, η εφαρμογή που κάποτε όριζε τις εξελίξεις στην πλοήγηση του διαδικτύου, έχει καταλήξει να τις κυνηγά ασθμαίνοντας, ενώ γίνεται όλο και πιο ορατός ο κίνδυνος να βρεθεί στην αφάνεια.
Φυσικά, αυτό δεν πέρασε απαρατήρητο από τη μαμά Mozilla, η οποία έλαβε την -τολμηρή, είναι η αλήθεια- απόφαση να τον διαλύσει σχεδόν στα εξ ων συνετέθη και να τον δημιουργήσει ξανά. Όσο κι αν φαίνεται περίεργο, είναι ίσως η πρώτη φορά έπειτα από πολύ καιρό που υπάρχει ολοκληρωμένο πλάνο για τη δημιουργία ενός σύγχρονου browser, με κάθε επιλογή να είναι απόλυτα αιτιολογημένη από τεχνικής πλευράς. Ταυτόχρονα, οι προγραμματιστές φροντίζουν με κάθε δυνατό τρόπο ώστε οι αλλαγές να επέλθουν ομαλά και να μη βρεθούν ξαφνικά οι χρήστες μπροστά σε κάτι εντελώς άγνωστο.
Στην πραγματικότητα, η νέα εποχή για τον Firefox σηματοδοτήθηκε από την επιτάχυνση του κύκλου εκδόσεων και την υιοθέτηση του αποκαλούμενου «Rapid Release», σύμφωνα με το οποίο προκύπτει μία νέα σταθερή έκδοση κάθε πέντε με οκτώ εβδομάδες περίπου. Τώρα ο κύκλος αυτός θα επιταχυνθεί ακόμα περισσότερο, με την αφαίρεση ενός βήματος. Η πορεία των εκδόσεων ήταν κατά σειρά Nightly -> Aurora (από εδώ προέκυπτε η Developer Edition) -> Beta -> Stable και στο εξής δε θα βγαίνει η Aurora, με την Developer να πηγάζει από την εκάστοτε Beta.
Ακολουθώντας την ίδια λογική ως προς την αύξηση της ταχύτητας ανάπτυξης, δεν προκάλεσε ακριβώς έκπληξη η επιλογή να απαλλαγεί ο browser από το μικρότερο ξαδερφάκι του, το Thunderbird, με το δεύτερο να (εξ)αναγκάζεται να ενηλικιωθεί σχετικά απότομα και να ορίσει τη δική του μοίρα. Αν θέλετε περισσότερες πληροφορίες για αυτό, πεταχτείτε στα γρήγορα προς το τέλος του άρθρου.
Στη συνέχεια θα δούμε πώς ακριβώς θα μεταμορφωθεί ο Firefox και θα προσπαθήσουμε να εξηγήσουμε τους λόγους που οδήγησαν στις συγκεκριμένες αλλαγές. Στόχος δεν είναι να πειστεί κανείς για το αξιόλογο της συγκεκριμένης εφαρμογής αλλά απλά και μόνο η επαρκής πληροφόρηση. Να σημειώσουμε εδώ ότι δε θα αναφερθούμε εκτενώς σε όλες τις μεταβολές, γιατί αρκετές από αυτές είναι σε πρώιμο στάδιο ακόμα. Θα παραμείνουμε περισσότερο σε αυτές που είναι ήδη εδώ αλλά και σε εκείνες που θα υλοποιηθούν στο άμεσο μέλλον.

Ξεκινάμε με κάτι που, πριν καν ολοκληρωθεί, έχει συγκεντρώσει μεγάλο αριθμό αντιδράσεων, οι οποίες αναμένεται να ενταθούν όσο πλησιάζει η στιγμή της εφαρμογής του. Πρόκειται για το φαινόμενο «τα πρόσθετά μας πέθαναν, τα πρόσθετά μας πάνε». Δηλαδή, δεν πάνε ακριβώς. Και οι αντιδράσεις, αν και κατανοητές, είναι υπερβολικές μερικές φορές, ειδικά αν αναλογιστεί κανείς την ανάγκη πίσω από αυτή την απόφαση.
Τι θα συμβεί; Ένας αρκετά μεγάλος αριθμός πρόσθετων (add-ons) θα πάψει να λειτουργεί. Απλά και ξεκάθαρα. Όπως είπαμε, o Firefox αλλάζει και μία από τις σημαντικότερες αλλαγές είναι η εμφάνιση ενός νέου τύπου πρόσθετων, των WebExtensions. Αναπόφευκτα, μια τέτοια αλλαγή σημαίνει ότι ορισμένοι χρήστες θα αναγκαστούν να αναζητήσουν εναλλακτικές λύσεις για τα πρόσθετα εκείνα που δε θα δουλεύουν πια ή σε ορισμένες περιπτώσεις να συμβιβαστούν με την έλλειψη αυτών.
Γιατί όμως αποφασίστηκε κάτι τέτοιο; Είναι τρελοί οι προγραμματιστές και δεν τους ενδιαφέρουν οι χρήστες; Μήπως απλά δεν ξέρουν τι κάνουν; Εννοείται βέβαια πως δεν ισχύει κάτι από αυτά. Αυτό που ισχύει, χωρίς να αναλωθούμε σε υπερβολικά τεχνικές αναλύσεις, είναι ότι ο Firefox στα σωθικά του είναι γερασμένος. Η γλώσσα που χρησιμοποιεί, η XUL, είναι σχετικά παρωχημένη, είναι δεμένη με την επίσης γερασμένη και προγραμματισμένη για αντικατάσταση μηχανή Gecko, ενώ δε χρησιμοποιείται ιδιαίτερα σε περιβάλλοντα εκτός της Mozilla. Αντί λοιπόν να παραμείνουν δέσμιοι στη συντήρηση της γλώσσας αυτής, επέλεξαν να την αλλάξουν σταδιακά. Το πρόβλημα όμως είναι ότι τα πρόσθετα χρησιμοποιούν επίσης τη XUL.
Ας δούμε όμως λίγες περισσότερες λεπτομέρειες, ώστε να καταλάβουμε καλύτερα το όλο θέμα. Να πούμε πρώτα τα αρνητικά, τι θα χάσουν δηλαδή οι χρήστες: θα χάσουν προφανώς κάποια από τα πρόσθετα που έχουν συνηθίσει να χρησιμοποιούν. Αυτό βέβαια δεν είναι απαραίτητο να συμβεί σε όλους. Αρκετά από τα ήδη υπάρχοντα πρόσθετα έχουν είτε ολοκληρώσει, είτε ξεκινήσει τη μετατροπή σε WebExtensions. Θα χάσουν επίσης -ανάλογα με την περίπτωση πάντα- λίγη ή περισσότερη λειτουργικότητα από τα πρόσθετά τους, ακόμα κι αν αυτά υπάρχουν στη νέα εκδοχή τους. Αυτό το τελευταίο φαίνεται ιδιαίτερα άσχημο, είναι όμως αναγκαίο αντάλλαγμα για κάτι που θα κερδηθεί.
Πάμε τώρα σε αυτά που θα μας προσφέρουν τα WebExtensions. Το πρώτο είναι η διαλειτουργικότητα. Θα χρησιμοποιούν APIs συμβατά με αυτά του Chrome (και των browsers που βασίζονται στη μηχανή Blink), κάτι που σημαίνει ότι αφενός μεν τα διαθέσιμα για άλλους browsers πρόσθετα θα μπορούν να τρέξουν -με κάποιες μικρές αλλαγές- και στον Firefox, αφετέρου δε κάποιος που θέλει να δημιουργήσει ένα πρόσθετο, δε θα βρεθεί στο δίλημμα επιλογής browser και θα καταλήξει στον Chrome ως πρωτοπόρο σε αριθμό χρηστών αλλά θα μπορεί κατ’ ουσίαν να φτιάξει ένα για όλους.
Το δεύτερο σημαντικό στοιχείο που προσμετράται στα θετικά (έχοντας όμως το «αρνητικό» ότι αποτελεί το αντάλλαγμα που προαναφέραμε) είναι ότι με τη χρήση των WebExtensions ενισχύεται σημαντικά η ασφάλεια στο περιβάλλον του browser και η ευελιξία στην ανάπτυξή του. Αρκετά σοβαρός λόγος για να γίνει η αλλαγή, δε βρίσκετε; Για να συμβούν αυτά όμως, θα περιοριστούν όσα μπορεί να κάνει ένα πρόσθετο. Με το τωρινό σύστημα και μέσω της XUL, κάθε πρόσθετο έχει εν δυνάμει απεριόριστη πρόσβαση στον browser. Αυτό του δίνει πολλές δυνατότητες, τόσες ώστε να μπορεί να αλλάξει την εμφάνιση της ίδιας της εφαρμογής αλλά και τη λειτουργία της. Είναι ωραίο, μας αρέσει και το χαίρονται ιδιαίτερα οι «power users», δεν αντιλέγει κανένας. Εγκυμονεί κινδύνους όμως. Έχοντας πρόσβαση στα ενδότερα, ένα κακόβουλο ή απλά κακογραμμένο πρόσθετο -και υπάρχουν δεκάδες τέτοια- μπορεί από το να αυξήσει σημαντικά την κατανάλωση πόρων του συστήματος (βλέπε AdBlock) μέχρι και να οδηγήσει στη δημιουργία κενών στη διαδικτυακή μας ασφάλεια. Επίσης, δεν είναι δυνατό το πέρασμα σε νεότερη έκδοση του Firefox χωρίς να «σπάσουν» κάποια πρόσθετα.
Αυτά θα επιχειρηθεί να αντιμετωπιστούν με τη μετάβαση στα WebExtensions. Τα νέα πρόσθετα θα έχουν λιγότερες δυνατότητες, θα είναι όμως πιο εύκολο για τους προγραμματιστές να γράψουν σωστό κώδικα, άρα και να έχουμε μελλοντικά πρόσθετα καλύτερης ποιότητας. Θα είναι επίσης αρκετά πιο ασφαλή, ενώ δε θα μπορούν να «γονατίσουν» τον browser, όπως συμβαίνει μέχρι τώρα.

Στη βελτίωση της λειτουργίας της εφαρμογής θα συμβάλει μία ακόμα πολυπόθητη αλλαγή: το Electrolysis (e10s). Η αλεπού αποκτά επιτέλους τη δυνατότητα να τρέχει τις επιμέρους διεργασίες της με τρόπο που θα τις κάνει ανεξάρτητες μεταξύ τους, όπως συμβαίνει ήδη με το αντίπαλο δέος της Google.
Με το υπάρχον μοντέλο, ολόκληρη η λειτουργία του Firefox γίνεται μονοδιάστατα. Η διεπαφή χρήστη, η διαχείριση των καρτελών, τα πρόσθετα, η παρουσίαση του διαδικτυακού περιεχομένου, όλα βρίσκονται στον ίδιο νοητό χώρο και μπορούν να αλληλεπιδρούν. Αυτό παρουσιάζει σοβαρά μειονεκτήματα. Ένα-δύο ενδεικτικά, που θα τα έχετε συναντήσει σίγουρα αρκετοί από εσάς, είναι η καθυστέρηση στην απόκριση της διεπαφής (λ.χ. στο άνοιγμα του μενού) επειδή μια ιστοσελίδα είναι προβληματική ή η ενημέρωση ότι κάποιο script επηρεάζει αρνητικά τη λειτουργία της εφαρμογής. Στοιχεία που θα έπρεπε να είναι άσχετα μεταξύ τους, δεν είναι όμως. Πλέον θα πάψει να υφίσταται κάτι τέτοιο, γιατί τα επιμέρους συστατικά θα έχουν τη δική τους διεργασία (process). Όλο αυτό θα ενισχύσει την ταχύτητα και την αποκρισιμότητα του browser, θα αυξήσει όμως λίγο και την κατανάλωση πόρων.
Με μία σημαντική λεπτομέρεια εδώ: μαθαίνοντας ίσως από τα λάθη των άλλων, η multiprocess δραστηριότητα του Firefox δε θα λειτουργεί ακριβώς όπως στον Chrome. Δε θα δημιουργείται δηλαδή ένα process για κάθε νέα καρτέλα, οδηγώντας την κατανάλωση της RAM σε υπερβολικά επίπεδα. Αντίθετα, θα υπάρχει συγκεκριμένος αριθμός που θα αναλογεί στις καρτέλες, άλλος που θα αφορά τα πρόσθετα, τρίτος για τη γραφική διεπαφή κ.ο.κ. Τεχνικός συμβιβασμός δηλαδή που προσπαθεί να αποφέρει όσα περισσότερα πλεονεκτήματα μπορεί, προσφέροντας το ελάχιστο δυνατό αντίτιμο.
Το Electrolysis ενεργοποιήθηκε αρχικά εν είδει δοκιμής για περιορισμένο αριθμό χρηστών, ο οποίος αυξάνεται σταδιακά, ενώ από την έκδοση 54 θα είναι προενεργοποιημένο για τους χρήστες εκείνους που δε χρησιμοποιούν κανένα πρόσθετο. Γιατί μόνο για εκείνους; Ένα χαρακτηριστικό δείγμα του πόσο απαραίτητες είναι οι αλλαγές και η εγκατάλειψη του παλιότερου τρόπου λειτουργίας είναι το ότι το Electrolysis μπλοκάρεται (και απενεργοποιείται αυτόματα) αν εγκαταστήσουμε κάποιο πρόσθετο που δεν είναι συμβατό αυτό.
Τονίζουμε ότι το ορόσημο είναι η έκδοση 57, η οποία έχει προγραμματιστεί για τον ερχόμενο Νοέμβριο. Με την έλευσή της, θα είναι ενεργό για όλους το e10s, πιθανότατα με τέσσερα processes ως προεπιλογή, και παράλληλα κάθε μη WebExtension πρόσθετο θα αχρηστευθεί. Σε περίπτωση τώρα που κάποιος χρειαστεί λίγο περισσότερο χρόνο, θα μπορεί να περάσει στην αντίστοιχη ESR (Έκδοση Εκτεταμένης Υποστήριξης).
Για την εξυπηρέτηση των χρηστών υπάρχει ήδη διαθέσιμη σελίδα όπου καταχωρούνται τα συμβατά πρόσθετα. Υπάρχει επίσης σχετικό tag στη σελίδα με όλα τα πρόσθετα του Firefox ενώ στις επόμενες εκδόσεις και μέχρι την οριστική αποπομπή τους θα εμφανίζεται μέσα στον browser η ένδειξη «LEGACY» δίπλα σε όποιο πρόσθετο δεν είναι συμβατό και θα γίνεται παραπομπή σε αντίστοιχης λειτουργίας πρόσθετα.

Project Photon
Το Photon είναι ένα σχέ
          When artificial intelligence and human resources intersect        
Indeed, the founder and CEO of artificial intelligence engine developer Recognant is a teacher -- of robots, not people -- and not the factory floor ...
          Wordpress XML-RPC Brute Force Attack Vulnerability        
Today i'll be sharing a easy & quite  interesting tutorial on Wordpress XML-RPC Brute Force Attack.
As we all know nowadays when every an attacker gets his hands on a WordPress website, the first thing he would try to do in order to compromise the website is a brute force attack. The attacker loads a list of user & password combination in order to guess the correct one. Its always the first & mandatory option to try in point of view of a newbie attacker. The result of an increase in brute force attack day buy day, the developers have started using Login captcha plugins to protect them selves form such attack.

XML-RPC is a word press interface & this functionality is turned by default since WordPress 3.5. Recently we have seen very critical vulnerability been found in the same which effected a quarter of the internet - Ping Back DDOS Vulnerability, Arbitrary code Execution etc. Recently it has came to known that attackers are taking advent of the XML-RPC wp.getUsersBlogs method in order to launch a brute force attack against the website. In XML-RPC many of the calls need the credentials in order to implement. Then attacker can try different combinations on user & passwords. The output is thrown on the webpage weather its valid or invalid.

Step by step guide -

 - Locate the XMLRPC on the target website - localhost/xmlrpc.php

- Send a POST request with the following code given below.

<methodCall><methodName>wp.getUsersBlogs</methodName><params><param><value> <string>user</string></value></param>  <param><value><string>password</string></value></param></params></methodCall>

- Check the response

If wrong combination - faultCode


If right - isAdmin

Hope you all liked this tutorial.  Any queries? Drop it down in comments!.

          Burn After Reading        

Who’s Who
What’s What

In the World of CIA Fronts, Partners, Proprietaries & Contractors


The Almost Classified Guide to CIA Front Companies, Proprietaries & Contractors
ISBN: 978-1-365-11196-9

Cool Justice Editor's Note: Following are excerpts from author Madsen's introduction and the body of the work. Additional suggested reading: News story about Madsen's book via the Washington, D.C. based Justice Integrity Project [link at the bottom of this post].


From the Introduction

One of the most pervasive uses of companies as intelligence partners was under the CIA’s Operation MOCKINGBIRD. During the Cold War, the CIA, often with the approval of corporate executives, infiltrated their agents to work as journalists in newspapers, radio and television networks, wire services, and magazines. The following pages in this book are rife with examples of this penetration of the Fourth Estate – all too many in the opinion of this journalist. The CIA admitted to at least 400 journalists on the agency’s payroll at the height of MOCKINGBIRD. The CIA traditionally understates its capabilities, especially when its covert activities become publicly known. Moreover, the end of the Cold War did not stop the practice of the CIA in infiltrating the media and slant news reports to its wishes.


An insightful look behind the veils of secrecy into the CIA’s use of fronts, proprietaries, and partners calls into question the purpose of the CIA. Created by President Harry S Truman to serve as a central collector and repository of intelligence, the CIA became much more than that. A few weeks after the United States witnessed the assassination of President Kennedy in the middle of downtown Dallas, Truman penned an op-ed piece that appeared in several newspapers around the country. In it, Truman shared his regret for having created the CIA in 1947:

“I think it has become necessary to take another look at the purpose and operations of our Central Intelligence Agency—CIA . . . For some time I have been disturbed by the way CIA has been diverted from its original assignment. It has become an operational and at times a policy-making arm of the Government. This has led to trouble and may have compounded our difficulties in several explosive areas.

"I never had any thought that when I set up the CIA that it would be injected into peacetime cloak and dagger operations. Some of the complications and embarrassment I think we have experienced are in part attributable to the fact that this quiet intelligence arm of the President has been so removed from its intended role that it is being interpreted as a symbol of sinister and mysterious foreign intrigue.”


The 21st century’s CIA’s partners are more likely to be found among high-tech companies marketing the latest and greatest mobile applications and data mining programs than among banks, law offices, and advertising agencies. However, in the post-World War II era, the CIA’s top and middle echelons were normally found operating through cover as typewriter-pecking journalists, traveling Madison Avenue admen, corporate lawyers, and chain-smoking oilmen. In the 1970s and 80s, CIA contractors and partners began showing up in the high-tech field, with database, local area networking, and on-line information retrieval systems attracting the most interest by Langley.


As this book went to press, the smart phone game application Pokémon Go fad was sweeping the planet. Unbeknownst to many of the on-line game’s avid fan’s was the connection of the game’s developers to the CIA’s venture capital firm IN-Q-TEL. All users saw their geo-location and other smart phone data being swept up by a CIA partner firm.


Amazon, Inc. [CIA contractor]. Company provides cloud computing services for the CIA. Amazon’s CEO Jeff Bezos also owns The Washington Post.

American Historical Society. [CIA partner]. Many society officials were OSS/CIA officers.

American Press Institute. [CIA front]. Operating out of Columbia University, the institute’s director in the 1950s was a CIA officer.

AmeriCares. [CIA partner]. A non-profit organization that is often the “first in” at refugee situations. Founded by tycoon J. Peter Grace, a board chairman of the CIA front, the American Institute for Free Labor Development (AIFLD) and a trustee of another CIA front, the American Committee for Liberation from Bolshevism, AmeriCares was involved in funding the Nicaraguan contras. The group has also provided the CIA with recruiting opportunities at mass refugee sites, particularly in Latin America and Asia.

Bechtel Corporation. [CIA contractor]. Bechtel is a large construction company that has included former CIA director Richard Helms, CIA pseudonym “Fletcher M. Knight,” among its executive ranks. Bechtel was active in providing corporate cover for the OSS in the Middle East during World War II. Bechtel has been a consummate service company for various CIA operations, including support for the CIA-inspired coup against the Syrian government in 1949, the Iranian government of Prime Minister Mohamed Mossadeq in 1953, and President Sukarno of Indonesia in 1965. From the 1960s to the 1970s, Bechtel provided cover for CIA agents in Libya under both the regime of King Idris and his successor, Muammar Qaddafi. Sometimes called a “secret arm” of the CIA, Bechtel’s executives included those who would join President Reagan’s Cabinet, including Secretary of State George Schultz and Secretary of Defense Caspar Weinberger.

Before World War II, Steve Bechtel formed a military-industrial complex partnership with John McCone. McCone later became the chairman of the Atomic Energy Commission and later, director of the CIA. The CIA has used Bechtel to provide cover for non-official cover CIA operatives abroad.

Blackstone Investment Group. [CIA front]. With offices in Washington, DC and Moscow, arranged for the purchase of KGB documents following the collapse of the Soviet Union. Among the documents sought by the front company were any related to illegal CIA activities during the Cold War, including the 1963 assassination of President John F. Kennedy.

Bourbon and Beefsteak Bar and Restaurant. [CIA front]. Opened in 1967 in King’s Cross in Sydney, Australia. Served as a rendezvous point for CIA, Australian Security Intelligence Organization (ASIO), and organized crime figures. Its proprietor was Bernie Houghton, a CIA operative with links to Nugan Hand Bank, CIA weapons smuggler Edwin Wilson, and CIA clandestine services officers Theodore Shackley, Rafael Quintero, and Thomas Clines.

Center for Democracy. [CIA front]. Administered under the aegis of Boston University, the center maintained offices in Boston, Washington, DC, Guatemala City, and Strasbourg, France. Involved in CIA operations in eastern Europe, Central America, and Africa.

Colt Patent Firearms Company. [CIA partner]. Based in Hartford, Connecticut, provided corporate cover for CIA officers operating abroad.

Daddario & Burns. [CIA partner]. Headed by former OSS officer Emilio Daddario, a Democratic Representative from Connecticut, the Hartford-based law firm provided services to the CIA.

DC Comics. [CIA partner]. Worked with the International Military Information Group (IMIG), a joint CIA/Pentagon unit at the State Department, to disseminate propaganda comic books, featuring Superman, Batman, and Wonder Woman, in Serbo-Croatian and Albanian, to youth in the Balkans during the military conflicts in that region.

Disney Corporation. [CIA partner]. CIA agents who were adept at creating front companies and shell corporations in Florida, worked closely with Disney in preparation for the construction of Disney World near Orlando, Florida. OSS veteran “Wild Bill” Donovan and CIA shell company expert Paul Helliwell helped create two fake Florida cities, Bay Lake and Lake Buena Vista, as well as a number of shell corporations, to keep secret the plans for Disney World. This kept land prices low because real estate speculators were unaware of the prospective value of the land in a desolate area of central Florida.

Emory School of Medicine. [CIA partner]. Located in Atlanta, Georgia. Involved in the CIA’s MK-ULTRA behavioral modification project.

Enron Corporation [CIA partner]. Houston-based firm that was used by the CIA to provide commercial cover for its agents around the world. There were at least 20 CIA employees on Enron’s payroll. Andre Le Gallo, a former official of the CIA’s Operations Directorate, went to work as a corporate intelligence officer for Enron.

Fair Play for Cuba Committee (FPCC). [CIA front]. Officially established by American Trotskyists, the group was penetrated by CIA operatives. The FPCC New Orleans office was a CIA front that provided cover for the anti-Fidel Castro activities of Lee Harvey Oswald, Clay Shaw, and David Ferrie, among others. The New Orleans FPCC office was located at 544 Camp Street and shared the same building entrance with Guy Banister Associates, Inc., a private detective agency, the address for which was 531 Lafayette Street and around the corner from 544 Camp Street.

In December 1963, after the assassination of President John F. Kennedy, the FPCC ceased all U.S. operations.

General Electric Company. [CIA partner]. Based in Fairfield, Connecticut, provided corporate cover for CIA officers operating abroad.

General Foods Corporation. [CIA partner]. Advertising account at CIA’s Robert Mullen Company handled by an active CIA employee.

Google, Inc. [CIA partner]. Developed as a result of a research grant by the CIA and Pentagon to Stanford University’s Department of Computer Science. The CIA referred to the research as the “google project.”

Greenberg Traurig. [CIA partner]. Washington, DC “connected” law firm.

Guy Banister Associates, Inc. [CIA partner]. New Orleans private detective agency headed by former FBI agent Guy Banister. The detective agency coordinated the activities of various anti-Castro Cuban groups in New Orleans, including Banister’s own Anti-Communist League of the Caribbean, as well as the Cuban Revolutionary Council, the Cuban Democratic Revolutionary Front, Friends of Democratic Cuba, and the Crusade to Free Cuba Committee.

Banister and Associates shared office space with the CIA’s New Orleans front, the Fair Play for Cuba Committee, headed by Lee Harvey Oswald.

Hale and Dorr. [CIA partner]. Boston-based law firm that provided cover for CIA’s Independence and Brown Foundations.

Halliburton. [CIA contractor]. Based in Houston, it is the world’s largest oil service company. Recipient of a number of CIA sole-source contracts for services worldwide.

Harper and Row, Inc. [CIA partner]. Manuscripts submitted to the New York publisher that dealt with intelligence matters, particularly CIA operations, were turned over to the CIA for censoring edits before publication.

Hewlett Packard Corporation. [CIA partner]. Sold computers to Iraq for Saddam Hussein’s missile program with the knowledge and approval of the CIA.

Hill & Knowlton. [CIA partner]. Public relations firm that teamed with the CIA on a number of operations. Hill & Knowlton’s numerous offices abroad provided cover for CIA agents. One known Hill & Knowlton office that was a CIA front operation was in Kuala Lumpur.

Kerr-McGee. [CIA partner]. Provided corporate cover for CIA officers operating overseas.

Kissinger Associates, Inc. [CIA partner]. New York-based international consulting firm founded by former Secretary of State and National Security Adviser Henry Kissinger. Former National Security Adviser Brent Scowcroft is a co-owner. The firm provided support to the CIA-linked American Ditchley Foundation and the Bilderberg Group. Much of the 1982 seed money for Kissinger Associates was provided by Goldman Sachs.

Knight Foundation. [CIA partner]. Also known as the John S. and James L. Knight Foundation. Based in Miami, the foundation provides funding for various CIA-connected media operations in the United States and around the world.

Kroll Inc. [CIA partner]. Founded in 1972 by Jules Kroll, who had links to both U.S. and Israeli intelligence. Based in Manhattan. French domestic law enforcement believed Kroll’s Paris office was a CIA front. Kroll handled the security for the World Trade Center after the 1993 terrorist bombing and continued to be responsible for security up to, during, and after the September 11, 2001 terrorist attack. Kroll employed former FBI assistant director for counter-terrorism John O’Neill, who died in the collapse of the World Trade Center.

Lincoln Savings and Loan. [CIA partner]. Based in Irvine, California and headed by notorious swindler Charles Keating, Jr., involved in laundering funds for the Iran-contra scandal.

Lone Star Cement Corporation. [CIA partner]. Based in Stamford, Connecticut and linked to the Bush family, provided corporate cover for CIA officers operating abroad. Involved in the Iran-contra scandal.

Mary Carter Paint Company. [CIA front]. A money-laundering operation for the CIA. Involved in casinos in the Bahamas.

Monsanto. [CIA partner]. The firm contracted with former CIA official Cofer Black’s Total Intelligence Solutions (TIS), a subsidiary of the CIA-connected Blackwater USA, later Xe Services, to monitor animal rights groups, anti-genetically modified (GM) food activists, and other groups opposed to Monsanto’s agri-business operations worldwide.

National Enquirer. [CIA partner]. The tabloid’s founder, Generoso (Gene) Pope, Jr., worked for the CIA’s psychological warfare unit and the agency’s Italy branch in 1950. In 1952, Pope acquired The New York Enquirer broadsheet and transformed it into a tabloid, renaming it The National Enquirer. This transformation bore the imprimatur of the CIA’s Operation MOCKINGBIRD media influence program.

Newsweek. [CIA partner]. Magazine reporters and stringers fed information to the CIA. Newsweek’s stringers in southeastern Europe and the Far East were CIA agents. When Newsweek was bought by The Washington Post Company in 1961, cooperation between the magazine and the CIA increased. It was a participant in the CIA’s Operation MOCKINGBIRD media influence program. Much of the staff of Newsweek was absorbed into a new online publication, The Daily Beast, which continues to disseminate CIA-influenced articles. See Washington Post.

Nieman Foundation. [CIA partner]. Located at Harvard University, the foundation awarded Nieman Fellowships, some on behalf of the CIA, for foreign journalists to study at Harvard. The journalists were subjected to CIA recruitment efforts prior to their returning to their home countries.

Pamela Martin & Associates. [CIA partner], Escort firm run by Deborah Jeane Palfrey, the so-called “DC Madam.” During her 2008 trial for mail fraud, Palfrey attempted to invoke the Classified Information Procedures Act in order to discuss her relationship with the CIA. The U.S. Court refused Palfrey’s request and she was convicted and later said to have committed suicide before her sentencing hearing in Washington, DC. One of her clients was Randall Tobias, the head of the CIA-connected USAID. Another was Louisiana Republican senator David Vitter.

Paris Review. [CIA front]. Literary magazine edited by George Plimpton. Published works by Jack Kerouac and Samuel Beckett. The magazine’s co-founder, Peter Matthiessen, relied on his affiliation with the magazine as his CIA cover.

Quaker Oats Company. [CIA partner]. Worked with the CIA and Atomic Energy Commission to place trace amounts of radiation in breakfast cereal served to boys at the Fernald School for the mentally retarded in Waltham, Massachusetts.

Radio Corporation of America. [CIA partner]. Provided corporate cover for CIA officers operating abroad, particularly in Iran, Philippines, Japan, and West Germany. Provided technical assistance to CIA-financed clandestine and propaganda radio stations worldwide, including Radio Free Europe. RCA founder David Sarnoff was a major supporter of CIA operations, including propaganda dissemination around the world. RCA chairman and chief executive officer Thornton F. Bradshaw was active in the operations of the CIA-linked American Ditchley Foundation.

Reily Coffee Company. [CIA partner]. Also known as William B. Reily Coffee Company and based in New Orleans, this company employed Lee Harvey Oswald and a number of other U.S. government employees, many of whom were suspected CIA officers.

Robert M. Mullen Company. [CIA proprietary]. A Washington, DC public relations firm, it was used as a front for CIA activities. E. Howard Hunt, the CIA agent, worked for Robert Mullen when he was arrested in the break-in of the Democratic National Committee headquarters at the Watergate Hotel in Washington in 1972. The Senate Watergate Committee reported that “the Mullen and Company has maintained a relationship with the Central Intelligence Agency since its incorporation in 1959. It provided covers for agents in Europe (Stockholm), Latin America (Mexico City), and the Far East (Singapore) at the time of the Watergate break-in.”

Rockefeller Foundation. [CIA partner]. Used by the CIA to direct scholarships and grants to the Third World and Eastern Europe. Rockefeller Foundation money was funneled to the American Committee for a United Europe (ACUE), created in 1948. The chairman of ACUE was OSS chief William J. Donovan and the vice chairman was Allen Dulles. One of ACUE’s board members was Walter Bedell Smith, the first CIA director.

Summa Corporation. [CIA partner]. Owned by Howard Hughes, Summa is believed to have skimmed gambling profits from the Sands, Desert Inn, Frontier, Silver Slipper, Castaways, and Landmark casinos in Las Vegas and Harold’s Club in Reno for the CIA and the Mafia. Provided financial cover for the CIA’s Glomar Explorer project.

Teneo Intelligence. [CIA partner]. Branch of Teneo Holdings, which is headquartered in New York. Teneo Holdings’s intelligence branch includes former CIA officials. Teneo is closely linked to former President Bill Clinton and Hillary Clinton. Teneo Intelligence has offices in New York, London, Rome, Brussels, Dubai, Bogota, New Delhi, and Tokyo.

Texas Commerce Bank (TCB). [CIA partner]. Houston-based bank founded by the family of James Baker III. Texas Commerce Bank was used to provide commercial cover for CIA agents. After serving as vice president for Texas Commerce Bank in Caracas from 1977 to 1979, Jeb Bush joined his father’s presidential campaign in 1980. Serving with Bush on the campaign was Robert Gambino, the CIA deputy director of security who gave Bush his orientation brief at Langley in 1977.

Kenneth Lay, the chairman of Enron, which had its own links to the CIA, served on the board of Texas Commerce Bank. Texas Commerce Bank was acquired by Chemical Bank in 1987.

The bank provided major loans to Howard Hughes’s Summa Corporation. See Summa Corporation.

United Fruit Company [CIA partner]. Involved in 1954 CIA overthrow of Jacobo Arbenz government in Guatemala. Published the Latin America Report, a publication that was a CIA front used for clandestine activities. The CIA transferred weapons to United Fruit employees in Guatemala who were involved in undermining the Arbenz government. The joint CIA-United Fruit plan was code named OPERATION FORTUNE. Company provided an airfield in Guatemala for the CIA’s training of Cuban exiles for the Bay of Pigs invasion of Cuba.

U.S. Rubber Company. [CIA partner]. Headquartered in Naugatuck, Connecticut and later called Uniroyal, provided corporate cover to CIA officers operating abroad. Included those operating under the cover of the Dominion Rubber Company of Canada, a subsidiary of U.S. Rubber Company.

U.S. Youth Council (USYC). [CIA front]. Founded in 1945 and based in New York. Some 90 percent of its funds came from the CIA. USYC received funding from the Foundation for Youth and Student Affairs (FYSA), a CIA front. The USYC was composed of American Youth Hostels, Camp Fire Girls, 4-H, American Unitarian Youth, National Catholic Welfare Conference, National Students Assembly, YMCA and YWCA.

Wackenhut. [CIA contractor]. Wackenhut, a Palm Beach Gardens, Florida-based security firm, stood accused of providing the CIA with specialized services around the world, including Chile, Greece, and El Salvador. Its Venezuelan branch, Wackenhut Venezolana, C.A., was accused in 2002 of involvement in the CIA’s coup against President Hugo Chavez. William Casey served as Wackenhut’s outside counsel before becoming CIA director in 1981.

Wackenhut eventually merged into the global security firm G4S.

Washington Post. [CIA partner]. The Washington Post was part of the CIA’s Operation MOCKINGBIRD, the agency’s media influence project. Post publisher Phil Graham was a close friend and associate of MOCKINGBIRD chief Frank Wisner, Sr. and CIA director Allen Dulles. Wisner assisted Graham in acquiring The Washington Times-Herald and WTOP radio, creating a sizable CIA-influenced media operation in the nation’s capital.

W. R. Grace. [CIA partner]. Provided corporate cover to CIA officers operating abroad, particularly in Latin America. Provided donations to CIA front foundations.

  • News story about Madsen's book via The Justice Integrity Project



     Ilustrasi Membeli Rumah dari Developer.  Sumber : ini


    Membeli rumah dari developer / pengembang merupakan salah satu cara yang banyak digunakan orang untuk memiliki rumah.  Cara ini banyak ditempuh, terutama oleh emreka yang tinggal di kawasan perkotaan,  sebab harga tanah di perkotaan sudah sangat tinggi, sehingga menjadi tidak mudah jika membangun rumah sendiri.

    Membeli rumah melalui developer akan memberikan banyak kemudahan, diantaranya :

    • Kawasan yang sudah jadi, artinya developer menyediakan lokasi perumahan yang tertata dan dilengkapi fasilitas umum serta khusus.
    • Tidak perlu repot mengurusi proses pembangunan rumah, dari membuat desain, menyusun RAB, hingga mengawasi pembangunan rumah.
    • Tersedianya fasilitas kerjasama KPR (Kredit Pemilikan Rumah) dengan bank.

    Namun calon pembeli rumah wajib tahu mengenai Tahapan Proses Membeli Rumah dari Developer.  

    Beli Rumah Kok Cuma Dikasih Gambar !!

    Pernah mendengar istilah “beli rumah dari developer itu beli gambar” ?  Istilah itu maksudnya adalah: saat kita membeli rumah di developer, rumahnya secara fisik belum ada.  Kita hanya tahu seperti apa rumah dan perumahan itu nantinya kalau sudah jadi, melalui gambar dan maket yang dibuat oleh developer.  Kenapa begitu ?  Sebab developer membutuhkan dana kucuran dari KPR untuk membangun rumah yang kita pesan.

    Dan berikut ini proses yang lazim dilalui jika kita membeli rumah dari developer.


    Secara umum, proses pembelian rumah dari developer menggunakan skema KPR atergambar dari flowchart berikut ini:

     Flowchart Proses Membeli Rumah dari Developer


    Penjelasan singkat mengenai flowchart di atas adalah sebagai berikut :
    Tahapan 1Memilih Rumah dari Developer Terpercaya

    Tahapan 2 Membayar Booking Fee untuk memesan rumah.

    Tahapan 3 Mengajukan KPR dan mendapatkan persetujuan kredit dari bank. Tanpa KPR (Kredit Pemilikan Rumah), rumah tidak bisa mulai dibangun oleh developer. Jika pembelian dilakukan secara tunai, proses ini tidak diperlukan.

    Tahapan 4 Menandatangani Perjanjian Jual Beli (PPJB) dengan developer. PPJB ini penting untuk dibaca karena didalamnya termuat klausul mengenai janji developer soal kapan rumah jadi, proses balik nama sertifikat dan lain- lain. Sampai disini status rumah masih PPJB.

    Tahapan 5 Rumah selesai. Biasanya setelah 6 bulan s/d 1 tahun, tapi ada juga yang lebih dari 1 tahun, misalnya jika perumahan yang dikerjakan skala besar, dan unit yang dibangun banyak.  Setelah proses pembangunan rumah rampung, rumah siap ditempati.

    Tahapan 6 Proses pemecahan sertifikat HGB developer yang dilakukan setelah rumah jadi. Pemecahan harus dilakukan terlebih dahulu supaya sertifikat bisa dibalik nama ke pembeli

    Tahapan 7 Dilakukan Akta Jual Beli (AJB) dengan notaris.

    Tahapan 8 Balik nama sertifikat HGB developer ke pembeli.

    Tahapan 9 Meningkatkan  status menjadi Sertfikat Hak Milik (SHM)

    Demikian artikel PROSES MEMBELI RUMAH DARI DEVELOPER YANG WAJIB DIKETAHUI, semoga artikel singkat ini membantu Anda.

    Ingin mendapatkan informasi lebih jelas ?
    Langsun hubungi Citra Property Land

              PHP Developer - - Remote        
    Everyone at works remotely from their own home. We’ve developed an application that allows hotels to better manage the inventory of items that... $40,000 - $50,000 a year
    From Indeed - Mon, 19 Jun 2017 14:46:22 GMT - View all Remote jobs
              Mana-esque 'EGGLIA: Legend of the Redcap' just released globally on the Play Store        

    One look at EGGLIA: Legend of the Redcap and you are instantly transported back to the 90's where Japanese RPGs reigned supreme. This is no surprise of course as the developers behind EGGLIA: Legend of the Redcap had a hand in creating some of the most memorable RPGs in history such as Kingdom Hearts, Mother 3, and the Mana series.

    While this 18 minute gameplay trailer should give you a good idea what to expect out of EGGLIA: Legend of the Redcap, I would like to highlight some of the more interesting bits about this release below.

    Read More

    Mana-esque 'EGGLIA: Legend of the Redcap' just released globally on the Play Store was written by the awesome team at Android Police.

              [Hands-on] Middle-earth: Shadow of War, a AAA game in name only        

    Warner Bros. International Enterprises has a mobile version of Middle-earth: Shadow of War that is currently available on the Play Store for pre-registration. Luckily I have gotten my hands on an APK and have sideloaded the game in order to let all of you know how it plays in advance of the title's release.

    I would like to briefly mention that Middle-earth: Shadow of War is a soft-launch title that is currently only available in the US for pre-registration.
    Read More

    [Hands-on] Middle-earth: Shadow of War, a AAA game in name only was written by the awesome team at Android Police.

              Behold Studios new sci-fi RPG 'Galaxy of Pen & Paper' launches onto the Play Store        

    Behold Studios has just released Galaxy of Pen & Paper onto the Play Store. It costs $4.99, and there are no advertisements or in-app purchases. While many may remember the fiasco that Paradox Interactive created when converting Knights of Pen & Paper 2 to a free-to-play game, I would like to make it clear that Galaxy of Pen & Paper is being handled by the original developer of the series. That is right, Behold Studios is back behind the reins and have adamantly stated that Galaxy of Pen & Paper will stay a premium priced game.

    Read More

    Behold Studios new sci-fi RPG 'Galaxy of Pen & Paper' launches onto the Play Store was written by the awesome team at Android Police.

              Tales of the Rays is the newest RPG in Bandai Namco's long running Tales series, and it's out on the Play Store        

    Bandai Namco have released an all new Tales game onto the Play Store. It's titled Tales of the Rays, and it is being billed as a "console quality" release that you can easily play on the go. But what exactly does that mean? Is this title really comparable to Bandai Namco's console games, or is this yet another free-to-play gacha release that was only disguised to look like its console siblings?

    Read More

    Tales of the Rays is the newest RPG in Bandai Namco's long running Tales series, and it's out on the Play Store was written by the awesome team at Android Police.

              [Update: Officially released today] Exciting news for CRPG fans, Planescape Torment will see an enhanced edition release on April 11th        

    Much like Baldur's Gate, Baldur's Gate II, and Icewind Dale have received enhanced edition ports to Android, classic CRPG Planetscape Torment is receiving the enhanced edition treatment as well. To be more specific, the developer Beamdog will be releasing Planescape: Torment Enhanced Edition as a cross-platform release on April 11th of this year.

    Read More

    [Update: Officially released today] Exciting news for CRPG fans, Planescape Torment will see an enhanced edition release on April 11th was written by the awesome team at Android Police.

              Taichi Panda: Heroes Is A Team-Based Sequel To The Popular Free-To-Play Dungeon Crawler        

    image (3)It's hard to predict which games among the hundreds of thousands in the Play Store will hit the sweet spot and become a sensation. Taichi Panda, Snail Games' Diablo-style dungeon crawler, is a good example. Since its release a little over a year ago it's gained over five million downloads and an impressive audience of frequent players both free and paid. After a successful soft launch period, the developer is returning to its anthropomorphic well with a sequel called Taichi Panda: Heroes.

    Read More

    Taichi Panda: Heroes Is A Team-Based Sequel To The Popular Free-To-Play Dungeon Crawler was written by the awesome team at Android Police.

              Black Desert Online – Mystic class announced for western server        
    [Game website] Publisher Kakao Games and developer PearlAbyss today announced that Black Desert Online will be welcoming a new female class. The new Mystic class will first make her first appearance on Black Desert Online’s Korean service and will be released soon to other regions. More in-depth information and a video about this exciting new [&hellip
              Secret World Legends – Shared-world supernatural RPG officially launches        
    [Play free now] Today, developer Funcom Funcom officially launched the shared-world RPG, Secret World Legends. Re-imagined and reborn from Funcom’s acclaimed MMORPG The Secret World, Secret World Legends features well over 100 hours of story-driven content that can be explored in entirety either alone, with a group of friends, or with strangers you meet in [&hellip
              Secret World Legends – Supernatural MMORPG is launching next month        
    [Game website] Developer Funcom today announced Secret World Legends will debut on Steam this June 26 as a reboot of the conspiracy-themed MMO, The Secret World. Now reimagined as a shared-world role-playing game, Secret World Legends puts more focus on the player’s experience uncovering the vast storyline and their journey through locations that spans the real, modern-day world. [&hellip
              Age of Wulin – Data transfer to new publisher begins this month        
    [Data transfer info] Webzen announced that Age of Wulin, the EU server for Age of Wushu, will be changing publisher. The new publisher is developer Snail Games, and player data will be transferred to Age of Wushu if certain steps are taken. On 10 May, a new “Account Transfer Ambassador” NPC will appear in Suzhou [&hellip
              Games of Glory – New cross-platform MOBA launches on Steam and PS4        
    [Steam page] Lightbulb Crew, a developer based in France, recently launched the Open Beta phase for its MOBA title, Games of Glory. A Free-to-Play, competitive top-down team shooter, the game is available now with seamless cross-platform play on PlayStation 4 (via PlayStation Store) and PC (via Steam). Players will enter the arena as one of [&hellip
              Armored Warfare – More details on Tanks Reloaded expansion revealed        
    [Play free now] Global publisher (and now the game’s developer) today unveiled more information about the next expansion for its tank MMO Armored Warfare – Tanks Reloaded. Tanks Reloaded, the expansion formerly known as update 0.19, expands upon the game’s genre defining Global Operations mode by adding the large scale and Caucasus-themed map “Barren [&hellip
              Black Desert Online – First look at improved graphics arriving this year        
    Announced back in November 2015, Korean developer Pearl Abyss will be upgrading the graphics of Black Desert Online using the YEBIS software created by Japan-based Silicon Studio. YEBIS was also used in popular console games such as Dark Souls III and Bloodborne. Pearl Abyss will apply YEBIS’ graphic effects to do a full-scale graphic remastering. [&hellip
              MyHeritage Acquires Millennia Corp. and its Legacy Family Tree Software        
    Israel-based genealogy website MyHeritage announced late yesterday that it has purchased Millennia Corp., developer of Legacy Family Tree software and the Legacy webinars program.

    "The acquisition will introduce MyHeritage users to Legacy’s valuable genealogical webinars, and will also provide Legacy’s hundreds of thousands of users with improved resources and access to new services," say spokespeople Daniel Horowitz of MyHeritage and Geoff Rasmussen of Millennia in a joint email.

    Here's what this means for you:

    Legacy Family Tree Software
    Legacy Family Tree software will continue to be offered. The next version (10), now underway, will feature optional syncing with family trees on the MyHeritage website and with the MyHeritage mobile app.

    Legacy Family Tree already syncs with the FamilySearch unified Family Tree, but it's currently the only one of the top genealogy programs that doesn't sync with a website that allows members to keep their own, limited-access family trees. Competitors Family Tree Maker and RootsMagic software both sync with member trees in addition to the FamilySearch tree. 

    Family Tree Builder Software
    MyHeritage has its own software, a free program called Family Tree Builder that syncs with MyHeritage online trees and with the MyHeritage app. Horowitz told me that Family Tree Builder also will continue to be offered, but I wouldn't be surprised if MyHeritage eventually streamlines its software offerings.

    Webinars and Discounts
    Legacy Family Tree customers will receive discounts on MyHeritage services and DNA kits, and MyHeritage will keep offering Legacy Family Tree webinars. All Millennia employees will be retained as employees of MyHeritage.

    See more details on the MyHeritage blog and Millennia's Legacy News blog.

              NVIDIA R382.88 Graphics Driver for Developers: OpenGL 4.6 + Vulkan 1.0.56        
    Yesterday, NVIDIA has published a graphics driver for developers that packs latest features in the field of graphics programming: the support of the new OpenGL 4.6 and the latest version 1.0.56 of...

              Kendo Grid MVC beforeEdit        


    The only way we can access the beforeEdit Event on a kendo grid is with javascript. shouldnt this be accessible through the Kendo.Mvc.UI.Fluent.GridEventBuilder? attached are just images showing that it errors and that we are using Kendo version 2017.2.621.340 as our dll.


    the way we did get it to work is by binding it via javascript with this code (for anyone that wants to know how to get this event to work)

        $(document).ready(function () {
            var grid = $("#BrandsGrid").data("kendoGrid");
            grid.bind("beforeEdit", function (e) {
                alert("Before Edit");


    but its weird to have 2 of your events using the grid builder and then 1 of your events bound through javascript makes it easy for a developer to miss that the event exists which can lead to them not fully understanding what is happening upon editing the grid.




     Recruiting Event Coming to St. Louis in April        

    Originally posted on:

    Hey all my friends and readers in the St. Louis area, my team from Amazon is heading to St. Louis to do an in-person hiring event in April!

    Have you always wanted to work in a place that hires and develops the best?  That lets builders be builders?  That has excellent benefits and salary/bonuses?  That has a clear technical path all the way from entry-level developer to architect and beyond?

    If you're a developer who loves to solve problems and learn new skills, and be in an environment that encourages you to learn and grow, this is a great opportunity.

    We will be there in the last week of April (I'll send more information when I know more).  Let me know if you are interested in an interview while we are there and I'll get you in contact with recruiting.


              Getting started with The Gamma just got easier        

    Over the last year, I have been working on The Gamma project, which aims to make data-driven visualizations more trustworthy and to enable large number of people to build visualizations backed by data. The Gamma makes it possible to create visualizations that are built on trustworthy primary data sources such as the World Bank and you can provide your own data source by writing a REST service.

    A great piece of feedback that I got when talking about The Gamma is that this is a nice ultimate goal, but it makes it hard for people to start with The Gamma. If you do not want to use the World Bank data and you're not a developer to write your own REST service, how do you get started?

    To make starting with The Gamma easier, the gallery now has a new four-step getting started page where you can upload your data as a CSV file or paste it from Excel spreadsheet and create nice visualizations that let your reader explore other aspects of the data.

    Head over to The Gamma Gallery to check it out or continue reading to learn more about creating your first The Gamma visualization...

              The Gamma dataviz package now available!        

    There were a lot of rumors recently about the death of facts and even the death of statistics. I believe the core of the problem is that working with facts is quite tedious and the results are often not particularly exciting. Social media made it extremely easy to share your own opinions in an engaging way, but what we are missing is a similarly easy and engaging way to share facts backed by data.

    This is, in essence, the motivation for The Gamma project that I've been working on recently. After several experiments, including the visualization of Olympic medalists, I'm now happy to share the first reusable component based on the work that you can try and use in your data visualization projects. If you want to get started:

    The package implements a simple scripting language that anyone can use for writing simple data aggregation and data exploration scripts. The tooling for the scripting language makes it super easy to create and modify existing data analyses. Editor auto-complete offers all available operations and a spreadsheet-inspired editor lets you create scripts without writing code - yet, you still get a transparent and reproducible script as the result.

              Philosophy of science books every computer scientist should read        

    When I tell my fellow computer scientists or software developers that I'm interested in philosophy of science, they first look a bit confused, then we have a really interesting discussion about it and then they ask me for some interesting books they could read about it. Given that Christmas is just around the corner and some of the readers might still be looking for a good present to get, I thought that now is the perfect time to turn my answer into a blog post!

    So, what is philosophy of science about? In summary, it is about trying to better understand science. I'll keep using the word science here, but I think engineering would work equally well. As someone who recently spent a couple of years doing a PhD on programming language theory, I find this extremely important for computer science (and programming). How can we make better programming languages if we do not know what better means? And what do we mean when we talk about very basic concepts like types or programming errors?

    Reading about philosophy of science inspired me to write a couple of essays on some of the topics above including What can programming language research learn from the philosophy of science? and two essays that discuss the nature of types in programming languages and also the nature of errors and miscomputations. This blog post lists some of the interesting books that I've read and that influenced my thinking (not just) when writing the aforementioned essays.

              Kommentar zu Docs & Demo von Tesla        
    Thank you so much! It works perfect now. I have also removed the "sensors=false" part as suggested by Google's warning: Google Maps API warning: SensorNotRequired: Thank you again! Nice work :)
              Kommentar zu Docs & Demo von b.a.        
    Google decided to get an api key for every G-map after june 2016. See announcement: <a href="" target="_blank" rel="nofollow"></a> To fix this: 1) Create an API key as per instructions here: <a href="" target="_blank" rel="nofollow"></a> 2) Edit line 14 in the plugin file wp-content\plugins\google-maps-gpx-viewer\php\load_jsapi.php and append the key parameters "&key=YOUR_API_KEY" as shown here: $params = "sensor=false&libraries=places,panoramio,drawing&key=YOUR_API_KEY" thats it.
              Kommentar zu Docs & Demo von Tesla        
    I was using your excellent plugin but now, since few days ago, it is showing the following error: “Google Maps API error: MissingKeyMapError /maps/documentation/javascript/error-messages#missing-key-map-error“js:34:391 Any advice on how to solve it? Thanks and congratulations for the good job!
              Kommentar zu Docs & Demo von b.a.        
    So, request a free API key from <a href="" rel="nofollow">google, </a> edit the file "google-maps-gpx-viewer/php/load_jsapi.php" on line 14 you'll find this: $params = "sensor=false&libraries=places,panoramio,drawing" change it to $params = "sensor=false&libraries=places,panoramio,drawing&key=insert-your-google-api-key-here" thats it!
              Kommentar zu Docs & Demo von Digby Maass        
    The maps have stopped working! I've posted on the WP support page: Suddenly the map containers are either blank or show the map but when enlarged the small map goes up to the corner, the rest of the screen fills with a blank, and it is unresponsive. The same on site as on a localhost installation. Error console shows a whole lot of Google js errors: TypeError: 'undefined' is not an object (evaluating ',_.l("O"))') - common.js:216 js:38TypeError: 'undefined' is not a function (evaluating 'a.set("length",a.j.length)') stats.js:9TypeError: 'undefined' is not a function (evaluating '_.x(l3,_.J)') util.js:30 SensorNotRequired, SensorNotRequired: util.js:30 Google Maps API warning: SensorNotRequired: 22common.js:9TypeError: 'undefined' is not a function (evaluating 'b.getSouthWest()')
              Trenes corriendo a toda pastilla        
    ¿ Puede haber algo más molón que un tren corriendo a toda pastilla ? Sí, ¡ dos trenes corriendo a toda pastilla ! ¿ Os suena Initial D ? Se trata de un manga/anime arquetípico de prota que quiere destacar en algo y se apunta a hacer carreras ilegales nocturnas con coches que no pasarían la ITV. En Capitán Tsubasa era el futbol, en Slam Dunk el baloncesto, en Amasando Ja-pan el pan y en Initial D, carreras. Un japonés con tiempo libre a adaptado el, famoso por ésos lares, Densha de Go de Taito ( el Train Simulator de Japón ) al estilo Initial D, creando el juego Densha de D. O lo que es lo mismo, trenes que compiten por vías llevando el velocímetro al máximo. Trenes corriendo oigan, y qué bonico es. A ver si EA toma nota y con tanto cambio que le da a Need For Speed nos brinda un spin-off trenístico.

              The Art of Lovin' Trees --- Featuring Joel Tauber        

    The Art of Lovin’ Trees-- 
    Featuring Artist Joel Tauber
    Story dedicated to Joel and Alison
    in celebration of their joyous engagement on November 9th,

    Written and Researched by Enilde Van Hook
    Story Consult and Editing by Luke Van Hook

     America is having a love affair with trees and California is second to none in leading its appreciation of trees. Digging deep into the roots of this story, I have followed and researched the tree culture specifically in Los Angeles where our love of trees has spawned a unique pop tree culture relating to art. Our popular tree culture today includes but is not limited to tree sculptures, tree paintings, tree photographs, tree videos, tree poetry, tree songs, tree jewelry, tree movies and even tree love affairs. 

    Tree Earing created by Joel Tauber for his Sick-Amour Tree in Pasadena, California.
    Additional Tree Jewelry created by Joel Tauber to adorn the Sick-Amour Tree includes leaf jewelry, as well as the male earing and the female earing that hang from the tree below.  
    Photos of tree jewelry courtesy of  Susanne Vielmetter Gallery 5795 West Washington Blvd., Culver City, California 90232 (323-933-2117)

    Sick-Amour Tree in the parkinglot of the Pasadena Rose Bowl, protected by barriers installed by Joel Tauber in his quest to save his beloved tree. Tree wearing the earings looks hot!  Photo courtesy of Susanne Vielmetter Gallery.
    Leaf sculpture by Joel Tauber
    Female tree earing by Joel Tauber.
    Male tree earing created by Joel Tauber, photo courtesy of Susanne Vielmetter Gallery, 2008

    For the record, our love of trees goes way back to the dawn of time when we were swinging in the trees, however, our love has grown and matured since then. The Greek and Roman heritage of literature and art bestows us with intoxicating stories of their Gods having entanglements with humans. Some of their deities were known as protectors of trees and nature such as Dionysus the Greek god of agriculture, fertility, wine and merriment. He was later renamed Bacchus by the Romans and reported to be the Tree God. Back in the day when artists carved trees into stone and marble relief sculptures to worship in the temples of their mythological gods, people celebrated the sacredness of trees, grapevines and sometimes the unions of gods and mortals. There was Pomona, the goddess of fruit trees who married Vertumnus, the god of fruits and gardens. Digging deep enough, one is sure to find stories of deities mating with trees and spawning children of the harvest for instance.

    In modern literary circles there are a number of great imaginative family favorites written about trees, like “The Giving Tree” by Shel Silverstein. Then there’s the infamous story of how Robinson Crusoe lived in a tree-house, and of utmost importance to our American history of trees, we propagate the very memorable legend of ‘Johnny Appleseed’.

    In our contemporary times we have a legend in the making too. I have been fortunate to witness the emergence of a new ‘Johnny Appleseed’ and interestingly enough, the story involves a recent romantic love affair between one special tree and a mortal that is well worth pursuing the story. Sometime in the fall of in 2007, I met Joel Tauber. This is the artist who I believe was struck by a mythological bolt of lighting, so to speak, pertaining to one of the Greek or Roman deities’. Joel Tauber is said to have fallen head over heels in love with one particular Sycamore Tree in the parking lot of the Rose Bowl in Pasadena. My chance meeting with this now famous mortal under the influence of an enchanted mystical spell, has led me to research the mysteries intrinsic in the charms of trees. I too have been struck with the frailty of trees, their vulnerabilities, and their enormous strengths and inspiration. This together with my own personal experiences with trees has prompted me to come out of my shell and discuss the subject in all seriousness.

    My own personal background is not in trees. I am simply a tree-lover from childhood. For a little over ten years, my professional background was in radio as a disc jockey and on-air personality. I listened to music, reviewed songs and kept tabs on the pop music culture. I worked in the Los Angeles market as well as Santa Barbara, California; Eventually I moved to expand my work experience in neighboring radio markets like Reno, Carson City, Lake Tahoe and Gardnerville/Minden, Nevada. It was through traveling that I saw some of the most beautiful trees along the routes through Northern California and Northern Nevada!
    While I drove from one radio market to another over the years, I watched the trees go by at the various speed limits along the highways of my life’s journeys. Thus you will understand when I tell you that often I see art and life, for that matter, through a series of moving images in my head which include a music bed. 
    I was eleven years old when in 1970, Joni Mitchell wrote and released a song called ‘Big Yellow Taxi’ whose lyrics surpassed the test of time and is currently in airplay by a glut of new groups. The lyrics began with “…They paved paradise and put up a parking lot. They took all the trees and put them in a tree museum and they charged all the people a dollar and a half just to see ‘em.” One of the barometers I use to gage the influence of any particular song, music or artwork that I come into contact with is if it will surpass the test of time, among other important criteria. This song became one of my favorite songs of all time. The lyrics made so much sense to me.
    When I met Joel Tauber, I was introduced to the enormous scope of his Sick-Amour Tree-Baby Project. It was then that I suddenly started hearing Joni Mitchell’s song in my mind again, only this time, as I got in my car, Counting Crows was performing the song. When I started doing more research on the song that I could not get out of my head, I was struck by how many artists had re-recorded the song and barely changed anything about the words. There is Amy Grant, who upgraded the dollar amount from $1.50 to $25 when singing about how much the museums charged people to enter. Additionally there is Green Day, Sarah McLachlan, Charlie Barker, Bob Dylan, Moya Brennan, Ireen Sheer, Donnie Eidt and a host of so many others that have recorded ‘Big Yellow Taxi’ it was simply overwhelming!
    I think the importance of the lyrics to this one particular song is that it reveals the fact that people love trees and hate parking lots. The message is that if it weren’t for our trees, we could be living in a frying pan! The impact of this single song is that it reveals what is really going on in people’s minds. There is a reason why so many artists are flocking to re-record the lyrics in their own way.

    Not only are trees involved in the music arena, trees as subjects, are very involved in politics as well. Gaylord Nelson, a senator from Wisconsin at the time, took a leading role in developing the celebration of Earth Day on April 22nd 1970 as a way to commemorate our environmental concerns. Arbor Day is presently celebrated as well with the first ceremonial tree planting in Washington D.C. on April 27th in 2001, all evidence that goes to prove the people of our planet do care about what happens to our trees.

    Trees stand as a testiment and memorial for Dr. Martin Luther King

    Dr. Martin Luther King is memorialized with trees along Expositon Blvd. across from the Los Angeles Coliseum and down the street from the University of Southern California.
    Photo by Ginger Van Hook

    Online sources on the subject of trees are rich in number. For instance, eighteen years ago, here in Los Angeles, a multi racial group of volunteers planted 400 Canary Island Pine trees along seven miles of road on Martin Luther King Junior Boulevard to commemorate Dr. Martin Luther King’s life. Today, this living homage to Dr. Martin Luther King Jr. continues to thrive and keep the dream alive for his followers. The founder and President of is Mr. Andy Lipkis and he keeps tabs on the trees to make sure all 400 trees stay healthy.

    Mayor Antonio Villarigosa is the person to thank for the ‘Million Trees Initiative’ he signed into effect in May of 2006 and Los Angeles residents can learn how they too can receive up to 7 free trees to plant on their property. Visit the website at to learn the details.   Also in Portland, Oregon there is and in Bellingham Washington you will find There is also the International Society of Arboriculture called ISA and can be accessed by visiting You will also find a great deal of valuable advise on the growth and care of trees at and check out Tree Care Industry Association TCIA as well.

    Mark Dion created an art piece titled "Library for the Birds of Antwerp" which is also a good example of how art is vitally connected with our tree culture and how it connects Mark Dion to his PBS special where he removed a dead tree from the forest and recreated its living components in a city scape in Washington.  From the "20th Century Artbook Phaidon Press 1996", the caption reads: "Using props from the natural and man-made world, Dion has constructed an installation that explores contemporary attitudes to science and the environment. He has created a fictional and hybridized situation in which the trappings associated with knowledge, learning and classification--such as books and photographs--are juxtaposed with natural elements including birds and wood.   The representation of nature is a fundamental subject in Dion's art, and here he takes on the role of sociologist/anthropologist and blurring the boundaries between authentic and fake, representation and parody. By adopting the persona of a scientist and by satirizing man's obsession with categorization, Dion questions the values of the Western world.  His subject matter is heavily influence by popular culture.  In Dion's world we might witness Mickey Mouse as an explorer, or Clark Kent interviewing Dr. Frankenstein." (Photo and contents are used in this story for purposes of artistic review.)

    In the art world, an artist named Mark Dion was featured in a documentary film report that aired in 2007. To view the video one may visit on the Internet by going to and find Mark Dion as he took the subject of trees and made an art piece that explored what would happen if one were to take a tree after its death, take it out of its familial context of natural forest, and re-create the ecosystem in an environment that would otherwise be a hostile urban setting, needless to say, a cityscape. Just outside of Seattle Washington, he states, a Hemlock fell on February 8th, 1996…and so begins an elaborate experiment that pits optimism against reality." The PBS special is very detailed and you will enjoy the depth of research and work that Mark Dion went to to take a tree out of the forest and recreate the setting in the city.  The difference between the artwork presented by Mark Dion and  the artwork presented by Joel Tauber is in the nature of the life of the tree. Mark Dion works with a dead tree and its living components, and Joel Tauber creates life out of a tree seed and duplicates it all over his community.

    Thus I’ve discovered for myself that when I researched the subject of trees, I discovered Joel Tauber wasn’t alone! However, instead of creating an experiment in ecology, Joel Tauber goes further than Mark Dion does with this concept of eco-systems and their frailties. Joel Tauber begins a journey that could eventually repair the eco-systems that man has destroyed. This is where Joel Tauber takes the lead in the art world and becomes not only the realist but the optimistic hope for trees in desecrated forests all over the country.
    Joel Tauber’s work as a living project of art in 2008 has resonance and his story is well worth telling again and again. He is certainly not the first, nor the last to get involved in the love of trees, but he is the first in contemporary times to have been associated with a mythological and mystical occurrence of reproducing tree babies out of just hugging one lonely tree.

    The last time I saw a man hugging a tree, he was hugging the tree for all the wrong reasons. At the MOCA, Los Angeles’s Museum of Contemporary Art, some years back I was viewing an exhibition that was in town by the Utah born artist now working in Los Angeles, Paul McCarthy. While this work of art depicted a very raw and unsettling sculpture of ‘tree-lovin’ it had nothing whatsoever to do with the love of any tree. The work displayed a timely political statement about our government rather than the love for trees, but bear in mind that the thought involved images from man’s intimate involvement with trees both in the biblical sense and in the sense of man’s raping of the planet. Joel Tauber’s work counteracts the devastation of many years of neglect for our trees with a very basic recipe for the renewal of our commitment to our green-leafed friends. Now, when I see the image of Joel Tauber hugging his Sycamore Tree in Pasadena, I get a whole new perspective for the love for our planet, our trees and our environment as a whole.

    "The Garden" by Paul McCarthy from The 20th Century Art Book, 
    Phaidon Press Limited, page 280. Photo is used for purposes of artistic review.
    The caption in the book reads as follows: " 'The Garden'  is a full-scale tableau of an outdoor, woodland scene, complete with leafy trees, shrubs and rocks.  This tranquil picture of nature is rudely interrupted by the presence of a middle-aged, balding man with his trousers round his ankles, engaged in a wholly unnatural act. From one side of the installation, his actions are not immediately apparent, being partially hidden by the tree trunks and foliage, but the sound of mechanical activity draws the viewer in to discover the shocking sight of a man copulating with a tree.  This robotic figure, with its endlessly repetitive movements, is both comical and crude, and is intended by McCarthy to question notions of acceptable public behavior and sexual morality.  McCarthy is a lecturer at UCLA as well as an artist. His sculptural installations evolved out of his earlier performance work which focused on his own body engaged in extreme and disturbing acts."

    To further explain this romantic entanglement between a tree and a mortal, I cite some important historical facts. Back in 2005, Joel Tauber was in the parking lot of the Pasadena Rose Bowl, when he spotted a particularly lonely and neglected Sycamore Tree. There are hundreds of thousands of trees in Pasadena, and a great number of them thrive very well on the grounds of the Rose Bowl, should you ever drive through this luscious community of tree and rose-lovers, you will see. But Joel Tauber focused his attention on one specific lonely tree. He started to note more and more how cars would hit the bark of the tree and scrape it, injuring the tree repeatedly. Joel Tauber became a witness to this tree’s life. Taking compassion and friendship upon this particular tree, Tauber began to film the area of the parking lot where the tree was growing. He got the idea to put up solid barriers to protect it from cars and also carried water in large plastic bags to irrigate the tree. Soon, Tauber found himself as a one-man band, orchestrating a symphony of activities leading to editing mass quantities of tree footage, fighting City Hall, and embarking on a quest to save this tree from infertility using tried and true guerilla tactics that would make tree-huggers stand and salute. To personally view the Sick-Amour project, along with the giant scale tree sculpture installation exhibited at Susanne Vielmetter Gallery in 2007, you may visit

                   Recently, I had the privilege and opportunity to discuss Joel Tauber’s work with Susanne Vielmetter and she was delighted to tell me what a wonderful sense of humor that Tauber exhibits in all of his works of art. Susanne Vielmetter reviewed the Underwater project with me as well as the Flying Project which Tauber presented.
    She explained how deep down, she feels Tauber is on a quest for meaning in his work and that he has a keen sense of humor that unifies and makes his ideas successful. She states that he uses the comical and the tragic in the Tree-Baby project to address the issues of urban living in our time and very subtly pokes fun at the problems innate in urban planning. The real irony of a small Sycamore tree dying of thirst in a parking lot of a beautiful park in a paradise-like valley, alongside the 110 Pasadena Freeway where 80% of the territory is plastered with concrete and the water below runs along asphalt channels of the Los Angeles River is not lost on Tauber, she explained. To contrast, Susanne Vielmetter cited that parks in Europe allow for weeds to grow naturally on landscapes that are not covered with concrete. Joel Tauber’s projects were initially presented at the Susanne Vielmetter Gallery located at 5795 Washington Blvd., in Culver City, California. The response Susanne Vielmetter’s Gallery received was incredibly exciting, even though at first, some folks thought Joel Tauber was a nut; he went on to prove just how serious he really is about changing the landscape of our environment, one tree at a time.

    Joel Tauber has a large body of video artwork, photographs and developing tree babies, (the children of a mortal and a Charmed Sycamore Tree) and one may also visit
    As I learned more and more about Joel Tauber’s project, I realized how blessed we all are that tree-lovin’ is not a singular act of love or even a fleeting love of art. I realized how connected we all are to our environment and how the idea of having a special friend ‘the tree’, any tree in any state, in any country for that matter is a beautiful connection to have. The connection that Joel Tauber has to his Sycamore Tree is in synch with the love that the country is experiencing during our new millennium. We have all become acutely aware of the fragility of life; we realize now more than ever that we must respect our dependence on our environment and value our trees.

    The first thing that struck me about Joel Tauber was that we had the love of trees in common. He seemed a bit shy, unassuming and humble yet I was later to learn the enormous power he wielded for this one frail and neglected tree in the parking lot of the Pasadena Rose Bowl in California. I was truly inspired by the level of involvement and commitment he had demonstrated for his own beloved Sycamore Tree which he had turned into a full-blown art-project including video, photography and sculptured jewelry. (He did it all!) He named this work the Sick-Amour Project mainly because he said he felt this tree was ill from the lack of love and the inability to have tree babies to fulfill its legacy. I had never personally met someone with such an extreme love and dedication to one particular tree. In our local newscasts, I had heard stories of people who became very emotional when a land developer was about to cut down a tree they considered a relic of their community; in which case people got very nasty about the issue and would chain themselves to the trees or surround the location with demonstrators that would shut down the jobsite. That’s when the news crews would come in with their cameras and boom mikes and the news helicopters would hover in circles above the trees trying to capture the ‘event’ that was creating all the uproar. A very recent example of this type of community behavior is written about on the front pages of the Los Angeles Times where Eric Bailey, a Times Staff Writer, wrote an extensive story about the tree-issues pertaining to Scotia, California where activists are protesting the logging of the Great California REDWOODS! Read the Sunday edition of the Los Angeles Times, August 24th, 2008 or visit online to learn how the tree-sitters are doing today.

    But Joel Tauber is a different type of activist. He doesn’t consider himself an activist at all. He merely states, humbly, just for the record, that he loves this one particular Sycamore Tree and it is an outrage to him to see how his new best friend is being suffocated under a six-inch blanket of black tar and asphalt. Better yet, Joel Tauber does something about it. Not with a crew of forty thousand demonstrators, not even with a crew of forty residents. He does this on his own, quietly challenging the laws of the city of Pasadena and humbly takes responsibility for the care and nurturing of his new best friend. I was touched. At once I began to marvel at his potent idea.

    The art of loving our trees has grown roots in the higher levels of the art world as well. For instance, if one were to visit the J. Paul Getty Museum both at the Getty Villa which recently re-opened in Malibu and at the Getty Center in Los Angeles, you will find the love of trees has grown branches on all the hillsides surrounding both properties. There are lucky Sycamores and fortunate Pines; there are Pomegranate trees, Apple trees, Pear trees, Jacaranda trees and trees that just look good in a vista overlooking the ocean. Millions of dollars went into the development of artistic gardens which envelope the California landscape against a backdrop of the Pacific Ocean on one edge and the rolling hills of Malibu on the other.

    Over in the area of the Miracle Mile, the Los Angeles County Museum of Art is celebrating an enormous renovation of its facilities and you guessed it, there are aisles and isles of gigantic palm trees lining the walkways to the entrance of the museum in concert with a unique and flamboyant architecture that has drawn the attention of the art-world with the generosity of Eli and Edythe Broad of the Broad Foundation. The Broad Contemporary Art Museum is the new wing at the LACMA and is considered the largest space in the country devoted exclusively to contemporary art. With a ‘living art display’ dedicated to the iconic palm trees, not native to California, Robert Irwin has developed a plein-air walkway through ‘Palm Gardens’ as one makes their way to the entrances of the museum.

    Lush green trees thrive all over Pasadena, California, home of the Rose Bowl where Joel Tauber fell in love with a Sycamore Tree.  Photo by Ginger Van Hook, 2008

     The Norton Simon Museum in Pasadena, California  is also home to some of the most exquisite antiquities in its museum history which includes sculptures amid a forest like atmosphere. Currently at the Norton Simon Museum, among its many exhibitions, one may enjoy the artwork of Ruth Weisberg, Dean of the Gayle Garner Roski School of Fine Arts at the University of Southern California. Opening on October 17, 2008 the Weisberg exhibition at the Norton Simon runs through March 2, 2009. Additionally a lecture by the artist is planned where Weisberg discusses: Guido Cagnacci and the Resonant Image on Sunday November 16, 2008.  The Norton Simon Museum of Art is located at 411 West Colorado Blvd. in Pasadena, California. Ruth Weisberg was instrumental in selecting the work of Joel Tauber to be permanently planted on the Main University Campus of USC on January 24, 2008 where a tree planting ceremony was held and attended by numerous members of USC faculty, staff, students and guests. The location of the new tree-baby, child of the Sick-Amour Project, currently exists on the Exposition side of the campus between Gate one and the Fischer Gallery, across the street from the Museum of Natural History. 

    In Pasadena, where lovers of trees line every street of the city as the landscapes are lush with all types of trees and where these wonderful healthy trees keep cool the throngs of tourists who visit the Rose Bowl every year, is also home to the Norton Simon Museum and the Pasadena Museum of California Art. Both locations are areas where tree-lovin’ may be experienced alongside some of California’s best-known artworks. Visit the NORTON SIMON MUSEUM at located at 411 West Colorado, Pasadena, California 91105 or visit the PASADENA MUSEUM OF CALIFORNIA ART at at 490 East Union Street, Pasadena, California.

    In San Marino, California, the art of trees, gardens and succulents has found a worthy haven at the Huntington Library and Botanical Gardens spanning an area of 120 acres dedicated to the fine arts founded by Henry E. Huntington in 1928 as the very first public art gallery in Southern California. Along with English portraits and French eighteenth-century furniture, one will delight in tours of the unique garden paradise established for the pure love of the botanical arts.

    On the hillside along the 405 Freeway in Los Angeles, one may also enjoy walking along the elegant landscapes of the Skirball Cultural Center and Museum grounds and witness the serenity of the trees as Weeping Willows slope their leaves to the ground, and gentle breezes sway the branches of Sycamores, Oaks and Birch trees. Visit the Skirball Museum online at, or enjoy a personal walk along the grounds and explore the tributes to culture at 2701 North Sepulveda, Los Angeles 90049.

    Trees at the Skirball Museum and Cultural Center thrive and enjoy the mild California climate.

    In San Diego, one enjoys walking through a vast museum complex housing 15 unique museums in Balboa Park, not to mention to the collection of rare cactus and enormous Eucalyptus trees (just to name one tree type out of numerous ones) which shade the paths leading from one museum to another.

    Each of the locations I have mentioned or described here is where I personally walked through, witnessed, and or photographed sophisticated artistic tree landscapes of the California terrain.

    The Roots of my personal anxieties: Why I care.

    The impact of my meeting Joel Tauber coincided with an important event that took place for me way before I knew about his Sick-Amour Tree project and was what eventually led me to throw myself into this frenzied study of trees over this summer. Thus I do not necessarily consider myself struck by any of the Greek or Roman gods. I believe my influence came with a special awareness of the frailty of trees with this personal story:

    A little over one year ago, on June 30th, 2007 I was walking our dog Sasha, around the block for one of our frequent walks. I rounded the corner to the next block when I was taken aback as I witnessed a set of ‘city’ crewmembers slaughtering what appeared to be a California Oak tree. I had grown quite fond of that particular Oak on my many walks while I was writing my first novel. As a matter of fact, I had used that model of tree to describe a forest of these trees in a chapter in my first fiction novel. I especially love the sculptured texture of the Mighty gnarly Oaks. This tree had been the one to rekindle my relationship with the trees of my imagination. My stomach got queasy when I saw how it was being destroyed. I would have thrown-up, but I got a hold of my emotions and took Sasha home. Not only did I return to the scene of the slaughter, but I brought my camera to document the death and dismemberment of this great oak; I was so distraught that I returned again to the site, without my camera this time, and begged the men to stop for a moment while I sought out the seeds for this tree. To my surprise, the men stopped and helped me search for the seeds.

    When I got home, I had no idea what to do with the seeds. I called a couple of nurseries until a gentleman at a nursery in Marina del Rey explained to me that I had to wait until the pods dried up and slit to get at the seeds and plant them. So, I waited until the pods were black and wrinkled. I split them according to the directions I had gotten from this kind anonymous arborist. (He suggested a process much like that which squirrels have for cracking the pods.) I photographed the seeds and compared them with the larger seed of an apricot fruit tree and the seed of a maple tree.

    Once properly documented, I planted them in a small brown pot. Two weeks later, the first seed came up. A few days later another seed appeared to take root. On the one-year anniversary of the re-birth day of this Great Knurly Oak tree, July 20th, 2008, I documented how large the great twin oaks had become. The highest little bitty branch was about fourteen inches tall. I estimated this tree had grown a little over an inch every month. A compassionate act of kindness yielded a new life on the impulse of grief. The impulse of grief affected not only me; there is an entire world of tree-lovers mourning the losses of their favorite tree friends in surrounding communities.

    What about the subconscious feelings innate in developing a relationship with a tree? For instance, what draws people to want to save a particular tree? 

    I can really only speak to my own experience in that my relationship with trees started when I was a child.

    Note 1: So you got a Nexus 4. Congratulations. You have an incredibly powerful device in your hands. This post is not N4 specific, so you can try several of these with any top-of-the-line Android device. N4 because all of these have been field-tested on mine. If you've got interesting apps/uses to share, shoot in the comments, I'd love to hear 'em. Otherwise, if 'Angry Birds' is all you've done, read on, you must. ;)

    Note 2: I'm sure someone at Google is huge Guillermo Del Toro fan. Galaxy Nexus was code-named 'toro', Nexus 4 is code-named 'mako' (ref: Pacific Rim).

    Part I: use mako

    Part II: root mako

    Part III: sudo mako

    Part I: use mako

    a) Lock screen

    Widgets were always the strength of the Android ecosystem, and 4.2 Jelly Bean added the capability to add widgets on the lock-screen. There are several lock-screen widgets, but none standout like Roman Nurik's DashClock widget, which is beautiful, and isn't heavy on the battery. There are several extensions for this widget available in the store, so suit yourself.

    b) Home screen

    I use the Android stock launcher. What you see in the background is the Ice Galaxy Live Wallpaper. This fellow, Maxelus, makes beautiful wallpapers. Most of the widgets are created using Zooper Widgets, and the icon pack is Minimalist.

    Nova Launcher is a popular choice for launcher replacement. It gives you a lot of options to customize just about everything. A shoutout to Buzz Launcher, which attempts to create a marketplace for out-of-the-box homescreens, which you can download and apply in a flash! Worth checking out if you are among the lazy ones.

    Head here for some inspiration.

    c) Computer-phone connectivity apps (Productivity)

    Chrome to Phone - Send links from Chrome browser on desktop to your android phone.

    Phone To Desktop - Send links from your android phone to Chrome browser on desktop.

    Desktop Notifications - Get notifications from your phone on Chrome browser on desktop as desktop notifications.

    AirDroid - Transfer files to/from phone to desktop over wi-fi. Send SMS, use phone camera as a webcam, manage contacts, apps, music et al, from your desktop.

    TeamViewer - Remote control/remote desktop your computer from your phone over a data connection.

    GOM Remote - Control GOM Player on your computer through a remote-like interface on your phone.

    Unified Remote - Use your phone as a keyboard/mouse for your computer.

    d) Travel apps

    FlightTrack - Beautiful interface which shows flight path on a map. Gives schedule and gate information. Excellent, excellent app.

    Currency - Offline currency conversion.

    Google Maps / Google Translate - Their 'offline' mode is sweet! Download maps, and language packs for offline use! Very, very handy if you are planning a foreign holiday soon!

    Triposo - Travel guide.

    e) Special mention

    SMS Backup+ (backs up SMS, call logs, and now WhatsApp messages to Gmail!),
    Clean Master (clear system cache),
    Battery Doctor (battery optimisation),
    CamScanner (excellent app to get scanner level quality for documents through the phone camera),
    TrueCaller (it's creepy how they get the unknown numbers right, but they do),
    Light Manager (customise phone's LED notifications),
    SphereShare (photosphere images sharing community),
    TV Show Favs (track TV show episodes), and
    Default App Manager (manage default apps for any phone action).

    ...and since you will install so many apps, it is easy to get lost. Enter: App Dialer, yep, an app to find apps installed on your phone!

    Part II: root mako

    Rooting gives you the ability to flash custom ROMs on your phone. I haven't flashed any custom ROMs yet, I am pretty happy with the stock ROM. But rooting allows you to make full backups of your phone, and some pretty nifty apps. Most of the methods of rooting Nexus 4 factory resets the phone, and guides are easily available if you google it.

    The method I used doesn't factory reset the phone. (Motochopper method)

    1: Get motochopper and the drivers from here.

    2: Root. Yep, that simple. A full guide here (they even have a video!). The guide is for Galaxy S4, but it works just the same for Nexus 4 (I've done it!).

    All the other methods unlocks bootloader first, and then applies root. Hence the factory reset.

    Motochopper roots without unlocking the bootloader. Once you have achieved root, you can unlock your bootloader using BootUnlocker (yep, there's an app for that!). Android 4.3 update was announced today, so there's a decent chance you'll lose root after the update. You can use Voodoo OTA RootKeeper to preserve root during the OTA update.

    Part III: sudo mako

    Well... you have a rooted phone. What now?

    ShareKM - My favorite root app's gotta be ShareKM. It's brilliant! It connects the phone to your computer over wi-fi/data/bluetooth. Slide the mouse pointer from the edge of the screen, and voila!, the mouse pointer jumps to your phone! You can now use your computer's keyboard to type on your phone, or copy text from one to the other. It's really neat, you should check it out if you have a rooted Android device. Video of this app in action embedded below:

    OBackup - Nandroid Backup - Nandriod backup means a full image backup of your phone. So if you mess up something tinkering, you can always restore the phone exactly to how it was. OBackup does cloud backups and you can schedule your backups, which is pretty neat.

    LMT - LMT enable features on stock Android that are typically available on custom ROMs, and is often the reason why people do install custom ROMs. It isn't avaialble on Google Play, but can be downloaded from here. A full review here, and video of the app in action below:

    Spend time configuring your phone, it'll be worth it. Tinker. Enjoy.


              Special 322: WWDC 2017        

    TWiT Live Specials (Video-HD)

    At their 2017 World Wide Developers Conference, Apple announced six new things. tvOS gets an update and Amazon Prime Video. watchOS 4 includes new faces and functionality. macOS High Sierra will incorporate Apple File System and improvements to Safari, Mail, and Photos. MacBook Pros and iPads get a spec bump, and iMacs can now handle VR with the HTC Vive. The iMac Pro, coming later this year, might fill the MacPro-sized hole in power users' hearts. iOS 11 will include a slew of new features and improvements, most notably machine learning and augmented reality. The new 10.5" iMac Pro further blurs the line between tablets and power computers. And last, but surely not least, the new HomePod is the rumored "Siri Speaker," with a big focus on music.

    Hosts: Nathan Olivarez-Giles and Megan Morrone

    Download or subscribe to this show at

    Thanks to CacheFly for the bandwidth for this special presentation.

              Special 321: Google I/O 2017        

    TWiT Live Specials (Video-HD)

    At this year's I/O developers conference keynote, Google highlighted several areas: their advances in AI, Google Assistant, YouTube, Android O, VR, and AR. New products and services announced include Google Lens, TensorFlow Lite, YouTube Super Chat, and stand-alone Daydream VR devices. Nathan Olivarez-Giles and Stacey Higginbotham analyze the announcements.

    Hosts: Nathan Olivarez-Giles and Stacey Higginbotham

    Download or subscribe to this show at

    Thanks to CacheFly for the bandwidth for this special presentation.

              Special 319: Facebook's F8 Keynote        

    TWiT Live Specials (Video-HD)

    On the first day of Facebook's F8 Developer Conference, Mark Zuckerberg announced Facebook's shift to augmented reality. Facebook's camera will be capable of recognizing people and objects and add Snapchat-like effects to the world. Facebook is hoping developers will help them take augmented reality to the next level, both using Facebook Camera Effects and the Oculus Rift. Facebook also announced a new social virtual reality app, Facebook Spaces, which will allow users to interact with each other in VR using cartoon avatars. Other announcements included an expanded focus on Messenger chat bots, QR code-like parametric codes, and Messenger Platform 2.0. The latter will add AI, games, music, and more to Messenger.

    Host: Leo Laporte

    Download or subscribe to this show at

    Thanks to CacheFly for the bandwidth for this special presentation.

              Re: Refactoring Day 9 : Extract Interface        

     I appreciate you want to bring understanding to the developers, but you misunderstood the poinf of this refactoring.

    Both the first and the second version of the RegistrationProcessor are equally decoupled from the type of the object called registration in your example. In other words the RegistrationProcessor does know nothing about the actual implementation of the Create method in any of the cases. Moreover it is not aware of the fact that ClassRegistration is declared as a class (and not an explicit interface).

    Note that every Class exposes its interface implicitly, and the outer classes can refer to the actual implementation only through this implicit interface.

    The real value of the example you provided is that you are able to limit the interface exposed by ClassRegistration to a subset interface that provides operation used for example by a Registration Processor. And this exaposes the type naming issue that was introduced to your example.

    The original ClassRegistration should be named sth like ClassManagement and the extracted interface: ClassRegistration (drop the I as this bring no value to the type name).

    also see the original Fowler's example:

    Marek Dec

              Australia lays claim to the biggest solar farm in the world        

    Australia is probably one of the most obvious countries in the world to build a large scale adoption of solar energy. The endless burning hot sun is just waiting to be harnessed. We’ve seen innovative energy systems from Australia before, but this time Australia impresses with size. A massive solar farm and battery project will be built later this year in the Riverland region in South Australia. According to the Guardian, the facility will cost one billion dollars and should be operational by the end of the year. The huge undertaking is financed by investors and built on privately owned land. The developer of the…

    This story continues at The Next Web
              Business Analyst & Software Developer - ATCO Energy - Calgary, AB        
    Final candidates will be required to undergo a Criminal BackCheck. Who we are*....
    From Indeed - Tue, 01 Aug 2017 15:03:29 GMT - View all Calgary, AB jobs
              Re: Colorado Springs City Council OKs stormwater ordinance        
    The City and Mayor should be meeting with the EPA to drop the law suit. The City has allowed the problem to get worse because developers cause these problems and so do the City Engineers that design our roads.
    Posted by TruB
              HELP WANTED: APP Developer (3 month contract)        
    APP DESIGNER WANTED (3 MONTH CONTRACT) We are seeking an app designer with experience creating a complete e-commerce app for iOS and Android. The candidate will need to provide a proven roadmap for taking the app from beginning stages of development to launch. The candidate will need to provide input and guidance the design team [...]
              Blog Post: Rooted In Shallow Soil        

    Gamers were dumbfounded when PopCap announced it was transplanting the Plants vs. Zombies series from the backyard to the battlefield. To say the multiplayer-shooter spinoff is a huge departure for the casual game developer is an understatement, but the aesthetics and lighthearted tone are a wonderful change of pace for the violence-obsessed genre. Dig beneath the surface, though, and you find some fundamental flaws that hold back this family-friendly shooter.[Excerpt]

    PopCap is known for making highly polished games that virtually anyone can pick up and play. Unfortunately, that equation only rings half true for Garden Warfare. The developer's simplified approach to the genre does away with basic concepts like sprinting, melee attacks, and limited ammo, making it easy for anyone to get into the swing of battle. However, the gameplay is uncharacteristically buggy; players get hung up on other characters and geometry, corpses twitch on the ground, and even the slightest bit of network lag renders some abilities (like the all-star zombie's dash attack) ineffective. A variety of classes and unlockable characters add some nuance to the simple fun, but PopCap's limited mode offerings hamstring replayability.

    Garden Warfare only features two main competitive modes: Team Vanquish and Gardens & Graveyards. Team Vanquish is your run-of-the-mill team deathmatch. Gardens & Graveyards tasks zombies with assaulting a series of consecutive capture points in a map, similar to Battlefield's rush mode. A classic variant of each mode disables upgrades and unlockable characters (making them less interesting), and the beginner mode gives you more health the more you die, but you're still playing one of two basic formulas.

    Gardens & Graveyards is clearly the main attraction. Maps have unique themes, and capture points are built around interesting locations that facilitate large-scale confrontations. Every map features an interesting final objective, such as sneaking five zombies into Crazy Dave's mansion or destroying the roots of a giant sunflower growing inside of a lighthouse. Gardens & Graveyards provides hours of fun, but eventually you get tired of assaulting or defending the same points on the same handful of maps, and Team Vanquish does little to alleviate the boredom.

    Garden Warfare's co-op offerings are equally uninspired. Garden Ops is a four-player horde mode, which tasks players with defending a garden against ten increasingly difficult waves of zombies. Aside from the occasional zombie boss or special wave, you don't have much to draw you in once you've beaten a few matches. 

    Garden Warfare's most interesting twist is how it incorporates the series' tower-defense elements into matches. Players can spawn zombies or plants in designated locations on the map, which then attack opponents autonomously. Unfortunately, these characters are treated as consumable items that players must purchase before matches using Garden Warfare's microtransaction-ready economy.

    The vast majority of Garden Warfare's content is locked behind its PvZ Coin currency. Support plants and zombies, customization items, weapon upgrades, and even new class characters are bought with the coins you earn from matches. However, can't just buy what you want; instead you must purchase blind card packs of varying prices. Consumable card packs give you a handful of zombies and plants to summon during matches, while more expensive packs provide random upgrades or character stickers – though you have to collect all of the stickers for a character before you can actually play as them. Like any good pusher, EA gives you a couple packs for free, but after that the grinding for coins begins.

    This faux free-to-play approach undermines Garden Warfare's promising tower-defense elements. Each plant or zombie you spawn feels like a waste of money; regardless of how helpful they may be on the battlefield, buying consumable packs just holds you back from the larger goal of unlocking more playable characters, which is the only motivator to continue playing after you've learned the maps inside and out.

    Those extra playable characters are worth unlocking. Although they have the same class abilities, each character has its own unique twist on gameplay. For instance, the marine-biologist zombie features a higher rate of fire than the regular scientist zombie, and the fire sunflower deals extra elemental damage. Unfortunately, characters take an exorbitant amount of time to unlock, and because card packs are random, you can't just unlock upgrades or characters for the class you're interested in.


    Perhaps the most surprising aspect of the economy is that there's no option to purchase coins with real money, but EA says it may institute such an option in the future. Frankly, I can't imagine a world where that change doesn't happen, but it doesn't really matter. The progression system and tower-defense elements are already broken to accommodate the possibility. Garden Warfare is designed like a free-to-play game, despite the $30 price tag.

    PopCap's approach to class progression also plays out for the worse. Instead of gaining experience points, you level up classes by completing a series of challenges. Things start out easy – deploy five potato mines, kill three plants with rockets – but more specific challenges distract players from what's best for the match and make leveling up a pain. Killing two scientist zombies with a sun beam or shooting down three garlic drones seems easy enough, but what if the other team isn't using those characters? I went entire matches making zero progress with characters simply because the right elements weren't on the battlefield. Some challenges are downright devious; spawning five conehead zombies first requires you to buy consumable card packs until you randomly receive enough of them to complete the challenge. Luckily, you unlock all of the abilities for a class in the first few levels anyway, so you can abandon the progression scheme after that.

    Before the tedium set in, I had fun with Garden Warfare. Spending a few hours with the accessible combat and charming world was entertaining, but the random card packs and achievement-style leveling system killed my desire to keep playing. Garden Warfare's simplified gameplay and limited map selection can only entertain for so long – without rewarding progression, there's no carrot (or brain) at the end of the stick.

    The Xbox 360 Difference
    While both the Xbox One and Xbox 360 versions have their share of problems, the last-gen incarnation fares considerably worse. While testing the 360 version, I ran into increased gameplay bugs, load times, pop-up, and embarrassingly blurry visuals as the game struggled to stream in the high-resolution textures. These shortcomings don’t ruin the experience, but they are significant enough to earn the Xbox 360 entry a lower score than the Xbox One version. 

              Blog Post: Rooted In Shallow Soil        

    Gamers were dumbfounded when PopCap announced it was transplanting the Plants vs. Zombies series from the backyard to the battlefield. To say the multiplayer-shooter spinoff is a huge departure for the casual game developer is an understatement, but the aesthetics and lighthearted tone are a wonderful change of pace for the violence-obsessed genre. Dig beneath the surface, though, and you find some fundamental flaws that hold back this family-friendly shooter.[Excerpt]

    PopCap is known for making highly polished games that virtually anyone can pick up and play. Unfortunately, that equation only rings half true for Garden Warfare. The developer's simplified approach to the genre does away with basic concepts like sprinting, melee attacks, and limited ammo, making it easy for anyone to get into the swing of battle. However, the gameplay is uncharacteristically buggy; players get hung up on other characters and geometry, corpses twitch on the ground, and even the slightest bit of network lag renders some abilities (like the all-star zombie's dash attack) ineffective. A variety of classes and unlockable characters add some nuance to the simple fun, but PopCap's limited mode offerings hamstring replayability.

    Garden Warfare only features two main competitive modes: Team Vanquish and Gardens & Graveyards. Team Vanquish is your run-of-the-mill team deathmatch. Gardens & Graveyards tasks zombies with assaulting a series of consecutive capture points in a map, similar to Battlefield's rush mode. A classic variant of each mode disables upgrades and unlockable characters (making them less interesting), and the beginner mode gives you more health the more you die, but you're still playing one of two basic formulas.

    Gardens & Graveyards is clearly the main attraction. Maps have unique themes, and capture points are built around interesting locations that facilitate large-scale confrontations. Every map features an interesting final objective, such as sneaking five zombies into Crazy Dave's mansion or destroying the roots of a giant sunflower growing inside of a lighthouse. Gardens & Graveyards provides hours of fun, but eventually you get tired of assaulting or defending the same points on the same handful of maps, and Team Vanquish does little to alleviate the boredom.

    Garden Warfare's co-op offerings are equally uninspired. Garden Ops is a four-player horde mode, which tasks players with defending a garden against ten increasingly difficult waves of zombies. Aside from the occasional zombie boss or special wave, you don't have much to draw you in once you've beaten a few matches. The Xbox One-exclusive modes are even more disappointing. The splitscreen mode is an endless version of Garden Ops, where the second player doesn't get to save his or her progress and the boss mode relegates you to providing support to your team during competitive matches from a topdown map of the battlefield.  

    Garden Warfare's most interesting twist is how it incorporates the series' tower-defense elements into matches. Players can spawn zombies or plants in designated locations on the map, which then attack opponents autonomously. Unfortunately, these characters are treated as consumable items that players must purchase before matches using Garden Warfare's microtransaction-ready economy.

    The vast majority of Garden Warfare's content is locked behind its PvZ Coin currency. Support plants and zombies, customization items, weapon upgrades, and even new class characters are bought with the coins you earn from matches. However, can't just buy what you want; instead you must purchase blind card packs of varying prices. Consumable card packs give you a handful of zombies and plants to summon during matches, while more expensive packs provide random upgrades or character stickers – though you have to collect all of the stickers for a character before you can actually play as them. Like any good pusher, EA gives you a couple packs for free, but after that the grinding for coins begins.

    This faux free-to-play approach undermines Garden Warfare's promising tower-defense elements. Each plant or zombie you spawn feels like a waste of money; regardless of how helpful they may be on the battlefield, buying consumable packs just holds you back from the larger goal of unlocking more playable characters, which is the only motivator to continue playing after you've learned the maps inside and out.

    Those extra playable characters are worth unlocking. Although they have the same class abilities, each character has its own unique twist on gameplay. For instance, the marine-biologist zombie features a higher rate of fire than the regular scientist zombie, and the fire sunflower deals extra elemental damage. Unfortunately, characters take an exorbitant amount of time to unlock, and because card packs are random, you can't just unlock upgrades or characters for the class you're interested in.


    Perhaps the most surprising aspect of the economy is that there's no option to purchase coins with real money, but EA says it may institute such an option in the future. Frankly, I can't imagine a world where that change doesn't happen, but it doesn't really matter. The progression system and tower-defense elements are already broken to accommodate the possibility. Garden Warfare is designed like a free-to-play game, despite the $40 price tag.

    PopCap's approach to class progression also plays out for the worse. Instead of gaining experience points, you level up classes by completing a series of challenges. Things start out easy – deploy five potato mines, kill three plants with rockets – but more specific challenges distract players from what's best for the match and make leveling up a pain. Killing two scientist zombies with a sun beam or shooting down three garlic drones seems easy enough, but what if the other team isn't using those characters? I went entire matches making zero progress with characters simply because the right elements weren't on the battlefield. Some challenges are downright devious; spawning five conehead zombies first requires you to buy consumable card packs until you randomly receive enough of them to complete the challenge. Luckily, you unlock all of the abilities for a class in the first few levels anyway, so you can abandon the progression scheme after that.

    Before the tedium set in, I had fun with Garden Warfare. Spending a few hours with the accessible combat and charming world was entertaining, but the random card packs and achievement-style leveling system killed my desire to keep playing. Garden Warfare's simplified gameplay and limited map selection can only entertain for so long – without rewarding progression, there's no carrot (or brain) at the end of the stick.

              Blog Post: See Nearly 10 Minutes Of Plants Vs. Zombies: Garden Warfare In Action        

    A new video from PopCap showcases 10 minutes of Plants vs. Zombies: garden Warfare in action with a game of Gardens & Graveyards.[Excerpt]

    It's a mode we've seen before similarly commentated by the game's developers, but this is a new video showcasing a new map.

    Plants vs. Zombies: Garden Warfare is coming to Xbox One and Xbox 360 on February 18. For more on the game, check out more preview coverage here and here.


              Blog Post: See Nearly 10 Minutes Of Plants Vs. Zombies: Garden Warfare In Action        

    A new video from PopCap showcases 10 minutes of Plants vs. Zombies: garden Warfare in action with a game of Gardens & Graveyards.[Excerpt]

    It's a mode we've seen before similarly commentated by the game's developers, but this is a new video showcasing a new map.

    Plants vs. Zombies: Garden Warfare is coming to Xbox One and Xbox 360 on February 18. For more on the game, check out more preview coverage here and here.


              Urban Acupuncture in Action in Louisville: A catalyst in a sea of surface lots.        
    Large scale developments certainly have the potential to immediately transform their local area and beyond, but they take a great deal of time and often require large incentives to lure companies and developers to the table, particularly for urban infill projects. Sometimes smaller scale projects can more »
              Fix your Xperia X10        
    Many reviewers test a product over a period of 1 week and feel they can adequately give someone advice on whether or not to buy a certain product. I’ve lived with the Xperia X10 for almost a year now so my review is very personal and will touch on all the –ve’s and positives for the phone.


    The camera on the phone is great and it was one of the key buying points when I got the phone. I have however realised that I don’t use the camera nearly as often as I thought I would. The camera is good compared to other phones, but no where near as good as a good 5 megapixel camera – such as Canon IXUS range.

    The dedicated camera button can take 4-10 seconds to launch camera app – that is annoying. I have not found a fix for that yet.

    TimeScape and MediaScape

    Those 2 apps were another reason I bought the phone. They were great for about 2-3 weeks, after which I wanted toknow how to get rid of them. The problem with those 2 apps is that you can get many apps on the market that can do a better job. For example, I don’t use MediaScape for music or video – instead I use PowerAmp and RockPlayer. Not X10 users I know use MediaScape. As for TimeScape – I used it for 1 week and never touched it again. It’s a shame that these are the 2 apps that hold back quick Android updates on the X10 – one has to wonder just how important they are to Sony Ericsson (yes no user would mind if you got rid of them)?

    Perhaps Sony Ericsson would do well to offer a customised version of X10 and a non customised version. If there was ever a phone that could have toppled the iPhone it was this phone. Sony Ericsson needs to be very careful not to fall in the Microsoft trap – for 10 years Microsoft thought it had the formula for Smartphones figured out. Users view their Smartphones like Computers. When a new OS comes out – give me the ability to update. If Sony Ericsson employees have computers, they will understand how important it is to be able to remove manufacturer add-ons – like MediaScape and TimeScape. Instead of wasting money on MediaScape why not just buy PowerAmp????

    On the Move Music Player Test

    You cannot select music using MediaScape if you’re walking. IMPOSSIBLE! The buttons are too small and the swipe bar at the bottom is just too thin. iPhone music player buttons are bigger and easy to select music as you walk. Blackberry Bold is also easy, albeit not touch screen. Sony Ericsson – maybe it’s time you fired you UX team! Seriously, pick uo one of the phones and walk at a moderate pace and try and select Album – Scroll to one in the middle of the list – select a song in the middle of the album! IMPOSSIBLE! Yet, this is an afterthought for iPhone or people who download a 3rd party app!

    Fixing Headset Volume on Xperia X10

    A quick look around on any train ride and ½ the people have headphones on. Music player functionality just has to be spot-on in this day and age where the iPod/iPhone set the benchmark over 3-4 years ago.

    The headset volume of Xperia X10 running Android 1.6 is just terrible. Many of you will say that the X10 is now on Android 2.1 Éclair. Great – so I retested and decided that the 2.1 results would be the best and most up to date. I compared it to 2 of my old phones – the iPhone 3G the Blackberry Bold (9000) and my wife’s iPhone 4. I conducted the test with a pair of in-ear JVC-FXC80 headphones and over-ear AKG 701. The X10 volume is still terrible. It is about ½ as loud as the iPhone 3G. The Blackberry Bold is very loud and clear – the iPhone 4 has no reception but sounds great all the same.

    I downloaded PowerAmp and tried to boost the volume that way. DISTORTION! That’s right, when it’s loud the music is simply too distorted. This is obviously not the fix for the volume. PowerAmp is a great music player, but it is definitely not going to sort out your music playing experience on the X10.

    I did a quick search using Google and there were suggestions that the Nordic ROM would fix the headphone problem. So at last after almost 10 months I decided to download a custom ROM and root my phone whilst I was at it.

    So I went here - and downloaded the custom ROM, loaded it on the X10 and fired up the music player.


    Yes, the music is now louder. Shame on you Sony Ericsson!

    Saving Battery

    Here is the best tip anyone can give you. Download a plain black background and use it as your wallpaper. Turn down your screen brightness (contrast is better with the black wall paper) and there you have it. 20-30% better battery!


    Does anyone actually use the Default X10 keyboard? I use SwiftKey.

    Making Phone calls

    The buttons are now bigger and pressing the call button does not tale you to another menu item like in 1.6 but makes the call! Good job. I think the calling functionality is good. Just make the letters a little bigger on the contacts menu.


    In hindsight I probably should have gone for the Google Nexus One. The fact that it receives updates before any other phone is justification enough. I have lived on Android 1.6 for almost 12 months and my contract ends in 6 months time. Logic would suggest – once bitten twice shy. The other reason is the volume on the Nexus One. I could play my music properly.

    My next phone will run be an HTC or Vanilla Android. I’m not interested in silly customisations that delay software upgrades – HTC somehow has their upgrades figured out.

    In 6 months time I’ll upgrade to a phone with better than 640 x 960 resolution. If Samsung can get AMOLED screens to 640 X 960 then they have a winner. But it would be silly to play catch up with the iPhone. I would suggest 640 X 1024.
              DrupalCon Barcelona 2007 this week        

    DrupalCon Barcelona 2007Tomorrow I'll be traveling down to Barcelona with my colleagues for this year's DrupalCon.

    Much like last year's OSCMS Summit (which basically turned into a DrupalCon) and DrupalCon Brussels it will be a great chance to meet up with other Drupal developers and users, see what others are using the platform for, join in discussions about its future and hopefully promote some of the pieces that we've been developing at work or have sponsored.

    I'll hopefully be doing a lightning talk on the use of Drupal as a GeoCMS - if there are enough people interested - perhaps demonstrating some Google Earth integration through the KML module, GeoRSS integration, or even WFS integration (if I can get it working before then).

    If you're going to DrupalCon and are interested in the geo aspect of Drupal (or geo in general), let me know or catch me there - I'll be the one with the 'geodaniel' name badge.

              SCSI support and a big surprise        
    Last week I added SCSI disk support for the CD-i 60x extension board to CD-i Emulator. It took somewhat longer then I expected, though. This was mostly because the DP5380 SCSI controller chip exposes most low-level details of the SCSI protocol to the driver which means that all of these details have to be emulated.

    The emulation ended up to be a more-or-less complete software implementation of the parallel SCSI-2 protocol, including most of the low-level signaling on the BSY, SEL, ATN, MSG, C/D-, I/O-, REQ and ACK lines. This is all implemented by the new CScsiBus class representing the SCSI bus that connects up to 16 instances of the CScsiPort class that each represent a single SCSI-2 bus interface. I was able to mostly avoid per-byte signaling of REQ and ACK if the target device implementation supports block transfers, a big performance win.

    The new CCdiScsiDevice class emulates the DP5380 controller chip, working in conjunction with the CCdiScsiRamDevice and CCdiScsiDmaDevice classes that emulate the 32 KB of local extension SRAM and the discrete DMA logic around it that are included on the CD-i 60x extension board.

    The CD-i 182 extension uses a compatible SCSI controller chip but a different DMA controller and has no local extension SRAM. I have not yet emulated these because I have almost no software to test it.

    The new CScsiDevice class implements a generic SCSI device emulating minimal versions of the four SCSI commands that are mandatory for all SCSI device types: TEST UNIT READY, REQUEST SENSE, INQUIRY and SEND DIAGNOSTIC. It implements most of the boiler-plate of low-level SCSI signaling for target devices and the full command and status phases of SCSI command processing, allowing subclasses to focus on implementing the content aspects of the data transfer phase.

    The CScsiFile class emulates a SCSI device backed by a file on the host PC; it includes facilities for managing the SCSI block size and the transfer of block-sized data to and from the backing file.

    The CScsiDisk and CScsiTape classes emulate a SCSI disk and tape device, respectively, currently supporting a block size of 512 bytes only. Instances of these classes are connected to the SCSI bus by using the new
    -s[csi]d[isk][0-7] FILE and -s[csi]t[ape][0-7] FILE options of CD-i Emulator.

    The CD-i 60x extension board normally uses SCSI id 5; the built-in ROM device descriptors for SCSI disks use SCSI ids starting at zero (/h0 /h1 /h2) while the built-in device descriptor for a SCSI tape uses SCSI id 4 (/mt0). This means that the useful options with the 60x are -scsidisk0, -scsidisk1, -scsidisk2 and -scsitape 4.

    I've added the new dsk subdirectory to contain disk images; tape images have no standard location as they are mostly intended for bulk-transfer purposes (see below).

    Inside the CD-i player this leads to the following response to the built-in inquire command:
    $ inquire -i=0
    vendor identification:"CDIFAN CDIEMU SCSIDISK "

    $ inquire -i=4
    vendor identification:"CDIFAN CDIEMU SCSITAPE "
    where the "CDIFAN " part is the vendor name and the "CDIEMU SCSIXXXX " part is the product name.

    In the previous post I described a 450 MB OS-9 hard disk image that I found on the Internet. After mounting it with
    -scsidisk0 mw.dsk I got the following output:
    $ free /h0
    "MediaWorkshop" created on: Feb 17, 1994
    Capacity: 1015812 sectors (512-byte sectors, 32-sector clusters)
    674144 free sectors, largest block 655552 sectors
    345161728 of 520095744 bytes (329.17 of 496.00 Mb) free on media (66%)
    335642624 bytes (320.09 Mb) in largest free block

    $ dir -d /h0

    Directory of /h0 23:49:36
    ETC/ FDRAW/ FONTS/ FontExample/ ISP/
    TEST/ USR/ VIDEO/ abstract.txt bibliographic.txt
    bkgd.c8 bkgd.d cdb cdb1 cdb2
    cdi_opt_install chris_test cin copyright.mws copyright.txt
    csd_605 custominits_cin delme dos/ file
    font8x8 get globs.mod go go.mkfont
    inetdb ipstat kick1a_f.c8 kick2a_f.c8 mtitle
    mws net new_shell new_shell.stb scratch
    screen startup_cin thelist
    You can see why thought it was a MediaWorkshop disc, but on closer inspection this turned out to something quite different. Some basic scrutiny lead to the hypothesis that this is probably a disk backup of someone from Microware working on early development of the DAVID (Digital Audio Video Interactive Decoder) platform. There are various surprises on the disk which I will describe below.

    Anyway, I wanted to transfer the contents to the PC as a tar archive, similar to the procedure I used for my CD-i floppy collection. After starting CD-i Emulator with a -scsitape4 mw.tar option this was simply a matter of typing the following into the terminal window:
    tar cb 1/h0
    This command runs the "tape archiver" program to create a tape with the contents of the /h0 directory, using a tape blocking size of 1 (necessary because my SCSI tape emulation doesn't yet support larger block sizes). The resulting mw.tar file on the PC is only 130 MB, not 450 MB which indicates that the disk is mostly empty. At some point I might use an OS-9 "undelete" program to find out if there are additional surprises.

    Extracting the mw.tar file was now a simple matter of running the PC command
    tar xvf mv.tar
    This produced an exact copy of the OS-9 directory structure and files on the PC.

    Many of the directories on the hard disk are clearly copies of various distribution media (e.g. CDI_BASECASE, CINERGY, CURSORS, ENET, FONTS, ISP, MWOS, NFS). The contents of the ENET, ISP and NFS directories at first appear to match some of my floppies, including version numbers, but on closer inspection the binaries are different. Running some of them produces "Illegal instruction" errors so I suspect that these are 68020 binaries.

    The SHIP directory contains some prerelease RTNFM software; the readme talks about PES which is a type of MPEG-2 stream (Packetized Elementary Stream). Various asset directories contain versions of a "DAVID" logo.

    The CMDS directory contains working versions of the Microware C compiler, identical to the ones I already had and also many other programs. It also contains some "cdb" files (configuration database?) that mention the 68340 processor.

    The contents of the CMDS/BOOTOBJS directory produced a first surprise: it contains a subdirectory JNMS containing among others files named "rb1793" and "scsijnms". Could this be floppy and SCSI drivers for the CD-i 182 extension, as it contains with a 1793 floppy drive controller (the CD-i 60x uses a different one) and the player has a "JNMS" serial number?

    Well, yes and no. Disassembly of the scsijnms file proved it to be compiled C code using an interface different from OS-9 2.4 drivers, so I suspect this is an OS-9 3.x driver. In any case, I cannot use it with the stock CD-i 180 player ROMs. Bummer...

    And now for the big surprise: deeply hidden in a directory structure inside the innocently named COPY directory is the complete assembly source for the VMPEG video driver module "fmvdrv". At first glance it looked very familiar from my disassembly exercises on the identically-named Gate Array 2 MPEG driver module "fmvdrv", which is as expected because I had already noticed the large similarity between these two hardware generations.

    The source calls the VMPEG hardware the "IC3" implementation, which matches CD-i digital video history as I know it. The Gate Array MPEG hardware would be "IC2" and the original prototype hardware would be "IC1". Furthermore, the sources contain three source files named fmvbugs1.a to fmvbugs3.a whose source file titles are "FMV first silicon bugs routines" to "FMV third silicon bugs routines". The supplied makefile currently uses only fmvbugs3.a as is to be expected for a VMPEG driver.

    The fmvbugs1.a source contains some of the picture buffer manipulation logic that I've so far carefully avoided triggering because I couldn't understand it from my disassemblies, and this is now perfectly understandable: they are workarounds for hardware bugs!

    As of two hours ago, I have verified that with a little tweaking and reconstruction of a single missing constants library file these sources produce the exact "fmvdrv" driver module contained in the vmpega.rom file directly obtained from my VMPEG cartridge.

    In general these sources are very heavily commented, including numerous change management comments. They also include a full set of hardware register and bit names, although no comments directly describing the hardware. This should be of great help in finally getting the digital video emulation completely working.

    All of the comments are English, although a few stray words and developer initials lead me to believe that the programmers were either Dutch or Belgian.

    Disassembly comparisons lead me to the conclusion that careful undoing of numerous changes should result in exact sources for the GMPEGA2 driver module "fmvdrv" as well. I might even do it at some point, although this is not high priority for me.

    The disk image containing all of these surprises is publicly available on the Internet since at least 2009, which is probably someone's mistake but one for which I'm very grateful at this point!
              CD-i floppy inventory        
    Last weekend I future-proofed my CD-i floppy collection. A bit to my surprise, all floppies except one turned out to be perfectly readable (nearly twenty years after they were last written!). Luckily, the one exception was a backup copy so I didn’t lose any contents.

    I had originally intended to use the borrowed CDI 182 unit for this (it has two floppy drives). The primary motivation for this was that my unstowed CDI 605 could not read beyond track zero of any floppy, but after giving the matter some thought I decided to try my other CDI 605 first, the primary motivation for this being speed (see below). It turned out that this 605 could read the floppies perfectly, including the three 38U0 format ones that gave problems on the 182 unit. Microware has defined a number of OS-9 disk formats for floppies, the 38U0 one supposedly being the “universal” 3.5" format (there is also a 58U0 “universal” 5¼" format).

    The problem with the “universal” formats is that track zero can be (and on my floppies, is) in a different density which makes it a bad fit for most tools, both on CD-i and PC. It also means that only 79 tracks are used for data storage, giving a raw capacity of 79 × 2 × 16 × 256 = 632 KB. The 3803 format used by all my other CD-i floppies uses all 80 tracks and consequently has 8 KB more of raw storage for a total of 640 KB (these are both double-density, double-side formats (DS, DD) with 16 sectors of 256 bytes per track like nearly all OS-9 disk formats).

    Before unstowing my other CDI 605 (it was nearly at the bottom of a 150 cm stowed equipment stack) I tried reading the floppies with my trusty old Windows 98 machine which still has floppy drives. I could not quickly find a DOS tool that handled the 256 byte sectors (not even raread and friends), although I suspect that Sydex’s TELEDISK product would have handled it just fine. I also tried Reischke’s OS9MAX which should handle all OS-9 formats under the sun according to its documentation. The demo version ran under MS-DOS and gave me working directory listings, even for the 38U0 floppies, but it does not support actually reading the files and I am somewhat doubtful about the current availability of the paid-for full version (even apart from cost concerns).

    Why did I decide to use the 605? It was not a question of reading the disks (the 182 did this mostly fine) but of handling the data thus read. The 182 unit has a SCSI connector but I have no drivers for it (yet) and dumping my full floppy collection over the serial port did not really appeal to me for speed and reliability reasons (it could have been done, of course).

    The 605 player has a SCSI connector and includes drivers for it so I could have just connected it to the SCSI disk in my E1 emulator and copied the floppies to hard disk (I would still have needed to transfer them to my laptop which would have been a two-step process via the Windows 98 PC as I have no SCSI connection on my laptop).

    Instead I used the BNC network connector of the 605 to directly transfer floppy images to my laptop (it needs a network switch supporting both a BNC connector and the modern RJ45 connectors, but luckily I have two of those, even if they are only 10 Mbit/s). Starting up the network environment of the 605 took only two OS-9 commands at the command shell prompt:
    ispmode /le0 addr=
    After this I could just ftp in to my laptop where I ran ftpdmin, a very minimal ftp server program, and transfer floppy disk images directly:
    put /d0@ floppy.dsk
    (where /d0@ is the raw floppy device, for 38U0 I used /d0uv@, both are built-in for the 605).

    The transfers ran at the maximum speed of the floppy drive (way below the 10 Mbit/s network speed), and the resulting .dsk files are perfectly readable using the –v option (virtual disk) of Carey Bloodworth’s os9.exe program even though that program was originally written for Tandy Color Computer OS9/6809 floppies (the floppy disk format was not changed for OS-9/68000 which is at the core of CD-i’s CD-RTOS operating system).

    For easy access I also created a “tar” format archive of each floppy on a RAM disk:
    chd /d0
    tar cvf /r768/floppy.tar .
    and ftp’d those to my laptop as well (the /r768 device is a 768 KB variation of the /r512 built-in 512 KB RAM disk device of the 605 player).

    I ended up with the following collection of unique floppy disk images:
    • 605h3 - 605 H3 Driver Update (1 floppy)
    • 605upd - 605 Driver Update (1 floppy)
    • bcase - Basecase Tests (1 floppy)
    • eboot41 - Emulation Boot Diskette (1 floppy)
    • eburn41 - Emulation and CDD 521 Boot Diskette (1 floppy)
    • inet - CD-I Internet Installation Disk - V1.3 (1 floppy)
    • nfs - OS-9/68000 Network File System V.1.0 (1 floppy)
    • os9sys - OS-9 System Diskette (1 floppy)
    • pubsoft - OptImage Public Domain Software (2 floppies)
    • pvpak - OptImage Preview Pak Installation Disk (1 floppy)
    • ubridge - OS-9 UniBridge Resident Utilities (3 floppies)

    The 605* and eb* floppies are mostly interesting for CD-i 605 or E1 emulator owners, but the bcase floppy contains a set of CD-i standard conformance test programs that.

    The inet and nfs floppies contain a full set of Internet software including Telnet and FTP servers and clients and an NFS client (all except the latter are also in the 605 ROMs).

    The os9sys floppy contains a full set of Professional OS-9 programs and is my original source for most of the OS-9 CD-i disc that I described earlier (most of these are not in ROM on any CD-i player that I’ve seen so far).

    The pubsoft floppies contain miscellanous utilities such as bfed, du, kermit, umacs and vi, most of which can be obtained elsewhere, some CD-i specific utilities such as da (CD-i disk analyzer) and iffinfo (CD-i IFF file dumper) as well as library source files for the CD-i IFF file library.

    The pvpak floppy contains preview software for CD-i images that will preview CD-i IFF files from an NFS-mounted host file system directory.

    The ubridge floppies are the goldmine (and also the 38U0 format ones) as they contain a full set of native Microware C compiler/assembler/linker/debugger software for OS-9 complete with CD-i header files and libraries and C runtime startup sources. Both the srcdbg and sysdbg debuggers are included as well as the rdump utility for dumping ROFF (Relocatable Object File Format) files.

    Unfortunately, most of the above software except for the pubsoft contents is copyrighted property of Microware (now Radisys) or OptImage (a former Philips/Microware joint venture) which means that I cannot distribute it, even though they could be very useful to CD-i homebrew developers. For that the hopefully soon-to-be available GCC cross-port will have to be enough...

    While investigating all of the above I also stumbled upon a 450 MB OS-9 hard disk image for MediaWorkshop. The os9.exe program recognizes it just enough to say that it does not support it so I have no real idea about its contents except the obvious.

    To remedy that problem I’m in the process of adding SCSI disk support to CD-i emulator so that I can use the SCSI support in the CD-i 605 ROMs to mount the disk image and look at it. This should also allow the CD-i 180 to boot from a SCSI disk if I ever find drivers for it (a possible path to that has just appeared, we’ll see...).
              CD-i 180 adventures        
    Over the last week I have been playing with the CD-i 180 player set. There’s lots to tell about, so this will be a series of blog posts, this being the first installment.

    The CD-i 180 is the original CD-i player, manufactured jointly by Philips and Sony/Matsushita, and for a score of years it was the development and “reference” player. The newer CD-i 605 player provided a more modern development option but it did not become the “reference” player for quite some years after its introduction.

    The CD-i 180 set is quite bulky, as could be expected for first-generation hardware. I have added a picture of my set to the Hardware section of the CD-i Emulator website; more fotos can be found here on the website (it’s the same player, as evidenced by the serial numbers).

    The full set consists of the CDI 180 CD-i Player module, the CDI 181 Multimedia Controller or MMC module and the CDI 182 Expansion module. The modules are normally stacked on top of each other and have mechanical interlocks so they can be moved as a unit. Unfortunately, I do not have the CDI 182 Expansion module nor any user manuals; Philips brochures for the set can be found here on the ICDIA website.

    Why am I interested in this dinosaur? It’s the first mass-produced CD-i player (granted, for relatively small masses), although there were presumably some earlier prototype players. As such, it contains the “original” hardware of the CD-i platform, which is interesting from both a historical and an emulation point of view.

    For emulation purposes I have been trying to get hold of CD-i 180 ROMs for some years, there are several people that still have fully operational sets, but it hasn’t panned out yet. So when I saw a basic set for sale on the CD-Interactive forum I couldn’t resist the temptation. After some discussion and a little bartering with the seller I finally ordered the set about 10 days ago. Unfortunately, this set does not include a CDI 182 module or pointing device.

    I had some reservations about this being a fully working set, but I figured that at least the ROM chips would probably be okay, if nothing else that would allow me to add support for this player type to CD-i Emulator.

    In old hardware the mechanical parts are usually the first to fail, this being the CDI 180 CD-i Player module (which is really just a CD drive with a 44.1 kHz digital output “DO” signal). A workaround for this would be using an E1 or E2 Emulator unit; these are basically CD drive simulators that on one side read a CD-i disc image from a connected SCSI hard disk and on the other side output the 44.1 kHz digital output “DO” signal. Both the CDI 180 and E1/E2 units are controlled via a 1200 baud RS232 serial input “RS” signal.

    From my CD-i developer days I have two sets of both Emulator types so I started taking these out of storage. For practical reasons I decided to use an E1 unit because it has an internal SCSI hard disk and I did not have a spare one lying around. I also dug out an old Windows 98 PC, required because the Philips/OptImage emulation software doesn’t work under Windows XP and newer, and one of my 605 players (I also have two of those). Connecting everything took me a while but I had carefully stored all the required cables as well and after installing the software I had a working configuration after an hour or so. The entire configuration made quite a bit of mechanical and fan noise; I had forgotten this about older hardware!

    I had selected the 605 unit with the Gate Array AH02 board because I was having emulation problems with that board, and I proceeded to do some MPEG tests on it. It turns out the hardware allows for some things that my emulator currently does not, which means that I need to do some rethinking. Anyway, on with the 180 story.

    In preparation for the arrival of the 180 set I next prepared an disc image of the “OS-9 Disc” that I created in November 1993 while working as a CD-i developer. This disc contains all the OS-9 command-line programs from Professional OS-9, some OS-9 and CD-i utilities supplied by Philips and Microware and some homegrown ones as well. With this disc you can get a fully functional command-line prompt on any CD-i player with a serial port, which is very useful while researching a CD-i player’s internals.

    The Philips/Optimage emulation software requires the disc image files to include the 2-second gap before logical block zero of the CD-i track, which is not usually included in the .bin or .iso files produced by CD image tools. So I modified the CD-i File program to convert my existing os9disc.bin file by prepending the 2-second gap, in the process also adding support for scrambling and unscrambling the sector data.

    Scrambling is the process of XORing all data bytes in a CD-ROM or CD-i sector with a “scramble pattern” that is designed to avoid many contiguous identical data bytes which can supposedly confuse the tracking mechanism of CD drives (or so I’ve heard). It turned out that scrambling of the image data was not required but it did allow me to verify that the CD-I File converted image of a test disc is in fact identical to the one that the Philips/Optimage mastering tools produce, except for the ECC/EDC bytes of the gap sectors which CD-I File doesn’t know how to generate (yet). Fortunately this turned out not to be a problem, I could emulate the converted image just fine.

    Last Thursday the 180 set arrived and in the evening I eagerly unpacked it. Everything appeared to be in tip-top shape, although the set had evidently seen use.

    First disappointment: there is no serial port on the right side of 181 module. I remembered that this was actually an option on the module and I had not even bothered to ask the seller about it! This would make ROM extraction harder, but I was not completely without hope: the front has a Mini-DIN 8 connector marked “CONTROL” and I fully expected this to be a “standard” CD-i serial port because I seemed to remember that you could connect standard CD-i pointing devices to this port, especially a mouse. The built-in UART functions of the 68070 processor chip would have to be connected up somewhere, after all.

    Second disappointment: the modules require 120V power, not the 220V we have here in Holland. I did not have a voltage converter handy so after some phone discussion with a hardware-knowledgeable friend we determined that powering up was not yet a safe option. He gave me some possible options depending on the internal configuration so I proceeded to open up the CDI 181 module, of course also motivated by curiosity.

    The first thing I noticed was that there were some screws missing; obviously the module had been opened before and the person doing it had been somewhat careless. The internals also seemed somewhat familiar, especially the looks of the stickers on the ROM chips and the placement of some small yellow stickers on various other chips.

    Proceeding to the primary reason for opening up the module, I next checked the power supply configuration. Alas, nothing reconfigurable for 220V, it is a fully discrete unit with the transformer actually soldered to circuit board on both input and output side. There are also surprisingly many connections to the actual MMC processor board and on close inspection weird voltages like –9V and +9V are printed near the power supply outputs, apart from the expected +5V and +/–12V, so connecting a different power supply would be a major undertaking also.

    After some pondering of the internals I closed up the module again and proceeded to closely inspect the back side for serial numbers, notices, etc. They seemed somewhat familiar but that isn’t weird as numbers often do. Out of pure curiosity I surfed to the website to compare serial numbers, wanting to know the place of my set in the production runs.

    Surprise: the serial numbers are identical! It appears that this exact set was previously owned by the owner of that website or perhaps he got the photographs from someone else. This also explained why the internals had seemed familiar: I had actually seen them before!

    I verified with the seller of the set that he doesn’t know anything about the photographs; apparently my set has had at least four owners, assuming that the website owner wasn’t the original one.

    On Friday I obtained a 120V converter (they were unexpectedly cheap) and that evening I proceeded to power up the 180 set. I got a nice main menu picture immediately so I proceeded to attempt to start a CD-i disc. It did not start automatically when I inserted it, which on second thought makes perfect sense because the 181 MMC module has no way to know that you’ve just inserted a disc: this information is not communicated over 180/181 interconnections. So I would need to click on the “CD-I” button to start a disc.

    To click on a screen button you need a supported pointing device, so I proceeded to connect the trusty white professional CD-i mouse that belongs with my 605 players. It doesn’t work!

    There are some mechanical issues which make it doubtful that the MiniDIN connector plugs connect properly, so I tried an expansion cable that fit better. Still no dice.

    The next step was trying some other CD-i pointing devices, but none of them worked. No pointing devices came with the set, and the seller had advised me thus (they were presumable lost or sold separately by some previous owner). The only remaining option seemed to be the wireless remote control sensor which supposedly uses RC5.

    I tried every remote in my home, including the CD-i ones, but none of them give any reaction. After some research into the RC5 protocol this is not surprising, the 180 set probably has a distinct system address code. Not having a programmable remote handy nor a PC capable of generating infrared signals (none of my PCs have IrDA) I am again stuck!

    I spent some time surfing the Internet looking for RC5 remotes and PC interfaces that can generate RC5 signals. Programmable remotes requiring a learning stage are obviously not an option so it will have to be a fully PC-programmable remote which are somewhat expensive and I’m not convinced they would work. The PC interface seems the best option for now; I found some do-it-yourself circuits and kits but it is all quite involved. I’ve also given some thought to PIC kits which could in principle also support a standard CD-i or PC mouse or even a joystick, but I haven’t pursued these options much further yet.

    Next I went looking for ways to at least get the contents of the ROM chips as I had determined that these were socketed inside the MMC module and could easily be removed. There are four 27C100 chips inside the module, each of which contains 128Kb of data for a total of 512Kb which is the same as for the CD-i 605 player (ignoring expansion and full-motion video ROMs). The regular way to do this involves using a ROM reading device, but I haven’t gotten one handy that supports this chip type and neither does the hardware friend I mentioned earlier.

    I do have access to an old 8 bit Z80 hobbyist-built system capable of reading and writing up to 27512 chips which are 64Kb, it is possible to extend this to at least read the 27C100 chip type. This would require adapting the socket (the 27512 is 28 pins whereas the 27C100 has 32 pins) and adding one extra address bit, if nothing else with just a spare wire. But the Z80 system is not at my house and some hardware modifications to it would be required, for which I would have to inspect the system first and dig up the circuit diagrams; all quite disappointing.

    While researching the chip pinouts I suddenly had an idea: what if I used the CD-i 605 Expansion board which also has ROM sockets? This seemed an option but with two kids running around I did not want to open up the set. That evening however I took the board out of the 605 (this is easily done as both player and board were designed for it) and found that this Expansion board contains two 27C020 chips, each containing 256Kb of data. These are also 32 pins but the pinouts are a little different, so a socket adapter would also be needed. I checked the 605 technical manual and it did not mention anything about configurable ROM chip types (it did mention configurable RAM chip types, though) so an adapter seemed the way to go. I collected some spare 40 pin sockets from storage (boy have I got much of that) and proceeded to open up the 180 set and take out the ROM chips.

    When determining the mechanical fit of the two sockets for the adapter I noticed three jumpers adjacent to the ROM sockets of the expansion board and I wondered… Tracing of the board connections indicated that these jumpers were indeed connected to exactly the ROM socket pins differing between 27C100 and 27C020, and other connections indicated it at least plausible for these jumpers to be exactly made for the purpose.

    So I changed the jumpers and inserted one 180 ROM. This would avoid OS-9 inadvertently using data from the ROM because only half of each 16-bit word would be present, thus ensuring that no module headers would be detected, and in the event of disaster I would lose only a single ROM chip (not that I expected that to be very likely, but you never know).

    Powering up the player worked exactly as expected, no suspicious smoke or heat generation, so the next step was software. It turns out that CD-i Link already supports downloading of ROM data from specific memory addresses and I had already determined those addresses from the 605 technical manual. So I connected the CD-i 605 null-modem cable with my USB-to-Serial adapter between CD-i player and my laptop and fired off the command line:

    cdilink –p 3 –a 50000 –s 256K –u u21.rom

    (U21 being the socket number of the specific ROM I chose first).

    After a minute I aborted the upload and checked the result, and lo and behold the u21.rom file looked like an even-byte-only ROM dump:
    00000000  4a00 000b 0000 0000 0004 8000 0000 0000 J...............
    00000010 0000 0000 0000 003a 0000 705f 6d6c 2e6f .......:..p_ml.o
    00000020 7406 0c20 0000 0000 0101 0101 0101 0101 t.. ............
    This was hopeful, so I restarted the upload again and waited some six minutes for it to complete. Just for sure I redid the upload from address 58000 and got an identical file, thus ruling out any flakey bits or timing problems (I had already checked that the access times on the 27C100 and 27C020 chips were identical, to say 150ns).

    In an attempt to speed up the procedure, I next attempted to try two ROMs at once, using ones that I thought not to be a matched even/odd set. The 605 would not boot! It later turned out that the socket numbering did not correspond to the even/odd pairing as I expected so this was probably caused by the two ROMs being exactly a matched set and OS-9 getting confused as the result. But using a single ROM it worked fine.

    I proceeded to repeat the following procedure for the next three ROMs: turn off the 605, remove the expansion board, unsocket the previous ROM chip, socket the next ROM chip, reinsert the expansion board, turn on the 605 and run CD-i Link twice. It took a while, all in all just under an hour.

    While these uploads were running I wrote two small programs rsplit and rjoin to manipulate the ROM files into a correct 512Kb 180 ROM image. Around 00:30 I had a final cdi180b.rom file that looked good and I ran it through cditype –mod to verify that it indeed looked like a CD-I player ROM:
      Addr     Size      Owner    Perm Type Revs  Ed #  Crc   Module name
    -------- -------- ----------- ---- ---- ---- ----- ------ ------------
    0000509a 192 0.0 0003 Data 8001 1 fba055 copyright
    0000515a 26650 0.0 0555 Sys a000 83 090798 kernel
    0000b974 344 0.0 0555 Sys 8002 22 b20da9 init
    0000bacc 2848 0.0 0555 Fman a00b 35 28611f ucm
    0000c5ec 5592 0.0 0555 Fman a000 17 63023d nrf
    0000dbc4 2270 0.0 0555 Fman a000 35 d6a976 pipeman
    0000e4a2 774 0.0 0555 Driv a001 6 81a3e9 nvdrv
    0000e7a8 356 0.0 0555 Sys a01e 15 e69105 rp5c15
    0000e90c 136 0.0 0555 Desc 8000 1 f25f23 tim070
    0000e994 420 0.0 0555 Driv a00c 6 7b3913 tim070driv
    0000eb38 172 0.0 0555 Driv a000 1 407f81 null
    0000ebe4 102 0.0 0555 Desc 8000 2 cf450e pipe
    0000ec4a 94 0.0 0555 Desc 8000 1 f54010 nvr
    0000eca8 96 0.0 0555 Desc 8000 1 17ec68 icard
    0000ed08 1934 0.0 0555 Fman a000 31 b41f17 scf
    0000f496 120 0.0 0555 Desc 8000 61 dd8776 t2
    0000f50e 1578 0.0 0555 Driv a020 16 d0a854 u68070
    0000fb38 176 0.1 0777 5 8001 1 a519f6 csd_mmc
    0000fbe8 5026 0.0 0555 Sys a000 292 e33cc5 csdinit
    00010f8a 136 0.0 0555 Desc 8000 6 041e2b iic
    00011012 152 0.0 0555 Driv a02c 22 e29688 ceniic
    000110aa 166 0.0 0555 Desc 8000 8 c5b823 ptr
    00011150 196 0.0 0555 Desc 8000 8 a0e276 cdikeys
    00011214 168 0.0 0555 Desc 8000 8 439a33 ptr2
    000112bc 3134 0.0 0555 Driv a016 11 faf88d periic
    00011efa 4510 0.0 0555 Fman a003 96 a4d145 cdfm
    00013098 15222 0.0 0555 Driv a038 28 122c79 cdap18x
    00016c0e 134 0.0 0555 Desc 8000 2 35f12f cd
    00016c94 134 0.0 0555 Desc 8000 2 d2ce2f ap
    00016d1a 130 0.0 0555 Desc 8000 1 1586c2 vid
    00016d9c 18082 10.48 0555 Trap c00a 6 5f673d cio
    0001b43e 7798 1.0 0555 Trap c001 13 46c5dc math
    0001d2b4 2992 0.0 0555 Data 8020 1 191a59 FONT8X8
    0001de64 134 0.0 0555 Desc 8000 2 c5ed0e dd
    0001deea 66564 0.0 0555 Driv a012 48 660a91 video
    0002e2ee 62622 0.1 0555 Prog 8008 20 ec5459 ps
    0003d78c 4272 0.0 0003 Data 8001 1 9f3982 ps_medium.font
    0003e83c 800 0.0 0003 Data 8002 1 c1ac25 ps_icons.clut
    00040000 2976 0.0 0003 Data 8002 1 0a3b97 ps_small.font
    00040ba0 7456 0.0 0003 Data 8002 1 764338 ps_icons.clu8
    000428c0 107600 0.0 0003 Data 8002 1 7b9b4e ps_panel.dyuv
    0005cd10 35360 0.0 0003 Data 8001 1 2a8fcd ps_girl.dyuv
    00065730 35360 0.0 0003 Data 8002 1 e1bb6a ps_mesa.dyuv
    0006e150 35360 0.0 0003 Data 8002 1 8e394b ps_map.dyuv
    00076b70 35360 0.0 0003 Data 8002 1 c60e5e ps_kids.dyuv

    File Size Type Description
    ------------ ------ ------------ ------------
    cdi180b.rom 512K cdi000x.rom Unknown CD-i system ROM
    cdi180b.rom 512K cdi000x.mdl Unknown CD-i player
    cdi180b.rom 512K unknown.brd Unknown board
    Of course cditype didn’t correctly detect the ROM, player and board type, but the list of modules looks exactly like a CD-i player system ROM. It is in fact very similar to the CD-i 605 system ROM, the major differences are the presence of the icard and *iic drivers, the absence of a slave module and the different player shell (ps module with separate ps_* data modules instead of a single play module).

    It being quite late already, I resocketed all the ROMs in the proper places and closed up both players, after testing that they were both fully functional (insofar as I could test the 180 set), fully intending to clean up and go to bed. As an afterthought, I took a picture of the running 180 set and posted it on the CD-Interactive forums as the definitive answer to the 50/60 Hz power question I’d asked there earlier.

    The CD-i Emulator urge started itching however, so I decided to give emulation of my new ROM file a quick go, fully intending to stop at any major problems. I didn’t encounter any of those, however, until I had a running CD-i 180 player three hours later. I reported the fact on the CDinteractive forum, noting that there was no pointing device or disc access yet, and went to a well-deserved sleep. Both of these issues are major ones and those I postponed for the next day.

    To get the new player type up and running inside CD-i Emulater, I started by using the CD-i 605 F1 system specification files cdi605a.mdl and minimmc.brd as templates to create the new CD-i 180 F2 system files cdi180b.mdl and maximmc.brd. Next I fired up the emulator and was rewarded with bus errors. Not unexpected and a good indicator of where the problems are. Using the debugger and disassembler I quickly determined that the problems were, as expected, the presence of the VSR instead of VSD and the replacement of the SLAVE by something else. Straightening these out took a bit of time but it was not hard work and very similar to work I had done before on other player types.

    This time at least the processor and most of the hardware was known and already emulated; for the Portable CD-i board (used by the CD-i 370, DVE200 and GDI700 players) both of these were not the case as they use the 68341 so-called integrated CD-i engine which in my opinion is sorely misnamed as there is nothing CD-i about the chip, it is just the Motorola version of an 68K processor with many on-chip peripherals in remarkably similar to the Philips 68070 in basic functionality.

    Saturday was spent doing household chores with ROM research in between, looking for the way to get the pointing device working. It turned out to be quite involved but at the end of the day I had it sort of flakily working in a kludgy way; I’ll report the details in a next blog post.

    Sunday I spent some time fixing the flakiness and thinking a lot about fixing the kludginess; this remains to be done. I also spent time making screenshots and writing this blog post.

    So to finish up, there is now a series of 180 screenshots here on the CD-i Emulator website as reported in the What's New section. A very nice player shell, actually, especially for a first generation machine.

    I will report some ROM and chip finds including new hopes for replacing the missing pointing device in a next blog post.
              MPEG decoding, state save/restore, NRF emulation, ...        
    It's been a while since I wrote anything here, but that doesn't mean that work on CD-i Emulator has stopped. On the contrary, a lot has happened in the last month and describing all of it will take a very long blog post. So here goes…

    Last January an annoying date-checking bug was found which forced me to release beta2 somewhat earlier than anticipated. After that I did no further work on CD-i Emulator. There were various reasons for this, but the most import one was a very busy period at my day job.

    After a well-earned vacation I resumed CD-i related work in early August. First I spent a few days on Walter Hunt's OS-9 port of gcc, the GNU C/C++ Compiler that I found in October of last year. Getting it working on a modern Cygwin installation was interesting and something very different from my usual line of work. The result could be useful for homebrew activities: it's a much more usable C compiler then the Microware OS-9 one and supports C++ as a bonus. I intend to use this for ROM-less emulation validation some day; see also below. The sources need to be released but I haven’t gotten to that stage yet.

    After that I had another go at the Digital Video cartridge emulation. At the point where I left off last year the major stumbling block was the presumed picture / frame buffering logic of the MPEG video driver. When the appropriate interrupt status bits are set the driver starts copying a bulk of status information to an array of device registers and it will sometimes also read from those registers. This is all controlled by several status and timing registers that are also referenced elsewhere and I previously could not get a handle on it.

    My first attempt this time was spending another few days staring at it and tracing it, but this did not gain me much new understanding. Finally I decided to just leave it for now and see how far I could get without understanding this part of the driver. I decided to once again attempt to get "CD-i Full Motion Video Technical Aspects" working.

    This CD-i was produced by Philips to give future Full Motion Video (as the new MPEG playback functions were called at the time) developers a demonstration of the technical capabilities of the new hardware, at a time when this hardware was still in the early beta phase. The CD-i actually contains the compiler libraries necessary for making FMV calls from CD-i applications, as these had not previously been widely distributed.

    It is not a very slick disc visually, being intended for developers, but it demonstrates a number of FMV techniques such as regular playback, playback control including pause, slow motion and single step, freeze frame and forward/backward scan, special effects like scrolling the FMV window, a seamless jump and a sample of overlay effects with the CD-i base case video planes.

    I had previously tried to run this disc on CD-i Emulator, but it always crashed for an unknown reason that I attributed to MPEG device emulation problems. This time I traced back the crash and it turned out to have nothing at all to do with FMV playback but was instead caused by an incorrect emulation of the 68000 instruction "move ea,ccr" which is supposed to set the condition code register (ccr) to the value specified by the effective address (ea). In the processor manual this is classified as a word instruction and I had emulated it as such, which turned out to be wrong as it caused a word write to the full status register which should have been a byte write to the lower eight bits of it which hold the condition codes.

    The problem manifested itself when the application calls the math trap handler for some mundane number calculations, which were naturally supposed to set the condition codes. The value written to the status register inadvertently changed the processor from user to system mode (and also scrambled the active interrupt masking level) which caused an instant stack switch that caused a bus error when the trap handler attempts to return to the application program (the cpu took the return address from the wrong stack and got garbage instead).

    Most CD-i applications probably don't use the math trap handler so the problem went undetected for a long time. Now that it's fixed some other titles have probably started working but I haven't tested that.

    After this, the FMV Technical Aspects application would get to its main menu screen, allowing me to start FMV playback operations. Regular playback worked fine until the end of the video clip, where there turned out to be status bit generation issues that prevented the application from properly detecting the end of video clip condition (the decoder is supposed to send a "buffer underflow" signal, among others, after the end of the MPEG data and my emulation didn't do that yet).

    This was not very easy to fix because of the way that MPEG data buffering and decoding is handled inside CD-i Emulator, which I'll get into below. So it took me some time.

    Regular play working fine, I started worrying about window control. This was the area where I feared the picture buffering stuff, but it turned out that this was easily bypassed. The horizontal / vertical scrolling functions were ideal to test this but it took me some time to get it working. There were bugs in several areas, including my integration of the MPEG video decoding code, which I took from the well-known mpeg2dec package. This code is written to decode a single video sequence and consequently did not handle image size changes without some re-initialization calls at the appropriate times. Failing that, it mostly just crashed (at the Windows application level) due to out-of-bounds video buffer accesses.

    Another issue was the timing of device register updates for image size changes; I turned out to have the basic mechanism wrong and consequently the driver would keep modifying the window parameters to incorrect values.

    Having all of the above fixed, I returned my attention to playback control. So far I can get the video playback properly paused, but I haven't been able to get it properly resumed. For some reason the application resumes the MPEG playback but it doesn't resume the disc playback. Since the driver waits for new data to arrive from disc before actually resuming MPEG playback nothing happens (this is documented as such). The application is presumably expecting some signal from the driver to get into the proper state for resuming disc playback, but I haven't found it yet.

    At this point, it seemed promising to look at other CD-i titles using playback control and the Philips Video CD application is an obvious candidate. Again, regular playback appears to work fine, but playback control (including pause/resume) does not. It turns out that this application uses a different driver call (it uses MV_ChSpeed instead of MV_Pause, probably in preparation for possible slow motion or single step), which never completes successfully, probably again because of device status signaling. Similar issues appear to block playback control in a few other titles I tried.

    I've given some thought to tracing driver calls and signals on an actual player to see what CD-i Emulator is doing wrong, and it appears to be relatively simple, there's just a bandwidth issue because all of the trace output will have to go out the serial port which can go no higher then 19200 baud. Some kind of data compression is obviously needed and I've determined a relatively simple scheme that should be enough (the CD-i player side will all need to be coded in 68000 machine language so simplicity is important!), but I haven't actually written any code for it yet.

    I know there are issues with the proper timing of some video status signals. Things like start-of-sequence, end-of-sequence and start-of-picture-group should be delayed until display of the corresponding picture, at present they are delivered at decoding time, which can be a few pictures early. But that does not really affect the titles I've tried so far, because they do not attempt picture-synced operations. An application like The Lost Ride might be sensitive to thinks like this, though, and it needs to be fixed at some time. Similar issues are probably present with time code delivery. In addition, the last-picture-displayed and buffer-underflow signals are not always properly sent; I'm fixing these as I go along.

    In the process, I decided that the magenta border was getting annoying and tried to fix it. That turned out to be harder then I thought. The MPEG chip has a special border color register that is written by the MV_BColor driver call and it seemed enough to just pass the color value to the MPEG window overlay routines. Well, not so. Again the issue turned out to be timing of decoder status signals, but of a different kind. The driver doesn't write the border color registers until it has seen some progress in certain timing registers related to the picture buffering thing, presumably to avoid visual flashes or something on the actual hardware. Fortunately, it turned out to be easy to simulate that progress, taking care not to trigger the complicated picture buffer code that I so far managed to keep dormant.

    At some point, possibly related to slow motion or freeze frame, I might need to actually tackle that code but I hope to by that time have gained more understanding of the supposed workings of the MPEG chip.

    Looking at the above, you might think that all of the difficulties are with the MPEG video decoding and that is indeed mostly true. I did have to fix something in the MPEG audio decoding, related to the pause/resume problems, and that was the updating of the audio decoder clock. When audio and video playback are synchronized the MPEG video driver uses the MPEG audio clock as it's timing reference, which means that it has to be stopped and restarted when video playback control operations occur. Since I had never before seriously tested this, the audio clock wasn't stopped at all and the video driver obligingly continued decoding and displaying pictures until it ran out of buffered data.

    There is currently just one known problem with the MPEG audio decoding: the audio isn't properly attenuated as specified by the driver. This causes little audio distortions at some stream transitions and when buffers run out. There is also a problem with base case audio synchronization but that is hard to trigger and possibly even not audible in many titles so I'll worry about that much later.

    Above I promised to get into the MPEG data buffering and decoding issue. The basic problem is one of conceptual mismatch: the CD-i decoding hardware gets data "pushed" into it (by DMA or direct device I/O) at the behest of the driver, whereas the MPEG decoding code (based on the publicly available mpeg2dec and musicout programs from the MPEG Software Simulation Group) expects to "pull" the data it needs during decoding. Things get messy when the decoding runs out of data, as the code does not expect to ever do so (it was originally written to decode from a disc file which of course never runs out of data until the end of the sequence). Some obvious solutions include putting the decoding in a separate thread (which given multi-core processors might be a good idea anyway from a performance perspective) and modifying it to become restartable at some previous sync point (most easily this would be the start of an audio frame or a picture or picture slice). Both options are somewhat involved although they have obvious benefits, and it may turn out that I will need to do one of them anyway at some point. For now I've avoided the problems by carefully timing calls into the MPEG decoding code so that enough data to decode a single audio frame or video picture should always be available; the MPEG data stream at the system level contains enough timestamp and buffering information to make this possible (in particular, it specifies the exact decoding time of every audio frame or video picture in relation to the timing of the data stream, thus making it possible to make those calls into the decoding code at a time that a valid MPEG data stream will have already filled the buffers far enough).

    The approach depends on the timing of the MPEG data entering the decoder, which means that it does not handle buffer underflow conditions unless you add some kind of automatic decoding that continues even if no more MPEG data appears, and this is basically what I’ve done. In the end it was just relatively straightforward extension of the automatic decoding already there to handle the fact that MPEG audio streams do not have to explicitly timestamp every single audio frame (the CD-i Green Book does not even allow this unless you waste massive amounts of space in each MPEG audio data sector) and would have been needed anyway to correctly decode the last pictures of a sequence, but that had never been tested before.

    For performance and possible patent reasons I have taken care to edit the MPEG decoding code (placing appropriate #ifdef lines at the right places) so that only MPEG 1 video and audio layer I/II decoding code is compiled into the CD-i Emulator executable. This is all that is needed for CD-i anyway and MPEG 2 video and audio layer III greatly complicate the decoding and thus significantly enlarge the compiled code.

    Being somewhat stymied at the FMV front, I next decided to spend some time on another lingering issue. During testing, I often have to do the same exact sequence of mouse actions to get a CD-i application to a problem point and this is starting to be annoying. Input recording and playback are a partial solution to this but then you still have to wait while the application goes through it, which is also annoying and can sometimes take quite some time anyway. The obvious solution is a full emulation state save/restore feature, which I've given some thought and started implementing. It's nowhere near finished, though.

    During the MESS collaboration I spent some time investigating the MESS save/restore mechanism. If at all possible I would love to be compatible for CD-i emulation states, but it turns out to be quite hard to do. The basic internal mechanism is quite similar in spirit to what I developed for CD-i Emulator, but it's the way the data is actually saved that makes compatibility very hard. Both approaches basically boil down to saving and restoring all the relevant emulation state variables, which includes easy things like the contents of cpu, memory and device registers but also internal device state variables. The latter are of course not identical between different emulators but they could probably be converted if some effort was thrown at it and for a typical device they aren't very complex anyway. The MESS implementation uses an initialization-time registration of all state variables; at save/restore time it just walks the registrations and saves or restores the binary contents of those variables. CD-i Emulator has a somewhat more flexible approach; at save/restore time it calls a device-specific serialize function to save or restore the contents of the state variables. The actual registration / serialization codes are structurally similar in the two emulators (a simple list of macro/function calls on the state variables) but the code runs at different times.

    The real problem is that MESS includes very little meta information in the save files: only a single checksum of all the names and types of registered state variables in registration order. This is enough to validate the save data at restore time if the state variables of the saving emulator exactly match those of the restoring emulator, because there is no information to implement skipping or conversions. This holds between different versions or in some case even configurations of MESS emulators, but it holds even more so between MESS and CD-i Emulator! The meta information could of course be obtained from the MESS source code (relatively simply macro modifications could cause it to be written out) but that would require exact tracking of MESS versions because every version could have its own checksum corresponding to different meta information (in this case CD-i Emulator would need meta information sets for every MESS checksum value it wants to support).

    I want CD-i Emulator to be more flexible, especially during development, so I decided to make full meta information an option in the save file. The saved state of every device is always versioned, which allows the save/restore code to implement explicit conversion where needed, but during development this isn't good enough. With full meta information turned on, the name and type of every state variable precedes the save data for that variable in the save file. This allows more-or-less automatic skipping of unknown state variables and when properly implemented the restore code can also handle variable reordering. At release time, I will fix the version numbers and save full metadata information sets for those version numbers so that the same automatic skipping and handling of reordering can be done even if the metadata isn't in the save file (it probably won't be because of file size considerations, although that may turn out to be a non-issue because save files need to include the full RAM contents anyway which is 1 MB of data in the simplest case without any compression, which is of course an option).

    In addition to all of the above, I made some progress on the ROM-less emulation front. First I spent some time reading up on the internals of OS-9 file managers, because writing a replacement for the NRF file manager (NRF = Nonvolatile RAM File manager) seemed the logical next step. Actually writing it turned out not to be that hard, but there were of course bugs in the basic ROM emulation code. Most of them had to do with handlers not calling into the original ROM, which totally screwed up the tracing code. Some new functionality was also needed to properly read/write OS-9 data structures inside the emulated machine from the ROM emulation code; I wanted to implement this in such a way that compilation to "native" 68000 code remains a future option for ROM emulation modules. And of course the massive tracing described in the previous blog post had to be curtailed because it was impossible to see the relevant information in the morass of tracing output.

    The new emulated NRF stores its files in the PC file system and it currently works fine when you start it with no stored files (i.e., the player will boot). In that case it will write out a proper "csd" (Configuration Status Descriptor) file. However, if this file already exists, the player crashes, although I have so far not found any fault in the NRF code. The origin of the problem probably lies elsewhere; I suspect it has to do with the hidden "player_shell_settings.prf" file. This file is read and written by the ROM bootstrap even before OS-9 is running; it does this by directly accessing the NVRAM memory (the file never changes size and is always the first one in NVRAM). Since the bootstrap accesses of this file do not go through the NRF file manager or even the NVRAM driver they are not redirected by the OS-9 emulation. However, later accesses by the player shell *are* redirected and the player shell does not seem able to handle the file not existing in the PC file system in the case where a csd file already exists. Solutions include extending the emulated NRF to always access this particular file from the NVRAM instead of the PC file system or somehow synchronizing the two locations for the file. The latter is probably the easiest route given the fixed location and size of the file, but the former is also useful as it would provide a full reimplementation of the original NRF that could in principle be compiled to native 68000 code to replace the "original" NRF in ROM (this is where gcc comes in as alluded to earlier, since all emulation code is written in C++).

    In either case, I do not want the file manager to directly access emulated NVRAM although it could do so easily, as there is already an internal CNvramPort interface that provides just such access independent of the actual emulated NVRAM chip. The NRF file manager should instead call the NVRAM driver, which means that I need to implement cross-module calling first. It's not really hard in principle, the design has been done but there are a lot of little details to get right (the most obvious implementation uses at least 66 bytes of emulated stack space on each such call which I find excessive and might not even work; smarter implementations require some finicky register mask management or a "magic cookie" stacking approach, the latter having the best performance in the emulation case but being impossible in the native 68000 compilation case). When cross-module calling is working, I can also have the file manager allocate emulated memory and separate out the filename parsing functions by using the OS-9 system calls that provide these functions (the current emulated NRF does not allocate emulated memory which is arguably an emulation error and has the filename parsing coded out explicitly).

    When everything works correctly with the emulated NRF, I have to find some way of integrating it in the user experience. You could always start over without any NVRAM files, but I'd like to have some way of migrating files between the two possible locations without having to run CD-i Emulator with weird options. Extending the CD-i File Extractor (cdifile) by incorporating (part of) the emulated NRF seems the obvious choice, which would also provide me with some impetus to finally integrate it with the CD-i File Viewer (wcdiview) program that's supposed to be a GUI version of cdifile but so far is just a very thin skeleton barely able to graphically display a single CD-i IFF image file passed on the command line (it doesn't even have a File Open menu) and will often crash. A proper implementation would look like Windows Explorer with a tree view on the left (CD-i file system, real-time channels and records, IFF chunk structure, etc) and a variable content display on the right (raw data view, decoded sector view, code disassembly view, graphical image view, audio playback, slideshow playback, decoded MPEG view, MPEG playback, etc).

    That touches on another area in which I did some work last month: the saving of CD-i IFF image files for each emulated video frame. The motivation for this was to bring full-resolution real-time frame saving into the realm of the possible, as it would write only about 2 x (1024 + 280 x (384 + 32)) = 247 KB of raw CD-i video and DCP data per frame instead of 560 x 768 x 3 = 1260 KB of raw RGB. At least on my PC this has turned out not to be the case, however. The data is written out fine, which is not as easy as it sounds since video line data size can vary with each line because of pixel repeat and run-length encoding, but it's still too slow. That being so, I am not really very motivated to extend the CD-i IFF decoding implementation to actually decode this information. Some kind of compression could be an option, but that takes processor time and makes things even harder and possibly slower. Perhaps using another thread for this would be a solution, on a multi-core machine this should not greatly impact the basic emulation performance nor the debugging complexity as the compression code would be independent of the emulation itself.

    So there is still a lot of work to be done, but it's all quite interesting and will provide for some entertaining evenings and weekends in the coming weeks or possibly months.

              CD-i Emulator Cookbook        
    Just a quick note that work on CD-i Emulator hasn't stopped.

    I have some wild ideas about ROM-less emulation; this would basically mean re-implementing the CD-RTOS operating system. Somewhat daunting; it contains over 350 separate explicit APIs and callable entry points and many system data structures would need to be closely emulated. But it can be done, CD-ice proved it (although it took a number of shortcuts that I want to avoid).

    I'm not going to tackle that by myself; my current thinking is to make a start by implementing a high-level emulation framework, tracing stubs for all the calls (luckily these can mostly be generated automatically from the digital Green Book and OS-9 manuals) and some scaffolding and samples.

    One of the pieces of scaffolding would be a really simple CD-i player shell; one that just shows a big "Play CD-i" button and then starts the CD-i title :-)

    For samples I'm thinking about a few easy system calls like F$CRC, F$SetCRC, F$SetSys, F$CmpNam, F$PrsNam, F$ID, F$SUser, F$Icpt, F$SigMask, F$STrap, F$Trans, F$Move, F$SSvc (I may not get through the entire list) and a new NVRAM File Manager (NRF).

    It would be nice to do a minimal UCM with Video and Pointer driver so that the simple CD-i player shell would run, but that might be too much. We'll see.

    However, it's the new NRF that would be the most immediately interesting for CD-i Emulator users. It would intercept NVRAM access at the file level and redirect it to the PC file system (probably to files in the the nvr directory). This would allow easy sharing of CD-i NVRAM files (e.g. game-saves) over player types or between CD-i emulator users.

    To allow all of the above and clean up some dirty tricks that were needed for input playback and handling Quizard, I've done some internal restructuring of CD-i Emulator. In particular, I introduced a new "handler" class beneath the existing "device" and "memory" classes (which are now no longer derived from each other but from a common "component" base class). This restructuring isn't finished yet, but it will allow the input and Quizard stuff to become handlers instead of devices (the latter is improper because they shouldn't be visible on the CD-i system bus).

    The new "module" class (a subclass of handler) will be used to add high-level emulation of OS-9 and CD-RTOS rom modules. I want to preserve the interfaces between the modules and the public data structures as much as possible, because it will allow a gradual transition from "real" to "emulated" modules.

    To prepare for all of the above I had to do some fairly heavy design, which caused me to properly write down some of the design information and tradeoffs for the first time. This will be invaluable information for co-developers (if they ever materialize), hence the title "CD-i Emulator Cookbook". Well, at present it's more like a leaflet but I hope to expand it over time and also add some history.

    Pieces of the cookbook will be added to the CD-i Emulator website if I feel they're ready.

    I've also been giving some thought on a collaboration model for the ROM-less emulation. If there is interest I could do a partial source release that would allow other developers to work on the ROM-less emulation. This release would *not* contain any non-video chipset emulation but it would contain "generic" CD-i audio and video decoding. You would still need to use (part of) a system ROM (in particular the OS-9 kernel and file managers) until enough of the emulation is finished.

    I'm still considering all this, but I wanted to get the word out to see if there is interest and to show that I haven't abandoned the project.

    Potential co-developers should start boning up on OS-9 and CD-RTOS. All of the technical OS-9 documentation is online at ICDIA and links to the digital Green Book can also be found.
              Release blues and Quizard 1.7        
    Saturday I released CD-i Emulator 0.5.3-beta1. That was a big milestone for me.

    The Internet didn't seem to feel that way. There was some interest but it was nothing compared to five years ago when the first version came out. Oh well...

    Sunday a "disc activity" indicator was suggested by a MESS tester. It seemed cool so I added it by coloring the background of the "disc activity" textbox:

    blue = reading TOC data
    red = reading CD-audio data (mode 0)
    yellow = reading CD-ROM data (mode 1)
    green = reading CD-i data (mode 2)

    I also wrote a proof-of-concept compatibility report table page for the web site so that I could view the reports entered, so far by a single user only (except myself). It needs more work, I won't tell you the URL yet :-)

    A few days ago the MESS CD-i programmer requested help in figuring out why the Quizard 1.7 game didn't work and I provided some serial port help. In the process we deduced that the 1993-vintage 68070 datasheets on the Internet all have some of the UART command bits wrong. But I found a few datasheets dated April 1991 which have it right (and so does my 68070 User Manual, luckily, which is dated November 1991). With this fixed in MESS, both emulators produced the same effect: some loading activity and then remaining at a black screen.

    Now, Quizard is one of those rare CD-i titles that require external hardware, in this case the so-called "CD-i Jamma" board that interfaces a CD-i player to the industry-standard (at one time) arcade enclosure interface. Bas wrote about this board in his Interactive Dreams blog here and here.

    Part of the external interface is a "security" option that causes the game not to run unless the proper hardware is present, and this is what was causing Quizard to remain at a black screen.

    Although it is certainly possible in principle to emulate the external board, including its security features, I was in the midst of releasing CD-i Emulator so I let it go for some time.

    But today Just Deserts/Harmony/MooglyGuy (the main MESS CD-i developer) posted details about how to "patch" Quizard to avoid the security check and he also posted sufficient details to allow emulation of the arcade case buttons. So I dove in...

    It took me an hour or two to create a special "quizard" device for CD-i Emulator that patches Quizard as needed and connects to the serial port to give the CD-i title the communications that it wants. For now I simply intercept PC keyboard digits 0 to 9 and pass them to Quizard as "button" information.

    It works alright: Quizard plays its leader and starts "attract" mode and I can even play a game!

    The following movie shows only the leader, however:

    Note also the green flashing disc activity indicator!
              Psychonauts 2 signs Payday 2 publisher, new early gameplay revealed        
    Psychonauts 2 has picked up a publisher. After ending an incredibly successful crowdfunding campaign over a year ago, Psychonauts 2 developer Double Fine has today announced it’ll be partnering up with Payday 2 publisher Starbreeze. Starbreeze will help the studio bring the game to PC and consoles in 2018, by investing $8 million. In a […]
              Godus “Late Believer” backer tier now available        
    22 Cans has temporarily re-opened crowdfunding for Godus, allowing those who missed out on earlier campaigns to get in on a few special extras. The Late Believer backer tier costs £20 and is available via PayPal directly from the developer’s website. The pack includes one copy of Godus when it launches, but more exclusively, beta […]
              Announcing the Civilization VI ‘AI Battle Royale’ on Twitch        

    Sid Meier’s Civilization VI will be in your hands soon when it launches on October 21. Soon, you’ll be able to lead one of history’s renowned civilizations to greatness, but which civ has the honor of being called the greatest? Civilization fans have been furiously making their arguments, but we feel there’s no better way to solve an argument than by letting each civ go at it in a no-holds-barred Battle Royale!

    Join us LIVE on Wednesday, October 19 at 3:30pm ET / 12:30pm PT / 8:30pm BST on as we pit eight of history’s greatest rulers against each other in an entirely AI-controlled game of Civilization VI. Find out who has what it takes to create a civilization to last the test of time!

    The developers behind Civilization VI will be giving live commentary as we watch eight AI-controlled civs go at it. Anything can happen!

    The “Civilization VI AI Battle Royale” will feature the following eight civs:
    • Aztecs
    • Brazil
    • England
    • Greece (Gorgo)
    • Japan
    • Rome
    • Russia
    • Spain
    Catch every turn, live on at 3:30pm ET / 12:30pm PT / 8:30pm BST on Wednesday, October 19. If you aren’t able to join us live, the full VOD will be posted to the Civilization YouTube channel[] shortly afterwards.

    If you haven’t caught up on everything new in Civilization VI, check out our First Look video series which showcases new civs, features, and behind-the-scenes looks at the game!

    Follow the conversation on social media by using the hashtag #OneMoreTurn, and be sure to follow the Civilization franchise on social media to keep up to date with the latest news and information on Sid Meier’s Civilization VI.
              How am I making the world a better place?        
    OK, so this started as an “I’m an indie game developer!” post, and morphed into the title you see above. Mainly because I discovered Gittip, and it’s one of those ideas that grabbed me instantly and wouldn’t let me stop thinking about it. Gittip is essentially a recurring tip jar for folks on github. (And […]
              Dzone’s Guide to Performance Optimization & Monitoring        
        In today’s constantly changing digital universe, web application performance has never been more critical for businesses. Since time is money, the faster and more effective your website loads up the better your overall ROI. Did you know that developers who considered application performance from the beginning were able to solve performance issues 35 hours faster than those who don’t?  And did you know that localizing the root cause is the most time-consuming part of fixing performance related issues? (read more)
              Wifi Password Hack v2.3.2 Latest        
    Wifi Password Hack
    Wifi Password Hack v2.3.2 Latest | 4.99 MB

    How to hack a Wifi password? This is not a easy task, so after many years we have crated a very interesting program. This program is called Password Hack v5 and Wifi hack wiil be piece a cake.

    Step 1: Just point your mouse to the social buttons bellow!
    Step 2: Click and the installation process will begin
    Next you must open the program and enter SSID code. The you only need to click “start” and the password will be broken.

    How to hack a Wi-Fi network and how to find it’s password?

    First, let me tell you what Wi-Fi is! Wi-fi is a recent technology used by gadgets to connect to the Internet without the use of wires. The Wi-Fi Alliance says that Wi-Fi represent “any wireless local area network (WLAN) products that are based on the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards”. Because many WLAN use the same standard, WLAN became a synonym for the Wi-Fi word. Interbrand invented Wi-Fi as a play on words with Hi-Fi (high fidelity), and also created the Wi-Fi logo. This certified trademark can be used only by those Wi-Fi adaptors which pass the Wi-Fi Alliance tests and standards. If it has to do with a connected cable, then the Wi-Fi network is much more vulnerable to hackers attacks. Sites which aren’t sertified with SSL and are usually unencrypted are those which will try to steal the Wi-Fi password and any other private datas such as images or account passworrds. Even this intruder will try to take them, it will be harder for them if the router is protected with WPA, WPA2 or WEP encyption security. An extra feature extra from 2007, known as Wi-Fi Shielded Startup (WPS), experienced a serious catch in which let a great hacker to recoupy the actual router. The latest router devices come with the strongest protection ever known and are very hard for hackers to be breaken into. That’s, of course, if you don’t change the password with which is proveded. Ussualy, the routers have generic names and passwords such as the brand or name of the router, or even admin or 1234 as username and password.

    The Wi-Fi is used nowdays for devices such as PC, Video Console such as PS 2, Ps 3, Xbox 360, PS portable (except the E-1000 one) and any other console which have 3G or Wi-Fi connection toghether with laptops and smart and non-smart phones. Those devices can access the Wi-Fi by using the sho called hotspots, where free internet is ussually given by restaurants or Internet providers. You need to be within 100 m to receive the signal, and it can only be received outdoors. What you receive indoors is the signal of a neighbour’s router, not a hotspot one. Hotspots can have low signals (10-20 meters) to strong signals, which take a few kilometers.
    Any device which has Wi-Fi connectivity can receive Internet signal from this hotspots. The interconected devices are called hang-outs and can be seen each other for distances of over several miles. Outdoor open public Wi-Fi technologies have been used properly with wifi mesh networks with Liverpool, London, and gennerally in the big cities from all the United Kngdom. Wi-Fi is a great way for companies to promote their businessess; it’s very clear that, if there are two restaurants with the same prices and services, but one have also Wi-Fi connectivity, the one with the Wi-Fi will win. And it is not too expensive to provide Wi-Fi, just connect the Internet cable to a router and let it flow. Enthusiasts or perhaps specialists who want to offer products and services or even to enhance company with selected parts at times offer no cost Wi-Fi gain access to. Also there are companies which, in exchage for space used by antena’s on the rooftop of the flat of blocks, gife free internet in that flat. The are radions risks but who cares when you have free Internet, right? I thought so!
    If you want to aquire a router, take a brand one, like Belkin or D-link, because the no-name chinese ones are very vulnerable to hacker attacks and can break easely. Don’t risk to lose all your money from the bank accounts or images with your daughter naked posted on the Internet just because you did’t wanted to spend a couple of extra pennies at the right time.

    The same can apply to a mobile, battery powerd router, which is included in every cellphone existent. Many phone provider give free traffic for their clients in WAP, 2G, 3G or even 4G connectivity, depending on the country you live. Almost all smartphones have nowdays a easy OS to use such as Android, iOS, and the now dead Symbian OS, which make possible to connect to any Wi-Fi decive and also to interconnect. Internet pucksgive separate services in this sort at the same time, without use of any touch screen phone; these include this MiFi, as well as WiBro branded equipment. Out there are also many devices such as notebooks, ultrabooks and even laptops which use Wi-Fi to find any information the users want.

    Now, let’s turn back to the topic of this article. How to hack a Wi-Fi network and how to find it’s password? This is a question many people asked. But now you don;t have to ask yourself anymore. Here is the sollution to all those frustrating days when you were at countrysite, isolated from the rest of the world and you found just a single, slow router. And that was passworded too. Then you and your phone are useless. That’s why our team of developers invented the most powerfull tool on the internet:

    Wi-Fi password Hack v5. With a beautifull design, a silverish skin and a blueish font, this is one hack which is very, vet, very easy to use! Even my granddaughter Mary managed to use it in order to play with her virtual friends on the Internet. What do you have to do? First, type the SSID of the router. Ussualy is admin or the model of the router: you can just find it by scanning with the Windows utilities. Next, choose the security type: it could be WEP, WEP 2 or even WSK, it depends on the router. It doesn’t matter what type of security is, every type is hackable. Next, press on Start hacking and the program will handle you the password. Now you have free internet. Congratulations!

    Download Link
              CastleStorm 2013 Steam Rip MULTi10 3DM        
    CastleStorm 2013 Steam
    CastleStorm 2013 Steam Rip MULTi10 3DM | 264.76 MB

    Year of release : 2013
    Genre : Action, Indie, Strategy
    Developer : Zen Studios
    Publisher : Zen Studios
    Platform : PC
    Language : English, German, French, Italian, Spanish, Hungarian, Japanese
    Sound language : English
    Publication Type : License
    Medicine : Present (3DM)

    A mixture of real-time strategy and tower defence, in which the player builds their own lock and defends him from attacking enemies.

    System Requirements:
    √ Operating system: Windows XP / Windows Vista / Windows 7/Windows 8
    √ Processor: Dual Core CPU@2.00GHz
    √ Memory: 1 GB
    √ Hard drive space: 800 MB
    √ Sound device: compatible with DirectX 9.0c
    √ Video card: GeForce 8600 / Radeon HD 3670 / Intel HD 4000

    Download and Play!

    CastleStorm 2013 Steam Rip

              The Value Of Battlefield 4's Spectator Mode        

    Spectator mode is back for Battlefield 4, and the developers at DICE excitedly talk about it in the game's latest blog entry.

    DICE developers Daniel Matros and Dennis Brannvall discuss the usefulness of spectator mode in Battlefield 4 in the game's latest official blog entry.

    The duo go over the different cameras at your disposal, the UI, and the mode's tie to competitive e-sports.

    Battlefield 4 hits the PlayStation 3, Xbox 360, and PC on October 29; PlayStation 4 on November 12; and Xbox One on November 19.

    For some footage of the game's beta, take a look at this recent video.

    [Source: DICE]

              Everything We Know About Battlefield 4 Multiplayer        

    At the EA booth I jumped into a 64-player conquest battle in the Siege at Shanghai map. After playing through a couple rounds and speaking with executive producer Patrick Bach, here is what I learned.

    • The Xbox One, PlayStation 4, and PC versions eac h support 64-player maps and run at a solid 60 frames per second. The Xbox 360 and PlayStation 3 versions, however, are still limited to 24-players per match and 30 frames per second. 
    • Squads can now include five soldiers instead of just four.
    • Given the larger squad size, Squad Deathmatch mode now includes more competitors. 
    • Like Battlefield 3, the soldier classes you can play as are assault, engineer, recon, and support. All classes now have more shared weapons so players have more versatility when selecting their loadout.
    • Each class and weapon has a deeper persistance tree than previous Battlefield games.
    • DICE is changing how specializations work. It won't go into the finer details, but the developer is creating a system where you and your squad can bump up your specializations as you play if you are doing well. 
    • Gun and player customization are being broadened. You can now have multiple sights on your weapons and add optical magnifiers on the fly.
    • Vehicle progression is deeper as well. 
    • DICE has two new game modes it plans to reveal in the near future, and it plans to drop a few modes that were featured in Battlefield 3. The confirmed modes thus far are squad deathmatch, conquest, rush, and team deathmatch. 
    • Hardcore mode is returning.
    • The crazy wave technology featured in the E3 single-player demo is also coming to multiplayer. All the wave data is being pushed over the network, which means that every player will have the same sea experience at the same time.
    • Given the increased focus on naval combat, DICE is making sure you aren't a sitting duck if you lose your sea vessel or parachute into a body of water. Soldiers can now swim sprint, use sidearms in the water, hit the crounch button to dive underneath the surface of the water, and even deploy C4 to take out boats.
    • Players can rent their own Battlefield 4 servers on consoles from day one, and DICE plans to give them more server modifiers than were available in Battlefield 4.   
    • DICE knows the destruction in BF3 was disappointing so destructibility is coming back in a major way. Expect to see the microdestruction introduced in the Close Quarters map pack, plus large-scale destruction like the crumbling skyscraper in the E3 demo. 
    • You won't be able to completely flatten urban areas, which is a design choice rather than a technical limitation. 
    • Like Titanfall, DICE is using a proprietary matchmaking service instead of using the Xbox One native service.
    • DICE is also incorporating a skill level system on top of your player rank to help match you with players of a similar ability. You can set your rented server to only accept players of a certain ability.
    • DICE learned its lesson with Battlefield 3, and plans to keep a healthy amount of DICE sponsored servers for people who don't want to deal with the quirky rented servers.
    • Rather than build its own battle recorder, however, DICE plans to use the Xbox One and PlayStation 4 recorders.
    • Battlefield 4 also includes a spectator mode.
    • Given the difficult learning curve for some of the more powerful vehicles like jets and helicopters, DICE is including a practice mode or tutorial system of sorts so you can learn the tricks of the trade without hurting your team in a ranked match.
    • Battlelog is being revamped to be more directly integrated into the game and to give console players the same experience as the PC version. DICE wants the console players to have the ALT-TAB experience just like PC players, so you can check your stats at any time.
    • You can alter your loadout directly from the Battlelog app so it will be ready for you when you jump into a match.

    (Please visit the site to view this media)

    Commander Mode

    • You can play as a commmander on consoles, PC, and tablets.
    • Right now commanders are featured in two modes - conquest and rush. DICE also has some new modes that it isn't talk about yet.
    • Commanders gain experience and have a persistant skill tree just like other classes.
    • Unlike Battlefield 2, commanders don't have a physical presence on the battelfield. 
    • The commander roles are not counted against the player count. This means 64 soldiers will be on the battlefield with two commanders overseeing the battle.
    • DICE is aware that given the small number of commanders per server, there could be a supply/demand issue. To address this issue, it has created a gating system that prevents everyone from being allowed to play as commander.
    • If you are having trouble getting a commander role, you can always rent a server yourself and assume the role.
    • Commanders can issue orders to squads and deploy UAVs to spot troops. When the squads follow directives, the commander and soldiers are rewarded with XP. 
    • As they gain XP, commanders can use it to drop in ammo, med packs, and vehicles to their troops.
    • The more flags a team captures in conquest, the more weapons a commander has at his or her disposal. These offensive capabilities include tomahawk missiles and artillery strikes.
    • DICE views the commander mode as a game of chess between the two commanders. They are scored against one another. 
    • You can keep an eye on what the rival commmander is doing and counter their moves. For instance, if they scan an area you can try to jam their signals. If they drop in specific gear you can counter that in different ways. 
    • The commander's eye in the sky view is also used for respawns and spectator mode. It works the same way on all platforms.
    • DICE has rulesets to help populate maps with two commanders, but if one of the two commanders drops out the developer doesn't believe it will be a big issue for the guys on the ground.

    Battlefield 4 is coming to PC, Xbox 360, and PlayStation 3 on October 29. The Xbox One and PlayStation 4 release dates have yet to be announced.

              Top Ten Blog Entries of 2012        

    Just saw Ray Camden's Most-viewed blog entries of 2012 post and it made me curious about the most-viewed posts on my blog over the last year. A little bit of SQL and some regex query and replace produced this list:

    Adobe ColdFusion Developer Week42385
    Clojure at cf.Objective()?42187 0.2.238794
    DI/1 0.3.1 released38191
    FW/1 (for Clojure) Updated37331
    Clojure 1.4.0, clj-time, congomongo36092 0.1.435726 0.2.335634
    Remote Debugging35543
    Clojure & CFML Sitting In A Tree35300

    Nice to see that a fairly generic CFML post was the top entry, and that DI/1 has garnered quite a bit of interest. I was actually surprised that the Clojure JDBC library announcements were so popular. Five of those top ten posts are tagged with 'coldfusion' (and often other tags too) so I figured I'd also post the next five most popular CFML-related posts:

    Clojure & CFML Sitting In A Tree Down Under32672
    Work at World Singles? CFML / Clojure Developer wanted!32237
    FW/1 1.2 and Open BlueDragon32201
    World Singles is Hiring! Again!31206
    Java, CFML and Frameworks29644

    Two of my hiring-related posts got a lot of traffic - those old posts refer to positions that are no longer available but if you're still interested in working at World Singles, check out my most recent post about the three positions currently open!

              2007 in Retrospect        

    As I did in 2006, here's my review of 2007. For some strange reason, I decided to make some New Year Resolutions in 2006. How did I do? I said I'd do more unit testing - and I did, but there's always room for more unit testing. I said I'd do more open source. Well, I released Fusebox 5.1 and Fusebox 5.5 as well as my Scripting project and a cfcUnit facade for CFEclipse so I think I did alright there. I also said I'd do more Flex and write some Apollo (now AIR) applications. I didn't do so well on those two! I think I'll revert to my usual practice of not making resolutions this year...

    2007 was certainly a year of great change for me, leaving Adobe in April (a hot thread with 62 comments!) to become a freelance consultant, focusing on ColdFusion and application architecture. I also worked part-time on a startup through the Summer but consulting has been my main focus and continues to be my total business as we move into 2008.

    2007 also saw me getting much more involved with the ColdFusion community, rejoining all the mailing lists that I hadn't had time to read with my role at Adobe, becoming an Adobe Community Expert for ColdFusion and then taking over as manager of the Bay Area ColdFusion User Group.

    I also got to speak at a lot of conferences in 2007:

    I also attended the Adobe Community Summit which was excellent!

    ColdFusion frameworks were also very busy in 2007:

    Adobe was extremely busy too:

    • Apollo (AIR) hit labs in March
    • The Scorpio prerelease tour (Ben came to BACFUG in April) with the ColdFusion 8 Public Beta in May and the full release in July
    • Creative Suite 3
    • Flex began its journey to open source
    • The Flex 3 and AIR Beta releases
    • Adobe Share

    I had a number of rants:

    Other good stuff from 2007:

              re: EA And DICE Share Learnings From Battlefield 4 Beta        
    Agreed on the 'Skeptical' aspects so close to launch. I know budgets and schedule restraints, but with titles being bigger and bigger, 'testing phases' need to be more then a 2week run.

    After the Alpha is complete and they near Beta, there needs to (2) Beta cycles. Both to be on a 2-3 month window total. Beta 1 is exactly for what BF4 and so many other titles do, Stress Test. Lead players to give copious amounts of feedback. Then let the developer go back and work on what is high priority for a month or more as needed. Then release Beta 2 and make sure all the bugs that were tried to fix work and get again, copious amounts of feedback from the players. Then go gold.
    From here the dev/pub gets a deeper understanding of their product in wide release along with a small or even no launch patch.

    We see so many games launch with issues and the rage is huge across the net. Dev's/Pub's feel that, not only the short term but long after. They can only do so much in QA, I know, I've been there. The real world is where you find so much more about your product. It's great PR and having players help more then the dedicated ones in the forums, give you what all dev/pubs want and that is a fun, clean, great product that people will continue to play and give great word of mouth.


              EVENT: Microsoft Edge Web Summit 2017 – Seattle, WA, Sept 13, 2017        
    Web developers take heed!  Microsoft Internet Explorer 11 is no longer being invested in & Microsoft Edge will be replacing IE11 as the OS browser for all Windows versions in the future. Get involved with the summit today! Microsoft Edge Web Summit is a free conference presented by the engineers building Microsoft Edge. The main […]
              Measuring graphics performance        
    If you want to measure the render time, it doesn't work very well with a standard OS timer function. The reason for this is that OpenGL will do some of the work in the background, which means your timer function can return a value close to zero. There is support in OpenGL 3.3 to request the actual render time, using queries. This is done in a couple of steps:
    1. Request OpenGL to begin the query.
    2. Do the Draw operation
    3. Request OpenGL to stop the query.
    4. Read out the result of the query.
    The problem is that you obviously can't read the result until the drawing is done. And as already mentioned, the actual drawing may be done in the background and still not be complete when you ask for the result. That means that OpenGL will have to wait until the drawing is actually done, and then return the result. This can severely degrade the performance. It could be okay if you only do this during development, but it will screw up the timing of other functions, and be less helpful.

    The result of a query is available until you start the next query on the same query ID. As long as the result isn't requested too early, the pipeline will not be disturbed. The trick I am using is to read out the result the frame after, instead of in the current frame. The draw back is that the result will be one frame old, which is not a problem for doing statistics. That is why, in the pseudo code below, I read out the result first, and then request a new query to be set up.

    GLuint queries[3]; // The unique query id
    GLuint queryResults[3]; // Save the time, in nanoseconds

    void Init() {
        glGenQueries(3, queries);

    The main loop is as follows:

    bool firstFrame = true;
    while(1) {
        if (!firstFrame)
            glGetQueryObjectuiv(queries[0], GL_QUERY_RESULT, &queryResults[0]);
        glBeginQuery(GL_TIME_ELAPSED, queries[0]);

        if (!firstFrame)
            glGetQueryObjectuiv(queries[1], GL_QUERY_RESULT, &queryResults[1]);
        glBeginQuery(GL_TIME_ELAPSED, queries[1]);

        if (!firstFrame)
            glGetQueryObjectuiv(queries[2], GL_QUERY_RESULT, &queryResults[2]);
        glBeginQuery(GL_TIME_ELAPSED, queries[2]);

        printf("Terrain: %.2f ms, Transparent: %.2f ms, Monsters: %2.f ms\n",
            queryResult[0]*0.000001, queryResult[1]*0.000001, queryResult[2]*0.000001);
        firstFrame = false;

    C++ Implementation

    For a C++ class automating the measurement, see Ephenation TimeMeasure header file and implementation file.


    If you have a graphics card from AMD, there is a tool available that will give very detailed timing reports: GPUPerfAPI.

    Revision history

    2012-06-13 Added reference to AMD tool.
    2013-02-07 Added reference to class implementation.

              Playphone and Cocos2d-x: A Seamless Integration        
    Playphone’s After Hours Party at GDC 2016 is right around the corner! Join GungHo and other amazing Cocos2d-x developers as we celebrate the astounding accomplishments of the past year while looking forward to a brighter future.  Get your tickets today before they run out. Cocos2d-x is a free and professional game-development toolkit, that enables developers […]
              Playphone Takes Its High-Powered Game Store to GDC        
    It’s that time of year again! The Game Developer Conference makes its way back to the Bay Area March 14-18 for GDC 2016. Not one to miss out on such an event, Playphone will be attending and hosting its own after hours party to celebrate the week’s festivities. Playphone is coming off a stellar 2015 […]
              Partnership Has It’s Privileges. Announcing Playphone Partners.        
    At Playphone, we’re dedicated to building robust, long-term relationships with our game developer partners. We understand that creating a game is a challenging labor of love, and that distribution & reach is often a challenge. That is why we are tirelessly seeking solutions to continually improve the Playphone developer experience. We want to make it […]
              By: CalGard        
    [quote comment="122245"]I am not a 100% sure about this PILOT program but from what I understanding didnt we give developers and incentive to develop. Even though there was no reason to. Well if the paper work wasnt found wouldnt these places than have no legal proof they were a pilot and have to pay real tax. Including any increases and the current going rate? wouldnt that be a win for the tax payers for once?[/quote] We are talking about legal contracts. The attorneys as well as the city and the developers should have these. That the Mayor's office (including our municipal counsel) don't have these contracts is disgraceful and an insult to taxpayers. We need to see the details of all these agreements to find out how bad things are this year and will be in the future.
              By: hobokenj        
    I am not a 100% sure about this PILOT program but from what I understanding didnt we give developers and incentive to develop. Even though there was no reason to. Well if the paper work wasnt found wouldnt these places than have no legal proof they were a pilot and have to pay real tax. Including any increases and the current going rate? wouldnt that be a win for the tax payers for once?
              By: KenOn10        
    I am shocked, SHOCKED that this paperwork is lost. But, but, but, but what about our developer give-backs? The pool? The park-in-the-sky? The community center? How can this be? For future reference, whenever PILOT is proposed, remember that the term "win/win situation" is an abbreviation for "win/win/bend-over situation" involving THREE parties: 1) developers win because their properties have low and stable taxes (and are thus worth more). Winners! 2) city politicos who get hefty campaign contributions (and maybe more). Winners! 3) city taxpayers who get to pay the developers portion of school and county taxes... and to pay the developers portion of any municipal tax increases. Losers! That's okay, I have lots of extra money these day. :evil:
              VMworld: 8 VMTN Community Opportunities You Don’t Want to Miss        

    VMware Technology Network is fueled by customers, partners, and employees like you, who take the time to read and contribute information to our VMware ecosystem. Under the VMTN umbrella, all of community is captured – from bloggers, to vExperts, to developers in {code}, to CloudCred leaders. To recognize VMTN Community contributors, there are going to […]

    The post VMworld: 8 VMTN Community Opportunities You Don’t Want to Miss appeared first on VMTN Blog.

              Young App Developers Presented 2015 Appreneur Scholar Award by Living in Digital Times        

    Brooke Martin and Zach Burmeister will be Honored for their Mobile App Creations at 2015 International CES®

    (PRWeb January 08, 2015)

    Read the full story at


    Wp-config.php is the single most important file in your entire WordPress installation. This file can be used to configure database functionalities, enhance performance, and improve security on all WordPress powered websites and blogs.

    Debugging WordPress

    For developers, WordPress has this [...]

              Přizpůsobení administračního rozhraní        

    White Label CMS…e-label-cms/

    The White Label CMS plugin is for developers who want to give their clients a more personalised and less confusing CMS. Allows customization of dashboard and logos, removal of menus, giving editors access to […]

              REQ: Frontend/UI Developer @Jacksonville, FL        
    FL-Jacksonville, Hi, Hope you are doing well. This isNareshfromAITA Consulting services.We are hiring for a Frontend/UI Developer forone of our client atJacksonville, FL.Please find the below job description and let me know your interest with your update resume to Role: Frontend/UI Developer Location: Jacksonville, FL Duration: 12+ months Employment type: W2 only DESCRIPTION Responsible for devel
              New Grml developer: Darshaka Pathirana        
              ÐšÐ¾Ð½ÐºÑƒÑ€Ñ IGDC №145 «Game Boy»        

    На ресурсе Independent Games Developers Contests стартовал новый конкурс для разработчиков игр с темой «Game Boy». Это значит, что для участия принимаются проекты с условными ограничениями портативных ретро-платформ Game Boy и Game Boy Color от Nintendo. Это касается разрешения игры (160x144 пикселя) и управления...

              Blog: Making an App Worth Buying: 11 Expert Developers Weigh In On the Future of App Development         

    Blog: Making an App Worth Buying: 11 Expert Developers Weigh In On the Future of App Development



              Dev Creates Almost Functional Apple Watch Game Boy Emulator        

    iOS developer O’Flaherty-Chan has created an almost functional Apple Watch Game Boy emulator. It isn’t perfect, and it has some fatal issues which will be pointed out shortly, but if he could fix those issues, it might make the Apple Watch worth digging out from the back of that drawer you left it in. Whilst he has […]

    The post Dev Creates Almost Functional Apple Watch Game Boy Emulator appeared first on eTeknix.

              Blackberry Ceases Hardware Division        

    Blackberry’s position in the smartphone market has been precarious for some time, and they’ve struggled to compete with Apple and a huge range of other manufacturers. Of course, the same predicament applies to Microsoft’s mobile division and encouraging developers to invest time into a platform with such a small market share is frankly, impossible. Eventually, […]

    The post Blackberry Ceases Hardware Division appeared first on eTeknix.

              Apple WWDC 2016 Dates Revealed        

    Every year in June, Apple hosts their WWDC event and this year is the same. During the Worldwide Developers Conference, Apple usually announces new OS X, iOS and other OS revisions. After running from June 8 to 12, this year’s event will go from June 13 to 17. Interestingly, the first about the dates came out […]

    The post Apple WWDC 2016 Dates Revealed appeared first on eTeknix.

              Windows Phone Market Share Falls        

    Microsoft’s entry into the smartphone market has been extremely challenging due to the popularity of Android handsets, and Apple’s loyal user base. Despite the company’s best efforts to hone a user-friendly operating system, it’s really struggled to make an impact. Unfortunately, Windows Phone users are a niche, and many app developers like Snapchat refuse to […]

    The post Windows Phone Market Share Falls appeared first on eTeknix.

              Apple expedited version 6.5 - available now        
    Good news!

    I found out that Apple has a process for expediting the app review and release process.  This can only be used in extraordinary circumstances, but I tried my luck as I thought the Streetcar issues and iOS6 bugs were quite bad.  They agreed - so this release was reviewed in about 17 hours (as opposed to a week). This may be the only time I'm allowed to do this.

    Here is what version 6.5 contains:

    • Full support for New Portland Streetcar Central Loop Line, including Streetcar map. (The original data all the developers were given was wrong so I had to do a quick update to make it work).
    • iOS6: Fixed crash when GPS finds no nearby stops (a hidden issue that only showed up on iOS6).
    • iOS6: Fixed calendaring (users have to give permission to use the calendar)
    • iOS6: Fixed orientation issues.  (Here's what happened:  Apple changed the way that apps detect that the device has be re-oriented in iOS6, and I didn't notice).
    Bad news!

    I know of one bug remaining - the stop at NW 10th and Northrup (ID 13604) only shows CL line arrivals.  I think this is a news stop on the NS line also, judging by the ID,  so I missed it.  A fix will be presented for this next week.

    Here is the new streetcar map in action:

              Version 6.4 will be available today!        
    This version is all about iOS6!

    1. Support for the new streetcar loop DOES NOT WORK.  The problem is all the developers were given incorrect information about how the data would work, and it is too late for me to fix in this release!  I will update this next week, I already have the code updated but it takes time to test.
    2. Initial support for new iOS6 map routing - if you ask for a transit route in the map and the route starts and ends within the TriMet area, the new map app will load up PDX Bus and use the routing in PDX Bus.
    3. Initial support for iOS6.  Full screen iPhone 5!
    4. Unfortunately this will not support the original iPhone running iOS3 or anything earlier than iOS 4.3.  If many people ask I could make a new app just for that - but very few people are still using those devices.

    There is a known bug:  in iOS6 PDX Bus will crash if the location services screen fails to find a stop. I found this too late - it is also in the previous version so this is no worse.  :-( I have the fix, it will also be fixed next week.
              PDX Bus is working again!        
    Update: no need to delete PDX Bus, It will update automatically.

    Apple appears to have fixed the issue in the App Store. If you downloaded PDX Bus and it does not start, just update it again and all will be good. This was not my fault - Apple appears to have corrupted the updates made yesterday.

    Meanwhile, news of the many apps that got corrupted has been all over the web!  Thanks to Marco (and to Tim who showed me this site - I had also investigated an come to the conclusion it was corrrupted):

    Then all the tech blogs went with it - PDX Bus even gets a call out in Gizmodo.  Any publicity it good publicity, right?

    Thanks for your patience.  I have asked Apple to revoke all of the bad ratings from the last two days - as this was not my fault.

              Why don't I write an Android version of PDX Bus?        
    This is one of the most common questions about PDX Bus,  and I have not really answered it.  So here goes!

    Firstly - part of me really likes the idea of porting the app to Android.  Being an iPhone developer for a free app can be incredibly annoying:

    • I have to pay Apple $100 a year for the privilege of being able to put an app on a device.  (Yes the Civic App awards prize money covers that, but it i still annoying that actually I am the only one who has to pay to use PDX Bus!).
    • The app approval process is still slow and feels random.  You may get rejected as Apple may simply decide your app does something they don't like.  It can take anything from 2 days to 2 weeks to get approved.
    • Technically, the apps in the app store cannot be "free" by the definition of the GPL - apps cannot be shared or modified by their users.  Kids can't experiment with writing apps.  It feels like censorship. This is just annoying.
    So why don't I just recompile it for Android.  :-)  Here this bit gets technical.  Basically I'll have to start again... (Skip this technical bit...).

    • PDX Bus is written entirely in Objective-C, Android apps are written in Java or recently C/C++.  You might think that this is a small difference...  Objective-C is quite different from these languages in syntax. The code looks really different, it would need completely re-writing.
      • The back end data retrieval code is tightly coupled to Objective-C frameworks.  For example, Apple provides an XML parser - this returns the tags and data in Objective-C associative arrays ("NSDictionary") from which you access the XML tagged data and place it into objective-C objects for use by the UI.  This'll need completely re-writing.   PDX Bus currently deals with 10 different XML schemas for the different data.
      • The GUI is written entirely with Apple frameworks (UIKit) and none of it can be re-used - Android GUIs have a completely different paradigm.  The GUI has been a lot more work than the back end.     Even the Google Maps API is completely different on the two platforms.
    Summary:  Almost none of the PDX Bus code can be re-used as-is for Android.  Some of the design and flow could be re-used, but still, there would be a lot of re-coding.   I don't have the time for this!


    This would be an awesome feature for theme developers.

              JavaScript Developer/User Experience Specialist - University of Georgia - Athens, GA        
    The applicant will bring an interest in exploring and integrating new technologies, working with biologists to help translate complex scientific use cases into...
    From Indeed - Fri, 14 Jul 2017 13:36:12 GMT - View all Athens, GA jobs
              In a Mid-Century Raleigh Neighborhood, New Mansions Are Built So High They Block Out the Sun        
    One family went to court after a developer built a twenty-eight-foot wall next to their house Members of the Glover family have lived for more than fifty-eight years in a one-story house on Raleigh's Churchill Road, where they have often enjoyed afternoons filled with bright western sunlight. That was true, according to a court filing, until a developer proceeded with construction on a thirty-two-hundred-square-foot house on the 0.23-acre lot next door.…
              Will Emergency Central Bank Liquidity Save China's Shadow Lenders And The Economy?        
    Besides banks, non-bank lenders including trust companies, insurance firms, securities firms, leasing companies, pawnbrokers and other “informal” lenders have been borrowing in the short term money markets to lend to developers, speculators, consumers and especially local governments.
              iOS 7 Tech Talks: Apple kommt nach Deutschland        

    Bildschirmfoto 2013-09-25 um 21.36.51

    Da die Tickets für die WWDC 2013 innerhalb von Sekunden ausverkauft waren, veranstaltet Apple noch in diesem Jahr, unter anderem in Europa, sogenannten “Tech Talks”. An zwei Tagen können Developer sich Rat und Tricks über App- und Game-Entwicklung für iOS holen.

    Alle registrierten Apple Entwickler können sich für einen Platz bewerben. Laut Apple werden die Tickets per Zufallsgenerator vergeben. Anmelden kann man sich bis zum 27.September um 19:00 Uhr deutsche Zeit.

    Als deutsche Stadt wurde Berlin ausgewählt, und zwar am 12. und 13. Dezember 2013. Also an einem Donnerstag und Freitag.

    London ist …

              Welcoming Karl Grambow to Coeo        

    After a massive search for our next ‘Mission Critical SQL Server DBA’, I’m very pleased to announce that we welcomed Karl Grambow into our team this week!Rambo?

    Karl joins us from Microsoft Consulting Services (MCS) in the UK and started his career as a SQL Server 6.5 Developer before moving quickly into the operational DBA space where he’s been ever since.

    He also dabbles in .NET and SSMS-Addin development and has created a versioning tool called SQLDBControl.

    Outside of work he enjoys photography and Formula 1 and has recently become a Dad for the second time (congratulations!).

    Welcome Karl, we’re all looking forward to working with you!

    Karl will be manning our stand at SQLBits10 this week so if you’ll be there, be sure to say come over and say hi.


    Christian Bolton - MCA, MCM, MVP
    Technical Director - SQL Server Consulting & Managed Services

              Mulesoft Technical SME        
    NY-Tarrytown, Experis has a Mulesoft Technical SME opportunity available in Tarrytown, NY! If this opportunity sounds interesting keep reading for more details! - Experienced MuleSoft administrator, developer, and architect - Need to help solution overall MuleSoft design, integration patterning, and architecture - Collaborate with Program Architect, Technical Architect, functional leads, and other team members
    NY-White Plains, Top Prospect Group has an outstanding direct hire role DRUPAL development role with our local services client. As always we are speaking directly to the hiring manager. Compensation is flexible depending on experience. We can go into low six figures!!! We are seeking for a talented and self-motivated Drupal developer to join our development team. You will have the opportunity to work at solving ch
              Blog Post: Beyond: Two Souls A Game Unlike Any Other         

    Going in to Beyond: Two Souls I wasn't sure to what to expect. Since its release in October I've heard a multitude of opinions, most of which have been polarizing and often times contradicting. At the time many renowned journalist and gamers alike gave Beyond: Two Souls unimpressive scores, while others vehemently sang its praises. Some have told me to "stay away from it", that it's "not much of a game". Yet some of my friends have told me that it's "dope" and an "unforgettable experience". Why so many opposing opinions? I suppose it could all be chalked up to personal preference. That being said, while my review may not serve as that needed guiding light amidst the sea of confusion I will try my best to provide an unbiased and accurate account of what I've experienced.


    What is Beyond: Two Souls

    To sum it up briefly for those who may be unfamiliar with the title, Beyond: Two Souls is an interactive drama game release October 8th 2013, that revolves around a protagonist by the name of Jodie played by none other than Ellen Page, and the mysterious spirit attached to her. The game spans a whopping 15 years, chronicling Jodie's journey through life all the while being bound to inexplicable entity. Among Ellen Page, the all-star cast consists of big name stars such as William Dafoe and Kadeem Hardison.



    Let us start with the narrative. Beyond: Two Souls is a game whose narrative could be best described as surreptitious. The lack of a consistent chronological order results in a cryptic timeline left for the player to decode and the load screens to piece together. Even after finishing the game there are still a few sequences whose proper order I am uncertain of. Might this be frustrating? For some players yes, indeed it was. For me, overall I found it challenging and suspenseful. Not knowing what would come next and seeing how an event in Jodie's adolescence connected to an occurrence in her childhood was an exciting experience. The absence of a coherent passage of time makes the decisions you make all the more difficult. You are not only without knowledge of how these decisions may affect your future but you are also without knowledge of past events in Jodie's life, leaving you with no guide on how to approach her current situation. This strange choice in storytelling makes for an interesting scenario when making important choices and leaves you open to unknowingly creating a less desirable outcome for yourself. Even still, if you do not find Quantic Dream's attempt at raising the stakes to be a justifiable enough reason to dismember and dishevel the storyline you can at least take solace in knowing that the cause of such a peculiar approach to the games narrative is explained at the end of the game making it less out of place than it may initially seem.

    Moving away from the confusing sequence of events, Beyond: Two Souls does an excellent job of making you feel for the protagonist and even some of the side characters. Scenes of a helpless and forsaken child, the struggles of the lost and demoralized homeless, and the almost constant looming presence of death all make for blockbuster worthy tearjerkers. There may even be moments when you're shouting at your TV screen, or times when you sit in utter silence reflecting on the severity of Jodie's predicament. Whatever you reaction may be one thing is for certain, you will have a reaction. Quantic Dream absolutely went out of their way to make the player feel and it's one trophy they've most certainly earned.



    The graphics in Beyond: Two Souls are breathtaking! They are probably the best PlayStation 3 graphics that I've seen to date.  While Beyond: Two Souls doesn't perfectly nail Nikon quality realism there were times that I had to double take because the facial shots looked so realistic. If you thought Heavy Rain's graphics were incredible then it's safe to say that you'll be blown away by those of Beyond: Two Souls. Even small particles at times appear with perfect clarity, something that not many game developers have been able execute. However, even though Beyond: Two Souls flawlessly pulls off facial graphics at times the remainder of a characters body can appear stiff and generic. While this is not a persistent issue, it does exist and it's one I'd like to see resolved in future Quantic Dream productions.



    One of the biggest arguments against Beyond: Two Souls is that it lacks gameplay. I believe that the correct argument would be to say that it lacks traditional gameplay. Beyond: Two Souls consists of a mixture of simple motions and Quick Time Events with a tad bit of strategic button pressing. You can fight a host of enemies in hand to hand combat, stealthily move about rooftops to avoid potential combatants, send your tethered soul Aiden off to wreak havoc, use your psychic prowess to see in to the windows of the past, or even just use the controls to pick up your favorite stuffed animal. The reality is there is more that you can do, than there is that you can't do. Given the cocktail of ways to approach the environment it almost doesn't make since to insinuate that there is no gameplay. I think the problem for some people is not so much the lack of gameplay but the inability to spontaneously choose how to interact with the environment. In some situations you'll simply be able to use the controls to navigate Jodie or Aiden and examine items. There are even some instances where you are even restricted in which soul (either Jodie or Aiden) that you can use. Overall no game is one hundred percent freedom of choice, however the gameplay in Beyond: Two Souls is indeed heavily scripted and for some such rigorous linearity can become trite and mundane.



    I cannot speak of the gameplay without speaking of the controls. The controls were by far my biggest and perhaps only serious issue that I have with Beyond: Two Souls. They made the gameplay down right painful at times. I cannot begin to tell you how often I found myself repeatedly walking in and out of the same door frame simply because I could not master the ability to move with the camera. But the changing camera angles aren't the only reason I had difficulty. In the fight scenes and QTE's you are tasked with reading Jodie's body movement and in response you are supposed to move in the direction that she moves. The issue is that I often couldn't tell where she was moving! Just as I would think I've finally got things down packed she'd move in a way I just couldn't quite decipher and everything would begin to go downhill from there. I believe that it's safe to say that if Beyond: Two Souls wasn't such a linear game the poor control scheme would have resulted in many a "Game Over" screens. As I've only played Beyond: Two Souls all the way through once I can't say with certainty as to whether or not your  performance in the fight scenes really makes a difference to the story or not, but if by chance it does that is all the more reason to dislike the poor controls. Luckily, the storyline progresses whether you perfectly completed a fight scene or not, however that does not excuse the iffy control scheme!


    So what's the verdict?

    Overall I would say that Beyond: Two Souls is a great game! The storyline is interesting and at times extremely moving. The decisions, while sometimes seemingly insignificant are weighty and challenging in terms of predicting the resulting outcome. The graphics are superb and almost always unfaltering. And the gameplay, while frustrating to some is different and innovative to others. However the control scheme is at times abysmal and has a tendency to consistently negatively affect gameplay. And as well written as the game is, and as much as it makes you feel for Jodie, there are other characters whose purpose you'll be left pondering as they are immediately made irrelevant by a shift in the timeline, and most often in my experience never revisited. Beyond: Two Souls is most certainly a great game but it is not without its flaws. Because of this, I would give it an 8 out of 10. However, due of the variations in every individuals personal preference it is a game that I recommend everyone to go play and see for themselves. 

              The Rantings of an American Evangelist in London        
    In April of 2006 while still a content strategist and community manager of the SAP Developer Network, I raised my hand to help create and launch a sister community to the SAP developer network designed for business architects, process consultants and more functional consultants in our ecosystem. It was to be the Business Process Expert Community.
    In May of 2006 I went to our yearly SAPPHIRE business event and there met with blogger/analyst Dennis Howlett (expatriate Brit and author of the AccMan Pro Blog as well as well-know ZDnet blogger, who is, in his own words, “never knowingly under-opinionated” ).
    Dennis challenged my thinking about my being a Community Evangelist for when I introduced myself to him as such he performed a rather mocking obsequious gesture which signaled the pomposity of such a title. And suddenly I saw myself as ….. the American Evangelist.
    A month later, while using Flickr to prepare a Web 2.0 presentation for the Americas SAP User Group (ASUG) Leadership keynote I found this apt visualization:

    The Rantings of an American Evangelist in London
    Originally uploaded by

    Arriving in London for the Somesso conference this year, I indeed found myself the American Evangelist in London.

    Link: Marilyn Pratt #smo09 (SOMESSO London 09)
              Ada Lovelace Day and The SAP Community Network        
    Thanks to a Facebook invite from the inimitable Sandy Kemsley , I learned about Ada Lovelace Day a few months back.
    Suw Charman-Anderson, herself a fascinating woman wrote: “I will publish a blog post on Tuesday 24th March about a woman in technology whom I admire but only if 1,000 other people will do the same.”

    By the way, for those of you, who like myself weren’t sure who Ada is, Suw Charman-Anderson explains: “Ada Lovelace was one of the world’s first computer programmers, and one of the first people to see computers as more than just a machine for doing sums. She wrote programmes for Charles Babbage’s Analytical Engine, a general-purpose computing machine, despite the fact that it was never built.”

    Now as a value add in my job as an SAP Community Evangelist, I have the privilege of knowing some of the smartest techies on the planet. So my first and only challenge in role models was finding “A” woman… as in limiting myself to a single role model.

    I found that approach a tiny bit…well…limiting. And soon realized rather than to try to name every remarkable woman in Technology I know or know of, I could introduce people outside my SAP Community Network and perhaps even inside that community, to some of the women of the community I admire. So I’ll name just a few (second huge challenge) of my local heroines and by linking you to their blogs, tweets, or wiki profiles allow you all the pleasure of discovery or perhaps further introduction.

    Bhanu Gupta – I first met Bhanu during SAP TechEd in September 2006, when she attended the first Business Process Expert Day, but I had been a fan of this Business Intelligence nova for a long while before that, as she rapidly became one of the most prolific forum participants on the SAP Developer Network attaining top contributor ranking internationally. She told a great community story as many of the folks in the community didn’t realize she was a woman.

    Anne Kathrine Petteroe – Ann also told a great community story of how twitter facilitated our meeting her in the SAP headquarters during an SCN Meetup in Walldorf – Later, I had the privilege to meet with Anne again when she came to TechEd Berlin 2008 as one of the developers of ESME and a powerful contestant in “Demo Jam”.

    Moya Watson – Technical evangelist and all around SAP superstar, Moya, writes like a dynamo and shepherds software solutions to release. Moya introduced me to the world of digital anthropology through her blog posts on the SAP Developer Network and celebrated women in technology by pointing to the book O'Reilly Goes Live with Women In Technology Series

    Dafna Yanay a tools mentor and community evangelist for Visual Composer . This Israeli who studied industrial engineering garnered comments and followers on her blog posts from every corner of the globe and is a frequent speaker at SAP TechEd.

    Ginger Gatling was my teacher and mentor in a number of SAP related technical courses and has been a colleague for over a decade. Can’t say enough good things about the way she transfers knowledge to thousands of people online and at live events. She has this way of explaining technology that makes you feel “you get it”. She introduced me to Susan Keohan who goes under the code name SAP Workflow Goddess and who is an active ASUG (SAP User Group) volunteer leader who in turn introduced me to Gretchen Lindquist who has been “working in SAP Security since 1997… the lead configurator and technical support analyst for an SAP partner system in her ERP landscape” and somehow it seems like I’ve know forever yet another ASUG leader Karin Tillotson, Technical Lead for Valero’s SAP Data Archiving Project.

    And lastly, one of my newest …and perhaps youngest heroines, another colleague and community member Jen Robinson whose simple list of places you can find her “Elsewhere” belies the depth, maturity and passionate commitment those activities have her engaged in.

    And now since I see my list is already 9 women, I’ll conclude with a warm acknowledgment and shout out to the other techie women in our SAP Community Network, colleagues, mentors, fellow community members whose ranks thankfully are swelling and can be seen coaching Business Expert topics, mentoring developers, coding solutions, supporting process integrations and representing a world of talented women, who have chosen to follow a career path in technology.
              Popbox Takes a Swing at Boxee, Releases SDK        
    Popbox has announced the release of their developer SDK, which enables “developers to take an existing Adobe® Flash® application and easily transform it into a new popapp for popbox.” This looks to be Popbox’s plan to take Boxee head-on in a race to get the most content on their specific platform.  With Popbox’s history of [...]
              The next major Xbox One update might make the dashboard usable again        
    Microsoft has tooled with the Xbox One user interface pretty frequently since the console launched in 2013, but no matter how much work the developers put into it, the dashboard is still difficult to navigate and as slow as its ever been. Thankfully, on Monday, Microsoft unveiled another major overhaul that is set to arrive for Xbox Insiders in the Alpha Ring of testing starting this week. First and foremost, the upcoming update will completely overhaul the Home screen on the Xbox One dashboard once again, putting an emphasis on personalization. The new and improved look is part of Microsoft's Fluent Design, which should make the interface faster and smoother than ever before. Once the update rolls out, Xbox One owners will have the ability to customize the Home screen how they see fit, adding apps, games, friends and more to the screen they see when they launch the console. In addition to the new Home screen, Microsoft has also updated the guide to make it easier to navigate between tabs on the dashboard. The guide features the same content, but it has all been reoriented horizontally to make it easier to quickly flick between the tabs and find what you're looking for. Plus, it looks infinitely faster than the current guide, which has a tendency to lag. Finally, the Community section is getting upgraded as well with a new activity feed and tools to make it easier to find new Clubs you might want to join. Beyond the Xbox One, Microsoft is also making easier to enable and disable Game Mode on Windows 10 by putting a switch on the Game bar. As much trouble as Microsoft has had deciding on an interface that works for the Xbox One, this update looks promising. No release date yet, but it should be available for everyone later this fall.
              Download Map Dota 6.79b - Free        
    DotA 6.79B
    The history repeats itself as the bug fix version arrives in the form of DotA 6.79b map.  this map more desirable. In this version the developer mainly focuses of the glitches and bugs which were left alone in the DotA 6.79 map. There is a prominent chance that soon we are going to see one more version of this series. So till then have fun playing DotA..

    Description: The bug fix version of DotA 6.79 series.
    Changelogs: Read Complete Changelist (Redirected)
    Filesize: 7.9 MB
    Release date: 27th November, 2013
    Language: English, Chinese, French etc..
    For Warcraft v1.24e & v1.26a

    Download DotA 6.79b Map

    Official by IceFrog

    Official DotA 6.79b Map Changelogs 

    1. Fixed a crash on older versions of Warcraft when picking Slardar
    2. Fixed some performance problems when Bloodseeker was in the game
    3. Fixed Vampiric Aura and Linken’s Sphere sometimes spawning runes on the ground
    4. Fixed Radiance not working on illusions
    5. Fixed selling items after a buyback not giving back gold
    • Before adding this map into your the game, please check the map file has .w3x file entension.
    • Unzip the file with the Winrar or any Rar extracting software (If required).
    • Put the map in
      C:\Program Files\Warcraft III\Maps\Download
    • Always keep backup of original Warcraft III DotA folder just to be on safe side.
    • Enjoy playing!

              Download Resident Evil Revelations – FLT        

    Resident Evil Revelations – FLT

    Resident Evil Revelations - FLT image
    Description: The fear that was originally brought to players in Resident Evil Revelations on the Nintendo 3DSsystem returns redefined for home consoles and PC complete with high quality HD visuals, enhanced lighting effects and an immersive sound experience. This latest version of Resident Evil Revelations will also deliver additional content including a terrifying new enemy, extra difficulty mode, integration with and improvements to Raid Mode. Raid Mode, which was first introduced to the series in the original version of Resident Evil Revelations, sees gamers play online in co-op mode or alone in single player taking on the hordes of enemies across a variety of missions whilst leveling up characters and earning weapon upgrades. New weapons, skill sets, and playable characters including Hunk, take the Raid Mode experience to new depths. The critically acclaimed survival horror title takes players back to the events that took place between Resident Evil®4 and Resident Evil®5, revealing the truth about the T-Abyss virus.

    • Enhanced for consoles:  The fear that was brought to players in Resident Evil Revelations on the Nintendo 3DSsystem returns redefined complete with high quality HD visuals, enhanced lighting effects and an immersive sound experience.
    • Classic survival horror gameplay returns:  The campaign mode’s single player experience sees gamers investigating a range of different locations including the dark confined spaces of a cruise ship and the treacherous snow covered mountains. With limited ammo and weapons, fight off infected enemies that lurk around every corner.
    • Hell just got hotter:  Infernal Mode, a new difficulty mode for console versions, is not just more challenging than Easy and Normal modes but also remixes enemy and item placement, so even those familiar with the game will discover new terrors.
    • Meet the Wall Blister:  A brand new enemy , the Wall Blister is a mutated creature borne from the T-Abyss virus that spreads through water, adding to the horrors that lurk around every corner
    • support:  Resident Evil Revelations will take full advantage of with content available to users once the game launches. Earn weapons and custom parts and use them in-game, collect figures that can be used in dioramas and check your stats through the online web service.
    • Improved Raid Mode:  New weapons, skill sets, playable characters including Rachel and Hunk and enemies exclusive to this mode are added for the this latest version.

    Resident Evil Revelations GamePlay

    Genre: FAction
    Publisher: Capcom
    Developer: Capcom
    Release name: Resident Evil Revelations – FLT
    Size: 3.11 GB
    Install Notes:
    1. Unrar by clicking the exe file for this is a self extracting archive.
    2. For further instructions and to avoid installation mistakes, strictly read the nfo file here
    3. Support developers by buying the software you enjoy!
    Download in Mediafire, Uptobox, Hulkfile, Jumbofiles, Filefactory, Depositfiles,UploadCore,Hulkshare,Karelia,BillionUploads,Rapidgator,Filevelocity,Netload,Putlocker,Tusfiles,1Fichier,Rapidshare,Cyberlocker,Cloudzer,Upafile,Oteupload,,Freakshare,Extabit and Uploaded


    Resident Evil Revelations – FLT Part 1
    Resident Evil Revelations – FLT Part 2
    Resident Evil Revelations – FLT Part 3
    Resident Evil Revelations – FLT Part 4
    Resident Evil Revelations – FLT Part 5
    Resident Evil Revelations – FLT Part 6
    Resident Evil Revelations – FLT Part 7
    Resident Evil Revelations – FLT Part 8
    Resident Evil Revelations – FLT Part 9


    Resident Evil Revelations – FLT Part 1
    Resident Evil Revelations – FLT Part 2
    Resident Evil Revelations – FLT Part 3
    Resident Evil Revelations – FLT Part 4
    Resident Evil Revelations – FLT Part 5
    Resident Evil Revelations – FLT Part 6
    Resident Evil Revelations – FLT Part 7
    Resident Evil Revelations – FLT Part 8
    Resident Evil Revelations – FLT Part 9


    Resident Evil Revelations – FLT Part 1
    Resident Evil Revelations – FLT Part 2
    Resident Evil Revelations – FLT Part 3
    Resident Evil Revelations – FLT Part 4
    Resident Evil Revelations – FLT Part 5
    Resident Evil Revelations – FLT Part 6
    Resident Evil Revelations – FLT Part 7
    Resident Evil Revelations – FLT Part 8
    Resident Evil Revelations – FLT Part 9


    Resident Evil Revelations – FLT Part 1
    Resident Evil Revelations – FLT Part 2
    Resident Evil Revelations – FLT Part 3
    Resident Evil Revelations – FLT Part 4
    Resident Evil Revelations – FLT Part 5
    Resident Evil Revelations – FLT Part 6
    Resident Evil Revelations – FLT Part 7
    Resident Evil Revelations – FLT Part 8
    Resident Evil Revelations – FLT Part 9


    Resident Evil Revelations – FLT Part 1
    Resident Evil Revelations – FLT Part 2
    Resident Evil Revelations – FLT Part 3
    Resident Evil Revelations – FLT Part 4
    Resident Evil Revelations – FLT Part 5
    Resident Evil Revelations – FLT Part 6
    Resident Evil Revelations – FLT Part 7
    Resident Evil Revelations – FLT Part 8
    Resident Evil Revelations – FLT Part 9

              Download Map 6.78c        
    DotA 6.78c Map has been release with some regular maintained changes in it. The version consist of range, cool down and some factory changes along with a new Captain Mode alteration. The following map is the 2nd sub version of DotA 6.78 series and DotA 6.78c is promoted as the Stable map the moment it was released.
    Description: Developer concentrates on the bugs and error fixation DotA 6.78C.
    Changelogs: Read Complete Changelist (Redirected) .
    Filesize: 7.9 MB
    Release date: 30th June, 2013
    Language: English, Chinese, French etc..
    For Warcraft v1.24e & v1.26a

    DotA 6.78c Map Download:
    DotA v6.78c.w3xEnglish
    Русский (Russian)
    大陆简体 (Chinese)
    Português (Portuguese)
    Français (French)
    Română (Romanian)
    • Before adding this map into your DotA please check the map file.
    • Unzip the file with the Winrar or any Rar extracting software (If required).
    • Put the map on Warcraft III\Maps\Download folder.
    • Always keep backup of Original Warcraft III DotA folder just for a safe side.
    • Enjoy playing..

              DotA v6.78b.w3x – File Download        
    DotA 6.78b has just got released by the developer, IceFrog. It is the 2nd update of v6.78 series that addresses necessary bug and exploits to stabilize the gameplay. No new content has been added in this patch.
    Description: Update primarily focused to counter bugs found in DotA 6.78.
    Changelogs: Read Dota 6.78b Patch Notes.
    Filesize: 7.8 MB
    Release date: 3rd June, 2013
    Language Multiple
    For Warcraft v1.24e & v1.26a

    DotA 6.78b Map Download:
    DotA v6.78b.w3xEnglish
    Русский (Russian)
    大陆简体 (Chinese)
    Português (Portuguese)
    Français (French)
    Română (Romanian)
    • DotA 6.78b AI will take couple of weeks to release.
    • After downloading the w3x file, put the map in Warcraft III\Maps\Download folder.
    • If you find any broken download link or any bugs, please report

              DotA v6.78.w3x – File Download        
    The most popular Warcraft 3 TFT mod DotA-Allstars has received a yet another patch DotA v6.78 by its developer. The new version brings 2 new heroes to the Radiant/Sentinel side and required balance changes to stabilize the gameplay. The changes of 6.78 will be ported to Dota 2 (remake by Valve) for its annual eSports tournament called The International 3 with a prize pool of $2 Million USD.
    Description: Brings additional content and balancing to DotA mod of War3 TFT.
    Changelogs: Read Dota 6.78 Patch Notes.
    Filesize: 7.8 MB
    Release date: 30th May, 2013
    Language Multiple
    For Warcraft v1.24e & v1.26a

    DotA 6.78 Map Download:
    DotA v6.78.w3xEnglish
    Русский (Russian)
    大陆简体 (Chinese)
    Português (Portuguese)
    Français (French)
    Română (Romanian)
    • DotA 6.78 AI will take couple of weeks to release.
    • After downloading the w3x file, put the map in Warcraft III\Maps\Download folder.
    • If you find any broken download link or any bugs, please report

              Call of Duty 4: Modern Warfare + Crack Full        

    Call of Duty 4: Modern Warfare Full Crack
    Release Date: 07-11-2007
    Languages: English, French, German, Italian, Spanish 
    Mirrors: PutLocker | UPaFile | Cyberlocker | BillionUploads

    Free Download PC Game COD 4: MW Full Version - The new action-thriller from the award-winning team at Infinity Ward, the creators of the Call of Duty® series, delivers the most intense and cinematic action experience ever. Call of Duty 4: Modern Warfare arms gamers with an arsenal of advanced and powerful modern day firepower and transports them to the most treacherous hotspots around the globe to take on a rogue enemy group threatening the world. As both a U.S. Marine and British S.A.S soldier fighting through an unfolding story full of twists and turns, players use sophisticated technology, superior firepower and coordinated land and air strikes on a battlefield where speed, accuracy and communication are essential to victory. The epic title also delivers an added depth of multiplayer action providing online fans an all-new community of persistence, addictive and customizable play.


    Minimum System Requirements
    • OS: Windows XP/Vista
    • Processor: Pentium 4 @ 2.4 GHz / AMD Athlon 2600+ or any Dual Core Processor @ 1.8 GHz
    • Memory: 512 Mb
    • Hard Drive: 8 Gb free
    • Video Card: nVidia 6600 / ATI Radeon 9800Pro
    • Sound Card: DirectX 9.0c Compatible
    • DirectX: 9.0c
    • Keyboard
    • Mouse
    • DVD Rom Drive

    Recommended System Requirements
    • OS: Windows XP/Vista
    • Processor: Any Dual Core Processor 2.4 GHz or faster
    • Memory: 1 Gb
    • Hard Drive: 8 Gb free
    • Video Card: nVidia 7800 / ATI Radeon X1800
    • Sound Card: DirectX 9.0c Compatible
    • DirectX: 9.0c
    • Keyboard
    • Mouse
    • DVD Rom Drive

    Update Link Download (14-05-2013)
    Mirror via PutLocker
    Mirror via UPaFile
    Mirror via CyberLocker
    Mirror via BillionUploads
    250 MB / Part

      1. Unrar
      2. Open the .iso file with a program that can mount it (PowerISO, Daemon tools, Alcohol for example)
      3. Mount it. I don't have that autorun option turned on, so i have to go to My Computer and open it from the cd-drive.
      4. Install it. When it asks for the cd-key, minimize the installer and open rzr-cod4.exe, then generate the cd-key and copy it to the installer.

      ***Some antivirus propgrams may tell u that that rzr-cod4.exe is a virus of somekind. IT'S A FALSE POSITIVE! It's perfectly safe. The antivirus program thinks its a virus, but it isn't.***

      5. The installer will also ask if u wan't to install punkbuster. I installed it, don't know if it matters.
      6. When it's done installing,  copy or move iw3sp.exe to the game folder (where u installed the game).
      7. Launch the game by opening iw3sp.exe and it should work.
      8. Support the software developers. If you like this game, BUY IT!

      1. PL, UPa, CL, BU Interchangeable Links
      2. Total part: 10 / 700 GB
      3. Total file : 6.32 GB
                Mars: War Logs-COGENT        

      Mars: War Logs - COGENT
      Release Date: 26-04-2013
      Language: English
      Mirrors: PutLocker | UPaFile | Cyberlocker | BillionUploads

      Free download PC game 2013 Mars: War Logs Full Version - In the destroyed world of Mars, two destinies mingle together. Two beings searching for their identity travel across a broken planet, constantly facing bloody political conflicts which tear the old colonies apart. Often divided, sometimes fighting the same enemies, both are the source of the advent of a new era…

      Mars: War Logs is a sci-fi RPG action game that innovatively merges character development and light and rhythmic fights. it takes you on a journey deep into an original futuristic universe and presents you with scenarios dealing with difference, racism and environment.

      • Take on the role of Roy Temperance, a multi-talented renegade, and surround yourself with companions with real personalities.
      • Choose from the numerous dialog possibilities and influence the destiny of your people.
      • Personalize your fighting style through a dynamic and developed combat system, for entirely different approaches depending on the choices you make.
      • Personalize your development by choosing from dozens of skills and numerous additional perks!
      • Modify and create your own equipment with our craft system.


      Minimum System Requirements
      • OS: Windows XP/Vista/7/8
      • Processor: Intel Core 2 Duo @ 2.2 Ghz / AMD Athlon 64 X2 4600+
      • Memory: 2 Gb
      • Hard Drive: 3 Gb free
      • Video Memory: 512 Mb
      • Video Card: nVidia GeForce 8800 / ATI Radeon HD 3870
      • Sound Card: DirectX Compatible
      • Network: Broadband Internet Connection
      • DirectX: 9.0c
      • Keyboard
      • Mouse

      Link download
      Mirror via PutLocker
      Mirror via UPaFile
      Mirror via Cyberlocker
      Mirror via BillionUploads

      1. Unrar
      2. Mount or burn
      3. Install
      4. Copy contents of Crack Directory to install directory
      5. Play the game
      6. Support the software developers. If you like this game, BUY IT!

      1. PL, UPa, CL, BU Interchangeable Links
      2. Total part: 8 / 350 MB
      3. Total file : 2.54 GB
                God Mode Update 1-RELOADED        

      God Mode Update 1-RELOADED
      Release Date: 04-2013
      Language: -
      Mirrors: PutLocker | UPaFile | Cyberlocker | BillionUploads

      RELOADED group telah merilis update pertama untuk PC game God Mode. Info changelognya dapat di bawah, dan bagi teman-teman sekalian yang sudah mendownload PC Game God Mode-RELOADED yuk langsung di patch gamenya biar lebih enak di mainin.

      • Desynchronization: Network optimizations were made to stop the desync issue during games which also led to non-progressions.
      • FPS Cap: The FPS cap can now be removed via the game.cfg file. Add the option "LockFps = 0" under the Video section. Note that removing the FPS cap may cause issues depending on system configuration and network quality.
      • Disable voice chat option: You can now disable all incoming sounds via the options while still having the ability to chat via Push to talk.
      • Push to talk voice chat: To enable chat while in-game, parties or a menu press the ` (tilde) button (can be reconfigured).
      • Minigun ammo clip upgrade: Fixed the issue where users were not seeing the clip properly upgraded.
      • Graceful error handling: Better message boxes and debug text appear when issues occur to give developers better visibility.
      • Crash at Voting Screen: A fix was made to the crash that occurred while voting for a map.
      • Crash when connection to Steam is lost: Launching the game when Steam is offline will launch into LAN mode instead of crashing.
      • Alt+Tab Crash: Fix to the crash when users Alt+Tab out of the game.
      • Overall game stability: Optimizations were made increase game stability.
      • God Mode Executable compatibility: Steam DRM has been altered from Standard to Compatibility. This change will help users experiencing crashes while booting the game.
      • Memory Allocation Fix: Optimizations were made to game memory allocation.
      • Note: We recommend players install the patch before launching God Mode. Not installing the patch could lead to connection compatibility issues. 

      Link download
      Mirror via PutLocker
      Mirror via UPaFile
      Mirror via Cyberlocker
      Mirror via BillionUploads

      1. Unrar God Mode Update 1-RELOADED.rar > Next Unrar rld-godupd1.rar
      2. Install the update.
      3. Copy over the cracked content from the /Crack directory to your game install directory.
      4. We recommend not allowing the game to go online with your FW. Select LAN from partygame settings.
      5. Play the game.
      6. Support the software developers. If you like this game, BUY IT!
                Resident Evil 6 Update 4-RELOADED        

      Resident Evil 6 Update 4-RELOADED
      Release Date: 04-2013
      Mirrors: PutLocker | UPaFile | Cyberlocker | BillionUploads

      RELOADED group kembali lagi dengan rilis update terbaru untuk PC Game Resident Evil 6. Pada update ke 4 kali ini terdapat penambahan fungsi option baru untuk pencarian, serta improvisasi performa SLI untuk graphics cards NVIDIA. Nah, bagi teman-teman sekalian yang sudah memiliki pc game Resident Evil 6, monggo langsung di amankan filenya.

      New Features
      • Added new options to the session search function
      • Improved SLI performance with NVIDIA graphics cards

      Link download
      Mirror via PutLocker
      Mirror via UPaFile
      Mirror via Cyberlocker
      Mirror via BillionUploads

      1. Unrar.
      2. Install the Update. No other updates are needed for this release.
      3. Copy over the cracked content from the /Crack directory to your game install directory.
      4. Play the game.
      5. Support the software developers. If you like this game, BUY IT!
                Download Windows Android - Android Emulator for PC        
      WindowsAndroid - Android Emulator for PC

      WindowsAndroid adalah sebuah emulator android yang tidak berbeda jauh dengan emulator YouWave maupun BlueStacks. Emulator besutan socketeq ini memiliki tampilan antar muka yang hampir menyerupai dengan gadget android pada umumnya, anda pun dapat dengan mudah menginstall aplikasi maupun games apk untuk android dengan emulator yang satu ini. Yang lebih menarik lagi, emulator WindowsAndroid ini bersifat gratis (freeware) serta sudah menggunakan OS ICS (Ice cream sandwich) atau Android 4.0 dan merupakan satu-satunya emulator yang langsung di porting dari android ke windows (bukan virtualbox seperti YouWave atau BlueStack). Keren banget kan ?


      1. Menggunakan OS Android v4.0 atau Ice cream sandwich.
      2. Support windows Vista, windows 7 dan windows 8.
      3. Sudah terintergrasi dengan aplikasi windows seperti Adobe Flash, Windows Media Player, dan aplikasi lainnya.
      4. Pengoperasiannya lebih smooth dan cepat
      5. Mendukung berbagai resolusin UI.
      6. Mendukung bebagai IO devices seperti mouse, keyboard, remote control, dan mendukung modus windows seperti layar penuh dsb.
      7. Include Google Playstore.

      Link download

      1. Download
      2. Install WindowsAndroid
      3. Enjoy
      ** Untuk menginstall aplikasi .apk caranya: Copy file apk ke (C:\SocketeQ\windowsandroid_root\system\app) kemudian restart WindowsAndroidnya.

      Di larang keras mereupload file emulator ke media hosting lainnya, Jika anda ingin berbagi di blog / web milik anda. Gunakan link download di atas atau TIDAK USAH SHARE SAMA SEKALI. Jika anda masih saja nekat untuk mereupload, jangan menyesal kalau pihak developer menghentikan project emulator ini.
                God Mode-RELOADED        
      God Mode-RELOADED
      Release Date: 04-2013
      Language: English | German | French | Italian | Spanish | Russian
      Mirrors: PutLocker | UPaFile | BillionUploads 

      Free download PC game God Mode Full Version - Is set in a twisted version of Greek mythology and the afterlife. The player is a descendant of an ancient God whose family has been banished by Hades from Mt. Olympus and turned into a mere mortal. To avoid an afterlife of eternal damnnation, the player must battle through this purgatory known as the Maze of Hades against an army of the underworld.

      God Mode combines non-linear gameplay, fast and frantic shooting, hordes of on-screen enemies, and a fully functional online coop mode. Matches rarely ever play out the same, as dozens of in-game modifiers can significantly alter the gameplay on the fly. Characters are fully customizable, both in appearance and equipment, which continually evolve. Gold and experience is constantly accrued and used to unlock new satisfying weaponry and unique powerful abilities, both of which can be further upgraded.


      Minimum System Requirements
      • OS: Windows XP/Vista/7
      • Processor: Intel Core 2 Duo @ 2.0 Ghz / AMD Athlon 64 X2 4200+
      • Memory: 2 Gb
      • Hard Drive: 5 Gb free
      • Video Memory: 512 Mb
      • Video Card: nVidia GeForce 8800 / ATI Radeon HD 2900
      • Sound Card: DirectX Compatible
      • DirectX: 9.0c
      • Keyboard
      • Mouse

      Recommended System Requirements
      • OS: Windows XP/Vista/7
      • Processor: Intel Core i5 @ 2.4 GHz / AMD Phenom II X4 @ 2.6 GHz
      • Memory: 3 Gb
      • Hard Drive: 5 Gb free
      • Video Memory: 1 Gb
      • Video Card: nVidia GeForce GTX 460 / ATI Radeon HD 5850
      • Sound Card: DirectX Compatible
      • Network: Broadband Internet Connection
      • DirectX: 9.0c
      • Keyboard
      • Mouse

      Link download
      Mirror via PutLocker
      Mirror via UPaFile
      Mirror via BillionUploads

      1. Unrar.
      2. Burn or mount the image.
      3. Install the game.
      4. Copy over the cracked content from the /Crack directory on the image to your game install directory.
      5. Before you start the game, use your firewall to the game exe file
      from going online.
      6. Play the game, change party settings to LAN.
      7. Support the software developers. If you like this game, BUY IT!

      1. PL, UPa, BU Interchangeable Links
      2. Total part: 6 / 300 MB
      3. Total file : 1.77 GB


      第一の壁: 綺麗なデータで機械学習の問題を解ける

      • 講義で扱われるような綺麗なデータを扱える
        • 行列形式になっていて、欠損値や異常値もない
      • 上記のデータを回帰や分類問題として解くことができる
        • 実際に解く際にはライブラリを使って解いてよい
        • 手法を評価する上で何を行なえばよいか(PrecisionやRecallやRMSEなどを計測する)知っている
      • アルゴリズムが導出できなくてもよいが、その手法がどういう問題を解いているのかは大雑把に分かる
        • 回帰/分類だったらどういう目的関数を最適化しているか
        • その目的関数の心はどういうものか
        • 学習や予測がうまくいかないとき、どこに着目すればよいか分かる

      第二の壁: 綺麗でない現実のデータで機械学習の問題を解ける

      • 整形されていないデータを機械学習で扱える特徴量の形式特徴量に落としこめる
        • 例: テキストデータをBoW形式に落とせる
        • 例: 異常値、外れ値は前処理で落とせる
      • 必要なパフォーマンスが出るようにチューニングができる
        • 特徴量選択、正則化項、頻度での足切りによるチューニング、ラベル数の偏りがある場合などへの対応
        • 「多少のゴミがあってもいいから取りこぼしが少ないようにして欲しい」「取りこぼしがあってもいいからとにかく綺麗な結果を見せたい」等の要望があったときにどうチューニングすればいいか想像が付く

      第三の壁: 機械学習の問題としてどう定義し、サービスに導入していくか

      • その問題は機械学習で解ける問題なのか、そもそも機械学習で解くべき問題なのかの判断が付く
      • 機械学習で解くことが決まったとして、どのように定式化するのか
        • 例: ランキング問題として定式化するのか、分類問題の組み合わせで対処するのか
      • 学習用データや評価用データをどうやって作る/集めるか
        • そもそもどの程度学習/評価データがあればある程度安定して学習/評価できるか知っている
        • 一貫性のあるデータ作りのガイドラインを作れるか(結構難しい…)
        • 闇雲に教師データを追加しても精度は上がるとは限らない


      • 第二段階までの壁は機械学習に関する書籍やBlogやライブラリが最近は山のように存在するので、ハードルは相当下がっている
        • はてなの教科書もあります!
        • 逆に教材がありすぎて何からやればよいか分からない…、という悩みは最近はあると思うので、問題に合わせた最短経路を経験者が示せるとよい
        • kaggle等で未経験者と経験者で同じ問題を解き、どのような工夫をすると精度が上がるか等を一緒にやってみる
      • 第三の壁は経験によるところが大きいため、経験者がメンター的に付いてアドバイスしながら手を動かせるとよい

      第四の壁: 機械学習導入後の運用

      言語処理のための機械学習入門 (自然言語処理シリーズ)

      言語処理のための機械学習入門 (自然言語処理シリーズ)






      • ニューラル言語処理では語彙数が大きくなると扱いにくい
      • 単語をサブワードに分割できるものは分割して、語彙数を制限する(数千から数万)方法がよく使われる
        • 尤度を最大にするエントロピー圧縮の一部と見なせる
      • スペースもメタ文字に置き換えて生文を食わせることにより、detokenizeが言語によらず簡単になる
        • 翻訳等のタスクで助かる!
        • こういうのが必要なくなる
        • 単語分割されたものからさらに分割するわけではなく、生文からやるために計算量オーダーの削減が行なわれている
      • 従来の単語分割手法を凌ぐBLEUスコアを達成している


      余談ですが、生命科学系の研究所(DBCLS)でバイトした経験から、M1の初期は応用タスクに最適化された単語分割を学習できないかと思って少し考えた時期がありました。Sentencepieceのようなシンプルな手法がニューラル言語処理向けトークナイザとして役に立つのは面白いなあと、一人でテンションが上がりました。ちなみに、M1の初期のやつは、Joint Learning的なノリで解けないかと思っていましたが、挫折で終わりました…。




      平均 標準偏差
      mecab 0.747 0.0056
      neologd 0.766 0.0066


      % echo "東ロボくん" | mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd
      東ロボくん      名詞,固有名詞,一般,*,*,*,東ロボくん,トウロボクン,トウロボクン
      % echo "東ロボくん" | mecab
      東      名詞,一般,*,*,*,*,東,ヒガシ,ヒガシ
      ロボ    名詞,一般,*,*,*,*,*
      くん    名詞,接尾,人名,*,*,*,くん,クン,クン




      言語処理のための機械学習入門 (自然言語処理シリーズ)

      言語処理のための機械学習入門 (自然言語処理シリーズ)






      プログラムでは各言語のlinterやciのテストを通すことで、レビュー前に単純な誤りに気づくことができます。typoやsyntax errorのようなささいなことを人間がやっていると疲れるので、機械が勝手にやってくれるのはいいですね。自然言語にもlinterっぽいものはいくつかあって、例えばMicrosoftのwordなどはそうでしょう。研究論文を書いてるときに簡単な誤りはwordに投げてざっとチェックして、というのをやっていました。



      自然言語もプログラミング言語と同様に文法を持ちますが、最大の違いは曖昧性の有無でしょう。自然言語処理の大部分は曖昧性をいかに扱うかとの戦いといっても過言ではありません。自然言語処理の研究分野でも最近誤り訂正の話題は活発に議論されていて、コンペティションも開かれています。Shared taskで有名なCoNLLでも2013年にテーマになりました。


      文書をコードとして扱う from Recruit Technologies


      • 様々なマークアップ言語に対応している
        • markdownを含め、LaTeXにも対応
      • 日本語や英語など様々な言語に対応
      • 必要ない指摘は設定でオフにできる
        • 「誤りと指摘されたこの箇所は自分は誤りだとは思わない」というのがよくあるパターンですが、うざいと思ったら設定でオフにできます


      % brew install redpen


      • InvalidSymbol
      • KatakanaEndHyphen
      • EmptySection



      % redpen --format markdown --conf /usr/local/Cellar/redpen/1.8.0/libexec/conf/redpen-conf-ja.xml ~/Dropbox/_posts/2017-03-20-清算用Slack-botを書いた.md 2>/dev/null
      2017-03-20-清算用Slack-botを書いた.md:14: ValidationError[SentenceLength], 文長("121")が最大値 "100" を超えています。 at line: 昔のことは忘れてしまうので、清算用のSpreadsheetを作ろうとしましたが、出先で開くのは手間なので、slackからできるといいよねという妻の声がありましたが、外部でちょうどいいサーバーを持っていなかったので、そのときは流れました...。
      2017-03-20-清算用Slack-botを書いた.md:14: ValidationError[CommaNumber], カンマの数 (5) が最大の "3" を超えています。 at line: 昔のことは忘れてしまうので、清算用のSpreadsheetを作ろうとしましたが、出先で開くのは手間なので、slackからできる といいよねという妻の声がありましたが、外部でちょうどいいサーバーを持っていなかったので、そのときは流れました...。
      2017-03-20-清算用Slack-botを書いた.md:14: ValidationError[DoubledConjunctiveParticleGa], 一文に逆説の接続助詞 "が" が複数回使用されています。 at line: 昔のことは忘れてしまうので、清算用のSpreadsheetを作ろうとしましたが、出先で開くのは手 間なので、slackからできるといいよねという妻の声がありましたが、外部でちょうどいいサーバーを持っていなかったので、そのときは流れました...。
      2017-03-20-清算用Slack-botを書いた.md:24: ValidationError[InvalidExpression], 不正な表現 "俺" がみつかりました。 at line: 俺は好きなエディタで書きたいし、gitでコード管理したいし、何ならTypeScriptで書きたいんじゃー、と思っていたところでいいエントリを見つけました。
      2017-03-20-清算用Slack-botを書いた.md:29: ValidationError[InvalidExpression], 不正な表現 "最高" がみつかりました。 at line: 最高です、IDEAでリファクタリングや定義元に戻るとかもできるようになったので完璧です。




      (el-get-bundle karronoli/redpen-paragraph.el)
      (define-key markdown-mode-map (kbd "C-c C-r") 'redpen-paragraph)
      (defvar redpen-commands
        '("redpen --format markdown --result-format json2 --conf /usr/local/Cellar/redpen/1.8.0/libexec/conf/redpen-conf-en.xml %s 2>/dev/null"
          "redpen --format markdown --result-format json2 --conf /usr/local/Cellar/redpen/1.8.0/libexec/conf/redpen-conf-ja.xml %s 2>/dev/null"))
      (defvar redpen-paragraph-force-reading-whole t)

      これでC-c C-rで校正の結果が出てきて、編集すべき箇所にすぐに飛べるようになったので、快適になりました。



      理科系の作文技術 (中公新書 (624))

      理科系の作文技術 (中公新書 (624))

                å®¶åº­ç”¨ã®æ¸…算君(Slack bot)をGoogle App Scriptで書いた + TypeScript化した        


      • 家庭用の清算をGoogle Spreadsheetでやりたい
        • Spreadsheetを出先で開くのは手間なので、slackからできるといいよね
      • slackからSpreadsheetに書き込んでくれる君を作ろう
        • 外のサーバーでやるのも面倒だからGoogle App Scriptでやろう
      • Script Editorで書くのダルい、自分の好きなエディタで書きたい
        • ローカルで書けるようにして、ついでにTypeScript化した


      家庭用の清算をGoogle Spreadsheetでやりたい



      最近チームでid:daiksyさんがslackでKPTをSpreadsheetに入力できるkpt君(bot)を作っていました。これはGoogle App Scriptで動いているので、外部に自前でサーバーを持つ必要がありません。


      f:id:syou6162:20170320211958p:plain f:id:syou6162:20170320212003p:plain

      Script Editorで書くのダルい、自分の好きなエディタで書きたい

      簡単にできるようになったのはいいのですが、Google App Scriptのscript editorで書くの、めっちゃダルいです。俺は好きなエディタで書きたいし、gitでコード管理したいし、何ならTypeScriptで書きたいんじゃー、と思っていたところでいいエントリを見つけました。


                ä¸å®šæœŸML&NLPå ±#3        



      • [1701.00160] NIPS 2016 Tutorial: Generative Adversarial Networks
        • 最近流行りのGANのNIPSでのチュートリアル論文(資料)
      • [1612.08220] Understanding Neural Networks through Representation Erasure
        • 深層学習の解釈性に関する研究。線形モデルのように重みの絶対値だけでは重要度が分からないので、重みが全部入っているときとある次元dの重みを0にしたとき(erase)の負の対数尤度の差を見ることで、ある次元dの重要度をはかろうというアプローチのようだ





      「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み from Yoji Kiyota

      WebDB Formでの発表資料。深層学習を使った間取りの生成、物件画像の分類(玄関、居間、キッチン、トイレなどの分類)など。不動産物件のデータセットの提供もあって熱い。



      深層リカレントニューラルネットワークを用いた日本語述語項構造解析 from Hiroki Ouchi

      NL20161222invited from Tetsuya Sakai


      第8回入力メソッドワークショップ (IM 2016)



      機械学習のための連続最適化 (機械学習プロフェッショナルシリーズ)

      機械学習のための連続最適化 (機械学習プロフェッショナルシリーズ)

      関係データ学習 (機械学習プロフェッショナルシリーズ)

      関係データ学習 (機械学習プロフェッショナルシリーズ)

                ä¸å®šæœŸML&NLPå ±#2        




      • [1612.03242] StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks
        • テキスト(キャプション)からの画像生成系のタスクでGAN(Generative Adversarial Networks)がよく使われているが、GANを多段にする(最初は荒い画像を作って、積んだやつで精密にする)ことでかなり精密な生成ができるようになったという論文。GANをあまり追っていないけれど、出てきている画像がぼやっとしていないのでかなりびびる
      • 統計的自然言語処理と情報理論
        • 統数研の持橋さんが情報理論研究会での招待講演で話された発表資料
        • 中野さんと一緒にやっておられる典型度の定量化の話は知らなかったので面白かった(論文)



      • Googleの自動運転車ユニット、Waymoとして独立―クライスラーと提携して事業展開も | TechCrunch Japan
        • 自動運転車の開発を断念という話が一瞬出ていたけど、飛ばし記事だった様子
      • 言葉に表れない相手の本音が分かる! 会話中の満足感を定量化するAI(人工知能)技術 : FUJITSU JOURNAL(富士通ジャーナル)
        • アクセントやイントネーションによってコールセンターでの会話の満足度を機械学習を使って特定
      • How we learn how you learn | Making Duolingo Blog
        • 語学学習アプリを作っているduolingo社が機械学習を使ってどのようにユーザーが学習すべき単語を出しているかという話(論文)
        • 単純に精度が上がったという話だけでなく、サービスにどのような影響があったか(学習が効率的になってユーザーがonline fome等を使ってくれるようになったなど)も書かれているので参考になる
        • 社内で元になった論文をすごく簡単に紹介したときの資料があったので貼っておきます

      Duolingo.pptx from syou6162



      • NIPS 2016参加報告 - Qiita
        • NIPS2016で発表された論文の中でgithub等で実装が公開されているもの一覧。すでに20個以上ある様子
        • 実装やデータセットが公開されるとレビューに加点があったり、ということで公開される流れができつつある。再現性の観点からも望ましい



      • GitHub - yahoojapan/YJCaptions
        • Yahooが画像の日本語のキャプションデータを公開(約12万件)。元になっている画像データはMS COCOはマイクロソフトが出しているもの
      • FMA: A Dataset For Music Analysis

      • これもMS COCOに対してアノテーションしているデータセットの1つだった

                nasneの残量やGoogle Analyticsの情報をMackerelに監視させよう        








      command = "echo \"nasne.volumes.freeVolumeSizeRatio\t$(curl -s 'http://10.X.X.X:64210/status/HDDInfoGet?id=0' | /usr/local/bin/jq -r '.HDD | .freeVolumeSize / .totalVolumeSize')\t`date -u +%s`\""




      command = "echo \"\t`curl -s http://localhost:3000/api/json | /usr/local/bin/jq -r '.jobs[] | .color' | grep -c red`\t`date -u +%s`\""
      command = "echo \"\t`curl -s http://localhost:3000/api/json | /usr/local/bin/jq -r '.jobs[] | .color' | grep -c blue`\t`date -u +%s`\""



      Google Analyticsのユーザー数をサービスメトリックとして投稿/監視

      Google Analyticsはリアルタイムに現在の訪問ユーザー数を知ることができるので見ているだけでも楽しいですが、「頻繁に見ていては仕事にならん、炎上しそうになってる(?)とき教えてくれ!」というのができると楽しそうと思ってやってみました(完全にネタです)。Google Analyticsから情報を取得するのは面倒そうですが、Google SpreadsheetのアドオンにGoogle Analyticsの情報を取得するものがあったのでそれを使います。

      Google SpreadsheetにはGoogle App Script(javascriptと似たようなもの)を定期的に動かすことができる機能があるので、それを使って最近の訪問者数をmackerelに投稿させましょう。スクリプトはこんな感じです(ネタなので、かなり適当に書いています...)。

      function postMackerelServiceMetric(apiKey, serviceName, payload) {
        return UrlFetchApp.fetch(
          "" + serviceName + "/tsdb",
          "contentType" : "application/json",
          "method" : "post",
          "headers" : {
            "X-Api-Key" : apiKey
          "payload" : JSON.stringify(payload),
          "muteHttpExceptions" : true
      var epoch = / 1000;
      var mackerelApiKey = "YOUR_MACKEREL_API_KEY";
      var serviceName = "Analytics";
      function run(term, sheetName) {
        var ss =SpreadsheetApp.getActiveSpreadsheet()
        var mySheet = ss.getSheetByName(sheetName)
        var row = mySheet.getLastRow();
        var users = mySheet.getRange(row, 2).getValue();
        var sessions = mySheet.getRange(row, 3).getValue();
        var pageviews = mySheet.getRange(row, 4).getValue();
        var payload = [
          {"name" : "analytics." + term + ".users", "time" : epoch, "value" : users},
          {"name" : "analytics." + term + ".sessions", "time" : epoch, "value" : sessions},
          {"name" : "analytics." + term + ".pageviews", "time" : epoch, "value" : pageviews}
        var mackerelPostRes = postMackerelServiceMetric(mackerelApiKey, serviceName, payload);
      function main_day() {
        run("day", "Google Analytics(Day)")
      function main_hour() {
        run("hour", "Google Analytics(Hour)")

      Google Spreadsheetで15分に一度くらい実行させておけばまぁよいでしょう。こんな感じで、炎上してそうかどうかも簡単に通知させることができます(実際はRTされてバズったとかですが)。





      use JSON::Types;
      use WebService::Mackerel;
      my $mackerel = WebService::Mackerel->new(
          api_key => $ENV{ML_STUDY_MACKEREL_API_KEY},
          service_name => 'ML-Study',
      my $res = $mackerel->post_service_metrics(
                  "name"  => "evaluation.precision",
                  "time"  => time,
                  "value" => JSON::Types::number $metrics->{precision},
                  "name"  => "evaluation.recall",
                  "time"  => time,
                  "value" => JSON::Types::number $metrics->{recall},
                  "name"  => "evaluation.f_value",
                  "time"  => time,
                  "value" => JSON::Types::number $metrics->{f_value},





      今回は大まかに3つほどmackerelに様々なメトリックを投稿/監視させる方法を書きました。10行程度の簡単なスクリプト(あるいはワンライナー)、サーバーがなくてもGoogle Spreadsheetからメトリック投稿ができる、ということが分かっていただけたかと思います。このようにお手軽なところからmackerelを使っていただき、mackerelの本業であるサーバーの状態監視も体験してもらえるとうれしいです。



                RE[3]: Hate'em or love'em...        
      CoreImage, CoreGraphics, CoreVideo, CoreData, Applescript (no, AS is far more than an automation that sends keystrokes and mouse clicks), Firewire and MPEG4 (uses QT container) are just a few examples how Apple has helped to drive innovation in the computing industry. While I highly doubt that Apple came up with many of those ideas itself (maybe some of them), they recognized the value of the ideas and made them accessible to developers and consumers. Also, the user experience is more than the look of the product. Apple did not just design something that worked. They designed something that's convenient to use by packing useful programs, designing GUIs that require less clicking and navigation, adding the ability to automate programs and transfer data between one and another (Applescript), making the OS unobtrusive, providing dictionary popup tips etc. While anyone of these changes would be insignificant, hundreds of such changes will add up and create a positive user experience.
                RE[4]: Hate'em or love'em...        
      you said: "CoreImage, CoreGraphics, CoreVideo, CoreData, Applescript (no, AS is far more than an automation that sends keystrokes and mouse clicks), Firewire and MPEG4 (uses QT container) are just a few examples how Apple has helped to drive innovation in the computing industry. While I highly doubt that Apple came up with many of those ideas itself (maybe some of them), they recognized the value of the ideas and made them accessible to developers and consumers." Actually, all of them were created at Apple, except the MPEG-4 codecs (and the file format is Apple, as you correctly noted). Throw in Automator (and anyone who thinks for a second that VIsual Basic is anything like it hasn't looked at Automator) and iTunes while you're at it.Edited 2006-10-04 16:29
                Holding my breath for those drapes!        
      I'm working on some photos that will grace the new Drapes order page on the website and just can't help but laugh at myself. What was I thinking? This whole e commerce- launching a product line-while working with (patient) clients-and raising a grandboy is totally insane!  But completely interesting at the same time and you KNOW that we will get there.  It must be like running a marathon.  I wouldn't know, but it seems like an apt comparison.  I bet we launch in 2 weeks!  Watch this space.

      While working on the aforementioned photos this evening, I'm also writing back and forth with our wonderful web developer as he struggles to understand all the patterns and colorways of each drape fabric and coordinating trim.  Poor man.  Even the most brilliant, talented and creative person can crack when it comes to fabrics and trims. I laugh at him and crack the whip.  He ignores me smugly, knowing that he holds the key to our success at reaching you all and showing you our amazing drapes. Then it turns out that I've mislabeled some of the swatches.  Oh dear.  I've turned in my whip.

      Here's a photo slated for the "rejects" pile.  The photo, not the drape, the drape is fabulous.   It's our Ovals pattern in Steel with a simple white trim, edged in Slate:

      I was trying to be artistic with the composition.  It's kinda fuzzy. 


                Crash Bandicoot PS4 Remaster: Release Date To Clash With Horizon Zero Beginning? Same Character Model From Skylanders Imaginators?        
      E3 2016 had lots of big reveals and updates, only one little franchise almost stole the whole show. After many years to be absent in the market, our beloved Crash Bandicoot is placed to create a comeback having a remaster from the first three games. The developer has revealed little concerning the game, however a […]
                WWE 13 Wii ISO        

      Release Date: October 30, 2012
      T for Teen: Blood, Crude Humor, Mild Language, Mild Suggestive Themes, Use of Alcohol,Violence
      Genre: Wrestling
      Publisher: THQ
      Developer: Yuke's Media Creations

      Step into the ring of the ’13 edition of the WWE video game. WWE ’13 transforms gameplay through the introduction of WWE Live, completely changing the way players embrace the videogame’s audio and presentation elements. Predator Technology returns to further to further implement critical gameplay improvements while fan favorites in WWE Universe Mode and the franchise’s renowned Creation Suite are poised to offer the utmost in player freedom. Furthermore, WWE ’13 introduces a groundbreaking, single-player campaign based on the highly influential Attitude-Era. Complete with a robot ruster-the largest to date in the franchise–along with a host of additional features, WWE ’13 is ready to live a revolution of its own.