How about Responsive Web Design nowadays - responsive-design

guys.
I'm revisiting some topics about RWD and all I have found about this was written two or three years ago. Apparently, there are no big changes but I'd like to discuss RWD nowadays to increase my skills on this.
Thanks!

Related

Familiar with SilverStripe? What are your opinions/impressions? [closed]

I'm trying to pick a good CMS that isn't a portal. All of my research as lead me to believe SilverStipe is the best option. I'd like some opinions/impressions.
Thanks for any thoughts you have.
edit: I've decided to try it out. I'll post my own answer after I've had some time with it. It seems like based on the lack of a response there isn't a large user base. (At least who intersect with the Stack Overflow community.)
Our company switched from a custom cms to SilverStripe (SS) last year. Active Record made the migration take much longer than anticipated because of all the building. It also makes data sharing harder. So be wary if you have A LOT of sites like we do that share data.
Other than that...actually developing a site/CMS in SilverStripe is an OO dream come true. No more coding some app feature and then coding some admin and then bug fixing them both and having one work and not the other. I recommend SS heartily for developers looking for a mature active record/php solution that really has some thought behind it. The admin is really cool.
Bonus: Most of the time I am trying to do something and I am like WTF...I just search or browse the code and there's already a function to do exactly what I wanted.
Support: no problems here. There's a forum which is answered when intelligent questions are asked and not already answered. This can only improve in time with more people getting on board and Ingo's SS book getting translated into English.
I just stumbled upon Silverstripe / Sapphire a week ago or so (now is the 3rd November 2008) and I was amazed. This seems to be an underestimated piece of software. I'm not such a pro that I could say it for sure but I believe their code is very solid, clean and intelligent. They just got and award for the most promising open source CMS which might be a hint in the same direction.
The CMS still lacks the vast amount of plugins and modules if you compare it with Joomla or Drupal but their code seems more advanced.
The whole CMS uses the active record pattern approach and a clean MVC design. If you create a new pagetype you can add new db-fields in the page class, flush the db built via url and the cms inserts the new tables and fields.
Building templates is easier compared to Joomla for example, thanks to MVC and thanks to a two level approach using templates and subtemplates called layouts. E.g. if you have a page type called "BlogPage" the "BlogPage" Class first looks for a "BlogPage" template and if it doesn't find it it looks for a "BlogPage" layout and inserts it at the given place in the template.
That's just my first impression after a few days of dabbling around with it.
So far I have found it to be very interesting. It does have its share of issues, but overall it is very flexible. The basics are easy to get nailed down in a couple hours, but the more advanced things take a couple days to really get the hang of. However I am new to MVC so that is where most of my learning curve was spent.
It is definitely worth a look. I'd recommend that anyone trying to do advanced things be pretty familiar with PHP and MVC design, or plan on getting familiar.
There are plenty of resources for help at the website:
http://silverstripe.com/community-overview/
I've used the tutorials, but the best help on more advanced things are found in the forum.
I'm still interested to hear what others think, keep posting.
i have used a couple other frameworks, codeigniter, cake, drupal, joomla, some CMS, others not, and Silverstripe now a bit, it seems a little slower in performance than these other frameworks. But it does have some cool pieces and features that really make implementation fast. So if your site istn't that big and you're not concerned about really high performance, this might be a good choice. But i might look into the others if performance (speed, high volume, etc) is a requirement.
Having checked the online documentation, forum, API reference, etc. I bought the book. Best thing I ever did - I would recommend this course of action to anyone looking to get even slightly serious with SilverStripe.
Having said that, the project is still young, and the online documentation is in the process of being restructured. Given time, I think it can only improve.
I'm not but maybe will check it out. I'd question about WordPress that might be of interest. As a side effect, I'm also going to look at the suggested python framework django. There are other php cms referenced in SO.
There is also a book on Silverstripe out now - at least a German version, English version anounced for release end of August

A way to catch up to modern programming techniques

