I noticed this evening that the Consolas font that has become popular among developers using Visual Studio is now an option within the Windows 7 and Windows Server 2008 R2 command prompts.
Setting the Consolas font as the default command prompt font is done within the Font tab of the command prompt properties Window, shown here.
Once set, the Consolas font is a welcome improvement to the command prompt which unfortunately is unable to use other true type fonts that may be installed upon the system.
Unfortunately the Windows command prompt hasn't changed significantly over the years even through many advanced Windows users find themselves using it on a daily basis. It would be nice if the Windows team was to bring some other capabilities to the command prompt in Windows 8 such as opacity settings although until such time the Consolas font is a welcome start.
Smartphones, Mobile Internet Devices (MIDs) and netbooks sit in that interesting space somewhere above what we historically thought of as a "phone", but slightly below a full-sized laptop / notebook computer. With a smartphone that can do most of what I need, I find myself lugging the laptop to fewer places around town. I haven't made the leap into a netbook yet, but I have several friends that have recently replaced their laptops with netbooks to take advantage of the increased battery life, lower cost, smaller form factors, and lighter weight.
These related markets (smartphones, MIDs and netbooks) have been a sweet spot for open source software. Sam Dean from GigaOM says that "open source operating systems are suddenly flourishing, especially in the growing netbook and smartphone arenas, and it looks like significant competition between them will lead to much innovation."
Juniper Research is currently forecasting an increase from 106 million this year to 223 million by 2014 for smartphones running open source operating systems. Juniper also sees open source operating system-based smartphones as an additional outlet for contributions from Linux and open source developers.
Jay Lyman from The 451 Group sees Moblin as the middle man: "I see all of this headed to a place where Moblin rests below a variety of other software that is more specialized to the particular device, whether it is a smartphone, a netbook, a tablet PC or something else." Dirk Hohndeltalked about netbooks and the Moblin project as part of his session on Intel and open source software at OSCON.
Regardless of what you call this segment or where you draw the line between these markets, open source is playing a role. It is impacting innovation, developer communities and more. While these markets have existed for a while, they are now starting to become more mainstream with smart phones and netbooks moving out of the realm of early adopter geeks and into wider usage. Open source isn't the only choice in these markets, but it is becoming an increasingly important part of the solution.
What do you envision as the future of open source in smartphones, Mobile Internet Devices (MIDs) and netbooks?
One of the basic tools that a programmer has in multi-core programming and parallel computing is the state maintainability. A serial application has only one flow and therefore the Call-Stack (list of nested function calls) is in a way the application's state. In a parallel environment this is clearly not the case because there are many threads with many Call-Stacks at the same time. For example taking a snap shot of a parallel system in order to reproduce a bug requires the states of all running threads, sometimes processes, and sometimes even the operating system. The operating system behaves differently when it has enough memory than when it is out of memory. We need a complete system snap-shot in order to reproduce and solve bugs. You can read more about this in my previous post here: Stateful Programming - a key element.
There are three basic types of Runtime States that we consider:
1. First is the state of the operation I am working on right now: this thread, this object, this task, etc.
2. There is the collection of states of all other operations currently running in the system: other threads, other objects, other processes, etc.
3. There is also the state of the entire system: out of memory, flooded disk queue, with garbage collection in the background, etc.
When a program is running and I don't know its state I have no way of knowing what went wrong. The more stateful the application the more I know what is going on with it. Knowing the current state of operation can help me in two ways:
1. My current state: meaning know what is the last thing my application has performed and how well it is performing, and
2. Overall state: meaning learn the state of the system around me by the way my code is operating. For example if I try to allocate memory and get a response of 'out of memory' then it is probable that my other module had crashed because one of the ActiveX controls it was operating crashed because the system is out of memory.
There is a class of students that I am teaching these days. It is a 3 months programming course and they start with C, go over C++ and then C#. In the way they are taught the many concepts of programming such as parallel computing, embedded CE and VX Works, system design, etc.
My part started last week with a course about software debugging and bug prevention. This monday we start parallel computing. This is before they know Object Oriented and C++ programming and it is for a very good reason. We want to see if it helps to understand the parallel system flow before the mind is sealed with objects and the methodology around it.
This time when I went over the debugging slides in class I deviated at times. The goal was to focus on debugging techniques that would be also helpful in the parallel world. This worked like magic. It so seem that the techniques of the parallel world reduced debugging complexity for a serial application as well.
My focus here is on the stateful programming aspect of debugging. Far too often the only way to find a flow-bug in a parallel system is to look it up in the application's design. For this reason Stateful Programming has to do with design as much as it has to do with programming. We take a simple application that opens a file appends "1234" to it and closes the file. The file name is provided by the user. Here is the stateful analysis of the application:
Generally speaking we say that every time a decision is made in the code we change state. For example if I try to open a file and the file is opened then the applciation moved from a state of "need to open file" to "file is ready for work". If file opening failed then the application moved from "need to open a file" to "the file cannot be opened" which means that the overall operation fails. This means that whenever there is an 'if' statement we change a state. We then add that when ever there is a function call that can return a value other than success this function call is a state shifter. The API call to open a file can return either the file is opened or not so this call is supposed to change the state of the application.
This is generally speaking. More practically speaking we say that everytime there is an error it has to be made noticable either by breaking the application or posting a message to a log, to the user, or any other method. We also say thet there are hirarchies for states so unless I am trying to debug the user input loop (asking for a file name) I don't really care whether it failed and is asking the user again for the input, all I care is the final output of this loop: either we got the input or we don't.
We can of course specify macro flags to enable and disable message for internal states (to be tested using #ifdef). The power of logging states is that when an application crashes or has some race condition we can determin what happened because we have a good snapshot of the application and what it was doing. It is possible for example to see in the log that one thread was working with a file at the same time that another thread already was.
Stateful Programming comes from the design and we need at least part of the Flow Diagram for our system. The best way to follow this through is to have a Flow Diagram followed by an Object Block Diagram, followed by level 2 Flow Diagram for internal followed by an Object Block Diagram and so on...
See the following diagram:
(Stateful Programming)
Here is a list of states according to this diagram:
* Starting
* Getting User Input
* Exiting: User Request
* Opening File "C:\my file"
* Writing To File 4 bytes to "C:\my file"
* Notifying User Of Error in File Write
* Closing File
* Process Completed Successfully
Here is a list of error states according to the diagram:
* Error Getting User Input
* Error Opening File "C:\my file"
* Error Writing To File: 4 bytes to "C:\my file"
Some of the state notifications could be hidden unless activated. The user input loop can also have a few internal states activated on demand.
When we have several threads and processes running in parallel it is relatively simple to track down flow bugs in the system. On any given time the collection of states of all threads is the state of the appliation. Now flow control bugs (A.K.A. "Random Bugs") are very predictable.
This is also compatible with sequence diagrams in visual studio 2010.
I gave a chalk talk yesterday on Moblin at OSCON 2009, the Open Source Convention in San Jose. This was a no slides white-board chat about what's cool in Moblin, where is the future going, and what are the ways people can collaborate and participate.
I touched on some of the high points of what makes Moblin great as an OS design *for* netbooks, rather than adapted to them as an afterthought. I had one heckler yell at me from a neighboring booth (more on this later) and shared my little epiphany about Web 2.0 and Moblin.
Fast boot - Moblin in its current form has a goal to boot in 8 seconds from when the BIOS finishes its work to the moment the CPU and Disk are truly idle and able to do useful work. I talked about some of the really hard work and some tricks we use to achieve this.
Fast shutdown - I commented on how quick Moblin is to shut down, just hit the power switch and it's off within a few seconds. I mentioned that when you want to turn off your cell phone, TV, whatever, you hit the power switch, and it's the same with netbooks on Moblin.
User Experience - I refered to the great work that the guys at Opened Hand have done to make an amazing user experience.
Web 2.0 - it's built in, in fact it's a fundamental part of the OS experience.
The heckling came when I mentioned fast shutdown. You see Moblin doesn't have a shutdown "button" or anything in the OS. We just use the power button from the netbook itself. I began kidding around and saying, "I remember one particular OS, which will remain nameless, in which you had to hit the 'Start' button to 'Stop' the computer."
From the next booth, I hear a call, "Hey! We're listening here!". Yes, the booth next door was the Microsoft booth. Hey, I didn't mention the OS, did I? Guess they're just sensitive.
But the epiphany I shared on Web 2.0 was three or four years ago when I sent an email to one of my teen-age daughters, and then asked her a few days later if she had seen it.
"No, Dad; I don't look at my email every day!"
What? How can this be? A technologically plugged-in student who isn't addicted to mail? But then I realized that for the generation after mine that email is really dead as a communication tool. Blogs and IM have taken its place.
Fast forward to today, and blogs are just about dead too - Twitter, Flickr and Facebook have taken their place of prominence because of their immediacy.
And Moblin 2.0 is designed with social media as a core and foundational part of the experience of the OS. It's been years since browsing alone was the core of the operating system. I'm amused to see that even today, there are OS's announced which a little more than a browser on a simple OS, and this creates all kinds of excitement. In fact, having social media integrated at a fundamental level is what makes me so excited about Moblin.
Cloud computing is a hot topic right now with more and more services moving into the cloud every day. Open source has already been playing a role in cloud computing, but there is quite a bit of speculation about the role that open source will play in the future as the cloud computing industry matures. The economic conditions are part of the reason for the use of open source in cloud computing, but flexibility, avoiding vendor lock-in, and access to the source code are other reasons for choosing to use open source as part of a cloud solution.
"Linux has emerged as a key component of many of today's available cloud infrastructures, providing both the base technology for cloud providers and an operating environment for customers that wish to access Linux operating system and Linux services that are hosted in a cloud."
"Linux has gained traction among cloud providers due to its low cost and customizability. Cloud providers are building cutting-edge, highly complex services and often require source code access and the ability to modify the base code to their highly specific needs."
On the one hand, open source technologies are being used extensively as part of the infrastructure behind many of the cloud solutions being offered by companies like Amazon and Google. However, the cloud platforms being developing by the big providers include a stack of proprietary code on top of the open source infrastructure. Some people express concern that the cloud will make open source software less relevant as these companies develop proprietary solutions for the cloud that run on top of this open source infrastructure. Tim O'Reilly talked about this idea a year ago, and he framed the discussion with a couple of questions:
"What good are free and open source licenses, all based on the act of software distribution, when software is no longer distributed but merely performed on the global network stage? How can we preserve freedom to innovate when the competitive advantage of online players comes from massive databases created via user contribution, which literally get better the more people use them, raising seemingly insuperable barriers to new competition?"
While open source in the cloud has some challenges, O'Reilly was fairly optimistic about the possibilities for the future of open source and cloud computing. He provided plenty of advice sprinkled throughout the article about using federated services rather than centralized ones, sticking to open standards and protocols, focusing on reusable components, and more.
Other recent articles aren't quite as optimistic. Stephen O'Grady from Red Monk talks about whether or not open source software can provide a viable complete alternative to cloud offerings from companies like Amazon. The idea is to take open source past the infrastructure layer and use open source to provide the entire cloud platform, which O'Grady says would be particularly useful for companies wanting to avoid lock-in or create private clouds that run within an organization's infrastructure. With the popularity of the proprietary cloud platforms, developing a complete open source alternative could be nearly impossible for a single company, so O'Grady sees partnerships as a difficult, but possible alternative solution. Matt Asay comments on O'Grady's points by saying, "don't expect open source to 'win' in the cloud. ... Rather, look to open source to influence, to shape the cloud."
There are already a number of open source cloud resources in various states of completeness, including Eucalyptus, Nimbus and more. People have been talking about open source software at recent cloud conferences, like Structure 09, as a way to help address some of the issues associated with cloud computing. While I don't necessarily see open source as becoming the solution for cloud computing, I do see it playing a role as one of the many possible cloud solutions providing end users with an alternative that they can choose.
What do you see as the future of open source in cloud computing?
I?m currently on the second leg of grueling plane ride home from Bangalore and reflecting back on the highlight of the trip which was definitely the opportunity to spend time with a few visionaries in India academia - Vice Chancellor H.P. Khincha, Dr. H.S Jamadagni and Dr. K. Rajanikanth. On Saturday, together we inaugurated a new Parallel Programming Center of Excellence at the MS Ramaiah Institute of Technology in Bangalore. The center will be used to train 250 faculty from VTU affiliate and autonomous institutes on new parallel programming curriculum. Vice Chan Kincha opened up the event by sharing his vision on keeping abreast of technology and the urgency behind updating curriculum for multi-core. Professor Jamadagni officially handed over a new set of parallel programming curriculum which he developed and is making available to this group and to faculty around the world to use. He noted that unfortunately our brains do not follow Moore?s law - with the number of neurons reducing instead of doubling every two years. So we have to be selective in what we teach students and be careful not to get caught up in the technology hype curve. He also discussed the need for more of a community approach to driving curriculum changes where the teacher, learner, employer, philosopher, politician and researcher all collaborate in its development. Prof. MSRIT, then spoke on how center would be used to train some 300-500 faculty from VTU affiliate and autonomous institutes using a train the trainer approach with master faculty trainers. It was amazing to see the level of enthusiasm and proactiveness around updating curriculum which often can be a quite slow moving machine.
A few photos below of the event. Thank you Vice Chancellor Khincha, Dr. Jamadagni and Dr. Rajanikanth for a strong partnership between academia and industry!
É com prazer que trazemos para a comunidade de usuários do CACIC, a versão 2.4 com suporte ao Intel vPro. Esta é uma importante etapa que atingimos neste momento. Obviamente ainda existe muito trabalho a ser feito. Existe muito espaço para melhorar a documentação, pois a que está disponível no momento assume que o usuário do CACIC conhece bem os mecanismos de funcionamento do vPro.
Apesar de o desenvolvimento ter sido feito usando o Ubuntu 9.04, nesta etapa vamos testar a aderência e procedimentos de instalação para outras versões, dentre elas:
- Fedora
- OpenSuse
- Madriva;
- Debian;
- FreeBSD (é... eu tenho simpatia por este, é pessoal)
Bem, para começar a usar…
basta fazer o download no Portal do Software Público e instala-lo como normalmente você instalaria o CACIC, porém você irá verificar que agora há um arquivo neste pacote chamado vproterm.tar.bz, que deverá ser extraído e instalado da seguinte forma:
Instalação do vproterm:
sudo tar -x -C / -f vproterm.tar.bz
Execução:
sudo /etc/init.d/vproterm start
Pré requisito:
Porta 27437 liberada no firewall.
Além do CACIC, é necessário preparar as máquinas Intel vPro, e para isso há um servidor especifico para realizar o provisionamento, e pode ser feito o download dele e da sua documentação no seguinte site.
Espero nos próximos posts ter mais novidades para contar, especialmente uma documentação mais completa.
This is another follow up to my previous post asking media developers for input. Last time I asked about the importance of HW accelerated video decode, but actually encode acceleration would be a far better place to drive performance for video editing or transcoding. The challenges I've heard from developers has been the lack of a standardized interface to do so. Yes decode interface exists in DXVA, but not for encode. I'm curious how much of an issue is this for developers? If a standard API existed that offered simple access to HW accelerated encode across a broad range of hardware, would developers be interested? What considerations or capabilities (like pre-processing for example) should be supported? Let me know your thoughts.
Intel turned 41 this month. The company isn’t visibly celebrating, but I know the spirit of our 40th anniversary programs live on and are being deepened. As I visit Intel sites around the globe, I’m struck by the depth of commitment of our employees who are applying their professional skills to community needs and really taking the spirit of volunteerism to a more impactful and sustainable level. I love the idea that Intel groups do a volunteer event for their quarterlies, or that individuals commit to work with a non profit or school a few times a year, but let me share a few examples I’ve witnessed where employee’s Intel professional skills are making a huge impact - we call this skills-based volunteering.
An Arizona CQN employee worked with the Arizona Quality Alliance, a non-profit, to assess a local college’s operational effectiveness. He also helped lead some sessions for the admissions department saving them $20K so far this year.
Fab 28 volunteers created training classes at a rehabilitation center for recovering drug addicts by providing internet courses to more than 60 students. The courses are helping recovering addicts land jobs, and be successful in life.
In Intel India, a group of volunteers saw that the UN had a problem coordinating relief aid after the Bihar floods. The problem was coordinating phone calls for more than 80 workers across multiple relief camps. The team created a SMS-based communication application (called Relief Communication Management System), where workers can send SMS messages to a particular helpline number and all their requests get published online on a webpage, making it easier for workers to communicate after disasters.
This video also captures the spirit of how applying professional skills and employee passion can have a huge impact to individuals, schools or nonprofit organizations.
These are just a few examples of what Intel employees are doing around the world. I’d also love to hear from you - what are you doing that applies your work skills to the community? Be a ROCK STAR in your community!
Why do I love the show floor at conferences? It's almost impossible to have a reasonable conversation with the poor folks doing booth duty. Often this is because they might not be working in the area that you are interested in, or the noise level is just too high to have a good talk.
Sadly, I am addicted to technology, and the show floor is a great place for a quick fix.
OSCON is the Open Source Convention put on by O'Reilly Media and is being held in the San Jose Convention Center. As with any good-sized convention, the big hitters in the technology business are present...
Microsoft - OK, these guys seem unusual to be present in an open source setting, but they want to highlight the tools they have created for hosting open source projects. Their booth seems mostly an excuse for people to play Guitar Hero.
Sun - as the company which has contributed the most lines of open source code, it's not surprising to see them with a strong presence.
Again, their booth was more a lounge rather than a place to have technology demos and talks. They did have a great supply of giveaways./li>
Amazon - had a smaller booth, and the focus seems mostly on code. They posted a code snippet and a contest for solving a problem with it.
Google - Also a very code focused booth. They were talking a lot about code.google.com, their Soureforge competitor.
Facebook - Although I'm sure that any of the companies at OSCOn would love to hire really killer technical talent. And certainly there is good talent there. But the Facebook booth seemed to be totally focused on recruiting people. A little obvious, I guess.
Intel - as is usually the case, Intel's booth was crammed with technology demos, booth talks and an amazing give-away. I'm not sure which of these created the long lines in the booth, but it was pretty full whenever I came by.
The demos showed a good split between hardware geek stuff and software partners.
OpenSolaris on Xeon, particularly showing great tools like PowerTop, which now has a pretty gtk interface.
SuSE running on a Xeon 5500 (formerly Nehalem) server. They were showing an Oracle database, and the tools available for the administrator here.
Moblin, running on Netbooks, Moble Internet Devices and automobiles. This last was really cool - there was a functional open source dialer which successfully called my cell phone!
Because O'Reilly is a media company, there are some booths which don't usually fit in the usual technology conference - publishing companies:
No Starch Press- I love the useful technology titles these guys have, and I really love the art work these guys have on their book covers, in particular a robot pouring coffee into the open door in its head.
Manning - don't know as much about these guys, they seem to have good titles.
Linux Pro Magazine
O'Reilly - hosted a lounge and a very nice book store.
And being an open source conference, there is a selection of what I would call "advocacy" booths: Electronic Fronteir Foundation, Free Software Foundation, the ACLU and FOSSFA which is the Free and Open Source Software for Africa group.
I also usually see one or two things that I learn about. One of these was Schooner. These guys are providing engines with Intel Xeon 5500 series processors (formerly Nehalem) and Intel Solid State Disks or SSDs and their optimized version of Linux, memcached and MySQL. What is really cool about this is that they didn't just put together some great Intel hardware and push the box out. They have added a bunch of value by optimizing the open source software. As a result, they get fantastic performance improvements.
What was also very cool was to see that Schooner's VP of Engineering is Dave Rodgers, who was the VP of engineering at Sequent Computer Systems when I joined them in the 80s. So it was really cool to see Dave and catch up with him.
It's a cool thing to see the various corporate tribes with their logo-ed T-Shirts herding together and mingling in the various lounges.
I just completed giving a two-day training course to introduce university faculty to what courseware materials are available from the Intel Academic Community. Another goal of the training is to give faculty an introduction to parallel and threaded programming the latest technology available for writing such applications.
I was helped out by Jay Desouza (middle) and Jackson Marusarz (left), both colleagues here at Intel in Champaign, Illinois. The course was held on the University of Illinois, Urbana-Champaign, campus. Jay did an excellent job with the lectures in his first stint with the Innovative Software Education material.
We presented the "standard" types of material: OpenMP 3.0, debugging and tuning threaded code with Intel Parallel Studio, threaded programming methodology, and Intel Threading Building Blocks. Labs go along with these modules, so everyone got a hands-on chance at parallel programming. There were some technical issues with the equipment and presentation materials at times, but we were able to muddle through.
The UPCRC folks at UIUC played host to our training sessions. They had things well in hand (they printed the poster in the picture) and the event ran smoothly on their end. They even went above and beyond by staging a panel discussion with some of the faculty.
The discussion was centered around what kinds of experieinces the UIUC professors have gone through in the attempt to bring parallelism into their curriculum. One of the points that I had not considered before was that students need to have a modicum of computer architecture knowledge to understand why parallel applications perform well or what kinds of performance issues might be caused by the interaction of the threads in the parallel algorithm executing on a processor. How can we hope students will understand what false sharing is and why it should be avoided if they don't understand the reality of cache line size or how those lines are treated in modern processors?
I've gone through several Computer Science degree programs, so this kind of knowledge has become second nature to me. However, it's not until students take a course in computer architecture and organization that some of these ideas are presented. (In fact, there is no point within most CS curriculums where program debugging and optimization is a topic of instruction.) The panel discussion made me realize that if we're going to make parallelism more prevalant, especially for students that aren't trying to get a CS degree, we need to give them some background about five to six key computer architecture topics to understand serial and, consequently, parallel performance optimization. Scalability of application performance beyond 4 cores is going to require a slightly more intimate knowledge of things like the memory hierarchy of a platform.
Overall, the class was a success. I got to sleep in my own bed each night after class and didn't have to sit on a plane for 6 or more hours. If only they were all this easy. :-)
On a recent trip (house hunting in AZ) I had occasion to take hundreds of pictures of homes. I used my GPS to embed the geo-tag information into the images as mentioned in this blog (Photo Management ? Geo Tags update). This real-world example of using the GPS and geo-tagged images shows how useful the information can be to help with your post-trip analysis of the data.
Several benefits of the geo-data included:
Documenting time and date according to the GPS time when I forgot to change my camera?s internal time.
When looking at a large volume of images it was often difficult to tell when one set ended and another started. The geo-tag information clearly shows when sets changed.
The ability to find and sort by city was useful and powerful as implemented in iPhoto
The ability to look at the images in a map view was nice as I reviewed home purchase options and evaluated commuting distances to work.
After using the GPS as attached to my camera I feel it?s become an essential tool in my camera bag. I really liked having the Geo-tag information and want to make sure all future images contain it.
Concerning battery life, in a previous post I was asked how much the drain on the battery changed my camera usage. The reality is that I use to take as many as 1000+ images on a single battery (1500 in some cases). With the GPS shooting over the course of the day and turning off the camera when driving to new locations, I was able to get 500+ images per battery charge. I keep several batteries just in case but the roughly 50% reduction wasn?t enough to change my desire to continue to use the GPS.
I'm speaking in the OSCON 2009 show floor area at 3:00PM. I'll be in the Intel booth (about as obvious as can be). Come by and hear me talk about Moblin.
23/07/2009 10:59 AM
Não confunda o Original com cópias. Aqui seu anúncio é tratado com seriedade.
Site 100% Compativel com o Google Chrome - Versão Oficial 1583 v0.2.149.27 ou superior, Firefox 1.5 ou Superior e Safari 3 ou Superior.