I have been programming, non professionally for about 23 years and find I am a little stuck in my ways. I find a tool I like, and it stays that way for year after year. Unfortunately this means that I am behind the times in my programming.
I am not directly planning on programming professionally per se, however, it is very handy to be able to develop client side (and lately a desire to move to cloud) apps for use by my clients, and also for myself in my day to day work (hardware, network and Internet support services).
Unfortunately, I find that I am having great difficulty in understanding recent concepts, and because I am trapped in programming styles of the 80's and 90's I am finding myself slow to understand concepts.
What I am looking for is suggestions for online and printed material offering real 'intro to concepts' and (separate material) technical usage for modern programming concepts and their usage in Java and C# (all three of which I have had only minimal exposure to).
I would be most obliged.
--UPDATE--
I just want to add in a big thank you to everyone who left a reply or comment to this question.
I have found some wonderful resources due to your recommendations, and a return of my enthusiasm for programming. No longer does the way forward feel like an uphill struggle, and for the first time in the last year or so, the light at the end of the tunnel doesn't look like an oncoming lorry.
Read developers blog. Try to keep a fair amount of resources in your feed reader and go through them every day (or so). Just pick up the things you like.
Most coders write their opinions, their view, and so on. You can learn A LOT by just reading what others do and filtering what you like or find interesting and what you don't. Books are helpful to, but, with 23 years of experience and just wanting to be up to date... I'd recommend blogs...
Some blogs I read:
Coding Horror
Good Idea
Kirill Osenkov
Joel on software
Jon Skeet
Joe Duffy
Byte Bytes
Stackoverflow is a great resource too. Not just for finding answers to your problems but also for reading answers to other problems. Seriously, I've found myself quoting some answer from stackoverflow a lot of times lately... or applying something I've seen here.
For what is worth, being up to date with the current tendencies (like TDD or Aspect Oriented Programming) is like being up to date with the world itself. You get up in the morning, and read the newspaper, maybe just the headlines and then something specific, for about 5 or 10 minutes. Then you read the articles you find interesting but you're somewhat conscious about the most important things that are happening. This is the same, but those blogs (and some others) are your newspaper for the programming world.
Read some newer programming books like The Pragmatic Programmer. This book talks about programming using modern tools, the idioms and techniques, etc.
The Pragmatic Programmer http://www.pragprog.com/images/covers/190x228/tpp.jpg?1184184147
I lot of "new" concepts are not actually new. Most "modern" language features are derived from early functional languages, for example.
Techniques such as TDD and Agile are just codifications of things that have been done for a long time, just perhaps not in the mainstream. Nor are they hard to understand per se.
I suspect your biggest obstacles will be terminology. You may be used to hearing buzzwords, but when you look at what they mean you just find them explained in terms of other buzzwords.
My recommendation is to persist. Find your way back to where things are explained in terms you can relate to then work back out. Once you've done that with a few concepts you'll feel a lot more confident in tackling more, and have a better idea of which things you really want to concentrate on.
For language related things this is probably easier because you can go back to, for example, Lisp and find the concepts explained in terms of what was familiar in the 60s and before! (of course you can find more recent coverage too).
For design and process related subjects just reading up on their histories in wikipedia should give you some clues.
Keep your focus narrow enough to not be overwhelmed, but broad enough to take account of the eco-system that a tool or technology exists in.
You will need some alternative approach to the topics. I have found the "Heads on..." series to be both entertaining and technically sound.
Have a look on Heads on Java: http://oreilly.com/catalog/9780596009205
If all you want to do is keep up with times, you should read developer blogs. I am not going to give you the regular blog list cause I don't think it's a good idea to depend on 4-7 bloggers for all your info.
Earlier I used to pool all the bloggers in Google reader and my reading list grew to over 400 blogs. That's definitely not going to help.
Better visit websites like codebix.com, dzone.com, to get the latest articles and a little help of the community in selecting the best articles ;).
Personally, I learned a lot from watching lectures and tech talks posted by google. They have a ton of content about software engineering. Watching videos is obviously a very different learning experience than reading but most of the people are very intelligent and are talented speakers.
http://www.youtube.com/GoogleDevelopers
http://www.youtube.com/GoogleTechTalks
It sounds like your programming logic skills are fine. It seems to me like the best way for you to update your skills is to pick up a copy of C# (Express is free) - Or java (I'm a .net guy) and convert one of your old applications, you will then find real world issues and will be able to solve them (With the help of SO) using the 'Modern' methods.
Good luck.
You might find these lectures on functional programming by Erik Meijer enlightening.

Brushing up a knowledge of C++, C#, ASP.NET and Design patterns

I've been a software developer for 10 years and came all the way from a wild world of assembly language programming, then server side of C++ and COM, and for the last 5 years I was comfortably settled in a quiet world of .NET, C# and development of business applications.
The problem is - the last couple of years was so comfortable and I was also spending almost half of my time doing a BA's work, that I feel like I forgot a good part of low level C# language, Design Pattern and ASP.NET. And after almost 5 years of not using C++ for a big projects my skills in that language are even worse.
That does not mean I can't program - I do it every day and quite successfully - but I feel what I would not be able to pass most of tough job interviews should the need arises, which is very likely in a current recession. And the reasons I think I would not pass - is that I forgot all the standard things what usually people are being asked on the interviews (e.g. I use the design patterns - but if you ask me - which pattern what that - I would probably not give you the correct name, because all he DP for me are just a smart ways of using static functions and virtual functions).
Can someone please point me to a resource or give me an advice (can I have both please?),
how can I quickly (in a week or so) could brush up my knowledge of C#/.NET, DP and ASP.NET to the level of the very good senior dev (whom I was a 2 years ago). As for the C++ - I am willing to spend a month to get my knowledge back again, but this is of less priority.
Please do understand me right - I am not a newbie and all these things I knew before - just want to be back in business 100% again.
Thank you.
For Design Patterns, I would suggest to get a copy of Head First Design Patterns.
Regarding ASP.NET, C# and the usage of some patterns, watching Rob Connerys ASP.NET MVC Storefront Webcasts would be a good start.
What you could also do, is having a look at Scott Hanselmanns interview questions which you can find at his blog. Try to find an answer to all of them and you should be in pretty good shape ;-)
In addition, I'd have a look at the code of some successfull open source projects like subtext, DasBlog, Oxite ...
They are a great learning ressource.
The next step could be to contribute to some of those projects (sending some patches to the project admins), because nothing can replace practice ...
However you should keep in mind, that one week might not be enough time to resharpen your skills.
Good luck anyway
Well, since you knew all this, which I guess means "have used all this" previously,
you could take look back at your own code as a starting point.
Really ask yourself:
why did I do it like this?
when was this, what situation was I in?
can I do it better now?
Take a small tricky and interesting part of the program out, and try to
recode it.
This is all meant to get you mentally back to those times, pick up a few discarded
threads in memory. I find such methods really useful to reactivate knowledge.
Then read up on new developments/best practices on blogs and books and skim through
books that used to be useful to you (maybe there are current editions)
I used scott meyer's "Effective C++..." series to get me back into and
advance my knowledge of c++.
Design Patterns are covered in many books today. The stanard of course is the "Gang of Four" book named "Design Patterns".
Put OO, Agile and Pattern together
Another book is more hands-on and combines Design Patterns with an other new thing -- "Agile Development". The good thing is, that design patterns are presented in live examples and interestingly presented in context. I think Robert C. Martin also brings a lot of insight into many OO development principles. The book is called Agile Software development.
But of course, it depends how far you want to go. Do you really want to brush up your knowledge (then I could maybe give further hints) or do you want to just be upto date for interviews?
Slides on design patterns in C#
Well if you have some two months to bursh up C++ and design patterns then I would recommend you the following books .
- C++ FAQ Second Edition
- Effective C+++
- Effective STL
I think for C++ this should be sufficient, if you have some more time you can also try
Inside c++ Object Mode
For design Patterns
I think reading complete book at one go is not a good idea.
Try to list down few design patterns from each category creational, structural and behavioral that you have worked on or that you want to talk in interviews.
There are lot of resources on net about each of them and try to completely understand each of them rather than jumping into a book and getting almost lost.
I've found that the asp.net videos on www.asp.net/learn are very good for quickly learning about (or remembering) many asp.net topics.

Where can I find a standard set of rules for designing web pages?

I have been making webpages for about 5 years now. I'm a C# programmer but I do know HTML, JavaScript, and CSS by nature and all my websites seem to look like they just walked out of the year 1995's internet. Is there quick reference to a set of do's and don't in web design?
Note: Even though my websites don't look great, at least they work ;-)
A few links, older but still relevant:
The Principles of Beautiful Web Design
Five Simple Steps to designing with colour
How C.R.A.P is Your Site Design?
Have you tried looking at the HTML, CSS, JavaScript, and assets for the sites you like? It's all there--that's what's great about the open web.
I know you're looking more for visual help, but see this guide for some technical gotchas:
https://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site
This is a good reference of don'ts:
http://csszengarden.com/?cssfile=http://www.brucelawson.co.uk/zen/sample.css
Sadly, the there really isn't a set of do's / don'ts. I'm not aware of any kind of CUA-like guidance for web applications for a given look/feel and user experience.
for aesthetics :
ASP.NET MVC Design Gallery - for MVC
ASP.NET Design Templates - for webforms
25 Magento site designs
I would also look at reading Smashing Magazine on a regular basis (I am sure there are others) it has pointers on layouts, design templates, galleries, typography and things like optimizing different kinds of work flows in sites (e.g. shopping carts, non-profit sites etc).
It was amazing how on my last project just starting with one of the the asp.net templates made my app look better out of the box and that minimized the resistance of end users on their initial go around with the app. YMMV of course.
Just educate yourself on the principels of design ... things like the rule of thirds, balance, symmetry, contrast, rhythm & patterns, proportion (divine proportion).
Spend an hour searching "principles of design" and you may surprised what ideas come to you for your sites.
This book was very useful to me when I started, and lots of people I've recommended it to have been happy with it:
The Non-Designer's Web Book
in fact her general book on design is almost as good, as it's mostly about the principles, not so much about the technical details.
Also check out bulletproof css by dan cederholm

Looking for some Interesting C# Programming Problems [closed]

I am tired of doing typical CRUD programming type applications. I would like to work on some interesting (not too hard) programming problems. Are there any sites out there to help me exercise my brain?
Project Euler: http://projecteuler.net/ is a nice collection of randomly interesting problems.
Somewhat related (not always programming, but generally interesting to programmers) is the IBM ponder this site: http://domino.research.ibm.com/Comm/wwwr_ponder.nsf/pages/index.html
One other great site is ... stackoverflow.com :)
There are some really great questions asked on this site. I find it fun to pick some of the questions and develop answers for them. Often I pick a theme. For instance for the last week, I've tried to solve as many problems as possible using only a single LINQ expression.
Check DotNetPerls they have a good selection of problems and solutions focusing in C# programming.
I also like the C# Brainteasers from Jon Skeet, good code snippets to read and learn more about the language, some have very interesting and surprising results...
I've used the problems on Ruby Quiz before. Other than that Dave Thomas' CodeKata and see if there is a Coding Dojo near you.
Checkout for CodeChef
Interesting problems here any language vl do
Try SPOJ they have a good amount of problems for you to work on. They also vary in difficulty.

Resources